Discos Rígidos

Esta subsección introduce terminología relacionada a los discos rígidos. Si ya conoce los términos y conceptos, entonces puede obviar esta subsección.

La Figura 6.1, “A schematic picture of a hard disk.” muestra un esquema de las partes importantes de un disco rígido. Un disco rígido consiste de uno o más discos circulares. [5] Las superficies de estos discos se encuentran cubiertas de una substancia magnética utilizada para grabar los datos. Por cada superficie existe una cabeza lectora-escritora que examina o altera los datos allí grabados. Los discos rotan sobre un eje común, y típicamente la velocidad de rotación es de 3600 vueltas o revoluciones por minuto, aunque los discos rígidos de altas prestaciones tienen velocidades mucho mayores. Las cabezas se mueven a lo largo de los radios de los discos; y este movimiento combinado con el de rotación de los discos, permite a las cabezas acceder a todas las partes de las superficies.

El procesador (CPU) y el disco se comunican a través de una controladora de disco. Esto libera al resto de la computadora de tener que conocer como utilizar el dispositivo, debido a que los controladores para diferentes tipos de discos pueden ser construidos para que utilicen la misma interfase para comunicarse con el resto de la computadora. Por lo tanto, la computadora solo tiene que decir “"hey!, Disco!, dame lo que yo quiero"”, en vez de de tener que indicarle, con una larga y compleja serie de señales eléctricas, como mover la cabeza a la ubicación apropiada, esperar a que ls posición correcta del disco pase por debajo de la cabeza y realizar todos los pasos necesarios pocos amistosos. En realidad, la interfase de la controladora es bastante compleja, pero mucho menos de lo que puede llegar a ser un acceso directo al disco si esta no existiera. La controladora puede además realizar otras tareas, como reemplazar automáticamente sectores defectuosos o hacer caché.

Lo anterior es usualmente todo lo necesita comprender acerca del funcionamiento del hardware. Existen también un puñado de otras cosas, tales como el motor que gira los discos y mueve las cabezas, y la electrónica que controla las operaciones de las partes mecánicas. Pero estas cuestiones no son relevantes para entender los principios de como trabaja un disco rígido.

Las superficies están normalmente divididas en anillos concéntricos, llamado pistas, y estos por su parte, se encuentran divididas en sectores. Esta división es utilizada para especificar ubicaciones dentro de los discos rígidos y para asignar espacio en disco para los archivos. Para encontrar una ubicación en particular en el disco rígido, uno puede decir “"superficie 3, pista 5, sector 7"”. Normalmente la cantidad de sectores es el mismo en todas las pistas, pero algunos discos ponen más sectores en las pistas más externas al centro (todos los sectores son del mismo tamaño físico, por lo que mayor cantidad de ellos caben en las pistas mas salientes-externas). Típicamente, un sector alberga 512 bytes de datos. El disco, por si sólo, no puede manejar cantidades mas pequeñas de datos que las contenidas en un sector.

Figura 6.1. A schematic picture of a hard disk.

A schematic picture of a hard disk.

Cada superficie esta dividida dentro de pistas (y sectores) de la misma forma. Esto significa que cuando la cabeza se encuentra sobre una pista particular, las cabezas para las otras superficies están también en el mismo número de pista. Todas las pistas correspondientes a un mismo número de pista de cada superficie es llamado un cilindro. El movimiento de las cabezas desde una pista (cilindro) a otra toma un determinado intervalo de tiempo. Entonces, si los datos que se desean acceder (digamos un archivo), se encuentran en ubicaciones contiguas dentro del disco, el movimiento de las cabezas sería menor, mejorando la performance del sistema. Sin embargo, no siempre es posible almacenar los archivos de esta forma; así que los archivos que están ubicados en diversos lugares del disco son llamados fragmentados.

El número de superficies (o cabezas, lo cual es la misma cosa), cilindros, y sectores varían bastante. La especificación del número de cada uno de estos ítems es llamada la geometría del disco rígido. La geometría es usualmente almacenada en una memoria especial alimentada a batería, llamada la CMOS RAM, desde donde el sistema operativo puede obtenerla durante el inicio del sistema o la iniciación del controlador.

Desafortunadamente, [6] la BIOS tiene una limitación de diseño, lo cual hace imposible que se especifique un número de pista que sea mas grande que 1024 en la CMOS RAM, aunque este valor sea muy pequeño para un disco grande. Para solucionar este inconveniente, la controladora del disco rígido "miente" acerca de la geometría, y traduce las direcciones dadas por la computadora dentro de valores que se ajustan realmente. Por ejemplo, un disco rígido puede tener 8 cabezas, 2048 pistas, y 35 sectores por pista. Esta controladora puede mentirle a la computadora y decirle que el disco tiene 16 cabezas, 1024 pistas y 35 sectores por pista. [7] Estos valores no exceden el número de pistas permitido y traduce las direcciones suministrada por la computadora dividiendo por dos el número de cabezas y duplicando el número de pistas. En realidad, la matemática es un poco más complicada, porque los números pueden no ser tan exactos como en nuestro ejemplo. Sin embargo,estos detalles no son relevantes para la comprensión del principio. Este tipo de traducción distorsiona la vista que tienen los sistemas operativos sobre como están organizados los discos, por lo tanto, dificulta la acción de almacenar toda la información (por ej. de un archivo) en un mismo cilindro para mejorar la performance.

La traducción es solo un problema para los discos de tipo IDE. Los discos SCSI utilizan un número de sector secuencial. En este caso, la controladora traduce un número de sector secuencial en una dirección compuesta por cabeza, cilindro y sector, y utilizan un método completamente diferente de comunicación entre la CPU y la controladora, por lo que no tienen el tipo de problema que existe con los discos IDE. Note, sin embargo, que la computadora tampoco puede conocer la verdadera geometría de un disco SCSI.

Debido a que Linux no conoce con frecuencia la verdadera geometría de un disco, sus sistemas de archivos no intentan colocar los archivos en un mismo cilindro. En vez de esto, intenta utilizar sectores consecutivos, lo que proporciona una performance similar. El tema es un poco más complicado si existen prelecturas automáticas y caché manejadas por la controladora.

Cada disco rígido es representado por un archivo de dispositivo separado. Los archivos de dispositivos para los discos rígidos IDE son /dev/hda, /dev/hdb, /dev/hdc, y /dev/hdd, respectivamente. Los archivos de dispositivos para los discos rígidos SCSI son /dev/sda, /dev/sdb, etc. Existen convenciones de nombres similares para otros tipos de discos rígidos; lea el Capítulo 5, Archivos de Dispositivos para obtener más información. Note que los archivos de dispositivos para los discos rígidos dan acceso a todo el disco, no a particiones individuales (las cuales están explicadas en subsecciones siguientes). Por esta razón, puede ser simple tener inconveniente con la información entre las particiones si no tiene cuidado al accederlos. Usualmente, solo debe utilizar los archivos de dispositivos de discos para acceder al master boot record (el cual también es explicado más adelante).



[5] Los platos están construídos de una sustancia dura, como por ejemplo aluminio; lo que le da al disco rígido su nombre.

[6] La BIOS es un software que se encuentra almacenado dentro de los chips ROM; y se encarga -entre otras cosas- de las etapas iniciales del booting.

[7] Estos números son completamente imaginarios.