Sunteți pe pagina 1din 10

INTRODUCCIN

Durante los ltimos aos, el incremento de la velocidad de los procesadores y de la


memoria principal ha sobrepasado con creces el de la velocidad de acceso al disco,
incrementndose en aproximadamente dos rdenes de magnitud mientras que la
velocidad del disco lo ha hecho en un orden de magnitud. El resultado es que los discos
son actualmente al menos cuatro rdenes de magnitud ms lentos que la memoria
principal. Adems, se espera que esta diferencia aumente en el futuro inmediato.
Por tanto, el rendimiento del subsistema de almacenamiento de disco es de vital
importancia, por lo que se han realizado muchas investigaciones en esquemas para
mejorar este rendimiento. En este trabajo se resaltan algunos de los aspectos
fundamentales y se revisan las tcnicas ms importantes.

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:

Dispositivos SCSI (Small Computer System Interface), cuyos controladores


ofrecen una interfaz comn independientemente de que se trate de un disco, una
cinta, un CD-ROM, etc. Un controlador SCSI puede manejar hasta ocho discos y

puede tener una memoria interna de varios MB.


Dispositivos IDE (Integrated Drive Electronics), que suelen usarse para conectar
los discos en todas las computadoras personales. Actualmente estos
controladores se han extendido al sistema EIDE, una mejora de IDE que tiene
mayor velocidad de transferencia. Puede manejar hasta cuatro discos IDE. Es
barato y muy efectivo.

Y a tres tipos bsicos atendiendo a su tecnologa de fabricacin:

Discos duros (Winchester). Dispositivos de gran capacidad compuestos por


varias superficies magnetizadas y cuyas cabezas lectoras funcionan por efecto

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

existen discos con superficie magntica regrabables.


Discos extrables. Dispositivos de poca capacidad similares a un disco duro,
pero cuyas cabezas lectoras se comportan de forma distinta. En este tipo se
engloban los disquetes (floppies), discos ZIP y JAZZ.

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).

Algoritmos de programacin del brazo del disco


En esta seccin analizaremos ciertas cuestiones relacionadas con los controladores de disco en general.
En primer lugar hay que considerar cunto tiempo se requiere para leer o escribir en un bloque
de disco. El tiempo requerido se determina en base a tres factores:
1. Tiempo de bsqueda (el tiempo para desplazar el brazo al cilindro apropiado).
2. Retraso rotacional (el tiempo para que el sector apropiado se coloque debajo de la cabeza).
3. Tiempo de transferencia de datos actual.
Para la mayora de los discos, el tiempo de bsqueda domina los otros dos tiempos, por lo que al reducir
el tiempo de bsqueda promedio se puede mejorar el rendimiento del sistema de manera considerable.
Si el software controlador de disco acepta peticiones una a la vez, y las lleva a cabo en ese
orden, es decir, Primero en llegar, primero en ser atendido (First-Come, Firsts-Served, FCFS), no
se puede hacer mucho para optimizar el tiempo de bsqueda. Sin embargo, hay otra estrategia posible
cuando el disco est muy cargado. Es probable que mientras el brazo est realizando una bsqueda a
favor
de una peticin, otros procesos puedan generar otras peticiones de disco. Muchos controladores de
disco mantienen una tabla, indexada por nmero de cilindro, con todas las peticiones pendientes para cada
cilindro encadenadas en una lista enlazada, encabezada por las entradas en la tabla.

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

almacenan bloques lgicos distribuidos segn la unidad de reparto.


RAID 3. Reparte los datos a nivel de bit por todos los discos. Se puede aadir bits con cdigos
correctores
de error. Este dispositivo exige que las cabezas de todos los discos estn
sincronizadas, es decir, que un nico controlador controle sus movimientos.
RAID 4. Reparto de bloques y clculo de paridad para cada franja de bloques, que se al macena en un
disco fijo. En un grupo de cinco discos, por ejemplo, los cuatro primeros seran de datos y el quinto de
paridad. Este arreglo tiene el problema de que el disco de paridad se convierte en un cuello de botella y un
punto de fallo nico.
RAID 5. Reparto de bloques y paridad por todos los discos de forma cclica. Tiene la ventaja de la
tolerancia a fallos sin los inconvenientes del RAID 4. Actualmente existen mltiples
dispositivos comerciales de este estilo y son muy populares en
fiabilidad.

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

Carretero Prez. Jess. Sistemas operativos: Una visin aplicada. Madrid:

McGraw-Hill, 1ra edicin, 2001.


Silberschatz, Abraham. Fundamentos de los sistemas operativos. Madrid:

McGraw-Hill, 7ma edicin, 2006.


Stallings, Williams. Sistemas Operativos. Madrid: Pearson Educacin, 5ta

edicin, 2005.
Tanenbaum, Andrew. Sistemas operativos modernos. Mxico: Pearson
Educacin, 3ra edicin, 2009.

S-ar putea să vă placă și