gestión de e/s y planificación del disco · pdf fileexisten grandes diferencias...
TRANSCRIPT
Gestión de E/S y planificación del disco
~ 1 ~
1. Introducción
• Servicios de E/S que suministra el SO • Hardware de Entradas/salidas • Implementación de los servicios • Mejora del rendimiento de E/S
Elementos hardware del sistema de E/S y arquitectura:
Bus Puerto Controlador Dispositivo
Comunicación con el hardware de E/S:
Sondeo Interrupciones DMA
1.1 Objetivos del software de E/S 1. Independencia de dispositivo Se debe poder acceder a los dispositivos de E/S sin tener que especificar previamente de qué tipo de dispositivo se trata Como en los dispositivos de bloques: disquetes, discos duros, cdrom's El SO debe resolver los problemas causados por usar diferentes dispositivos, que requieren órdenes distintas para manejarlos 2. Nombres uniformes para los dispositivos El nombre de un fichero o dispositivo debe ser simplemente una cadena o un entero, y no depender del dispositivo 3. Manejo de errores Deben manejarse tan cerca del hardware como sea posible Subsanar todos los errores posibles Comunicando los no subsanables a los procesos de usuario
2. Dispositivos de E/S Pueden clasificarse en tres categorías:
Dispositivos legibles por los humanos: apropiados para la comunicación con el usuario, como por ejemplo terminales de video, teclado, etc.
Dispositivos legibles por la maquina: adecuado para comunicarse con el equipo electrónico, como discos, unidad de cinta, etc.
Dispositivos de comunicaciones: apropiados para la comunicación con dispositivos lejanos por ejemplo adaptadores de líneas digitales y MODEM.
Existen grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:
Velocidad de los datos: puede haber una diferencia de varios órdenes de magnitud en las velocidades de transmisión de datos.
Aplicaciones: La utilidad que se le da a un dispositivo tiene una gran influencia en el software y en las políticas del sistema operativo y de apoyo.
Complejidad del control: Una impresora necesita una interfaz de control relativamente simple. Un disco es mucho más complejo. La lógica del modulo de E/S que controla el dispositivo filtra, hasta cierto punto, el efecto de estas diferencias sobre el sistema operativo.
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 2 de 20
Unidad de transferencia: Los datos pueden transferirse como flujos de bytes o caracteres (por ejemplo E/S a terminales) o en bloques mayores (por ejemplo E/S a discos).
Representación de los datos: en diferentes dispositivos se emplean diferentes esquemas de codificación de datos, incluidas las diferencias en los códigos de caracteres y los convenios de prioridad.
Condiciones de error: La naturaleza de los errores, la manera en que se informa sobre ellos, sus consecuencias y el rango disponible e respuestas difieren ampliamente en un dispositivo a otro.
El siguiente cuadro hace referencia, a las grandes diferencias entre las clases de dispositivos:
3. Organización del sistema de E/S 3.1 Técnicas para realizar la E/S
E/S programada: el procesador emite una orden de E/S de parte de un proceso a un módulo de E/S; el procesos espera entonces a que termine la operación, antes de seguir.
E/S dirigida por interrupciones: el procesador emite una orden de E/S de parte de un proceso, continúa la ejecución de las instrucciones siguientes y el módulo de E/S lo interrumpe cuando completa su trabajo. Las instrucciones siguientes pueden ser del mismo proceso, si no es necesario para este esperar la terminación de la E/S. En otro caso, el proceso se suspende a la espera de la interrupción, mientras se realiza otro trabajo.
Acceso directo a la memoria (DMA): un módulo DMA controla el intercambio de datos entre la memoria principal y un módulo de E/S. El procesador envía una petición de transferencia de un bloque de datos al módulo de DMA y se interrumpe sólo cuando se ha transferido el bloque entero.
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 3 de 20
Sin interrupciones Con interrupciones
Transferencia de E/S a memoria a través del procesador E/S programada E/S dirigida por interrupciones
Transferencia de E/S directa a memoria Acceso directo a memoria (DMA)
3.2 Evolución de las funciones de la E/S
A medida que los sistemas informáticos han evolucionado, se ha producido una tendencia creciente en la
complejidad y sofisticación de cada componente individual. En ningún punto es más evidente que en la función
de E/S. Las etapas de su evolución pueden resumirse de la siguiente manera:
1. El procesador controla directamente los dispositivos periféricos. Esto se puede ver en dispositivos simples controlados por microprocesadores.
2. Se añade un controlador o módulo de E/S. El procesador utiliza E/S programada sin interrupciones. En este punto, parece aislarse da los detalles específicos de las interfaces con dispositivos externos.
3. Se considera la misma configuración del punto 2, pero empleándose interrupciones. Ahora el procesador no tiene que desperdiciar tiempo esperando a que se realice una operación de E/S, incrementando así la eficiencia.
4. El módulo de E/S recibe el control directo de la memoria, a través de DMA. Ahora puede mover un bloque de datos a la memoria o desde la misma sin que intervenga el procesador, excepto al principio y al final de la transferencia.
5. Se mejora el módulo de E/S hasta llegar a ser un procesador separado con un conjunto de instrucciones especializadas para E/S. La unidad central de procesos (CPU) ordena al procesador de E/S la ejecución de un programa de E/S en la memoria principal. El procesador de E/S lee y ejecuta estas instrucciones sin intervención del procesador. Esto permite al procesador especificar una secuencia de actividades de E/S e interrumpirla solo cuando haya terminado la secuencia entera.
6. El módulo de E/S posee su propia memoria local y es, de hecho, un computador independiente. Con esta arquitectura se pueden controlar un gran número de dispositivos de E/S, con una participación mínima del procesador. Un uso muy común de esta arquitectura ha sido el control de las comunicaciones con terminales interactivos. El procesador de E/S se encarga de la mayoría de las tareas implicadas en el control de los terminales.
A medida que se sigue en esta evolución, una mayor parte de las funciones de E/S se realiza sin la participación
del procesador. El procesador central se ve liberado cada vez más de las tareas relacionadas con la E/S,
mejorando así el rendimiento.
3.3 Direct Memory Access (DMA)
El acceso directo a memoria es una características de las computadoras y microprocesadores modernos que
permite que ciertos subsistemas de hardware dentro de la computadora puedan acceder a la memoria del sistema
para la lectura y/o escritura, independientemente de la unidad central de procesamiento (CPU). De lo contrario,
la CPU tendría que copiar cada porción de dato desde el origen hacia el destino, haciendo que ésta no esté
disponible para otras tareas.
Cuando el procesador quiere leer o escribir un bloque de datos, envía un mandato al modulo de DMA con la
siguiente información:
Si se trata de una operación de lectura o de escritura.
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 4 de 20
Dirección del dispositivo de E/S involucrado.
Dirección inicial de memoria donde se desee leer o escribir.
Numero de palabras a leer o escribir.
A continuación, el computador continúa con otro trabajo. El modulo de DMA transfiere el bloque completo de
datos, palabra a palabra, directamente desde la memoria o hacia ella, sin pasar por el procesador.
Los subsistemas de hardware que utilizan DMA pueden ser: controladores de disco duro, tarjetas gráficas,
tarjetas de red, tarjetas de sonido y tarjetas aceleradoras. También es utilizado para la transferencia de datos
dentro del chip en procesadores con múltiples núcleos. DMA es esencial en los sistemas integrados.
Figura Configuraciones de DMA
Tipos de transferencia DMA
DMA por robo de ciclo. Es uno de los métodos más usados, ya que requiere poca utilización del CPU. Esta
estrategia utiliza uno o más ciclos de CPU para cada instrucción que se ejecuta. Esto permite alta disponibilidad
del bus del sistema para la CPU, aunque la transferencia de datos se hará más lentamente.
DMA por ráfagas. Esta estrategia consiste en enviar el bloque de datos solicitado mediante una ráfaga
empleando el bus del sistema hasta finalizar la transferencia. Permite una altísima velocidad, pero la CPU no
podrá utilizar el bus de sistema durante el tiempo de transferencia, por lo que permanece inactiva.
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 5 de 20
DMA transparente. Esta estrategia consiste en emplear el bus del sistema cuando la CPU no lo necesita. Esto
permite que la transferencia no impida que la CPU utilice el bus del sistema; pero la velocidad de transferencia es
la más baja posible.
DMA Scatter-gather. Esta estrategia permite transmitir datos a varias áreas de memoria en una transacción
DMA simple. Equivale al encadenamiento de múltiples peticiones DMA simples. Su objetivo es librar a la CPU
la tarea de la copia de datos e interrupciones de entrada/salida múltiples.
4. Aspectos de diseño en los sistemas operativos
El sistema operativo está formado por el software que permite acceder y realizar las operaciones básicas en un
ordenador personal o sistema informático en general. Los sistemas operativos más conocidos son: AIX (de IBM),
GNU/Linux, HP-UX (de HP), MacOS (Macintosh), Solaris (de SUN Microsystems), las distintas variantes del
UNIX de BSD (FreeBSD, OpenBSD), y Windows en sus distintas variantes (de la empresa Microsoft).
Objetivos del diseño
Hay dos objetivos primordiales en el diseño del servicio de entrada salida: eficiencia y generalidad. La eficiencia
es importante porque las operaciones de entrada salida constituyen un cuello de botella en los sistemas
informáticos. La mayoría de los dispositivos de entrada salida son lentos comparados con la memoria principal y
el procesador. Una manera de abordar este problema es el uso de la multiprogramación que permite que algunos
procesos esperen en operaciones de E/S mientras otro proceso se está ejecutando. Sin embargo, a pesar del
enorme tamaño de la memoria principal en los computadores actuales, seguirá dándose el caso de que la E/S no
siga el paso de la actividad del procesador. Se puede utilizar el intercambio para introducir mas proceso listo
para la ejecución y mantener así el procesador ocupado, pero esta es una operación de E/S en sí misma. De este
modo, el principal esfuerzo en el diseño de E/S ha sido crear esquemas que mejoren la eficiencia de la misma. El
área que ha recibido más atención ha sido la E/S a disco.
El segundo objetivo es la generalidad. En interés de la simplicidad y exención de errores, será deseable gestionar
todos los dispositivos de una manera uniforme. Esta afirmación se aplica a la manera en que los procesos
contemplan a los dispositivos de E/S y la forma en que el sistema operativo gestione los dispositivos de E/S y
las operaciones. Debido a la diversidad de los dispositivos, en la práctica es difícil conseguir una autentica
generalidad. Lo que puede hacerse es emplear un enfoque jerárquico y modular para el diseño de las funciones de
E/S. Este proceder ocultara la mayoría de los detalles de la E/S con dispositivos en rutinas de bajo nivel, de
forma que lo procesos y los niveles del sistema operativo contemplen a los dispositivos en términos de funciones
generales, como la lectura, la escritura, apertura, cierre, bloqueo y desbloqueo.
Estructura lógica de las funciones de E/S
La filosofía jerárquica propone que las funciones del sistema operativo deben separarse de acuerdo a su
complejidad, sus rasgos característicos y su nivel de abstracción. Siguiendo este enfoque se llega a una
organización del sistema operativo en un conjunto de niveles. Cada nivel realiza una parte de un subconjunto de
las funciones necesarias de sistema operativo. Cada nivel cuenta con el nivel inferior para realizar funcionas más
primitivas y para ocultar los detalles de estas funciones. Cada nivel ofrece servicio al nivel superior. En el mejor
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 6 de 20
de los casos los niveles deben definirse de forma que los cambios en un nivel no provoquen más cambios en otros
niveles. De este modo el problema se ha descompuesto en una serie de subproblemas más manejables.
En general los niveles inferiores hacen frente a un rango de tiempo mucho menor. Algunas partes del sistema
operativo deben interactuar directamente con el hardware del computador, donde los sucesos pueden ocurrir en
una escala de tiempos del orden de unos pocos nanosegundos. En el otro extremo del espectro, algunas partes
del sistema operativo se comunican con el usuario que emite órdenes a un ritmo más pausado como puede ser
una cada pocos segundos. El empleo de un conjunto de niveles se adapta bien a este entorno los detalles de la
organización dependen del tipo de dispositivo y de la aplicación.
Considérese primero el caso más simple, un dispositivo periférico local que se comunica de una manera sencilla,
como un flujo de bytes o de registros (figura 1.5 a). Los niveles implicados son los siguientes:
E/S lógica: el modulo de E/S lógica trata al dispositivo como un recurso lógico y no se preocupa de los detalles de control real del dispositivo. El módulo de E/S lógica se ocupa de la gestión de funciones generales de E/S solicitada por los procesos de usuario, permitiéndoles gestionar el dispositivo mediante un identificador y ordenes simples como abrir, cerrar, leer y escribir.
E/S con dispositivos: las operaciones solicitadas y los datos (caracteres almacenados, registros, etc.) se convierten en secuencias adecuadas de instrucciones de E/S y órdenes para el canal y el controlador. Se pueden utilizar técnicas de almacenamiento intermedio para mejorar el uso.
Planificación y control: la actual planificación y puesta en cola de las operaciones de E/S ocurren en este nivel, así como el control de las operaciones. Así las interrupciones se gestionan en este nivel, y se averigua e informa sobre el estado de la E/S. Este es el nivel del software que realmente interacciona con el módulo de E/S y por tanto, con el hardware del dispositivo.
Para un dispositivos de comunicaciones la estructura de E/S (figura 1.5 b) se parece mucho a la ya descrita. La
diferencia principal es que el módulo de E/S lógica se reemplaza por una arquitectura de comunicaciones que
puede constar de varios niveles. Un ejemplo puede ser la arquitectura TCP/IP.
La figura 1.5 c muestra la estructura representativa de la gestión de E/S en un dispositivo de almacenamiento
secundario que soporta un sistema de archivos. Los tres niveles que no han sido descritos antes son los
siguientes:
Gestión de directorios: en este nivel, se traducen los nombres simbólicos de archivos a identificadores que hacen referencia directamente al archivo o indirectamente, a través de un descriptor de archivos o índice en una tabla. Este nivel se ocupa también de las operaciones del usuario que afectan al directorio de archivos, como añadir, borrar y reorganizar.
Sistemas de archivos: este nivel se encarga de la estructura lógica de los archivos y las operaciones que pueden especificar los usuarios, tales como abrir, cerrar, leer y escribir. En este nivel también se gestionan los derechos de acceso.
Organización física: del mismo modo que las direcciones virtuales de la memoria deben convertirse en direcciones físicas de la memoria principal teniendo en cuenta la estructura de paginas o de segmentos, las referencias lógicas a los archivos y registros deben convertirse en direcciones físicas del almacenamiento secundario, teniendo en cuenta la estructura en sectores y pistas físicas del dispositivo del almacenamiento secundario. La asignación de espacio de almacenamiento secundario y de las memorias intermedias (buffer) de almacenamiento principal también se tratan en este nivel.
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 7 de 20
Figura 1.5
55.. UUttiilliizzaacciióónn ddee BBuuffffeerrss EE//SS
Almacenamiento intermedio de la E/S
Un proceso de usuario desea leer bloques de datos, los datos se van a leer en un área de datos dentro del espacio
de direcciones del proceso de usuario en una habitación virtual. La forma más sencilla de hacerlo sería emitir una
orden de E/S y a que los datos estén disponibles.
Hay dos problemas, en primer lugar, el programa se queda colgado esperando a que lentamente la operación de
E/S termine. El segundo problemas es que este método de E/S interfiere en las decisiones de intercambio del
sistema operativo. Hay riesgo de interbloqueo con un solo proceso.
Para evitar esta carga e incapacidad, a veces es conveniente llevar a cabo las transferencias de entrada por
adelantado a las peticiones y realizar las transferencias de salida de un tiempo después de hacer la petición. Esta
técnica se conoce con el nombre de almacenamiento intermedio (buffering).
Para el estudio de los distintos métodos de almacenamiento intermedio, a veces es importante hacer una
distinción entre dos tipos de dispositivos: los dispositivos orientados a bloque y los dispositivos orientados a
flujo.
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 8 de 20
Memoria intermedia sencilla
Cuando un proceso de usuario realiza una solicitud de E/S, el sistema operativo le asigna a la operación un
espacio en la parte del sistema de la memoria principal.
Para los dispositivos orientados a bloque, el esquema de almacenamiento intermedio sencillo puede describirse
como sigue. Las transferencias de entrada se realizan en el espacio del sistema. Cuando se ha completado la
transferencia, el proceso mueve el bloque al espacio del usuario y solicita otro bloque inmediatamente.
Este método proporciona una mayor velocidad en comparación con la ausencia de almacenamiento intermedio en
el sistema. La lógica de intercambio se ve afectada: si la operación de E/S implica al mismo disco que se usa para
intercambio, apenas importa poner en cola las grabaciones en el disco necesarias para expulsar al proceso. Este
intento de expulsar al proceso y liberar memoria principal no comenzara hasta que la operación de E/S finalice,
momento en que la expulsión del proceso al disco puede no ser ya apropiada.
Para la E/S con dispositivos orientados a flujo, el esquema de memoria intermedia sencilla puede aplicarse por
líneas o por bytes. La operación línea a línea es adecuada para terminales simples de desplazamiento, a veces
llamados terminales <<tontos>>.
La operación por bytes se utiliza en terminales de pantalla completa, donde cada tecla pulsada tiene su
significado.
Memoria intermedia doble
Se puede realizar una mejora sobre la memoria intermedia sencilla asignando a la operación dos almacenes
intermedios del sistema. De esta forma, un proceso puede transferir datos hacia (o desde) una memoria
intermedia mientras que el sistema operativo vacía (o rellena) el otro. Esta técnica se conoce como memoria
intermedia doble o memoria intermedia de intercambio.
En la entrada orientada a flujo, se afronta de nuevo el problema de las dos alternativas de operación. Para la E/S
de líneas, el proceso de usuario no tiene que ser suspendido para entrada o salida a menos que el proceso se
adelante a la memoria intermedia doble. Para la operación con bytes, la memoria intermedia doble no ofrece
ninguna ventaja con respecto a una memoria intermedia sencilla de doble tamaño. En ambos casos, se seguirá el
modelo del productor/consumidor.
Memoria intermedia circular
Si preocupa el rendimiento de un proceso determinado, sería deseable que las operaciones de E/S fueran capaces
de ir al ritmo del proceso. Si el proceso lleva a cabo rápidas ráfagas de E/S el problema puede mitigarse usando
más de dos memorias intermedias.
Cuando se emplean más de dos, el conjunto de memorias intermedias se conoce con el nombre de memoria
intermedia circular. Cada memoria intermedia individual constituye una unidad de la memoria intermedia
circular. Este es el modelo del productor/consumidor con una memoria intermedia limitada.
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 9 de 20
66.. PPllaanniiffiiccaacciióónn ddee ddiissccoo
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.
6.1 Tiempo de acceso
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
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 10 de 20
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.
66..22 PPOOLLÍÍTTIICCAASS DDEE PPLLAANNIIFFIICCAACCIIÓÓNN DDEE DDIISSCCOOSS
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.
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 11 de 20
7. RAID
7.1 Introducción
RAID se basa en la combinación de múltiples unidades de disco pequeñas y baratas que se agrupan en un
conjunto de discos para llevar a cabo acciones que no se pueden realizar con unidades grandes y costosas.
Como ocurre en otras aéreas vinculadas con el rendimiento del computador, los diseñadores del almacenamiento
de discos saben bien que si un determinado componente y a no puede mejorarse más, para lograr mejoras en el
rendimiento se van a tener que utilizar múltiples componentes en paralelo. En el caso del almacenamiento de
disco, esto lleva al desarrollo de vectores de disco que funcionan de manera independiente y en paralelo.
Usando múltiples disco, se pueden manejar en paralelo las peticiones de E/S, siempre que los datos solicitados
residan en distintos discos. Además, una única petición de E/S se puede ejecutar en paralelo si el bloque de datos
que se pretende acceder está distribuido a lo largo de múltiples discos.
7.2 Características
Cuando se usan múltiples discos, hay muchas maneras de organizar los datos y la redundancia para mejorar la
fiabilidad. Esto podría dificultar el desarrollo de esquemas de bases de datos que se puedan utilizar en diversas
plataformas y sistemas operativos.
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 12 de 20
Afortunadamente, RAID surge como consecuencia de ello. El esquema RAID consta de 7 niveles, del cero al
seis, estos niveles no implican una relación jerárquica, sino que designan arquitecturas de diseño que comparten
tres características comunes:
1. RAID corresponde con un conjunto de unidades físicas de disco tratado por el sistema operativo como un
único dispositivo lógico.
2. Los datos están distribuidos a lo largo de las unidades físicas de un vector.
3. La capacidad de redundancia del disco se utiliza para almacenar información de paridad, que garantiza
que los datos se pueden recuperar en caso de que falle un disco.
7.3 NIVELES
RAID DE NIVEL 0
RAID de nivel 0 no es un verdadero miembro de la familia RAID, puesto que no incluye redundancia. Los datos
están distribuidos a lo largo de todos los discos del vector.
Características:
Los datos se distribuyen en bandas(strips) a lo largo del vector
Cada banda puede estar compuesta de bloques físicos, sectores o alguna otra unidad
El conjunto de banda consecutivas, donde a cada miembro del vector se le asigna una banda se llama lista
(stripe)
La ventaja de esta distribución es que si una única petición de E/S consiste de múltiples bandas contiguas, se
puede manejar en paralelo hasta n bandas de esta petición, reduciendo considerablemente el tiempo de
transferencia de E/S.
RAID 0 para una elevada capacidad de transferencia de datos
Debe cumplir dos requisitos:
1. Debe existir una elevada capacidad de transferencia entre la memoria y las unidades de disco.
2. Debe hacer que las peticiones de E/S accedan eficientemente al vector de disco.
RAID 0 para una elevada tasa de peticiones de E/S
Se debe repartir la carga de E/S entre los múltiples discos. El reparto de carga efectivo solo se alcanza si
normalmente hay múltiples peticiones de E/S pendiente. El tamaño de la banda influye en el rendimiento. Se
puede tener una banda relativamente grande, de manera que una única petición de E/S involucre a un único
acceso de disco.
RAID DE NIVEL 1
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 13 de 20
En este esquema la redundancia se consigue mediante la simple estrategia de duplicar todos los datos. Cada
banda lógica se asigna a dos discos físicos separados, de manera que cada disco en el vector contenga los mismos
datos. Ver Anexo fotográfico.
Características:
Una petición de lectura puede servirse de cualquiera de los discos que contienen los datos pedidos.
Una petición de escritura requiere actualizar ambas bandas, por tanto el rendimiento lo establece el de la
escritura más lenta.
Si un dispositivo falla, el sistema puede continuar.
Desventaja. Coste. Requiere el doble de espacio de disco que el correspondiente al disco lógico
proporcionado.
RAID DE NIVEL 2
Utiliza una técnica de acceso paralelo. En un vector de acceso paralelo, todos los miembros del disco participan
en la ejecución de cada petición de E/S. Normalmente, los ejes de las distintas unidades se sincronizan de
manera que en todo momento la cabeza de cada disco este en la misma posición en todos los disco.
Ver Anexo fotográfico.
Características
Se utiliza distribución de datos en bandas.
Cada banda a menudo es un único byte o palabra.
Normalmente, se utiliza un código Hamming¹, que es capaz de corregir errores en un único bit y
detectar errores en dos.
Con RAID 2, se calcula un código de corrección de error correspondiente a cada disco de datos, y almacenándose
los bits resultantes en los múltiples disco de paridad.
RAID 2 solo sería una opción efectiva en un entorno en el que se produjeran muchos errores de disco. Este
esquema no se implementa en la práctica.
RAID DE NIVEL 3
Se organiza de manera similar al RAID 2. La diferencia radica en que este requiere solo un disco redundante, con
independencia del tamaño del vector de discos. En lugar de un código de corrección de errores, se calcula un bit
de paridad para el conjunto de bits almacenados en la misma posición en todos los discos de datos.
Ver Anexo fotográfico.
Redundancia. En caso que falle un dispositivo del vector, se accede al dispositivo de paridad y se reconstruyen
los datos desde los dispositivos restantes.
Una vez que se remplaza el dispositivo que falló, los datos perdidos pueden restaurarse en el nuevo dispositivo y
la operación se reanuda.
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 14 de 20
Rendimiento. Teniendo en cuenta que los datos están divididos en pequeñas bandas, RAID 3 puede conseguir
una tasa de transferencia de datos muy alta.
RAID DE NIVEL 4
Los niveles RAID 4 a 6 usan una técnica de acceso independiente. En un vector de acceso independiente, cada
disco opera independientemente, por lo que se pueden satisfacer en paralelo solicitudes de E/S individuales. Son
más apropiados para aplicaciones que requieran tasas altas de solicitudes de E/S, y son relativamente menos
apropiados para aplicaciones que requieren tasas altas de transferencia de datos.
En el caso de RAID 4 hasta 6, las bandas son relativamente grandes. Con RAID 4, se calcula una banda de la
paridad bit a bit a lo largo de las bandas correspondientes de cada disco de datos, y los bits de paridad se
almacenan en la banda correspondiente del disco d paridad.
RAID 4 implica una penalización d escritura cuando se realiza una solicitud de E/S para escribir poco. Cada vez
que se produce una escritura, el software que gestiona el vector de discos debe actualizar no solo los datos del
usuario, sino también los bits de paridad correspondientes. Ver Anexo fotográfico.
RAID DE NIVEL 5
RAID 5 está organizado de forma similar a RAID 4. La diferencia es que RAID 5 distribuye las bandas de
paridad a través de todos los discos. Una asignación normal es un esquema de turno rotatorio. Para un vector de
n discos, la banda de prioridad esta sobre un disco distinto para las n primeras bandas y, después, se repite el
patrón.
La distribución de las bandas de paridad a través de todos los discos evita el potencial cuello de botella en la E/S
del sistema RAID 4 que tiene solo un disco de paridad. Ver Anexo fotográfico.
RAID DE NIVEL 6
En el esquema RAID 6, se realizan dos cálculos distintos de paridad, y se almacenas en bloques independientes
de diferentes discos. Así, un vector RAID 6 cuyos datos de usuario requieren N discos está formado por N + 2
discos.
La ventaja de RAID 6 es que ofrece una disponibilidad de datos extremadamente alta. Deberían fallar tres discos
en el intervalo MTTR (Mean Time To Repair, Tiempo Medio de Reparación) para hacer que los datos no
estuvieran disponibles. Por otro lado, RAID 6 sufre una importante penalización de escritura, porque cada
escritura afecta a dos bloques de paridad.
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 15 de 20
8. Cache de Disco
8.1 Introducción
Una cache de disco es una memoria intermedia (buffer) situada en la memoria principal para sectores de disco. La
cache contiene una copia de algunos sectores del disco. Cuando se realiza una solicitud de E/S para un sector
especifico, se comprueba si el sector está en el cache del disco. Si es así, la solicitud se satisface con la cache. Si
no, se lee el sector solicitado del disco y se coloca en la cache. Debido al concepto de cercanía de referencias,
cuando se traiga un bloque de datos a la cache para satisfacer una solicitud de E/S, será probable que se
produzcan referencias futuras al mismo bloque.
8.2 Consideraciones sobre el diseño
Cuando se satisface una petición de E/S de la cache de disco, se deben entregar los datos de la cache al proceso
solicitante. Esto se puede hacer o bien copiando el bloque de datos almacenado en la memoria principal asignada
a la cache de disco hasta la memoria asignada al proceso de usuario, o bien utilizando simplemente la técnica de
memoria compartida pasando un puntero al bloque correspondiente de la cache de disco.
Un segundo aspecto, está relacionado con la estrategia de remplazo. Cuando se trae un nuevo sector a la cache
de disco, se deben remplazar uno de los bloques existentes. El algoritmo más frecuentemente utilizado es el
LRU (Least Recently Used).
9. E/S en Unix svr4
Cada dispositivo particular de E/S tiene asociado un archivo especial gestionado por el sistema de archivos, del
que se lee y se escribe de la misma forma que los archivos de datos del usuario. Así se ofrece una interfaz
uniforme y bien definida con los usuarios y los procesos, para leer o escribir se realizaran solicitudes al archivo
especial asociado con el dispositivo.
En Unix hay dos tipos de E/S: amortiguada y no amortiguada, la primera aprovecha los buffers del sistema,
mientras que la segunda utiliza DMA. Con E/S amortiguada se pueden usar dos clases de memorias
intermedias: sistema de memoria cache y colas de caracteres.
Cache Buffer
En Unix es esencialmente una cache de disco; las operaciones de E/S con el disco se gestionan a través de ellas.
La transferencia de datos entre la cache y el espacio de usuario se produce mediante DMA.
Para administrar la cache del buffer se van a mantener tres listas:
Lista de libre: todas las entradas están disponibles para asignación (una entrada se refiere a un buffer,
cada entrada almacena un sector del disco).
Lista de dispositivos: lista de todos los buffers que están asociados actualmente a cada disco.
Cola del gestor de E/S: lista de buffers que se someten o esperan a la E/S con un dispositivo
determinado.
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 16 de 20
Para minimizar el tiempo de Búsqueda, la lista de dispositivos se organiza como una tabla de dispersión (hash)
usando una técnica similar al desbordamiento encadenado. Existe una tabla de dispersión de tamaño fijo que
contiene puntero al buffer de la cache. Cada referencia a la forma se traduce en una entrada particular de la tabla
de dispersión, para todas las referencias que se traduzcan en una misma entrada de la tabla, si el bloque
correspondiente esta en el buffer de la cache, entonces dicho buffer estará en la cadena asociada.
Cola de Caracteres
El dispositivo de E/S escribe en una cola de caracteres, de la que lee el proceso o, también el proceso escribe y el
dispositivo lee de ella. De esta manera las colas de caracteres solo podrán ser leídas una vez, a medida que se lee
cada carácter, este es destruido.
E/S no Amortiguadas:
Es un simple DMA entre el dispositivo y el espacio del proceso, es siempre el método más rápido de realizar E/S
para un proceso. Los procesos que realizan E/S no amortiguada quedan bloqueados en la memoria principal y no
pueden ser expulsados al disco. Esta condición reduce las oportunidades de expulsión inmovilizando parte de la
memoria principal y reduciendo el rendimiento global del sistema. Además el dispositivo de E/S se paraliza
junto al proceso mientras dure la transferencia, quedando inasequible para otros procesos.
Dispositivos Unix
Unix reconoce las cinco clases de dispositivos siguientes:
Unidades de Discos: son dispositivos orientados a bloques y la E/S con estos dispositivos tiende a ser no amortiguada o mediante alguna cache de buffer
Unidades de Cinta: son funcionalmente similares a las de disco y emplean esquemas similares de E/S. Terminales: realizan un intercambio de caracteres relativamente lento, la E/S con ellos hace
normalmente uso de colas de caracteres. Líneas de comunicación: requieren el procesamiento de en serie de bytes de datos para entrada o
salida y se gestionan mejor mediante colas de caracteres. Impresoras: las lentas emplean normalmente colas de caracteres, mientras que las rápidas pueden
utilizar E/S no amortiguada.
La siguiente tabla muestra los tipos de E/S a que se ajusta cada clase de dispositivo:
10. E/S en Windows
E/S no Amortiguada Cache de buffer Cola de Caracteres
Unidades de Discos X X
Unidades de Cinta X X
Terminales
X
Líneas de
comunicación
X
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 17 de 20
Gestor de E/S: Es el responsable de todas las operaciones de todas las operaciones de E/S para el sistema
operativo y ofrece una interfaz uniforme a la que todos los tipos de controladores pueden llamar.
Módulos Básicos de E/S
El gestor de E/S está formado por cuatro módulos:
Gestor de cache: Gestiona por completo el subsistema de E/S. Este ofrece un servicio de caches en la
memoria principal para todos los sistemas de archivos y componentes de red. El tamaño de la cache se
puede aumentar y disminuir debido a una actividad especial como la variada cantidad de memoria física
disponible. El gestor de caches incluye dos servicios para mejorar de manera global el rendimiento:
o Escritura retardada: el sistema actualiza los registros en la cache solamente y no en el disco.
Más tarde, cuando la demanda del procesador es baja, el gestor de cache escribe los cambios en
el disco.
o Confirmación retardada: Es similar a la escritura retardada para el procesamiento de
transacciones. En vez de marcar inmediatamente una transacción como finalizada con éxito, el
sistema de caches toma la información comprometida y después la escribe en el sistema lógico de
archivos para procesos antecedentes.
Controlador del sistema de archivos: El gestor de E/S trata al controlador del sistema de archivos
como otra unidad de dispositivo y encamina los mensajes para ciertos volúmenes a controladores de
software adecuados para ese adaptador de dispositivo.
Controladores de red: W2K incluye una red integrada con capacidades y apoyo para aplicaciones
distribuidas.
Controladores de dispositivos de hardware: estos acceden a los registros hardware de los dispositivos
periféricos a través de puntos de entrada en las bibliotecas de enlace dinámico del ejecutor de W2K.
Existe un conjunto de estas rutinas para cada plataforma que soporta W2K.
Gestión de E/S en Windows 2000
Gestor de E/S
Gestor de cache
Controladores de sistema de
archivos
Controladores de red
Controladores de dispositivos
hardware
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 18 de 20
E/S asincrónica y sincrónica
W2K ofrece dos modos de operación de E/S: asíncrono y síncrono. El modo asíncrono se utiliza siempre que es
posible para optimizar el rendimiento de una aplicación. Con E/S asíncrona una aplicación inicia una operación
de E/S y puede continuar ejecutando mientras la solicitud de E/S se completa. Con E/S síncrona la aplicación se
bloquea hasta que finaliza la operación de E/S.
W2K ofrece 4 técnicas distintas para señalizar la finalización de E/S:
Señalizar un objeto dispositivo del núcleo: se activa un indicador asociado a un objeto dispositivo
cuando una operación sobre ese objeto finaliza. El hilo que llama a la operación de E/S puede continuar
la ejecución hasta que alcanza un punto donde debe parar hasta que la operación de E/S termine. En este
punto, el hilo puede esperar hasta que termina la operación y continuar. Esta técnica es sencilla y fácil de
usar pero no apropiada para gestionar múltiples solicitudes de E/S.
Señalizar un objeto suceso del núcleo: permite múltiples solicitudes de E/S contra un solo dispositivo
o archivo. El hilo crea un suceso para cada solicitud. Más tarde, el hilo puede esperar a una sola de estas
solicitudes o a todo el conjunto de solicitudes.
E/S alertable: hace uso de una cola asociada a un hilo, conocida como cola de Llamada a Procedimiento
Asíncrono (APC). En este caso, el hilo hace solicitudes de E/S y el gestor de E/S sitúa los resultados de
estas solicitudes en la cola APC de los hilos llamadores.
Puertos de finalización de E/S: se utiliza en W2K server para optimizar el uso de hilos. En esencia,
hay una reserva de hilos disponibles para su uso, así que no es necesario crear un nuevo hilo para
gestionar una nueva solicitud.
Software Raid
W2K soporta dos clases de configuraciones RAID:
RAID de hardware: discos físicos independientes combinados en un o más discos lógicos por medio del
controlador de disco o un hardware de armario de almacenamiento en disco. En este la interfaz del
controlador gestiona la creación y regeneración de la información redundante.
RAID de software: espacio de disco no contiguo combinado en una o más particiones lógicas por el
contador de disco del software de tolerancia a fallos. Este implementa la funcionalidad de RAID como
parte del Sistema Operativo y se puede usar con cualquier conjunto de varios discos.
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 19 de 20
SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco
Página 20 de 20
Bibliografía
[1] William Stallings. Sistemas Operativos - Aspectos internos y principios de diseño - 5ºEdicion. Prentice Hall.
Madrid 2005. ISBN: 978-84-205-4462-5.
[2] Andrew S. Tanenbaum. Sistemas Operativos – Diseño e Implementación – 2º Edición.
Prentice Hall HISPANOAMERICANA. México 1998. ISBN: 970-17-0185-B.