[Madrid-pm] Capacidad de los sistemas de almacenamiento

Joaquin Ferrero explorer en joaquinferrero.com
Vie Sep 30 04:37:43 PDT 2016


Buenas.

En la reunión de ayer, cuando Ramiro nos presentó su módulo, yo indiqué 
que no me parecía correcto que el cálculo se hiciese en base a dividir 
los bytes de la capacidad devuelta por el sistema operativo en múltiplos 
de 1024. Y que en su lugar se debía usar el valor de 1000.

Este es un extracto de lo que figura en la página "Unidad de disco duro" 
de la Wikipedia:

    Además, los fabricantes de discos duros, unidades de estado sólido y
    tarjetas flash miden la capacidad de los mismos usando prefijos del
    Sistema Internacional, que _emplean múltiplos de potencias de 1000
    según la normativa IEC e IEEE_, en lugar de los prefijos binarios,
    que emplean múltiplos de potencias de 1024, y son los usados por
    sistemas operativos de Microsoft. Esto provoca que en algunos
    sistemas operativos sea representado como múltiplos 1024 o como
    1000, y por tanto existan confusiones, por ejemplo un disco duro de
    500 GB, en algunos sistemas operativos será representado como 465
    GiB (es decir gibibytes; 1 GiB = 1024 MiB) y en otros como 500 GB.

De esta manera, los dispositivos de almacenamiento se igualan con las 
velocidades de transmisión o caudales, de las líneas de datos, basándose 
todas en múltiplos de 1000 (bueno, en la mayoría de los casos).

Además... así el algoritmo de cálculo de las letras de los prefijos 
queda... de otra manera :)

my $x = 7233434453; # valor de prueba
my $n = int log($x) / log(10) / 3;

return sprintf "%6.02f %2s", $x/10**($n*3), (qw(B KB MB GB TB PB EB ZB YB))[$n];   # "  7.23 GB"

La división log $x / log 10  se debe a que en Perl 5 no existe la 
función logaritmo en base 10, que sí tiene Perl 6: .log10


-- 
JF^D



Más información sobre la lista de distribución Madrid-pm