Buscador

sábado, 31 de julio de 2010

No sólo importa el tamaño en una partición.

Hola.

Estaba preparando un pendrive con todos los juegos de Spectrum que he ido recopilando por Internet. Además de juegos, hay también imágenes, instrucciones, etc. Como podréis imaginar todos los ficheros son muy pequeños. El tamaño de la recopilación no llega a 1,5GB sin embargo no cabe en mi pendrive que es de 2GB. 1,89GB netos.

Como se puede comprobar el espacio ocupado es mucho mayor en el pendrive.
Alguno se preguntará cómo puede ser si los ficheros son los mismos. A la izquierda se puede ver las propiedades de la recopilación de los snapshot en el disco local y a la derecha lo mismo en el pendrive.



















Ocupa 150MB más en el pendrive. Hablando de juegos de Sinclair Spectrum es una cantidad astronómica. ¿Por qué sucede esto? Vayamos por partes.

Para ello, creamos un fichero de texto vacío, bueno casi vacío, con un sólo carácter, por ejemplo el "1". Lo guardamos y accedemos a sus propiedades:








El fichero tiene la misma longitud, 1 byte, pero en el disco local ocupa 4KB y en el pendrive 32KB. En el disco el espacio mínimo utilizado es de 4KB siendo de 32KB en el pendrive. Vamos, que los ficheros inferiores a 1KB ocupan 8 veces más en el pendrive que en el disco. Pensaréis que ficheros inferiores a 1KB habrá muy pocos, cierto. Pero inferiores a 32KB no tantos, siempre hablando de esta situación, snapshots y cintas de Spectrum.

Ahora imaginaros un snapshot típico de Spectrum.
¿Qué longitud tendrá el fichero? 48KB
¿Y cuánto ocupará en el pendrive? 64KB ya que va almacenando los datos de 32KB en 32KB y como se pasa de 32KB pues usa dos bloques.
¿A qué ahora resulta más preocupante que cuando hablábamos de ficheros inferiores a 1K? ;)

El despilfarro de espacio parece evidente. La unidad mínima de alojamiento (traducción literal del inglés, allocation unit size), se define al dar formato a una partición. Cuanto más pequeña sea la unidad mínima de alojamiento, mejor se aprovecha el espacio pero más lento es el acceso a los datos. Los fabricantes de hardware de almacenamiento establecen un valor por defecto que es el adecuado para propósitos generales (o al contrario, muy específicos), sin embargo se puede modificar dentro de unos rangos.

Y es que almacenar todos los juegos de Spectrum en un pendrive no creo que sea un propósito general ;)

Pues vamos a ello. Para hacer la siguiente operación hay que recurrir a la línea de comandos porque las opciones que vamos a usar no están presentes en la aplicación Format del escritorio de Windows.

Primeramente nos leemos la ayuda para saber exactamente qué parámetros utilizar.


Parece que podemos emplear una unidad mínima de alojamiento de 0,5KB. A ver si es verdad... Pues no, aunque el programa nos indica que la unidad mínima de alojamiento para este dispositivo es de 2KB. Perfecto, continuamos:


Esta vez sí.

Vamos a comprobar que efectivamente la unidad mínima de almacenamiento es la que acabamos de asignar haciendo la prueba del fichero de texto vacío y ¡voilá!

Antes no cabía en el pendrive y ahora ocupa menos en el pendrive que en el disco local. Problema solucionado, lo que no está solucionado en este sistema operativo (Windows 2000, aunque probablemente suceda también en las versiones posteriores), es que no calcula si hay espacio suficiente en el destino antes de hacer la copia. Seguro que a todos nos ha pasado alguna vez que estando copiando ficheros de una lado a otro se cancele la operación por falta de espacio. Y lo peor de todo no es que se cancele, ¡es que no sabes dónde se ha quedado! ¡Con lo sencillo que es calcularlo antes! Para esas tareas siempre uso pequeños scripts, pero esa ya es otra historia.

¡Salud!

3 comentarios:

jotarp dijo...

No he hecho la prueba, pero creo que ese problema también se puede solucionar archivando los ficheros en un zip sin compresión: el "desperdicio" de espacio será mínimo (incluso menor que cambiando la UMA "unidad mínima de alojamiento", ya que sólo se desperdiciará al final del fichero, es decir una UMA como máximo) y el acceso no se ralentizará demasiado al no usar compresión.
Puede provocar otros problemas, como imposibilitar el acceso desde algunos programas.

Anaxagoras dijo...

Hola jotarp, bienvenido a mi humilde blog :)

Efectivamente, el problema del "desperdicio" viene dado en este caso por una gran cantidad de ficheros muy pequeños y un MUA relativamente grande. Si empaquetamos todo en un único fichero ese problema ya no se daría.

Buena apreciación.

Nesx dijo...

Hola!

Escribo esto desde aquí porque no he visto direccion de email en todo el blog !muy mal! imaginaos que teneis como fans a Scarlett Johanssen y quiere quedar con vosotros o un millonario excentrico quiere donaros unos minolles......bueno, eso es mucho imaginar, disculpen.

Quiero para ya un intercambio de links con mi blog Nesx -pongan cultura 8 bits y chiptunes- si así lo hacen tendrán los beneficios que indico aqui:

http://nesx.blogspot.com/p/suscripcion-y-sexo-gratis.html

Grasias y que dios les bendiga hamijos

Ernesto Vilar
Überfriki