Confusión con capacidad de almacenamiento (potencias de 10 y 2) [duplicado]

23

Estaba mirando un HDD y encontré un documento (de Toshiba, enlace: HDD SATA de 2,5 pulgadas mq01abdxxx ) que dice:

"Un Gigabyte (1GB) significa 10 ^ 9 = 1,000,000,000 bytes usando potencias de 10. Sin embargo, un sistema operativo de computadora informa capacidad de almacenamiento usando potencias de 2 para la definición de 1GB = 2 ^ 30 = 1,073,741,824 bytes, y por lo tanto muestra menos almacenamiento capacidad."

Entonces las potencias de 10 son mayores que las potencias de 2, está bien.

Ejemplo 10 ^ 2 = 100 y 2 ^ 2 = 4.

Pero no entiendo el documento que dice para la misma capacidad de almacenamiento:

1GB es 1,000,000,000 bytes (potencias de 10) y 1,073,741,824 bytes (potencias de 2), entonces: muestra menos capacidad de almacenamiento (potencias de 2). ¿Por qué es menos? Si veo 1 GB más de capacidad de almacenamiento en potencias de 2 que potencias de 10.

programación de aprendizaje
fuente
13
"¿Por qué es menos? Si veo 1 GB más de capacidad de almacenamiento en potencias de 2 que potencias de 10". Su altura en pulgadas da el número menor que la misma altura en centímetros, solo porque hay más "capacidad de longitud" en pulgadas que en centímetros. Entonces, para que el valor fijo se exprese: cuanto mayor es la unidad, menor es el número.
Kamil Maciorowski
44
No es menos, es el mismo valor, representado por dos bases diferentes.
Ramhound
2
No puede simplemente decir que 10 ^ 2 - 100 y 2 ^ 2 = 4.
Debe
44
"Un sistema operativo de computadora" - El mío no ... O, en realidad, usa MB (base10) en la GUI, pero MiB (base2) en la CLI. Solo para mantener las cosas interesantes.
marcelm
2
Dicen que las "potencias de 10" son más pequeñas que las potencias de magnitud similares de 2. Por ejemplo, 1000 (10 ^ 3) <1024 (2 ^ 10). Y 1000000 (10 ^ 6) <1048576 (2 ^ 20). Entonces, para un fabricante de unidades, su disco duro de 1 terabyte tiene (al menos) 1,000,000,000 de bytes (y en realidad un poco más) mientras que para una utilidad del sistema operativo que informa sobre el espacio de 1 terabyte es 1,099,511,627,776 bytes. Entonces, el sistema operativo informará que su disco duro de 1Tb es de 931Gb, o un poco más. (O tal vez no, vea @marcelm arriba.)
davidbak

Respuestas:

58

La razón histórica de usar potencias de 2 es que la CPU accede a la memoria y al disco duro utilizando un espacio de direcciones compuesto por líneas en código binario. Los productores de hardware decidieron los nombres de esta manera:

2^10 = 1024 and as it's almost 1000 then call it 1 Kilobyte

2^20 = 1048576 bytes and as it's almost 1000000 then call it 1 Megabyte

Para el usuario normal no tiene sentido y es engorroso. Además, los prefijos "kilo", "mega", etc. entran en conflicto con el estándar del Sistema Internacional de Unidades (SI) donde "1 kilovatio" significa 10 ^ 3 o 1000 vatios.

Para resolver el problema, en el año 2000, la Comisión Electrotécnica Internacional o IEC propuso un esquema de notación para las unidades basadas en potencias de 2 en la norma ISO / IEC 80000-13 .

Los nuevos nombres se crearon reemplazando la segunda sílaba del antiguo nombre por 'bi' (refiriéndose a '2'). Un kilobyte debe ser ahora un kibibyte y así sucesivamente. Las nuevas unidades también obtuvieron los símbolos correspondientes, por lo que '10 kibibyte 'ahora se escribe como 10 KiB en lugar de 10 kB . Esta es la tabla de correspondencia:

Notation      Symbol    Value
1 kilobyte    1 kB      10^3  = 1000 bytes
1 megabyte    1 MB      10^6  = 1000000 bytes
1 gigabyte    1 GB      10^9  = 1000000000 bytes
1 terabyte    1 TB      10^12 = 1000000000000 bytes


1 kibibyte    1 KiB     2^10 = 1024 bytes
1 mebibyte    1 MiB     2^20 = 1048576 bytes
1 gibibyte    1 GiB     2^30 = 1073741824 bytes
1 tebibyte    1 TiB     2^40 = 1099511627776 bytes

16 años después, muchos proveedores de hardware y software todavía se refieren a las unidades de base 2 con sus nombres SI . Un "megabyte" puede significar 1000000 bytes o 1048576 bytes.

Si compra un disco duro de 100 GB, la capacidad es de 100x10 ^ 9 o 10 ^ 11 bytes. Pero, y este es el gran pero, el sistema operativo solo informará que la unidad tiene una capacidad de 93 GB (10^11)/(2^30). Usted compró una unidad de 100 gigabytes , que es equivalente a una unidad de 93 gibibyte . El sistema operativo es el que usa la notación incorrecta.

Los fabricantes de unidades ocultan este problema con renuncias y explicaciones que siempre llevan a la conclusión de que "la capacidad formateada real puede ser menor".

jcbermu
fuente
1
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Journeyman Geek
21

En resumen: se trataba de marketing.

jcbermu explicó bien, pero no estoy de acuerdo con las razones detrás de todo eso.

Mientras que cualquier sistema informático utiliza el sistema binario, los bits y bytes se escriben como ^ 2, lo cual es normal. Entonces, no es el sistema operativo o el software el culpable de la confusión. Todo es binario aquí.

Es culpa de los fabricantes de HDD establecer las capacidades de HDD en el sistema ^ 10, lo que le roba bastante GB práctico. Un HDD de 20GB podrá almacenar 18GB y así sucesivamente ... una unidad de 1TB será en realidad de ~ 930GB. La burla 'bibyte' se inventó para tratar de evitar algo de la confusión, pero no se adoptó por completo.

Overmind
fuente
10
Es porque los bytes en el disco "se resolvieron después del envío".
davidbak
2
Cierto. Nunca escuché a nadie decir "He actualizado a 16 gibi RAM". No creo que los fabricantes sean responsables del desorden, pero de seguro lo benefician. En los años 80 y 90, los usuarios de computadoras sabían cuál es la diferencia entre kilogramo y kilobyte y por qué. Hoy en día, ¿quién sabe que las computadoras funcionan con aritmética binaria?
Crowley
44
No se trata de marketing, y nunca lo fue. Los discos duros y los disquetes siempre se han vendido utilizando el prefijo SI real, porque nunca tuvo sentido utilizar otra base.
tubería
1
-1, terrible. It's the fault of HDD manufacturers to state the HDD capacities in ^10 system, which robs you of quite some practical GB.No, ninguna de esas cosas es verdad. Los fabricantes de HD son los que lo han estado haciendo bien todo el tiempo, utilizando la definición real y correcta de las unidades. No es su culpa que los desarrolladores, los fabricantes de memoria y cualquier otra persona hayan estado utilizando las unidades SI de manera incorrecta. Y, por supuesto, en qué unidad se mide el espacio de almacenamiento no "le roba algunos GB prácticos" ni en realidad altera la capacidad de ninguna manera.
HopelessN00b
1
@pipe: un disquete de 720 KB contenía exactamente 1.440 bloques de 512 bytes cada uno. Asimismo con otros tamaños medidos en KB. Hasta donde puedo decir, el significado más común de "MB" con medios de almacenamiento magnético fue de 1,024,000 bytes, lo que hace que un disquete de 1.44MB sea exactamente el doble de grande que uno de 720KB.
supercat
16

La respuesta de jcbermu es buena, pero quiero abordar esto desde un ángulo diferente.

1GB es 1,000,000,000 bytes (potencias de 10) y 1,073,741,824 bytes (potencias de 2), entonces: muestra menos capacidad de almacenamiento (potencias de 2). ¿Por qué es menos? Si veo 1 GB más de capacidad de almacenamiento en potencias de 2 que potencias de 10.

Un medio de almacenamiento, cualquier medio de almacenamiento, puede almacenar un número específico de bits accesibles. Por lo general, en la informática de propósito general, se expresa como bytes o algún múltiplo de bytes, pero si comienza a mirar, por ejemplo, los circuitos integrados de memoria (circuitos integrados, chips), verá su capacidad de memoria expresada en términos de bits accesibles.

Un disco duro almacenará un número específico de bits o bytes que, por razones técnicas, se abordan en términos de sectores. Por ejemplo, una unidad de 4 TB puede tener 7.814.037.168 sectores de 512 bytes cada uno, lo que da una capacidad de almacenamiento de 4.000.787.030.016 bytes. Eso es lo que realmente obtienes. (En la práctica, luego pierde parte de eso por la información de contabilidad de la computadora: sistema de archivos, diario, particionamiento, etc. Sin embargo, los bytes todavía están allí, simplemente no puede usarlos para almacenar archivos, porque son necesarios para almacenar los datos que efectivamente le permiten almacenar los archivos).

Por supuesto, el número 4,000,787,030,016 es algo difícil de manejar. Por esa razón, elegimos representar esta información de alguna otra manera. Pero como ilustra jcbermu, elegimos hacerlo de dos maneras diferentes: en potencias de diez o potencias de dos.

En potencias de diez, 4,000,787,030,016 bytes es 4.000787030016 * 10 ^ 12 bytes, que se redondea bastante bien; con cuatro dígitos significativos, se redondea a 4.001 TB, para la definición SI de "tera": 10 ^ 12. Nuestro disco duro puede almacenar más de 4 * 10 ^ 12 bytes, por lo que, en términos de SI, es un dispositivo de almacenamiento de 4 terabytes.

En potencias de dos, 4,000,787,030,016 bytes son 3.638694607 * 2 ^ 40 bytes, que no se redondea tan bien. También parece una cantidad menor, porque 3.639 es menor que 4.001, y eso es malo para la comercialización (¿quién quiere comprar un disco de 3.6 TB cuando el fabricante de al lado vende un disco de 4.0 TB por el mismo precio?). Este es el prefijo binario 3.6 "tebibytes", donde el "bi" indica que es una cantidad de base dos.

En realidad, sin embargo, es exactamente el mismo número de bytes; ¡el número solo se expresa de manera diferente! Si vuelve a hacer los cálculos, verá que 3.638694607 * 2 ^ 40 = 4.000787030016 * 10 ^ 12, por lo que al final obtiene la misma capacidad de almacenamiento.

un CVn
fuente
1
Bien explicado, pero el número de sectores (como 7,8 [...] en su ejemplo) es elegido por los fabricantes para que la capacidad termine en el valor deseado. Podrían hacer 8 mil millones de sectores, 8589934592 o cualquier otro número para terminar con un verdadero valor de capacidad, pero eso no es bueno para los negocios. Dado que la diferencia es técnicamente posible, como fabricante tendría un gran éxito en el mercado: un logotipo TrueCapacity (r) o TrueSpace (r) y está garantizado que las ventas aumentarían debido a esta maniobra de marketing y el otro fabricante (s) tiene que seguir (y no estaría preparado para hacerlo).
Overmind
@ Overmind: Esa es una posible técnica de marketing. Similar a las comunicaciones aéreas que tenían facturación por segundo (antes de que T-Mobile los comprara). Si estuviera a cargo de la comercialización de un fabricante de dispositivos de almacenamiento, supongo que esa estrategia podría ser una que decida considerar seguir.
TOOGAM
Encontré esta respuesta para proporcionarme la mayor claridad (tal vez). Entonces, ¿no hay una necesidad real de que sea una potencia de 2? ¿No tiene nada de especial que la mayoría de los tamaños de almacenamiento medianos sean potencias de 2?
Abdul
1
@Abdul La mayoría de los dispositivos de almacenamiento (de consumo) tienen capacidades accesibles para el usuario que no son , en términos de bytes (o por implicación también bits), una potencia de dos. Como Overmind dijo anteriormente, las capacidades exactas de los discos duros se pueden seleccionar en gran medida al azar siempre que cumplan con los requisitos de marcado. Los SSD tienden a estar más cerca de 2 ^ n, porque los chips de memoria flash están hechos en tamaños que a menudo están en potencias completas de dos (porque tienen líneas de dirección y cosas que lo hacen una ventaja), pero debido al sobreaprovisionamiento no toda la capacidad flash será accesible desde un software externo al controlador de flash incorporado.
un CVn
5

Otras respuestas han abordado la razón histórica de la diferencia, pero me parece que está preguntando sobre la diferencia según las matemáticas.

Tiene razón en que una potencia de 10 es mayor que una potencia de 2, y que, por el contrario, un gigabyte (10 ^ 9 bytes) es menor que un gibibyte (2 ^ 30 bytes).

La inversión de tamaños se explica por el hecho de que hay más poderes en un gibibyte (30 poderes) que poderes en un gigabyte (9 poderes). Resulta que el número de poderes tiene un efecto mayor en el tamaño final que el tamaño de cada poder individual.

En cuanto a por qué el tamaño informado de un disco es menor cuando se mide en gibibytes (2 ^ 30) que cuando se mide en gigabytes (10 ^ 9), es natural que cuando se mide una cantidad fija que una unidad de medida más grande dé un número menor . Por ejemplo, considere la altura en pulgadas versus la altura en centímetros. Debido a que una pulgada es más grande que un centímetro, la misma altura medirá menos pulgadas (por ejemplo, 72 pulgadas) que centímetros (por ejemplo, 183 centímetros). La altura es la misma distancia física en ambos casos, pero cada medida solo da un número diferente según la unidad de medida.

Edward Peek
fuente