gestión de e/s y planificación del disco · pdf fileexisten grandes diferencias...

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

Upload: dangtuong

Post on 31-Jan-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.

Page 2: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.

Page 3: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.

Page 4: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.

Page 5: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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

Page 6: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.

Page 7: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.

Page 8: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.

Page 9: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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

Page 10: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.

Page 11: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.

Page 12: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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

Page 13: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.

Page 14: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.

Page 15: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.

Page 16: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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

Page 17: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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

Page 18: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.

Page 19: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

SISTEMAS OPERATIVOS Gestión de E/S y planificación del disco

Página 19 de 20

Page 20: Gestión de E/S y planificación del disco · PDF fileExisten grandes diferencias entre las clases de dispositivos, entre las diferencias principales están las siguientes:

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.