Las particiones son secuencias de bloques , y por convención de larga data un bloque tiene 512 bytes.
Por lo tanto, una partición puede comenzar en cualquier múltiplo de 512 bytes dentro de un disco, "visto" como una cadena muy larga de bytes.
Sin embargo, el hardware de disco subyacente, que originalmente tenía el mismo tamaño de sector de 512 bytes, ahora usa un tamaño más grande para mayor eficiencia. Digamos que son 4096 bytes.
Por razones de compatibilidad, el firmware que se encuentra entre el sistema operativo y el hardware todavía "habla en sectores". Entonces le preguntas al primer sector, y el hardware recupera el primer bloque (4096 bytes), y el firmware extrae y entrega el segmento apropiado. Pide el segundo bloque y el bloque probablemente se recupera del caché.
Hasta ahora, el desajuste del tamaño del sector no tiene inconvenientes.
Pero el sistema operativo también emplea bloques (generalmente llamados clústeres ) para mayor eficiencia, y los alineará con la partición. Por lo tanto, un grupo de 4 sectores estará compuesto por los sectores 5, 6, 7 y 8.
Cuando el sistema operativo solicita el clúster del sistema de archivos n . ° 2, al firmware se le solicitan los sectores lógicos 5, 6, 7 y 8. Si todos están en el mismo bloque de disco , entonces el disco debe realizar UNA lectura.
Pero si la partición comienza en el sector "incorrecto", el primer clúster en el sistema de archivos, por ejemplo, terminará, simplificándose, en los sectores 2, 3, 4 y 5. Y podrían estar a la mitad en el primer bloque de disco (1 -2-3-4), la mitad en el segundo (5-6-7-8).
Ahora se necesita una lectura adicional . Para relaciones de sistema operativo a disco de 1: 1, esto es lo mismo que duplicar las lecturas. Si la relación del sistema operativo al disco es 2: 1, un clúster es dos bloques de disco de hardware, necesitará 2 + 1 = 3 lecturas, una penalización del 50%:
OS |--- cluster 12 ---|--- cluster 13 ---|--- cluster 14...
| | |
HDD --|----|----|----|-a--|--b-|-c--|-d--|-e--|----|--- BAD
| | |
HDD |----|----|----|----|-a--|--b-|-c--|-d--|----|----|--- GOOD
Arriba, un clúster tiene 4 bloques de hardware (relación 4: 1) de 2 sectores cada uno. Alinearse en sectores "pares" significa que para leer un clúster esas lecturas de 8 sectores se traducen en lecturas de 4 bloques. Alinearse en sectores impares significa que las mismas lecturas de 8 sectores requieren 4 + 1 = 5 lecturas de bloque, una penalización de rendimiento del 25% (agrega una lectura cada cuatro).
Si tiene un disco desalineado con una relación de 4: 1, alineándolo lo hará un 20% más rápido (guarda una lectura cada 5).
Para hacer una partición "alineada", puede mover / establecer su desplazamiento desde el comienzo del disco al múltiplo apropiado de 512b-sectores, o (dependiendo de la herramienta) puede insertar una pequeña partición al comienzo del disco, con un tamaño tal que la siguiente partición comienza exactamente en un límite del sector del disco. En este segundo caso, mientras que, en teoría, necesita en la mayoría de los sectores N-1, es decir, muy pocos kilobytes, en la práctica probablemente tendrá que desperdiciar unos cientos de kilobytes, posiblemente megabytes enteros, para exprimir la mayor cantidad de rendimiento de sus disco duro de varios gigabytes.
(Probablemente podría recuperar ese espacio, y mucho más, eligiendo correctamente el tamaño del clúster del sistema operativo ).