Prefijos de medida empleados en informática
El estilo de este artículo debe ser mejorado.
El artículo no sigue completamente las convenciones de estilo.
Explicación de medidas en informática de forma sencilla y accesible para la mayor cantidad de gente posible.
Contenido |
Prefijos estándar del sistema métrico decimal
Tera (10^12) - Giga (10^9) - Mega (10^6) - Kilo (10^3) - la unidad sin prefijo - Mili (10^-3) - Micro (10^-6) - Nano (10^-9) - Pico (10^-12)
Existen también prefijos intermedios como por ejemplo el
Hecto (10^2), Deca (10^1), Deci (10^-1), Centi (10^-2)
Y otros aún mayores y menores, solamente se han listado los de uso más común.
Funcionan como prefijos normales, ejemplos:
- Kilogramo = 10^3 gramos = 1.000 gramos
- Centímetro = 10^-2 metros = 0,01 metros
- Gigawatio = 10^9 watios = 1.000.000.000 watios
- Picofaradio = 10^-12 faradios = 0,000000000001 faradios
¿Qué pasa en informática?
En primer lugar debe hacerse una distinción entre Bits y Bytes.
- 1 Byte = 8 Bits
En abreviatura Byte = B, Bit = b
- 1 KB = 8 Kb
Ejemplos: La velocidad de las redes y medios de comunicación se mide en Bits. La capacidad de almacenamiento en Bytes, salvo los cartuchos de consolas (que se tratan como si fuesen memoria RAM, explicado más abajo).
Ejemplos: Una ROM de Super Nintendo de 16Mib = 2 MiB (luego explico lo de la i)
La capacidad de los discos duros se mide en BYTES.
Los prefijos en informática
En informática normalmente la base es 2 en lugar de 10, así que todo se mide en potencias y múltiplos de potencias binarias de 2.
Para expresar números grandes se adoptaron los prefijos del sistema métrico pero adaptados a la potencia de 2 más próxima.
Como en informática se trabaja con enteros no se emplean los prefijos negativos (no puede haber 0,1 bit)
- el Kilo pasa a ser 2^10 (Kilo binario)
- el Mega pasa a ser 2^20 (Mega binario)
- el Giga pasa a ser 2^30 (Giga binario)
- el Tera pasa a ser 2^40 (Tera binario)
Los sistemas operativos emplean los prefijos base binaria (Base2), pero los demás no.
Todos los fabricantes de discos duros, discos ópticos, memorias para almacenamiento, tarjetas de red, routers (enrutadores), etc... utilizan el sistema decimal (Base10).
La única excepción es la memoria RAM, cuando nos venden 1GB (en realidad 1GiB) de ram nos venden 2^30 Bytes de RAM. Esto es así por estar tan íntimamente ligada a la CPU. La CPU maneja registros en Base2 para direccionar la memoria RAM y el direccionamiento lo realiza operando en Base2, como todas las operaciones que realiza; es por esto que la memoria RAM se mide en Base2.
¿Entonces un Kilo pueden ser 1.000 o 1.024?
En el Sistema Internacional de Medidas/, los prefijos kilo-, mega-, giga- y sucesivos son siempre múltiplos de 10. Sin embargo, los circuitos electrónicos de memoria usan una arquitectura binaria lo que implica que el número de lugares de almacenamiento que poseen siempre es una potencia de dos y, por tanto, que no son múltiplos de 10 ni en consecuencia de 1000 sino de 2^10, igual a 1024. Para evitar la confusión de emplear nuevos prefijos y para poder expresar de forma intuitiva en un sistema ya conocido cantidades de memoria cada vez mayores se acordó usar los prefijos decimales ya establecidos del SI aun cuando no pudieran reflejar con exactitud la realidad de los tamaños de memoria. Precisamente donde la capacidad no estaba establecida en potencias de dos, como en los discos magnéticos (que se organizan en pistas y sectores) o en redes de ordenadores (donde se emplea estrictamente la velocidad de transmisión) se emplearon sin problemas los prefijos del SI.
Por ello, existen distintas convenciones acerca del significado exacto de los prefijos empleados para expresar capacidades de memoria. El SI acepta ahora que kilo- expresa 10^3 unidades de almacenamiento y kilobi- se refiere a 2^3 unidades de almacenamiento y así sucesivamente para el resto de prefijos. De esta manera, kilobyte se referiría a 1000 bytes y kilobibyte a 1024 bytes de la misma manera que no cabría ambigüedad en las abreviaturas quedando éstas como kB y kiB respectivamente, añadiendo una "i" para indicar que se trata de una potencia binaria y no decimal.
Sin embargo, y pese a las recomendaciones del SI, este sistema de abreviaturas no es popular. Las especificaciones del IEC, del IEEE y de la ISO se refieren a "kB" para cantidades que no están basadas en potencias de dos, mientras que la organización JEDEC encargada de elaborar los estándares de las memorias electrónicas la usa para expresar números resultantes de potencias de dos; por lo que para interpretar correctamente dichas cantidades se requiere conocimiento previo del contexto donde se encuentren para así poder distinguir cuándo nos referimos a potencias decimales o a potencias binarias.
Como ejemplos notables, el kernel de Linux y de MacOS X se refieren siempre a las cantidades de memoria como potencias de diez mientras que Microsoft Windows siempre muestra las capacidades como múltiplos de 1024.
Además es preciso hacer notar que existe una ambigüedad aparente entre la abreviatura de bit y byte, donde uno se refiere a la unidad binaria de información y el otro a un octeto de los anteriores. Para evitarlo, se ha establecido que donde la abreviatura sea "b" minúscula hará referencia a un bit y donde ésta sea con "B" mayúscula se hablará siempre de bytes.
Entonces, ¿1.024 qué son?
- 2^10 es un Kibi, en abreviatura Ki
- 2^20 es un Mebi, en abreviatura Mi
- 2^30 es un Gibi, en abreviatura Gi
- 2^40 es un Tebi, en abreviatura Ti
1.000 Bytes son un kB ó Kilobyte, y 1.024 Bytes son un KiB ó Kibibyte.
IEEE
El IEEE fue tajante al respecto cuando apareció la confusión:
Los prefijos se han de usar siempre según la normativa del Sistema Métrico Decimal, norma adoptada por el SI. Pero mientras no se apruebe una nueva normativa para los prefijos binarios se podrían usar los del SI indicando siempre que se empleaban en binario (en Base2)
El IEC publicó y adoptó la nueva norma que añade la i y el bi de binario con el apoyo del IEEE y del CIPM. Hasta el momento, faltan por adoptarla públicamente estos dos últimos, un mero formalismo.