- Disco duro
- Planificación de
disco - Software RAID
- Manejo de E/S en Windows y
Unix - Conclusión
- Bibliografía
Cuando la unidad de disco está operando, el disco
gira a una velocidad
constante. Para leer o escribir, la cabeza debe ponerse en la
pista deseada, al comienzo del sector pertinente. Si el sistema es de
cabezas móviles hay que mover la cabeza para elegir la
pista. Si el sistema es de cabezas fijas, habrá que
seleccionar electrónicamente una de ellas.
En un sistema de cabezas móviles, el tiempo que se
tarda en ubicar la cabeza en la pista de llama tiempo de
búsqueda. En cualquier caso, una vez que se ha
seleccionado la pista, el controlador del disco esperará
hasta que el sector apropiado se alinee con la cabeza en su
rotación. El tiempo que tarda el comienzo del sector en
llegar hasta la cabeza se conoce como retardo de
giro o latencia de giro. La suma del tiempo
de búsqueda y el retardo de giro es el tiempo de
acceso, es decir, el tiempo que se tarda en llegar a la
posición de lectura o
escritura. Una
vez que la cabeza está ubicada, se puede llevar a cabo la
operación de lectura o escritura a medida que el sector se
mueve bajo la cabeza; esta es la parte de transferencia real de
datos de la
operación.
Tiempo de latencia: tiempo
que se demora en ir de la posición actual hasta una
posición adyacente requerida.
Tiempo de búsqueda: tiempo en mover
el brazo desde la posición actual hasta el nuevo
cilindro.
Tiempo de transmisión: tiempo
requerido para leer/escribir un registro en
disco.
Tiempo de posicionamiento: del movimiento del
cabezal hacia la pista.
Tiempo de transferencia: espera a que el
bloque deseado pase bajo el cabezal.
Vector de bits o mapa: representa en cada
bit el estado de
un bloque (0 libre, 1 ocupado), si el vector es de un
tamaño
Lista encadenada:
mantener un apuntador al primer bloque, el bloque contiene
un apuntador al siguiente bloque libre. El recorrido de la lista
implica leer cada uno de los bloques.
Primero en entrar, primero en salir
(FIFO):
Las solicitudes se procesan en un orden
secuencial.
Es una estrategia justa
para todos los procesos.
Esta técnica se parece mucho a la planificación aleatoria si hay muchos
procesos.
Prioridad:
No persigue la optimización del uso del disco,
sino cumplir con otros objetivos.
Los trabajos por lotes que sean cortos tienen una
prioridad más alta.
Proporciona un buen tiempo de respuesta
interactiva.
Último en entrar, primero en
salir:
Buena política para los
sistemas de
proceso de
transacciones:
El hecho de conceder el dispositivo al último
usuario acarrea pocos o nulos movimientos del brazo.
Existe la posibilidad de inanición, ya que puede
que el trabajo no
vuelva a ganar la cabeza de la línea.
Las siguientes son las principales
ventajas con respecto del uso de la memoria
principal como almacenamiento:
- Mucho mayor capacidad de espacio de
almacenamiento. - Menor precio por
bit. - La información no se pierde al apagar
la
computadora.
Un uso inapropiado de los discos puede generar
ineficiencia, en especial en sistemas con
multiprogramación.
2.1 Estructura de
discos
Los discos constituyen el grueso del almacenamiento
secundario en los sistemas de computación moderno.
Las unidades de disco modernas se direccional como
grandes arreglos unidimensionales de bloques
lógicos, que son las unidades de transferencia
más pequeñas. El tamaño de un bloque
lógico suele ser de 512 bytes, aunque a algunos discos se
les puede dar formato de bajo nivel escogiendo un
tamaño de bloque lógico distinto, como 1024
bytes.
El arreglo unidimensional de bloques lógicos se
hace corresponder secuencialmente con los sectores del disco. El
sector 0 es el primer sector de la primera pista del cilindro
más exterior. La correspondencia procede en orden por esa
pista, luego por las demás pistas de ese cilindro y luego
por el resto de los cilindros desde el más exterior hasta
el más interior.
Los discos modernos se organizan en zonas de cilindros.
El número de sectores por pista es constante dentro de una
zona, pero a medida que se avanza hacia las zonas internas a las
externas el número de sectores por pista aumenta. Las
pistas de la zona más exterior por lo regular contienen
40% más sectores que las de la zona más
interna.
2.2 Asignación de
espacio en disco
Consiste en asignar espacio en disco para almacenar
bloques en forma eficiente respecto de la utilización del
espacio y posterior acceso con rapidez.
Existen tres métodos de
uso común:
Contiguo: los bloques está
físicamente contiguos en cada pista, siendo necesario el
desplazamiento de sólo una pista cuando deba desplazarse
el cabezal. Los tiempos de acceso son
mínimos.
Enlazado: cada bloque
físico tiene un apuntador al siguiente bloque.
FAT(file allocation table): es una
variante del método de
asignación enlazada. La tabla contiene una entrada para
cada bloque de disco, indexada por número de
bloque.
Figura 1 -FAT-
Indexada: a través de
un bloque de índices que reúne a todos los
apuntadores, con el objeto de ayudar el acceso director,
análogo a un esquema de paginación.
Figura 2 -Indexada-
2.3 Optimización
de las unidades de disco
El acceso a disco es una de las operaciones
más lentas que realiza un sistema operativo
y, del tiempo que se emplee, depende en gran medida las prestaciones
globales. Habitualmente los ordenadores utilizados en entornos
domésticos y de oficina
incorporan discos duros y
unidades de CD-ROM con
tecnología
IDE.
Existe gran variedad de fabricantes y tecnologías
asociadas a los dispositivos IDE y, por este motivo, es
complicado crear una configuración de rendimiento
óptimo que funcione en todas las máquinas.
Por esta razón, habitualmente Linux viene
configurado con una configuración por defecto que funciona
correctamente en todos los ordenadores pero que dista mucho de
ser óptima. En este documento vamos a estudiar las
opciones disponibles para aumentar el rendimiento de las unidades
de disco.
2.3.1 Parámetros a
tener en cuenta:
- Capacidad: Aconsejable
que sea a partir de 2,1 Gbytes en adelante. - Tiempo de acceso: Importante. Este
parámetro nos indica la capacidad para acceder de
manera aleatoria a cualquier sector del disco. - Velocidad de Transferencia:
Directamente relacionada con el interface. En un dispositivo
Ultra-2 SCSI es de 80 MBytes/seg. mientras que en el Ultra
DMA/33 (IDE) es de 33,3 MBytes/seg. en el modo DMA-2. Esta
velocidad es la máxima que admite el interface, y no
quiere decir que el disco sea capaz de
alcanzarla. - Velocidad de Rotación: Tal vez
el más importante. Suele oscilar entre las 4.500 y las
7.200 rpm (revoluciones por minuto). - Caché de disco: La memoria
caché implementada en el disco es importante, pero
más que la cantidad es importante la manera en que
ésta se organiza. Por ello este dato normalmente no
nos da por si solo demasiadas pistas. Son normales valores
entre 64 y 256 Kb.
Muchos sistemas
operativos mantienen lo que habitualmente se denomina
memoria cache
de disco. Esto consiste en un conjunto de buffers de memoria,
cada uno del tamaño de un bloque de disco. Cuando
algún proceso de usuario quiere acceder a un bloque de
disco, el sistema de ficheros —parte del sistema operativo—
busca primero si existe una copia de tal bloque en la cache, en
cuyo caso devuelve al proceso el número del buffer
correspondiente.
En caso contrario, el sistema de ficheros busca un
buffer desocupado o, de no haber espacios libres, selecciona el
buffer que lleva más tiempo sin ser usado y lo sustituye
por el bloque pedido, que habrá sido leído del
disco. El buffer reemplazado ha de ser previamente grabado a
disco si es necesario. La utilidad de este
sistema a dos niveles es manifiesta: la memoria es mucho
más rápida que el disco y el esquema garantiza que
los bloques a los que se accede con más frecuencia van a
ser leídos, salvo la primera vez, de memoria
principal.
De acuerdo con esta técnica de
optimización, se pide desarrollar el módulo DISCO
con las siguientes reglas de diseño:
- La unidad bloque de disco va a ser el sector y la
información en cada buffer será, por tanto, del
tipo DISK.TipoDato. - La copia de sectores de disco en respuesta a una
petición deberá ser concurrente con la
recepción de otras peticiones. - Inicialmente —al arrancar el sistema— la cache
estará vacía. - El tamaño de la cache será de SP
sectores (el número de sectores por
pista).
El funcionamiento de la caché de disco se basa en
dos esquemas de operación. La lectura
adelantada ("Read-ahead") y la escritura
retrasada ("Write-behind"). La primera consiste en
anticipar lo que se necesitará de forma inmediata y
traerlo a la caché. or su parte, la escritura retrasada
consiste en mantener los datos en caché hasta que se
producen momentos de desocupación del sistema de disco. En
este caso la caché actúa como memoria tampón
o "buffer" intermedio, y no se obliga al subsistema a realizar
físicamente ninguna escritura, con lo que las cabezas
quedan libres para nuevas lecturas.
Puesto que los cachés
de disco de escritura retrasada mantienen los datos en memoria
volátil después que "supuestamente" se han escrito
en el dispositivo, una caída accidental del sistema,
por fallo de energía o apagado intempestivo, puede
producir pérdidas de los datos alojados en la caché
en ese momento (es esta una de las razones por las que los
sistemas Windows y
Linux exigen un proceso especial de apagado, que a veces tarda
unos segundos, en los que observamos una intensa actividad del
sistema de disco).
2.4.1 Cache de disco en
MS DOS y
Windows
La cache de los sistemas MS DOS y de los primeros
sistemas Windows se denominaba SmartDrive.
Por su parte, los nuevos Sistemas de 32 bits disponen de un
controlador virtual denominado VCACHE que utiliza un esquema de
funcionamiento de lectura adelantada y escritura
atrasada para proporcionar servicios de
cache a las máquinas virtuales
VCACHE tiene la ventaja cachear ficheros
en discos de red, y de permitir cambiar
en tiempo de ejecución la cantidad de memoria destinada a
este menester. Cuando la actividad del disco es elevada
pero la ocupación de memoria es baja, VCACHE incrementa su
tamaño para realizar la mayor cantidad de operación
en RAM, evitando de
este modo accesos a disco. Por ejemplo, si la
aplicación abre un fichero para lectura/escritura, es
posible que VCACHE vuelque la totalidad del fichero a memoria;
posteriormente, quizás cuando se cierre el fichero, la
imagen de
memoria sea volcada de nuevo al disco. Si por el contrario
la actividad de disco es pequeña y la ocupación de
memoria es alta, VCACHE disminuye su propio tamaño con
objeto de aumentar la RAM disponible para las
aplicaciones.
El funcionamiento de la caché de lectura se
parece al de un adivino; debe anticipar lo que ocurrirá en
el futuro. Si el dispositivo que está siendo cacheado
encuentra los datos en la caché, habrá un éxito
("hit"), en caso contrario, un fracaso ("miss"). Los sistemas de
caché actuales son capaces de proporcionar una tasa de
éxitos superior al 90%.
Como puede figurarse el lector, construir un mecanismo
de caché no es una tarea baladí. Se requieren
esquemas de funcionamiento que atiendan de forma
simultánea y balanceada diversos factores:
- Discriminar que información debe ser
almacenada y cual descartada. - Decidir la
organización interna de este
almacenamiento. - Manejar las peticiones de lectura. Esto exige
disponer de un mecanismo de intercepción de las
peticiones del dispositivo que está siendo
cacheado. - Manejar las peticiones de escritura.
Interceptar las peticiones de escritura del dispositivo a
cachear.
2.4.3 Algoritmos
usados para reemplazo en cache
2.4.3.1 Algoritmo de
reemplazo de paginas segun el uso no tan reciente
Este algoritmo hace uso de los dos bits de estado que
están asociados a cada página. Estos bits son: R,
el cual se activa cuando se hace referencia (lectura / escritura)
a la página asociada; y M, que se activa cuando la
página asociada es modificada (escritura). Estos bits
deben de ser actualizado cada vez que se haga referencia a la
memoria, por esto es de suma importancia que sean activados por
el hardware. Una vez
activado el bit, permanece en ese estado hasta que el sistema
operativo, mediante software, modifica su
estado.
Estos bits pueden ser utilizados para desarrollar un
algoritmo de reemplazo que cuando inicie el proceso, el sistema
operativo asigne un valor de 0 a
ambos bits en todas las páginas. En cada
interrupción de reloj, limpie el bit R para distinguir
cuáles páginas tuvieron referencia y cuáles
no.
Cuando ocurre un fallo de página, el sistema
operativo revisa ambos bits en todas las páginas y las
clasifica de la siguiente manera:
- Clase 0: La página no ha sido referenciada,
ni modificada. - Clase 1: La página no ha sido referenciada,
pero ha sido modificada. - Clase 2: La página ha sido referenciada,
pero no ha sido modificada. - Clase 3: La página ha sido referenciada y
también modificada.
Una vez obtenida la clasificación, elimina una
página de manera aleatoria de la primera clase no
vacía con el número más pequeño. Esto
porque para el algoritmo es mejor eliminar una página
modificada sin referencias en al menos un intervalo de reloj, que
una página en blanco de uso frecuente.
A pesar de que este algoritmo no es el óptimo, es
fácil de implementar y de comprender y con mucha
frecuencia es el más adecuado.
Algoritmos de reemplazo de
páginas:
Algoritmo LRU (LeastRecentlyUsed):
- Se sustituye la página "menos recientemente
usada". Se recuerda el instante en que cada página se
usó por última vez, y en caso de reemplazo se
escoge la página que tiene más tiempo sin
usarse. - Se utiliza mucho y se considera de alto rendimiento
respecto del óptimo. - Requiere un hardware adicional para su
implementación: - Contadores: Reemplazo de la página con
un tiempo más largo. - Pila: La base de la pila corresponde con la
página LRU.
- Contadores: Reemplazo de la página con
- Esta implementación resulta costosa, ya que
contadores y pilas deben
actualizarse en cada referencia a la memoria, acceso
más lento a la memoria. - Sistemas reales: implementan aproximaciones a
LRU. - No presentan la Anomalía de
Belady. - Determina el bloque que hace más tiempo que
no se referencia, y determina que éste debe ser el que
debe abandonar la caché. Como esta política es
difícil de implementar en hardware
normalmente se usan versiones un poco
simplificadas.
Algoritmos de aproximación al
LRU:
1. Algoritmos con bits de referencia
adicionales:
- Las técnicas basadas en LRU utilizan un bit
de referencia puesto por el hardware. - El hardware enciende el bit de referencia (lo pone
a 1) de una página cada vez que se hace referencia a
ella (lectura o escritura). - Examinando este bit no conocemos el orden de uso,
pero sí sabemos cuáles páginas se usaron
y cuáles no. - Es posible obtener información de
ordenamiento adicional si registramos los bits de referencia
a intervalos adicionales. - Bytehistórico: Por ej.: 11000100 se
usó más recientemente que 01110111. - LRU: página con el número más
bajo. - Si el nº de bits históricos es cero, es
decir, dejamos sólo el bit de referencia Algoritmo de
segunda oportunidad.
2. Algoritmo de segunda oportunidad o algoritmo del
reloj.
- Sencillo y efectivo, examina la página
más antigua como posible víctima. - Comportamiento: FIFO teniendo en cuenta el bit de
referencia: - Bit de referencia a cero: Reemplazo de
página. - Bit de referencia a uno: Segunda oportunidad,
ponemos el bit de referencia a cero y seleccionamos la
siguiente página FIFO. - Se puede implementar como una cola circular, donde
un puntero indicará cuál es la página a
reemplazar a continuación. - Cuando se necesita un marco, el puntero avanza
hasta encontrar una página cuyo bit de referencia
está apagado. Con el avance del puntero los bits de
referencia encendidos se van apagando. - Una vez hallada una página víctima,
se reemplaza y la nueva página se inserta en la cola
circular en esa posición.
3. Algoritmo de segunda oportunidad
mejorado.
- Bit de referencia + bit de
modificación. - Usando estos dos bits tenemos cuatro situaciones
posibles:
(0, 0): No se ha usado ni modificado
recientemente.
(0, 1): No se ha usado recientemente, sí se
ha modificado.
(1, 0): Usada recientemente, no
modificada.
(1, 1): Usada y modificada recientemente.
- Se reemplaza la página que encontremos de
clase más baja. - Se da preferencia a las páginas que han sido
modificadas a fin de reducir el nº de operaciones de E/S
requeridas.
Algoritmos de conteo:
Tienen un contador con el nº de referencias que se
hacen a cada página.
Algoritmo LFU (Least Frequently Used):
- Reemplaza la página menos frecuentemente
usada (cuenta más baja). - Problema: páginas que se usaron mucho
durante la fase inicial del proceso y luego no se vuelven a
usar. - Solución: desplazar las cuentas un
bit a la derecha a intervalos regulares. - Problema serio: páginas traídas
recientemente, alta probabilidad
de salir (cuenta baja).
Una de las obligaciones
del sistema operativo es usar el hardware de forma eficiente. En
el caso de las unidades de disco, esto implica tener un tiempo de
acceso breve y gran ancho de banda de disco. El tiempo de acceso
tiene dos componentes principales.
El tiempo de búsqueda (seek time)
es el tiempo que tarda el brazo del disco en mover las cabezas al
cilindro que contiene el sector deseado. La latencia
rotacional es el tiempo adicional que el disco tarda en
girar hasta que el sector deseado queda bajo la cabeza del
disco.
El ancho de banda del disco es el
número total de bytes transferidos, dividido entre el
tiempo total transcurrido entre la primera solicitud de servicio y la
finalización de la última transferencia.
Cada vez que un proceso necesita E/S de o al disco,
emite una llamada al sistema operativo. La solicitud especifica
varios elementos de información:
- Si esta operación es de entrada o de
salida - La dirección en disco para la
transferencia - La dirección en memoria para la
transferencia - El número de bytes por
transferir
Si la unidad de disco y controlador deseados
están disponibles, la solicitud puede atenderse de
inmediato, si no, todas las solicitudes de servicios nuevas
tendrán que colocarse en la cola de solicitudes pendientes
para esa unidad. En un sistema multiprogramación con
muchos procesos, puede ser común que la cola de disco
tenga varias solicitudes pendientes. Así, cuando se
termina de atender una solicitud, el sistema operativo tiene
oportunidad de escoger cuál solicitud pendiente
atenderá a continuación.
3.1 POLÍTICAS DE
PLANIFICACIÓN DE DISCOS
Una forma simple de atender a las solicitudes en el
disco es la primero en llegar-primero en ser
atendido. Existen además otros criterios para
evaluar las políticas
de planificación:
- Capacidad de ejecución
- Media del tiempo de respuesta
- Varianza de los tiempos de respuesta
Es claro que una política de planificación
debe intentar maximizar la capacidad de ejecución, el
número de peticiones servidas por unidad de tiempo. Debido
a la planificación se reduce el tiempo desperdiciado en
las esperas de las búsquedas, con lo que se puede mejorar
la media de los tiempos de respuesta. Si una política de
planeación no intenta más que
maximizar la capacidad de ejecución sin minimizar al mismo
tiempo la varianza, podría procesar peticiones. (Cuanto
menor es la varianza, más predecible es el
sistema).
El objetivo es
reducir los tiempos de acceso en la lectura o
escritura de los datos. Además del tiempo de acceso y del
tiempo de transferencia, existen algunos retrasos en las colas
que normalmente tienen asociada una operación de E/S a
disco. Cuando un proceso emite una solicitud de E/S, primero debe
esperar en una cola a que el dispositivo esté disponible.
En ese momento, el dispositivo queda asignado al proceso. Si el
dispositivo comparte un único canal de E/S o un conjunto
de canales con otras unidades del disco, puede producirse una
espera adicional hasta que el canal esté disponible. En
ese punto se realizará la búsqueda con que comienza
el acceso al disco.
NOMBRE | DESCRIPCION | COMENTARIOS |
Selección en función del demandante | ||
RSS | Planificación aleatoria. | Para análisis y simulación. |
FIFO | Primero en entrar, primero en salir. | El más justo de todos. |
PRI | Prioridad del proceso. | El control se lleva fuera de la gestión de la cola del |
LIFO | Último en entrar último en | Maximiza uso de recursos y cercanías. |
Selección en | ||
SSTF | Primero el más corto. | Gran aprovechamiento y colas |
SCAN | Recorre el disco de un lado a otro. | Mejor distribución del |
C-SCAN | Recorre el disco en un solo sentido. | Menor variabilidad en el servicio. |
SCAN de N-pasos | Scan de N registros a la vez. | Garantía de servicio. |
F-SCAN | Scan de N pasos, con N = longitud de la cola al | Sensible a la carga. |
3.2 Optimización de la
Búsqueda en Discos
Las estrategias
más comunes de optimización de la búsqueda
son las siguientes:
La forma más sencilla de planificación de
disco es, desde luego, el servicio por orden de llegada
(FCFS, first come, first served). No proporciona el
servicio más rápido.
La planificación FCFS es justa en el sentido de
que una vez que llega una petición, se fija su lugar
dentro de la cola de espera. Una petición, se fija su
lugar dentro de la cola de espera. Una petición no puede
ser desplazada por la llegada de otra con prioridad más
alta.
La FCFS es aceptable cuando la carga en un disco es
ligera. Pero a medida que crece la carga, la FCFS tiende a
saturar el dispositivo y los tiempos de respuesta se incrementan.
La FCFS ofrece una varianza pequeña, pero tiene tiempos de
espera muy grandes.
Parece razonable atender todas las solicitudes cercanas
a la posición actual de la cabeza antes de mover la cabeza
a una posición lejana para atender otras solicitudes. Este
supuesto es la base del algoritmo de tiempo de
búsqueda más corto primero (SSTF,
shortest-seek-time-first), que selecciona la solicitud
que tiene el menor tiempo de búsqueda a partir de la
posición actual de la cabeza.
En esta política la petición que da por
resultado la distancia de búsqueda más corta (y,
con esto, el tiempo de búsqueda más corto) es la
siguiente en ser servida, aunque esa petición no sea la
primera en la cola.
Los patrones de búsqueda SSTF tienden a estar muy
relocalizados, dando como resultado que las pistas internas y
externas reciban un servicio pobre, en comparación con las
pistas del centro. La SSTF es útil en sistemas de
procesamiento por lotes, en los cuales la capacidad de
ejecución es lo más importante. Pero la alta
varianza de los tiempos de respuesta (es decir, su falta de
predecibilidad) lo hace inaceptable para los sistemas
interactivos.
Este algoritmo mejora sustancialmente el desempeño.
La planificación SSTF es en esencia una forma de
planificación de trabajo
más corto primero (SJF) y, al igual que la
planificación SFJ, puede cause inanición de algunas
solicitudes.
Aunque el algoritmo SSTF representa una mejora
sustancial respecto al algoritmo FCFS, no es
óptimo.
En el algoritmo SCAN, el brazo del disco parte de un
extremo del disco y se mueve hacia el otro, atendiendo las
solicitudes a medida que llega a cada cilindro, hasta llegar al
otro extremo del disco. Ahí, la dirección de
movimiento de la cabeza se invierte, y continúa la
atención. La cabeza barre continuamente el
disco de un lado a otro.
Esta política, desarrollada por Denning, opera
como SSTF, excepto que selecciona la petición que da como
resultado la distancia de búsqueda más corto en una
dirección seleccionada. La SCAN no cambia de
dirección hasta que ha alcanzado el cilindro exterior o
hasta que ya NO haya peticiones pendientes en la dirección
con preferencia.
La SCAN se comporta de manera parecida al SSTF desde el
punto de vista de la mejora en la capacidad de ejecución y
de la media de los tiempos de respuesta, pero elimina mucha de la
discriminación inherente a los esquemas
SSTF y ofrece una varianza menor.
El algoritmo SCAN también se conoce como
algoritmo de elevador, ya que el brazo del disco se
comporta igual que el elevador de un edificio, que atiende
primero todas las solicitudes para subir y luego cambia de
dirección para atender las solicitudes de
abajo.
3.3.4 Planificacion SCAN de
n-pasos
En esta estrategia, el brazo del disco se mueve de un
lado a otro como en SCAN, pero sólo da servicio a aquellas
peticiones que se encuentran en espera cuando comienza un
recorrido particular. Las peticiones que llegan durante un
recorrido son agrupadas y ordenadas para un servicio
óptimo durante el recorrido de regreso.
La SCAN de n-pasos ofrece un buen rendimiento de la
capacidad de ejecución y de la media de los tiempos de
respuesta. Su característica más significativa es
una menor varianza de los tiempos de respuesta que las
planeaciones SSTF y SCAN convencionales. La SCAN de n-pasos evita
la posibilidad de postergación indefinida que tiene lugar
si un gran número de peticiones que llegan al cilindro que
está siendo servido y guarda estas peticiones para ser
servidas durante el recorrido de regreso.
La planificación SCAN circular (C-SCAN) es una
variante de SCAN diseñada para dar un tiempo de espera
más uniforme. Al igual que SCAN, C-SCAN mueve la cabeza de
un extremo del disco al otro, atendiendo las solicitudes en el
camino, sólo que ahora, cuando la cabeza llega al otro
extremo, regresa de inmediato al principio del disco sin atender
solicitudes.
El algoritmo de planificación C-SCAN
básicamente trata los cilindros como una lista circular
que continúa del último cilindro al
primero.
En la estrategia C-SCAN, el brazo se mueve del cilindro
exterior al interior, sirviendo a las peticiones con menor tiempo
de búsqueda. Cuando el brazo ha completado su recorrido
hacia adentro, salta a la petición más cercana al
cilindro exterior y a continuación reanuda su recorrido
hacia adentro procesando peticiones.
La C-SCAN puede implementarse de forma que las
peticiones que llegan durante un recorrido sean servidos en el
siguiente. De esta forma C-SCAN elimina completamente la discriminación contra las peticiones para
los cilindros exterior e interior. Tiene una varianza de los
tiempos de respuesta muy pequeña.
En la práctica, ningunos de estos dos algoritmos
se implementan así. Por lo regular, el brazo sólo
llega hasta la última solicitud en cada dirección y
luego cambia de dirección inmediatamente, sin primero ir
hasta el extremo del disco. Estas versionas de SCAN y C-SCAN se
llaman LOOK y C-LOOK, porque miran si hay una solicitud antes de
continuar en una dirección dada.
En esta estrategia el movimiento del brazo del disco es
circular como en C-SCAN, pero con varias excepciones importantes.
Cada cilindro es servido exactamente por una pista completa de
información, haya o no peticiones para este cilindro. Las
peticiones se redondean a ser servidas dentro de un cilindro para
tomar ventaja de la posición rotacional, pero si dos
peticiones traslapan posiciones de sectores dentro de un
cilindro, solamente se sirve una en el movimiento actual del
brazo del disco.
Con carga baja, la política SCAN es la mejor,
mientras que con cargas medias y pesadas, la C-SCAN produce los
mejores resultados. La C-SCAN con optimización rotacional
maneja de manera efectiva condiciones de carga muy pesadas y ha
demostrado ser mejor que el esquema Eschenbach bajo todas las
condiciones de carga.
3.4 Optimización rotacional en
discos
En condiciones de carga pesada, la probabilidad de que
ocurran referencias al mismo cilindro aumenta y resulta
útil considerar la optimización rotacional de la
misma forma que la optimización de
búsqueda.
Una forma paralela a la estrategia de
optimización de la búsqueda SSTF es la
estrategia SLTF (tiempo de latencia más corto
primero) de optimización rotacional. Una vez que
el brazo del disco llega a un cilindro en particular, pueden
existir muchas peticiones pendientes en las distintas pistas de
ese cilindro. La estrategia SBIF examina todas estas peticiones y
sirve primero a aquella que tiene el retraso rotacional
más corto. Esta estrategia ha demostrado estar muy cerca
del óptimo teórico y es relativamente fácil
de implementar.
3.5 Selección
de un algoritmo de planificación de disco
SSTF es común y tiene un atractivo natural. SCAN
y C-SAN funcionan mejor en sistemas en los que la carga sobre el
disco es intensa, y no son propensos al problema de
inanición.
Con cualquier algoritmo de planificación, es
desempeño depende en gran medida del número y los
tipos de solicitudes.
El método de asignación de archivos puede
influir mucho sobre las solicitudes de servicio de disco. Un
programa que
lee un archivo que se
asignó contiguamente generará varias solicitudes
cercanas entre sí en el disco, y el movimiento de la
cabeza será limitado. Un archivo enlazado o indexado, en
cambio,
podría incluir bloques muy dispersos en el disco, y el
movimiento de la cabeza sería mayor.
La colocación de los directorios y los bloques
índice en caches de la memoria principal puede ayudar
también a reducir el movimiento del brazo del disco, sobre
todo para las solicitudes de lectura.
Es conveniente que el algoritmo de planificación
de disco se escriba como módulo independiente del sistema
operativo, a fin de poder
sustituirlo por un algoritmo diferente si es necesario. SSTF y
LOOK son opciones razonables para el algoritmo por
omisión.
Los algoritmos descritos sólo consideran las
distancias de búsqueda. En los discos modernos, la
latencia rotacional puede ser casi tan grande como el tiempo de
búsqueda promedio, pero es difícil para el sistema
operativo reducir la latencia rotacional mediante
planificación, porque los discos modernos no revelan la
ubicación física de los bloques
lógicos.
Con el uso de múltiples discos, existen varias
formas que se pueden organizar los datos. Dificultando el
desarrollo de
esquemas de bases de datos
que se pueden utilizar en múltiples plataformas y S.O. La
industria a
acordado un sistema estándar para el diseño de
base de datos
sobre múltiples discos, llamado RAID (Vector
Redundante de Discos Independientes), este esquema consta de
siete niveles que distinguen distintas arquitecturas de
diseño, compartiendo tres características
comunes:
- RAID es un conjunto de unidades de
disco físicos vistas por el S.O. como una sola unidad
lógica. - Los datos están distribuidos a través
de las unidades físicas del vector. - La capacidad del disco redundante se utiliza para
almacenar información de paridad, que garantiza la
recuperabilidad de datos en caso de fallo del
disco.
La estrategia RAID reemplaza unidades de
disco de gran capacidad por múltiples discos de menor
capacidad y distribuye los datos que luego son accedidos
simultáneamente a ellos por múltiples discos, esto
mejora el rendimiento de las E/S y aumenta su capacidad. Para
compensar la disminución de la fiabilidad,
RAID hace uso de la información de paridad
almacenada, que permite la recuperación de los datos
perdidos como consecuencia de un fallo del disco.
NIVEL 0:
Los usuarios y los datos del sistema están
distribuidos a lo largo de todo el vector de discos, este esta
dividido en bandas que pueden ser bloques físicos,
sectores o alguna otra unidad. Al conjunto de bandas consecutivas
lógicamente, se lo denomina franja. Presenta la ventaja de
que si una única solicitud de E/S esta formada por
múltiples bandas contiguas; estas podrán
gestionarse en paralelo reduciendo la transferencia de
E/S.
NIVEL 1(Espejo): La redundancia de los
datos se consigue duplicando los mismos, los datos son divididos
de la misma forma que en RAID0; pero cada banda se corresponde
con dos discos físicos independientes.
Aspectos positivos:
- Una solicitud de lectura puede utilizar cualquiera
de los dos discos que contienen los datos solicitados y que
suponga menor tiempo sumando el de búsqueda y la
latencia de giro. - Una solicitud de escritura requiere la
actualización de las bandas correspondientes a ambos
discos, solo se puede hacer en paralelo. Cuando se actualiza
una sola banda, el software de gestión del vector de
disco primero debe calcular y actualizar los bits de paridad
y luego la banda real. - Cuando una unidad falla, los datos todavía
están disponibles desde la segunda unidad.
Desventaja:
Su COSTE requiere dos veces el espacio de disco del
disco lógico que soporta.
Puede conseguir altas tasas de solicitudes de E/S si las
mismas son de lectura, cuyo rendimiento puede ser el doble que en
RAID 0, pero si las solicitudes son de escritura su rendimiento
talvez no será el mismo.
NIVEL 2(Redundancia mediante código
hamming): Este utiliza una técnica de acceso
paralelo. Las bandas de este nivel son muy pequeñas,
considerándolo como un único byte o palabra. Se
utiliza un código HAMMING para corregir errores de un solo
bit y la detección de errores de dos bit.
Cuando se requiere una solicitud de lectura todos los
discos son accedidos simultáneamente, ocurriendo lo mismo
con una solicitud de escritura y n este caso también son
accedidos todos los discos de paridad.
RAID 2 solo será eficiente cuando se produzcan
muchos errores en el disco.
NIVEL 3(Paridad por intercalación de
bits): Este requiere solo un disco redundante, emplea
acceso paralelo. Cuando ha ocurrido algún error, se
calcula un solo bit de paridad para el conjunto de bits en la
misma posición de todos los discos de datos.
En el caso de un fallo de disco, se accede a la unidad
de paridad y se reconstruyen los datos desde los dispositivos
restantes.
Debido a que los datos están divididos en
pequeñas bandas, RAID 3 puede conseguir una tasa de
transferencia de datos muy alta. Cualquier solicitud de E/S
involucrara una transferencia de datos en paralelo desde todos
los discos de datos solo se puede ejecutar una solicitud de E/S.
Disminuyendo el rendimiento en un entornó orientado a
transacciones.
NIVEL 4(Paridad por intercalación de
bloques): Utiliza una técnica de
acceso independiente, por lo que se puede satisfacer las
solicitudes de E/S individuales. Son mas apropiados para
aplicaciones que requieren tasas altas de solicitudes de E/S, y
son relativamente menos apropiados para aplicaciones que
requieren tasas altas de transferencias de datos
NIVEL 5(Paridad por
intercalación distribuida de bloques):
Al igual que el RAID 4 se diferencia en la
distribución de las bandas de paridad a través de
todos los discos, por lo tanto evita el potencial cuello de
botella en la E/S del sistema RAID 4 que tiene solo un disco de
paridad.
NIVEL 6(Redundancia
dual): Se realizan dos cálculos
distintos de pariedad, y se almacenan en bloques independientes
de diferentes discos, la ventaja es la disponibilidad de datos
son extremadamente alta. Por otro lado sufre una importante
penalización de escritura, porque cada escritura afecta a
dos bloques de paridad.
4.2 PRINCIPIOS DE
SOFTWARE DE DISCO
El tiempo que se tarda desde que el Driver de disco
programa al controlador para realizar la lectura de un sector,
hasta que la información de esta en la memoria:
T. POSICIONAMIENTO + T. LATENCIA + T. TRANSFERENCIA
(buffer-controlador) + T. CHECKSUM + T. TRANSFERENCIA
(controlador-memoria)
Normalmente el tiempo de CHECKSUM es despreciable. En
algunos casos puede existir tiempos añadidos si la
información del disco esta cifrada y el algoritmo de
cifrado/ descifrado lo incrementa el controlador, después
de realizar el CHECKSUM el controlador deberá descifrar
los datos.
Características genéricas de los drivers
de disco son:
A: MEJORA EL TIEMPO DE ACCESO.
B: TRATAMIENTO DE ERRORES.
A: MEJORA EL TIEMPO DE
ACCESO
T. ACCESO = T. POSICIONAMIENTO + T.
LATENCIA + T. TRANFERENCIA
De estos tres tiempos el más significativo
es el de posicionamiento. Cuando el driver permite ir almacenando
peticiones pendientes mientras se trata la actual, se intenta
reducir el tiempo medio de posicionamiento aplicando un algoritmo
que decida que petición de las pendientes atender
primero.
Los discos están sometidos a
una gran variedad de errores. Cuando se producen el controlador
deberá avisar al driver para que tome la decisión
pertinente. Los errores más comunes son:
Errores de
programación: El driver le indica al
controlador que una pista, cilindro, sector que no existe o una
dirección de memoria invalida. El controlador al detectar
el error lo trasmite al driver. Este avisa al SW E/S
independiente.
Errores de posicionamiento: Este error se
produce por errores mecánicos del brazo de lectura /
escritura. El controlador de disco mantiene internamente cual es
la posición del brazo de lectura / escritura en cada
momento.
Para mover el brazo a otro cilindro manda un pulso a un
motor por cada
cilindro que quiera atravesar. Cuando llega al cilindro destino,
lee el valor del cilindro actual (se grabo al principio de la
pista al formatear el disco). Si la posición actual no
coincide con la que se esperaba se produce un error de
posicionamiento, este error suele corregirse recalibrando el
brazo (lo manda al cilindro 0).
Esta acción
puede realizarla el controlador o, si este no puede, el driver de
disco (comando RECALIBRABLE)
Errores en el controlador de
disco: puede darse la situación que el controlador
se niegue a aceptar comandos del
driver, en este caso el driver debe recetar el
controlador.
5. Manejo de E/S en Windows y
Unix
El sistema de entrada/salida se divide en dos sistemas
complementarios: el estructurado por bloques y el estructurado
por caracteres. El primero se usa para manejar cintas y discos
magnéticos, y emplea bloques de tamaño fijo (512 o
1024 bytes) para leer o escribir. El segundo se utiliza para
atender a las terminales, líneas de comunicación e impresoras, y
funciona byte por byte.
En general, el sistema Unix emplea
programas
especiales (escritos en C) conocidos como manejadores (drivers)
para atender a cada familia de
dispositivos de E/S. Los procesos se comunican con los
dispositivos mediante llamadas a su manejador. Además,
desde el punto de vista de los procesos, los manejadores aparecen
como si fueran archivos en los que se lee o escribe; con esto se
logra gran homogeneidad y elegancia en el
diseño.
Cada dispositivo se estructura internamente mediante
descriptores llamados número mayor, número menor y
clase (de bloque o de caracteres). Para cada clase hay un
conjunto de entradas, en una tabla, que aporta a los manejadores
de los dispositivos. El número mayor se usa para asignar
manejador, correspondiente a una familia de dispositivos; el
menor pasa al manejador como un argumento, y éste lo
emplea para tener acceso a uno de varios dispositivos
físicos semejantes.
Las rutinas que el sistema emplea para ejecutar
operaciones de E/S están diseñadas para eliminar
las diferencias entre los dispositivos y los tipos de acceso. No
existe distinción entre acceso aleatorio y secuencial, ni
hay un tamaño de registro lógico impuesto por el
sistema. El tamaño de un archivo ordinario está
determinado por el número de bytes escritos en él;
no es necesario predeterminar el tamaño de un
archivo.
El sistema mantiene una lista de áreas de
almacenamiento temporal (buffers), asignadas a los dispositivos
de bloques. El Kernel usa estos buffers con el objeto de reducir
el tráfico de E/S. Cuando un programa solicita una
transferencia, se busca primero en los buffers internos para ver
si el bloque que se requiere ya se encuentra en la memoria
principal (como resultado de una operación de lectura
anterior). Si es así, entonces no será necesario
realizar la operación física de entrada o
salida.
Existe todo un mecanismo de manipulación interna
de buffers (y otro de manejo de listas de bytes), necesario para
controlar el flujo de datos entre los dispositivos de bloques (y
de caracteres) y los programas que los requieren.
Por último, y debido a que los manejadores de los
dispositivos son programas escritos en lenguaje C, es
relativamente fácil reconfigurar el sistema para ampliar o
eliminar dispositivos de E/S en la computadora,
así como para incluir tipos nuevos.
La estructura básica del sistema de archivos es
jerárquica, lo que significa que los archivos están
almacenados en varios niveles. Se puede tener acceso a cualquier
archivo mediante su trayectoria, que especifica suposición
absoluta en la jerarquía, y los usuarios pueden cambiar su
directorio actual a la posición deseada. Existe
también un mecanismo de protección para evitar
accesos no autorizados. Los directorios contienen
información para cada archivo, que consiste en su nombre y
en un número que el Kernel utiliza para manejar la
estructura interna del sistema de archivos, conocido como el
nodo-i.
Hay un nodo-i para cada archivo, que contiene
información de su directorio en el disco, su longitud, los
modos y las fechas de acceso, el autor, etc. Existe,
además, una tabla de descriptores de archivo, que es una
estructura de
datos residente en el disco magnético, a la que se
tiene acceso mediante el sistema mencionado de E/S por
bloques.
El control del espacio libre en el disco se mantiene
mediante una lista ligada de bloques disponibles. Cada bloque
contiene la dirección en disco del siguiente bloque en la
cadena. El espacio restante contiene las direcciones de grupos de bloques
del disco que se encuentren libres. De esta forma, con una
operación de E/S, el sistema obtiene un conjunto de
bloques libres y un puntador para conseguir
más.
Las operaciones de E/S en archivos se llevan a cabo con
la ayuda de la correspondiente entrada del nodo-i en la tabla de
archivos del sistema. El usuario normalmente desconoce los
nodos-i porque las referencias se hacen por el nombre
simbólico de la trayectoria. Los procesos emplean
internamente funciones
primitivas (llamadas al sistema) para tener acceso a los
archivos; las más comunes son open, creat, read, write,
seek, close y unlink, aunque sólo son empleadas por los
programadores, no por los usuarios finales del
sistema.
Toda esta estructura física se maneja "desde
afuera" mediante la filosofía jerárquica de
archivos y directorios ya mencionada, y en forma totalmente
transparente para el usuario. Además, desde el punto de
vista del sistema operativo, un archivo es muy parecido a un
dispositivo.
Las ventajas de tratar a los dispositivos de E/S en
forma similar a los archivos normales son múltiples: un
archivo y un dispositivo de E/S se tornan muy parecidos; los
nombres de los archivos y de los dispositivos tienen la misma
sintaxis y significado, así que a un programa que espera
un nombre de archivo como parámetro puede dársele
un nombre de dispositivo (con esto se logra interacción rápida y fácil
entre procesos de alto nivel).
El sistema Unix ofrece varios niveles de
protección para el sistema de archivos, que consisten en
asignar a cada archivo el número único de
identificación de su dueño, junto con nueve bits de
protección, que especifican permisos de lectura, escritura
y ejecución para el propietario, para otros miembros de su
grupo
(definido por el administrador del
sistema) y para el resto de los usuarios. Antes de cualquier
acceso se verifica su validez consultando estos bits, que residen
en el nodo-i de todo archivo. Además, existen otros tres
bits que se emplean para manejos especiales, relacionados con la
clave del super usuario.
Otra característica de Unix es que no requiere
que el conjunto de sistemas de archivos resida en un mismo
dispositivo.
Es posible definir uno o varios sistemas "desmontables",
que residen físicamente en diversas unidades de disco.
Existe una orden (mkfs) que permite crear un sistema de archivos
adicional, y una llamada al sistema (mount) con la que se
añade (y otra con la que se desmonta) uno de ellos al
sistema de archivos global.
El control de las impresoras de una computadora que
funciona con el sistema operativo Unix consiste en un subsistema
(SPOOL) que se encarga de coordinar los pedidos de
impresión de múltiples usuarios. Existe un proceso
de Kernel que en forma periódica revise las colas de
servicio de las impresoras para detectar la existencia de pedidos
e iniciar entonces las tareas de impresión. Este tipo de
procesos, que son activados en forma periódica por el
núcleo del sistema operativo, reciben en Unix el nombre de
daemons (duendes), tal vez porque se despiertan y aparecen sin
previo aviso. Otros se encargan de activar procesos en tiempos
previamente determinados por el usuario, o de escribir
periódicamente los contenidos de los buffers de memoria en
el disco magnético.
5.2 Manejador de entrada
y salida de Windows:
El Manejador de E/S es la parte de Windows NT
ejecutivo que maneja todas las entradas y todas las salidas del
S.O.. Gran parte del rol de este Manejador es manejar las
comunicaciones
entre drivers. El Manejador de E/S soporta todos los sistemas de
archivos de drivers, manejadores de dispositivos de hardware y
manejadores de redes y provee un ambiente
heterogéneo para ellos. Provee una interfase formal que
todos los manejadores o drivers pueden invocar.
Esta interfase uniforme le permite al Manejador de E/S
comunicarse con todos los drivers de la misma manera sin tener
conocimiento
de cual de los dispositivos esta controlando
actualmente.
El Manejador de E/S también incluye rutinas
especiales designadas para soporte de manejadores de sistemas de
archivo, de dispositivos de hardware y de dispositivos de
red.
El modelo de
Windows NT para E/S usa una arquitectura de
niveles que permite manejadores separados para implementar cada
capa lógica distinta de un procesamiento de E/S.Manejador
de cache: la arquitectura de E/S incluye un único
Manejador de cache que maneja la totalidad de las E/S del sistema
por este método. El método cache es usado por un
archivo de sistema para mejorar el rendimiento.
El Manejador de cache usa un archivo mapeado
estrechamente integrado con el manejo de la memoria
virtual de Windows NT.
El Manejador de cache provee sus servicios a todos los
archivos de sistema y componentes de red bajo el control del
Manejador de E/S. El Manejador de cache puede hacer crecer
dinámicamente y disminuir el tamaño de la memoria
cache a medida que varia la cantidad de memoria RAM
disponible. Cuando un proceso abre un archivo que ya reside en la
memoria cache, el Manejador de cache simplemente copia los datos
de la cache al espacio de direcciones virtual del proceso y
viceversa; la lectura y la grabación mejoran.
El Manejador de cache ofrece servicios como LAZY write y
LAZY commit que pueden mejorar sobre el rendimiento de todos los
archivos del sistema. LAZY WRITE es la habilidad de grabar los
cambios en la estructura cache de los archivos que es más
rápido que grabarlos sobre el disco y mas tarde cuando hay
una baja demanda de la
unidad central del proceso, el Manejador cache los cambios al
disco. LAZY COMMIT es similar al LAZY WRITE.
En vez de marcar una transacción completada
exitosamente en forma inmediata, la información declarada
se coloca la memoria cache y luego se graba al sistema de
registros de archivos como un proceso back ground
Sistemas de manejo de archivos: en la arquitectura
Windows NT de E/S, los manejadores de sistema de archivos son
dirigidos por el Manejador de E/S. Windows NT soporta
múltiples sistemas de archivos activos,
incluyendo sistemas de archivos existentes como la F.A.T. Windows
NT soporta sistemas de archivos F.A.T. y HPFS para resguardar la
compatibilidad con los sistemas
operativos MS-DOS,
Windows 3.X y OS/2.
La arquitectura de Windows NT de E/S no solamente
soporta sistemas de archivos tradicionales sino que ha
implementados su redirector de redes y servidor como un
sistema de manejadores de archivos. Desde la perspectiva del
Manejador de E/S no hay diferencia entre acceder archivos
almacenados en una computadora remota vía red y acceder a
aquellos almacenados localmente en un disco
rígido.
Además los redirectores y servidores pueden
cargarse y descargarse dinámicamente como cualquier otro
Manejador, y pueden coexistir múltiples redirectores y
servidores a la misma computadora.Manejadores de dispositivos de
hardware: los manejadores de dispositivos de hardware
también son componentes de la arquitectura de la
E/S.
Todos ellos (como manejadores de impresión, de
Mouse, de
disco) están escritos en el lenguaje de
programación C, son direccionables a 32 bits y
presentan seguridad al
Multiprocesamientos.Los manejadores de dispositivos acceden a los
registros de hard de los dispositivos
periféricos a través de rutinas de soporte que
provee el sistema operativo Windows NT. Hay un conjunto de estas
rutinas para cada plataforma que soporta Windows NT. Como los
nombres de las rutinas son iguales para todas las plataformas los
manejadores de dispositivos para Windows NT son transportable
entre cualquier tipo de procesadores.
Manejadores de red: un tercer tipo de Manejador
implementado como un componente de la arquitectura de E/S es el
Manejador de red. Windows NT incluye capacidades de
funcionamiento de red integradas y soporte para aplicaciones
distribuidas.HAL (Nivel de abstracción de hardware):
virtualVirtualiza las interfaces de hardware, haciendo las
transparentes al resto del S.O. Esto le permite portabilidad de
una plataforma a otra.
KERNEL: Está en el núcleo de esta
arquitectura de niveles y maneja las operaciones mas
básicas de Windows NT. Es responsable del despacho de
hilos (thread dispaching), organización del multiprocesamiento y
manejo de excepciones de hard.
EJECUTIVO: Colección de módulos del Kernel
que provee servicios básicos del sistema operativo a los
subsistemas del ambiente.
SUBSISTEMAS DE ENTORNO: Son
servidores protegidos a modo usuario que ejecutan y
soportan aplicaciones nativas en diferentes ambientes del
SO.
DESPACHADOR DE OBJETOS (Dispatcher Object): Tiene una
señal de estado (señalado
ó no señalado) que controla el despacho y
sincronización de las operaciones del sistema. Incluye:
eventos
mutantes, mutexes (acceso mutuamente excluido a un recurso),
semáforos, hilos y relojes.
OBJETOS DE CONTROL (Control Objects):
Se usan para controlar la operación del Kernel pero no
afectan el despacho. Incluyen llamadas asincrónicas a
procedimientos, interrupciones, procesos y
perfiles.
HILO: Unidad mas pequeña de
código ejecutable
independiente.
SERVICIOS DEL SISTEMA: Interfase entre los subsistemas
del ambiente modo usuario y el modo
Kernel.
3.1 Porqué es necesaria
la Planificación de Discos
En los sistemas de multiprogramación muchos
procesos pueden estar generando peticiones de E/S sobre
discos:
La generación de peticiones puede ser mucho
más rápida que la atención de las
mismas:
- Se construyen líneas de espera o
colas para cada dispositivo. - Para reducir el tiempo de
búsqueda de registros se ordena la cola
de peticiones: esto se denomina
planificación de disco.
La planificación de disco implica:
- Un examen cuidadoso de las peticiones pendientes
para determinar la forma más eficiente
de servirlas. - Un análisis de las relaciones
posicionales entre las peticiones en
espera. - Un reordenamiento de la cola de
peticiones para servirlas minimizando los
movimientos mecánicos.
Los tipos más comunes de planificación
son:
- Optimización de la
búsqueda. - Optimización rotacional
(latencia).
Generalmente los tiempos de búsqueda superan a
los de latencia, aunque la diferencia disminuye:
- Muchos algoritmos de planificación se
concentran en la reducción de los tiempos de
búsqueda para un conjunto de
peticiones. - Generalmente la reducción de la
latencia recién tiene efectos bajo cargas de
trabajo muy pesadas.
Bajo condiciones de carga ligera (promedio
bajo de longitud de la cola), es aceptable el desempeño
del método FCFS (primero en llegar, primero en ser
servido).
Bajo condiciones de carga media o pesada,
es recomendable un algoritmo de planificación de las
colas de requerimientos.
3.2 Características deseables de las
políticas de Planificación de
Discos
Los principales criterios de categorización de
las políticas de planificación son:
- Capacidad de
ejecución. - Media del tiempo de
respuesta. - Varianza de los tiempos de respuesta
(predecibilidad).
Una política de planificación debe
intentar maximizar la capacidad de ejecución:
- Maximizar el número de peticiones servidas
por unidad de tiempo. - Minimizar la media del tiempo de
respuesta. - Mejorar el rendimiento global,
quizás a costa de las peticiones
individuales.
La planificación suele mejorar la imagen
total al tiempo que reduce los niveles de servicio de
ciertas peticiones:
- Se mide utilizando la varianza de los tiempos
de respuesta. - La varianza es un término estadístico
que indica hasta qué punto tienden a desviarse del
promedio de todos los elementos los elementos
individuales. - A menor varianza mayor
predecibilidad. - Se desea una política de
planificación que minimice la varianza, es decir que
maximice la predecibilidad. - No debe haber peticiones que puedan experimentar
niveles de servicio erráticos.
Diseño e Implementación de múltiples
planificadores de disco para …
Formato de archivo:
PDF/Adobe Acrobat –
Versión en
HTML
nuevas políticas de
planificación de disco. Otro aspecto
a tener en cuenta es
cómo pasar los parámetros extra a través de
la. cache del sistema.
…
es.tldp.org/Presentaciones/
1999hispalinux/conf-jfernandez/7.pdf
CARACTERISTICAS DESEABLES DE LAS POLITICAS DE
PLANIFICACION DE DISCO. OPTIMIZACION DE LA
BUSQUEDA. PLANIFICACION FCFS (PRIMERO QUE LLEGA,PRIMERO QUE SE
…
www.ur.mx/cursos/diya/quimica/jescobed/
diya/acad/cursos/sis/sist-op1/CAPXII.HTM – 2k
INTRODUCCIÓN
PLANIFICACIÓN
DE DISCO. Cuando la unidad de disco
está operando, el disco gira
a una velocidad constante. Para leer o escribir, la cabeza debe
ponerse en la …
exa.unne.edu.ar/depar/areas/informatica/
SistemasOperativos/MonogSO/GESTES02.htm
La planificación de disco
puede mejorar el rendimiento y eliminar el embotellamiento,
que se produce cuando se concentran grandes cargas de peticiones
sobre …
exa.unne.edu.ar/depar/areas/
informatica/SistemasOperativos/SO5.htm
Tatiana Macchiavello