[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