Documente Academic
Documente Profesional
Documente Cultură
DESARROLLO
Los discos son los dispositivos bsicos para llevar a cabo almacenamiento masivo y no
voltil de datos. Adems se usan como plataforma para el sistema de intercambio que
usa el gestor de memoria virtual. Son dispositivos electromecnicos (HARD DISK) u
optomecnicos (CD-ROM y DVD), que se acceden a nivel de bloque lgico por el
sistema de archivos y que, actualmente, se agrupan en dos tipos bsicos, atendiendo a la
interfaz de su controlador:
electromagntico.
Discos pticos. Dispositivos de gran capacidad compuestos por una sola
superficie y cuyas cabezas lectoras funcionan por lser. Actualmente su
capacidad mxima est en los 700 MB. Hasta hace muy poco, la superficie se
agujereaba fsicamente y no se podan regrabar. Sin embargo, actualmente
Independientemente del tipo al que pertenezcan, las estructuras fsicas y lgica de todos
los discos son muy similares.
Formato de disco
Un disco duro consiste en una pila de platos de aluminio, aleacin de acero o vidrio, de 5.25 o 3.5
pulgadas de dimetro (o incluso ms pequeos en las computadoras notebook). En cada plato se deposita
un xido de metal delgado magnetizable. Despus de su fabricacin, no hay informacin
de ninguna clase en el disco.
Antes de poder utilizar el disco, cada plato debe recibir un formato de bajo nivel mediante
software. El formato consiste en una serie de pistas concntricas, cada una de las cuales contiene
cierto nmero de sectores, con huecos cortos entre los sectores. El formato de un sector se muestra
en la figura
Prembulo
Datos
ECC
El prembulo empieza con cierto patrn de bits que permite al hardware reconocer el inicio del
sector. Tambin contiene los nmeros de cilindro y sector, junto con cierta informacin adicional.
El tamao de la porcin de datos se determina con base en el programa de formato de bajo nivel.
La mayora de los discos utilizan sectores de 512 bytes. El campo ECC contiene informacin redundante
que se puede utilizar para recuperarse de los errores de lectura. El tamao y contenido de
este campo vara de un fabricante a otro, dependiendo de cunto espacio de disco est dispuesto a
perder el diseador por obtener una mayor confiabilidad, y de qu tan complejo sea el cdigo ECC
que pueda manejar el controlador. Un campo ECC de 16 bytes no es poco comn. Adems, todos
los discos duros tienen cierta cantidad de sectores adicionales que se asignan para utilizarlos como
reemplazo de los sectores con un defecto de fabricacin.
La posicin del sector 0 en cada pista est desfasada de la pista anterior cuando se aplica el formato
de bajo nivel. Este desplazamiento, conocido como desajuste de cilindros, se realiza para mejorar
el rendimiento. La idea es permitir que el disco lea varias pistas en una operacin continua sin
perder datos.
La cantidad de desviacin de los cilindros depende de la geometra del disco. Por ejemplo, una
unidad de 10,000 RPM gira en 6 mseg. Si una pista contiene 300 sectores, un nuevo sector pasa debajo
de la cabeza cada 20 seg. Si el tiempo de bsqueda de pista a pista es de 800 seg, pasarn
40 sectores durante la bsqueda, por lo que la desviacin de los cilindros debe ser de 40 sectores en
vez de los tres sectores que se muestran en la figura 5-26. Vale la pena mencionar que el cambio
entre una cabeza y otra tambin requiere un tiempo finito, por lo que hay tambin desajuste de cabezas
al igual que desajuste de cilindros, pero el desajuste de las cabezas no es muy grande.
Como resultado del formato de bajo nivel se reduce la capacidad del disco, dependiendo de los
tamaos del prembulo, el hueco entre sectores y el ECC, as como el nmero de sectores adicionales
reservados. A menudo la capacidad con formato es 20% menor que la capacidad sin formato.
Los sectores adicionales no cuentan para la capacidad con formato, por lo que todos los discos de
un tipo dado tienen exactamente la misma capacidad cuando se envan, sin importar cuntos sectores
defectuosos tengan en realidad (si el nmero de sectores defectuosos excede al nmero de adicionales,
la unidad se rechazar y no se enviar).
Dado este tipo de estructura de datos, podemos realizar mejoras con base en el algoritmo de
programacin del primero en llegar, primero en ser atendido. Para ver cmo, considere un disco
imaginario con 40 cilindros. Llega una peticin para leer un bloque en el cilindro 11; mientras la
bsqueda en el cilindro 11 est en progreso, llegan nuevas peticiones para los cilindros 1, 36, 16,
34, 9 y 12, en ese orden, y se introducen en la tabla de peticiones pendientes, con una lista enlazada
separada para cada cilindro.
Cuando termina la peticin actual (para el cilindro 11), el software controlador de disco puede
elegir qu peticin manejar a continuacin. Utilizando FCFS, el siguiente cilindro sera el 1, luego
el 36, y as en lo sucesivo. Este algoritmo requiere movimientos del brazo de 10, 35, 20, 18, 25 y
3, respectivamente, para un total de 111 cilindros.
De manera alternativa, siempre podra manejar la peticin ms cercana primero, para minimizar
el tiempo de bsqueda. Dadas las peticiones de la figura 5-28, la secuencia es 12, 9, 16, 1, 34 y
36, y se muestra mediante la lnea dentada en la parte inferior de la figura 5-28. Con esta secuencia,
los movimientos del brazo son 1, 3, 7, 15, 33 y 2 para un total de 61 cilindros. Este algoritmo
de La bsqueda del trabajo ms corto primero (Shortest Seek First, SSF) recorta el movimiento
total del brazo casi a la mitad, en comparacin con FCFS.
Por desgracia, SSF tiene un problema. Suponga que siguen llegando ms peticiones mientras
se estn procesando las peticiones de la figura. Por ejemplo, si despus de ir al cilindro 16 hay
una nueva peticin para el cilindro 8, esa peticin tendr prioridad sobre el cilindro 1. Si despus
llega una peticin para el cilindro 13, el brazo ir a continuacin a 13, en vez de ir a 1. Con un disco
que contenga mucha carga, el brazo tender a permanecer en la parte media del disco la mayor
parte del tiempo, por lo que las peticiones en cualquier extremo tendrn que esperar hasta que una
fluctuacin estadstica en la carga ocasione que ya no haya peticiones cerca de la parte media. Las
peticiones alejadas de la parte media pueden llegar a obtener un mal servicio. Los objetivos del
tiempo de respuesta mnimo y la equidad estn en conflicto aqu.
Los edificios altos tambin tienen que lidiar con esta concesin. El problema de planificar un
elevador en un edificio alto es similar al de planificar un brazo de disco. Las peticiones llegan en
forma continua, llamando al elevador a los pisos (cilindros) al azar. La computadora que opera el
elevador podra llevar fcilmente la secuencia en la que los clientes oprimieron el botn de llamada,
y atenderlos utilizando FCFS o SSF.
Sin embargo, la mayora de los elevadores utilizan un algoritmo distinto para poder reconciliar
las metas mutuamente conflictivas de eficiencia y equidad. Siguen avanzando en la misma direccin hasta
que no haya ms peticiones pendientes en esa direccin, y despus cambian de direcciones.
Este algoritmo, conocido como algoritmo del elevador tanto en el mundo de los discos como
en el mundo de los elevadores, requiere que el software mantenga 1 bit: el bit de direccin actual,
ARRIBA o ABAJO. Cuando termina una peticin, el software controlador del disco o del elevador
comprueba el bit. Si es ARRIBA, el brazo o cabina se desplaza a la siguiente peticin pendiente de
mayor prioridad. Si no hay peticiones pendientes en posiciones mayores, el bit de direccin se invierte.
Cuando el bit se establece en ABAJO, el movimiento es a la siguiente posicin de peticin
con menor prioridad, si la hay.
En la figura siguiente se muestra el algoritmo del elevador usando las mismas siete peticiones que
en la figura anterior, suponiendo que el bit de direccin haya sido ARRIBA en un principio. El orden en
el que se da servicio a los cilindros es 12, 16, 34, 36, 9 y 1, que produce los movimientos del brazo
de 1, 4, 18, 2, 27 y 8, para un total de 60 cilindros. En este caso, el algoritmo del elevador es ligeramente
mejor que SSF, aunque por lo general es peor. Una buena propiedad que tiene el
algoritmo del elevador es que dada cierta coleccin de peticiones, el lmite superior en el movimiento
total es fijo: es slo el doble del nmero de cilindros.
Una ligera modificacin de este algoritmo que tiene una variacin menor en tiempos de respuesta
(Teory, 1972) es explorar siempre en la misma direccin. Cuando el cilindro de mayor numeracin
con una peticin pendiente ha sido atendido, el brazo pasa al cilindro de menor
numeracin con una peticin pendiente y despus contina desplazndose en direccin hacia arriba.
En efecto, se considera que el cilindro de menor numeracin est justo por encima del cilindro
de mayor numeracin.
Algunos controladores de disco proveen una forma para que el software inspeccione el nmero
de sector actual bajo la cabeza. Con dicho controlador es posible otra optimizacin. Si hay dos
o ms peticiones para el mismo cilindro pendientes, el controlador puede emitir una peticin para
el sector que pasar bajo la cabeza a continuacin. Observe que cuando hay varias pistas presentes
en un cilindro, las peticiones consecutivas pueden ser para distintas pistas sin castigo. El controlador
puede seleccionar cualquiera de sus cabezas casi en forma instantnea (la seleccin de cabezas
no implica un movimiento del brazo ni un retraso rotacional).
Si el disco tiene la propiedad de que el tiempo de bsqueda es mucho ms rpido que el retraso
rotacional, entonces se debe utilizar una optimizacin distinta. Las peticiones pendientes deben
ordenarse por nmero de sector, y tan pronto como el siguiente sector est a punto de pasar por debajo
de la cabeza, el brazo debe moverse rpidamente a la pista correcta para leer o escribir.
Con un disco duro moderno, los retrasos de bsqueda y rotacional dominan tanto el rendimiento
que es muy ineficiente leer uno o dos sectores a la vez. Por esta razn, muchos controladores de
disco siempre leen y colocan en la cach varios sectores, an y cuando slo se solicite uno. Por lo
general, cualquier solicitud para leer un sector har que se lea ese sector y gran parte de (o toda) la
pista actual, dependiendo de qu tanto espacio haya disponible en la memoria cach del controlador.
El disco que tiene una cach de 4 MB, por ejemplo. El uso de la cach se
determina en forma dinmica mediante el controlador. En su modo ms simple, la cach se divide
en dos secciones, una para lecturas y una para escrituras. Si una lectura subsiguiente se puede satisfacer
de la cach del controlador, puede devolver los datos solicitados de inmediato.
Vale la pena recalcar que la cach del controlador de disco es completamente independiente de
la cach del sistema operativo. Por lo general, la cach del controlador contiene bloques que en realidad
no se han solicitado, pero que era conveniente leer debido a que pasaron por debajo de la cabeza
como efecto secundario de alguna otra lectura. Por el contrario, cualquier cach mantenida por
el sistema operativo consistir en bloques que se hayan ledo de manera explcita y que el sistema
operativo considere que podran ser necesarios de nuevo en un futuro cercano (por ejemplo, un bloque
de disco que contiene un bloque de directorio).
Cuando hay varias unidades presentes en el mismo controlador, el sistema operativo debe
mantener una tabla de peticiones pendiente para cada unidad por separado. Cada vez que una unidad
est inactiva, debe emitirse una bsqueda para desplazar su brazo al cilindro en donde se necesitar
a continuacin (suponiendo que el controlador permita bsquedas traslapadas). Cuando
termine la transferencia actual, se puede realizar una comprobacin para ver si hay unidades posicionadas
en el cilindro correcto. Si hay una o ms, la siguiente transferencia se puede iniciar en
una unidad que ya se encuentre en el cilindro correcto. Si ningn brazo est en la posicin correcta,
el software controlador deber emitir una nueva bsqueda en la unidad que haya terminado una
transferencia y deber esperar hasta la siguiente interrupcin para ver cul brazo llega primero a
su destino.
Es importante tener en cuenta que todos los algoritmos de planificacin de disco anteriores asumen
de manera tcita que la geometra de disco real es igual que la geometra virtual. Si no es as,
entonces no tiene sentido planificar las peticiones de disco, ya que el sistema operativo en realidad
no puede saber si el cilindro 40 o el cilindro 200 est ms cerca del cilindro 39. Por otra parte, si el
controlador de disco puede aceptar varias peticiones pendientes, puede utilizar estos algoritmos de
planificacin en forma interna. En ese caso, los algoritmos siguen siendo vlidos, pero un nivel ms
abajo, dentro del controlador.
Los discos en memoria RAM son una forma popular de optimizar el almacenamiento secundario en
sistemas operativos convencionales y de proporcionar almacenamiento en sistemas operativos de tiempo
real, donde las prestaciones del sistema exigen dispositivos ms rpidos que un disco convencional.
Hay dos formas bsicas de proporcionar discos en memoria:
Discos RAM.
Discos slidos.
Los discos RAM son dispositivos de bloques que proporciona el sistema operativo y que se almacenan,
generalmente, en la propia memoria del sistema operativo (/dev/kmem en UNIX). Un disco RAM es una
porcin de memoria de un tamao arbitrario dividida en bloques, a nivel lgico, por el sistema operativo
que muestra una interfaz de disco similar al de cualquier disco de dis positivo
secundario. El manejador de esos dispositivos incluye llamadas open, read, write, etc., a nivel de bloque y
se encarga de traducir los accesos del sistema de archivos a posiciones de memoria dentro del disco
RAM.
Las operaciones de transferencia de datos son copias de memoria. No tienen ningn hardware especial
asociado y se implementan de forma muy sencilla. Pero tienen un problema bsico: si falla la
alimentacin
se pierden todos los datos almacenados.
Los discos slidos son sistemas de almacenamiento secundario no voltiles fabricados co locando chips
de
memoria RAM en placas. Las placas se conectan al bus del sistema y se acceden a la misma velocidad
que
la memoria principal (nanosegundos). Hay una diferencia fundamental entre estos sistemas y los discos
RAM: tienen hardware, y puede que un controlador, propio. La interfaz sigue siendo la de un dispositivo
de
bloques, encargndose el manejador de traducir pe ticiones de bloque a memoria. Las transferencias, sin
embargo, se pueden convertir en operaciones de lectura o escritura a puertos, dependiendo de la
instalacin
del disco slido.
Los discos en chips son la ltima tendencia en discos slidos implementados con memoria. Combinan
memoria flash de alta densidad y una interfaz sencilla, proyectada en memoria o a travs de puertos, para
proporcionar almacenamiento secundario.
tcnica ms actual para proporcionar fiabilidad y tolerancia a fallos consiste en usar dispositi vos
RAID (Redundant Array of Independent Disks) a nivel hardware [ 19951 o software EChen, 1995]. Estos
dispositivos usan un conjunto de discos para almacenar la informacin y otro conjunto para almacenar
informacin de paridad del conjunto anterior (Fig. 7.15). En el mbito fsico se ven como un nico
dispositivo, ya que existe un nico controlador para todos los discos. Este controlador se encarga de
reconfigurar y distribuir los datos como es necesario de forma transparente al sistema de FIS.
Se han descrito hasta siete niveles de RAID, pero solamente los cinco primeros estn realmen te
operativos.
Estos niveles son los siguientes:
RAID 1. Son discos espejo en los cuales se tiene la informacin duplicada. Tiene los pro blemas y las
ventajas del almacenamiento estable.
RAID 2. Distribuye los datos por los discos, repartindolos de acuerdo con una unidad de distribucin
definida por el sistema o la aplicacin. El grupo de discos se usa como un disco lgico, en el que se
CONCLUSIN
El aspecto de entrada y salida que tiene un mayor impacto en el rendimiento general del
sistema es la entrada y salida del disco. Por eso, hubo mayor auge de la investigacin y
el diseo en esta rea que en otros tipos de entrada y salida. La planificacin de disco y
la cach de disco constituyen dos de las estrategias ms frecuentemente utilizadas para
mejorar el rendimiento de entrada y salida del disco.
En cualquier momento, puede haber una cola de peticiones de entrada y salida en el
mismo disco. El objetivo de la planificacin del disco es satisfacer estas peticiones de
manera que se minimice el tiempo de bsqueda mecnica del disco y, con ello, se
mejore el rendimiento. En esta planificacin entran en juego aspectos tales como la
distribucin fsica de las peticiones pendientes, as como las consideraciones sobre la
proximidad.
BIBLIOGRAFA
edicin, 2005.
Tanenbaum, Andrew. Sistemas operativos modernos. Mxico: Pearson
Educacin, 3ra edicin, 2009.