Unidad5

27
Sistemas Operativos I Unidad 5 5. ADMINISTRACIÓN DE ENTRADA/SALIDA 5.1 PRINCIPIOS DE HARDWARE Y SOFTWARE DE E/S El control de las operaciones de E/S es otra de las misiones que debe realizar un sistema operativo para facilitar el uso de los distintos dispositivos que forman parte de un sistema informático. Los dispositivos hardware de la computadora cuya misión es la de intercambiar datos con el procesador y la memoria principal en un sentido, en otro o en ambos, comúnmente denominados periféricos, no son fáciles ni cómodos de utilizar directamente por los procesos. Por otro lado, los procesos no necesitan conocer las peculiaridades ni características de dichos dispositivos, sino únicamente intercambiar datos con ellos. Por tanto, estos detalles deben ser ocultados para que de este modo las operaciones de E/S sean independientes del tipo y modelo del dispositivo (Figura 5.1). En general, el software de gestión de las operaciones de E/S que posee un sistema operativo representa, aproximadamente, el 50 por ciento del total, por lo que esta parte es de suma importancia, más para el diseñador y programador de sistemas que para los programadores de aplicaciones y usuarios, los cuales necesitan, al menos, un conocimiento global de dicha gestión. 5.1.1 DISPOSITIVOS DE HARDWARE A lo largo de la historia de las computadoras se han desarrollado muchos tipos de dispositivos que podemos reunir en tres grandes grupos: Dispositivos de almacenamiento Terminales Dispositivos de Comunicaciones Universidad Autónoma de Nayarit 1

description

Unidad V. de la materia de S.O

Transcript of Unidad5

Page 1: Unidad5

Sistemas Operativos I Unidad 5

5. ADMINISTRACIÓN DE ENTRADA/SALIDA 5.1 PRINCIPIOS DE HARDWARE Y SOFTWARE DE E/S El control de las operaciones de E/S es otra de las misiones que debe realizar un sistema operativo para facilitar el uso de los distintos dispositivos que forman parte de un sistema informático. Los dispositivos hardware de la computadora cuya misión es la de intercambiar datos con el procesador y la memoria principal en un sentido, en otro o en ambos, comúnmente denominados periféricos, no son fáciles ni cómodos de utilizar directamente por los procesos. Por otro lado, los procesos no necesitan conocer las peculiaridades ni características de dichos dispositivos, sino únicamente intercambiar datos con ellos. Por tanto, estos detalles deben ser ocultados para que de este modo las operaciones de E/S sean independientes del tipo y modelo del dispositivo (Figura 5.1). En general, el software de gestión de las operaciones de E/S que posee un sistema operativo representa, aproximadamente, el 50 por ciento del total, por lo que esta parte es de suma importancia, más para el diseñador y programador de sistemas que para los programadores de aplicaciones y usuarios, los cuales necesitan, al menos, un conocimiento global de dicha gestión.

5.1.1 DISPOSITIVOS DE HARDWARE A lo largo de la historia de las computadoras se han desarrollado muchos tipos de dispositivos que podemos reunir en tres grandes grupos:

• Dispositivos de almacenamiento

• Terminales

• Dispositivos de Comunicaciones

Universidad Autónoma de Nayarit 1

Page 2: Unidad5

Sistemas Operativos I Unidad 5

A su vez, los dispositivos se pueden clasificar, atendiendo al tipo de información que manejan y cómo lo hacen, en los siguientes grupos:

• Dirigidos a bloques. Tratan la información en bloques de tamaño fijo (256 a 1,024 bytes). Su característica principal es que se puede leer cada bloque como una unidad independiente de las demás (por ejemplo los discos

• Dirigidos a carácter. Entregan o aceptan cadenas de caracteres sin tener en cuenta ninguna estructura prefijada. No son direccionables ni pueden realizar operaciones de búsqueda (por ejemplo una terminal).

5.1.2 DISPOSITIVOS DE ALMACENAMIENTO Discos Son los dispositivos para almacenamiento secundario más comunes. Aceptan y recuperan datos a alta velocidad (superior a 2 Mbits/seg.). Los datos son transferidos entre el disco y la memoria en bloques. Los discos pueden ser fijos y removibles. Los primeros no se pueden cambiar, mientras que los segundos pueden ser intercambiados, con los que se consigue un mayor volumen de almacenamiento. Pueden reunirse varios discos en un paquete (disk pack) (disco Duro) para conseguir con ello un mayor almacenamiento en un reducido espacio. Todos los discos de un disco duro giran a la misma velocidad (aproximadamente 60 vueltas/segundos). Cada disco se divide en pistas concéntricas de tal forma que todas las homólogas de los distintos discos forman lo que se denomina cilindro. Cada pista, a su vez, se divide en sectores, y cada sector contiene un bloque de información. Los discos flexibles (floppy disk) son similares, pero sólo constan de un disco y son siempre removibles. Estos discos giran a menos velocidad, y sólo lo hacen cuando necesitan realizar una transferencia de información. Cada sistema operativo necesitará conocer como es el formato que tiene el disco, es decir, cuantos sectores tiene cada pista y cuantos bytes pueden ser almacenados en un sector. Si un sector es detectado como incorrecto, se marca como tal, y el sistema operativo no vuelve acceder al mismo. La lectura y escritura en un disco se realiza gracias a una cabeza magnética que se mueve a lo largo de un radio del disco, hacia el centro o hacia la periferia, en un movimiento conocido como búsqueda (seeking). Las órdenes de magnitud del tiempo invertido en esta operación oscilan entre 20 y 80 mseg. En el caso de los disk pack (discos duros) existe una cabeza por cara de cada disco, de manera que el movimiento de la misma es simultaneo, recorriendo la misma pista de cada disco en el mismo instante.

Cinta magnética Se destinan principalmente al almacenamiento de grandes archivos de datos y a copias de seguridad periódicas. Al igual que los discos, se trata de un medio magnético consistente en una cinta plástica recubierta por una cara de una fina capa de oxido magnetizable. Generalmente se denomina trama (frame) a un conjunto de nueve bits de los cuales 8 se destinan para bytes de datos y el noveno se conoce como bit de paridad, para el control de errores.

Universidad Autónoma de Nayarit 2

Page 3: Unidad5

Sistemas Operativos I Unidad 5

El empaquetamiento de datos se realiza a densidades que oscilan entre 800 y 6,250 tramas por pulgada de cinta. La densidad de una cinta es constante en toda ella. Las tramas se agrupan en registros separados por huecos (GAPS) y, a su vez los registros se agrupan en archivos (files) separados por huecos mayores que los anteriores. La transferencia de datos a/o desde cinta debe ser realizada a través de buffers de tamaño adecuado. Muchos sistemas operativos graban un registro inicial en la cinta incluyendo el número de serie, propietario y otras informaciones necesarias para el sistema operativo. Este registro se conoce como etiqueta (Label). La lectura de las cintas se pueden hacer en dos sentidos: avance y retroceso.

5.1.3 TERMINALES En general se denomina terminal al conjunto formado por un teclado y una pantalla conectados a la computadora para introducir datos a través del primero y recibirlos a través de la segunda. Los terminales pueden dividirse en dos categorías: los que se conectan a través del estándar RS-232 y los mapeados en memoria. Terminales RS-232 Constan de teclado y pantalla que transmiten bit a bit en serie. La velocidad de transmisión de estos bits viene dada en baudios (bits/seg.), siendo valores utilizados: 300, 1.200, 2.400, 1.800 y 9.600. Estos terminales se conectan a la computadora a través de un cable físico. Este cable en su entrada a la computadora termina en una tarjeta hardware o interfaz y a subes se conectan al bus de dicha computadora. Se conocen, generalmente, con el nombre genérico TTY. Terminales mapeados en memoria No necesitan línea de conexión a la computadora ya que están directamente conectados al bus del mismo. En estos terminales, el teclado se conecta directamente al bus y es independiente a la pantalla.

Líneas de comunicaciones Son dispositivos cuya misión es la conectar entre si computadoras y estos con sus terminales cuando la distancia es grande. Suele llevar consigo elementos físicos, como puede ser la propia línea, los adaptadores a la línea denominados módems, y lógicos, como puede ser el protocolo de comunicación y el método de control y detección de errores que se utilice. Las líneas de comunicaciones pueden ser de varios tipos:

Síncronas o Asíncronas. Según se transmita la información entre dispositivos de forma sincronizada (reloj) o no. Según el sentido de la transmisión. • Simplex cuando los datos se transmiten en una sola dirección. • Half-duplex si los datos pueden transmitirse en ambas direcciones pero no

simultáneamente. • Full-duplex cuando los datos pueden transmitirse en ambas direcciones

simultáneamente.

Universidad Autónoma de Nayarit 3

Page 4: Unidad5

Sistemas Operativos I Unidad 5

5.1.4 INTERFAZ PROCESADOR- PERIFÉRICO La velocidad y complejidad de los periféricos determinan cómo deben ser conectados al procesador. Estudiaremos tres tipos de conexión:

Registros Los dispositivos se pueden conectar al procesador por los registros de los dispositivos que pueden ser accedidos directamente en una zona determinada de la memoria o, indirectamente, por medio de instrucciones hardware que devuelven el estado del mismo. Estos registros tienen cuatro misiones:

• Transferir el estado del dispositivo (status). • Transferir instrucciones al dispositivo. • Transferir datos desde el dispositivo. • Transferir datos al dispositivo.

Ahora bien, el procesador sólo puede dar comienzo a las operaciones de E/S sin poder controlar su terminación, pero para ver cuándo se ha completado una operación se pueden emplear dos métodos:

• Polling. Consiste en leer constantemente el registro de status del dispositivo. Tiene el inconveniente de ocupar el procesador un tiempo no deseado.

• Interrupciones. El procesador continúa con otros trabajos y sólo cuando el dispositivo concluye la operación llama la atención del procesador, interrumpiéndole para que trate dicha situación y realice las acciones que considere necesarias, es decir, sirva la interrupción.

Controladores Los dispositivos complejos (discos...) no se conectan directamente al procesador, sino que lo hacen a través de un controlador que contiene el estado del dispositivo (status), controla el mismo y chequea los datos transferidos. El controlador E/S es que acepta las órdenes del procesador y se comunica con él a través de registros como si se tratara de un dispositivo. El controlador, también llamado unidad de control, puede manejar varios dispositivos del mismo tipo. Canales Normalmente los controladores se conectan al procesador a través de un canal o procesador de E/S(IOP- Input Output Processor). El propósito de un canal es conseguir que los dispositivos sean tratados como virtuales, abstractos o transparentes. Los canales son manejados por comandos y cuando terminan la operación devuelven el status correspondiente e interrumpen al procesador. Los Canales pueden ser de varios tipos:

• Selectores. Pueden manejar varios dispositivos, pero sólo pueden transferir datos de uno en uno.

• Multiplexores. Manejan varios dispositivos y pueden transferir datos simultáneamente

Universidad Autónoma de Nayarit 4

Page 5: Unidad5

Sistemas Operativos I Unidad 5

5.1.5 DISPOSITIVOS DE ENTRADA/SALIDA Los dispositivos externos que tienen que hacer E/S con los computadores pueden clasificarse, básicamente, en tres categorías:

• Dispositivos legibles por los humanos apropiados para la comunicación con el usuario Como ejemplo se tienen los terminales de video, que constan de un teclado, una pantalla y, quizá, otros dispositivos como un ratón o una impresora.

• Dispositivos legibles por la máquina: adecuados para comunicarse con equipos electrónicos, como discos, unidades de cinta, sensores, controladores e impulsores.

• Dispositivos de comunicaciones: apropiados para comunicarse con dispositivos lejanos. Por ejemplo, adaptadores de líneas digitales y módems.

Existen grandes diferencias entre las clases de dispositivos y éstas son, incluso, sustanciales, dentro de cada clase. Las siguientes son las diferencias principales:

• Velocidad de los datos: Puede haber una diferencia de varios órdenes de magnitud en las velocidades de transmisión de datos. La Tabla 3.1 ofrece varios ejemplos.

• 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 las utilidades de apoyo. Por ejemplo, un disco que almacena archivos necesita el soporte de un software de gestión de archivos. En cambio, un disco usado como almacén de páginas de un sistema de memoria virtual dependerá del uso que se haga del hardware y el software de memoria virtual. Además, estas aplicaciones tendrán su impacto en los algoritmos de planificación del disco. Como ejemplo adicional, un terminal puede valer para un usuario normal o para el administrador del sistema. El uso que se le dé exigirá diferentes niveles de privilegio y, quizá, diferentes prioridades en el sistema operativo.

• Complejidad del control: Una impresora necesita una interfaz de control relativamente simple. En cambio, un disco es mucho más complejo. El efecto de estas diferencias en el sistema operativo es filtrado, hasta cierto punto, por la complejidad del módulo de E/S que controla al dispositivo, como se discute en la sección siguiente.

• Unidad de transferencia: Los datos pueden transmitirse como flujos de bytes o caracteres (por ejemplo, en un terminal) o en bloques mayores (por ejemplo, con un disco).

• 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 paridad.

• Condiciones de error: la naturaleza de los errores, la manera en que se informa sobre ellos, sus consecuencias y el rango disponible de respuestas diferentes ampliamente de un dispositivo a otro.

Esta diversidad conduce hacia un enfoque consistente y uniforme de la E/S, que es difícil de alcanzar, tanto desde el punto de vista del sistema operativo como de los procesos de un usuario.

Universidad Autónoma de Nayarit 5

Page 6: Unidad5

Sistemas Operativos I Unidad 5

Dispositivos Comportamiento Interacción Velocidad de Transmisión

(Kb/sg)

Teclado Entrada Humano 0,01

Ratón Entrada Humano 0,02

Micrófono Entrada Humano 0,02

Escáner Entrada Humano 200

Altavoces Salida Humano 0,6 Impresora de

línea Salida Humano 1

Impresora láser Salida Humano 100

Pantalla gráfica Salida Humano 30.000

CPU a buffer Salida Humano 200

Terminal de red Entrada/Salida Máquina 0,05

Adaptador de LAN Entrada/Salida Máquina 200

Disco óptico Almacenamiento Máquina 500

Cinta magnética Almacenamiento Máquina 2.000

Disco magnético Almacenamiento Máquina 2.000 Tabla 3.1 Ejemplos de Dispositivos de E/S clasificados por comportamiento, interacción y velocidad. 5.1.6 ORGANIZACIÓN DE LAS FUNCIONES DE 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 proceso 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, continua la ejecución de las instrucciones siguientes y es interrumpido por el modulo de E/S cuando éste ha completado su trabajo. Las instrucciones siguientes pueden ser del mismo proceso, si no es necesario para éste esperar la terminación de la E/S. En otro caso, el proceso se ve suspendido a la espera de la interrupción, mientras se realiza otro trabajo.

• Acceso directo a memoria (DMA): Un modulo de DMA controla el intercambio de datos entre la memoria principal y un modulo de E/S. El procesador envía una petición de transferencia de un bloque de datos al módulo de DMA y se ve interrumpido sólo cuando el bloque entero se haya transferido.

La Tabla 3.2 indica la relación entre estas tres técnicas. En la mayoría de los sistemas informáticos, el DMA es la forma dominante de transferencia ofrecida por el sistema operativo.

Universidad Autónoma de Nayarit 6

Page 7: Unidad5

Sistemas Operativos I Unidad 5

Tabla 3.2 Técnicas de E/S 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)

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 caso se hace esto más evidente que en las funcione de la E/S. Las etapas de su evolución pueden resumirse como sigue:

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 el procesador parece aislarse de 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 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. El módulo de E/S es mejorado para constituir un procesador separado con un conjunto de instrucciones especializado para realizar E/S. El procesador central (CPU) ordena al procesador de E/S la ejecución de los programas de E/S en la memoria principal. El procesador de E/S va en busca de estas instrucciones y las ejecuta si la intervención de la CPU. Esto permite a la CPU precisar que una secuencia de actividades de E/S se vea interrumpida sólo cuando haya terminado la secuencia entera.

6. El módulo de E/S posee su 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 de la CPU. Un uso muy común de tal 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 de la CPU. El procesador central se ve liberado cada vez más de las tareas relacionadas con la E/S, mejorando así el rendimiento. En las dos últimas etapas (5 y 6) se produce un cambio sustancial con la introducción del concepto de módulo de E/S capaz de ejecutar programas.

Una indicación sobre la terminología: Para todos los módulos descritos en los pasos 4, 5 y 6, el término "acceso directo a memoria" (DMA) es apropiado porque todos contemplan un control directo de la memoria principal por parte del módulo de E/S. Además, el módulo de E/S de la etapa 5 es a menudo denominado canal de E/S, mientras que al de la etapa 6 se le llama procesador de E/S.

Universidad Autónoma de Nayarit 7

Page 8: Unidad5

Sistemas Operativos I Unidad 5

Sin embargo, cada término se aplica, en algunos casos, a ambas situaciones. En la parte siguiente de esta sección se empleará el término canal de E/S para referirse a ambos tipos de módulos.

Acceso Directo a Memoria La figura 5.2 muestra, en líneas generales, la lógica del DMA. La unidad de DMA es capaz de imitar a la CPU y, de hecho, es capaz de relevar a la CPU en el control del sistema para transferir los datos con la memoria por el bus del sistema. Normalmente, el módulo de DMA debe usar el bus sólo cuando la CPU no lo necesite, o debe forzar a la CPU a que suspenda temporalmente su operación. Esta última técnica es más común y se denomina robo de ciclos porque la unidad de DMA debe robar un ciclo del bus.

Figura 5.2 Diagrama de bloques de un DMA típico

La figura 5.3 muestra dónde puede suspenderse a la CPU dentro del ciclo de una instrucción. En cada caso, la CPU se ve suspendida justo antes de que necesite usar el bus. Entonces, la unidad de DMA transfiere una palabra de memoria y devuelve el control a la CPU. Nótese que esto no es una interrupción; la CPU no tiene que guardar el contexto y hacer otra cosa. Más bien, la CPU espera un ciclo del bus. El efecto final es que la CPU ejecuta más lentamente. Sin embargo, el DMA es mucho más eficiente que la E/S programada o dirigida por interrupciones para una transferencia de varias palabras.

Universidad Autónoma de Nayarit 8

Page 9: Unidad5

Sistemas Operativos I Unidad 5

Figura 5.3 Puntos de ruptura por DMA e interrupciones en un ciclo de instrucción El mecanismo de DMA puede configurarse de muchas formas. Algunas posibilidades se muestran en la figura 5.4. En el primer ejemplo, todos los módulos comparten el mismo bus del sistema. El módulo del DMA, actuando como una CPU suplente, realiza E/S programada para intercambiar datos entre la memoria y el módulo de E/S a través del módulo del DMA. Esta configuración, aunque puede ser barata, es claramente ineficiente. Como con la E/S programada, cada transferencia de una palabra consume dos ciclos de bus. El número de ciclo de bus requerido puede ser acortado sustancialmente mediante la integración de las funciones del DMA y de la E/S. Como muestra la figura 5.4b, esto significa que debe haber un camino entre el módulo del DMA y uno o más módulo de E/S que no pasen por el bus del sistema. La lógica del DMA puede formar parte del módulo de E/S, o puede constituir un módulo separado que controle uno o más módulos de E/S. Esta idea puede llevarse un paso mas allá si se conectan los módulos de E/S al módulo de DMA mediante un bus de E/S (figura 5.4c). Esto reduce a una el número de interfaces de E/S en el módulo de DMA y proporciona una configuración fácilmente ampliable. En todos los casos (figura 5.4b y 5.4c), el bus del sistema que el módulo de DMA comparte con la CPU y la memoria principal es utilizado por el módulo de DMA sólo para intercambiar señales de control con la CPU. El intercambio de datos entre el módulo del DMA y el de E/S tiene lugar fuera del bus del sistema.

Universidad Autónoma de Nayarit 9

Page 10: Unidad5

Sistemas Operativos I Unidad 5

Figura 5.4 Configuraciones posibles de DMA

Características de los Canales de E/S El canal de E/S es una extensión del concepto de DMA. Un canal de E/S tiene la capacidad de ejecutar instrucciones de E/S, lo que le da un control total sobre las operaciones de E/S. En un sistema informático que conste de tales dispositivos, las instrucciones de E/S se almacenan en la memoria principal y serán ejecutadas por un procesador de propósito específico en el mismo canal de E/S. Así, la CPU inicia una transferencia de E/S ordenando al canal de E/S que ejecute un programa en la memoria. El programa designará a el (los) dispositivo(s), la(s) zona(s) de memoria para lectura o escritura, la prioridad y las acciones a tomar bajo ciertas condiciones de error. Hay dos tipos comunes de canales de E/S, como se ilustra en la figura 5.5. Un canal selector controla varios dispositivos de alta velocidad y se dedica a la transferencia de datos con estos dispositivos, cada vez con uno. De esta forma, el canal de E/S elige un dispositivo y realiza la transferencia. Un controlador o módulo de E/S muy parecido a los antes descritos, maneja un dispositivo o un pequeño conjunto de dispositivos. Así, el canal de E/S actúa en vez de la CPU manejando estos controladores.

Universidad Autónoma de Nayarit 10

Page 11: Unidad5

Sistemas Operativos I Unidad 5

Un canal multiplexor puede manejar la E/S con varios dispositivos al mismo tiempo. Para dispositivos de baja velocidad, un multiplexor de bytes recibe o transmite caracteres de/a varios dispositivos tan rápido como sea posible. Por ejemplo, el flujo de caracteres resultante para tres dispositivos con velocidades diferentes de datos y con flujos individuales A1 A2A3A4..., B1 B2 B3B4...,ClC2C3C4... podría ser AlBlClA2C2A3B2C3A4, y así sucesivamente. Para dispositivos de alta velocidad, un multiplexor de bloques puede mezclar los bloques de datos de varios dispositivos. 5.1.7 SOFTWARE DE CONTROL DE ENTRADA/SALIDA (Drivers) Se define a los Drivers como el software formado por un conjunto de rutinas y tablas que, formando parte del núcleo del sistema operativo, ejecutan y controlan todas las operaciones de entrada y salida sobre cualquier periférico conectado a la computadora, siendo particulares para cada dispositivo. Un Driver no es un proceso o tarea independiente gestionada por el sistema operativo, sino un conjunto de tablas en las que se aloja la información que caracteriza a cada periférico conectado a la computadora, y una serie de rutinas que controlan toda la gestión de los mismos y las informaciones que fluyen en un sentido o en otro. Se encuentran permanentemente alojados en memoria principal y requieren una elevada rapidez de ejecución sin formar parte del proceso de usuario que lo utilice (figura 5.6).

Figura 5.5 Arquitectura de un canal de E/S

Universidad Autónoma de Nayarit 11

Page 12: Unidad5

Sistemas Operativos I Unidad 5

El tratamiento por el núcleo de un sistema operativo de toda la información de E/S desde, o a un periférico, se puede dividir en dos niveles para su estudio:

• Tratamiento independiente de periférico: Esta formado por el conjunto de rutinas que procesan información sin atender a las características propias del periférico.

• Tratamiento dependiente del periférico: Es el conjunto de rutinas que el núcleo del sistema operativo ofrece para controlar el propio dispositivo periférico.

Funciones de un Driver Entre las funciones que realiza un Driver podemos citar las siguientes:

• Definir las características del periférico al resto del sistema operativo. Inicializar los registros asociados al periférico en el momento del arranque (bootstrap) del sistema operativo. ?? Habilitar y deshabilitar el dispositivo para un proceso.

• Procesar todas las operaciones de E/S solicitadas por un proceso.

• Cancelar toda operación de E/S en el momento que sea necesario por cualquier motivo.

• Procesar todas las interrupciones hardware generadas por el propio periférico.

• Tratar los errores y estado del dispositivo haciendo la correspondiente comunicación al usuario.

Universidad Autónoma de Nayarit 12

Page 13: Unidad5

Sistemas Operativos I Unidad 5

5.1.8 ASPECTOS DE DISEÑO EN LOS SISTEMAS OPERATIVOS Objetivos de Diseño Hay dos objetivos primordiales en el diseño de la E/S: eficiencia y generalidad. La eficiencia es importante porque las operaciones de E/S constituyen a menudo un cuello de botella en los sistemas informáticos. Si se puede observar de nuevo la tabla 3.1 se puede comprobar que la mayoría de los dispositivos de E/S son extremadamente lentos en comparación con la memoria principal y el procesador. Una manera de abordar este problema es el uso de la multiprogramación, que, como se ha visto, hace 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 mantenga el nivel con la actividad del procesador. S e puede utilizar el intercambio para introducir más procesos listos para ejecución y mantener así el procesador ocupado, pero ésta es una operación de E/S en sí misma. De este modo, ha habido un gran esfuerzo en el diseño de esquemas de E/S para mejorar la eficiencia. El segundo gran objetivo es la generalidad. En interés de la simplicidad y la exención de errores, será deseable manejar todos los dispositivos de una manera uniforme. Esta afirmación se aplica tanto a la manera en que los procesos contemplan a los dispositivos de E/S como a la forma en que el sistema operativo gestiona los dispositivos de E/S y las operaciones. Debido a la diversidad de características de los dispositivos, en la práctica es difícil conseguir una generalidad verdadera. Lo que puede hacerse es emplear un enfoque jerárquico y modular para el diseño de las funciones de E/S. Este proceder ocultará la mayoría de los detalles de la E/S con dispositivos en rutinas de bajo nivel, de forma que los procesos y los niveles superiores del sistema operativo contemplen a los dispositivos en términos de funciones generales, como la lectura, 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 rangos característicos de tiempo y su nivel de abstracción. Seguir este enfoque conduce a una organización del sistema operativo en un conjunto de niveles. Cada nivel realiza una parte afín de las funciones necesarias del sistema operativo.

Cada nivel cuenta con el nivel inferior para realizar funciones más básicas y ocultar los detalles de éstas últimas. Así mismo, cada nivel ofrece servicios al nivel superior. En el mejor 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 tiempos 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.

Universidad Autónoma de Nayarit 13

Page 14: Unidad5

Sistemas Operativos I Unidad 5

En el otro extremo del espectro, algunas partes del sistema operativo se comunican con el usuario, que emite órdenes a un ritmo mucho más pausado, como puede ser una cada pocos segundos.

El empleo de un conjunto de niveles se adapta bien a este entorno.

La aplicación específica de esta filosofía a la E/S conduce a la clase de organización sugerida por la figura 5.7. Los detalles de la organización dependen del tipo de dispositivo y de la aplicación. En la figura se presentan las tres estructuras lógicas más importantes. Por supuesto, puede que un sistema operativo no se ajuste exactamente a estas estructuras. Sin embargo, los principios generales son válidos y la mayoría de los sistemas operativos enfocan la E/S más o menos de esta manera. Considérese el caso más simple, el primero, de un dispositivo periférico local que se comunica de una manera sencilla, como un flujo de bytes o de registros (Figura 5.7a). Los niveles implicados son los siguientes:

• E/S lógica: El módulo 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 pedidas por los procesos de usuario, permitiéndoles manejar el dispositivo mediante un identificador y órdenes simples como Abrir, Cerrar, Leer y Escribir.

• E/S con dispositivos: Las operaciones pedidas y los datos (caracteres almacenados, registros, etc.) se convierten en secuencias adecuadas de instrucciones de E/S, comandos para el canal y órdenes al controlador. Se pueden utilizar técnicas de almacenamiento intermedio para mejorar el uso.

• Planificación y control: La planificación y encolado de las operaciones de E/S ocurren en este nivel, así como el control de las operaciones. Las interrupciones se manejan en este nivel, así como 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 dispositivo de comunicaciones, la estructura de E/S (Figura 5.16b) 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, asimismo, de varios niveles.

Por ejemplo, la conocida arquitectura de interconexión de sistemas abiertos (OSI) consta de siete niveles.

La figura 5.7c muestra la estructura representativa de 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:

Universidad Autónoma de Nayarit 14

Page 15: Unidad5

Sistemas Operativos I Unidad 5

Figura 5.7 Un modelo de organización de E/S

Universidad Autónoma de Nayarit 15

Page 16: Unidad5

Sistemas Operativos I Unidad 5

• Gestión de directorios: En este nivel se traducen los nombres simbólicos de archivos a identificadores que referencian directamente al archivo o indirectamente, a través de un descriptor de archivo 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.

• Sistema de archivos: Este nivel se encarga de la estructura lógica de los archivos y las operaciones que pueden especificar los usuarios, 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 memoria deben convertirse en direcciones físicas de la memoria principal, teniendo en cuenta la estructura segmentada y paginada, las referencias lógicas a los archivos y registros deben convertirse en direcciones físicas del almacenamiento secundario, teniendo en cuenta la pista física y la estructura en sectores del archivo. La asignación de espacio de almacenamiento secundario y de buffers de almacenamiento principal también se trata generalmente en este nivel.

5.1.9 ALMACENAMIENTO INTERMEDIO DE E/S Supóngase que un proceso de usuario desea leer bloques de datos de una cinta, uno cada vez, siendo cada bloque de 100 bytes. Los datos van a ser leídos en una zona de datos del proceso de usuario situada en las direcciones virtuales 1000 a 1009. La forma más sencilla de hacerlo sería emitir una orden de E/S (parecida a "Leer Bloque [1000, cinta]") a la unidad de cinta y esperar a que los datos estén disponibles. La espera podría ser activa (comprobando continuamente el estado del dispositivo) o, de manera más práctica, suspender al proceso en espera de una interrupción. Hay dos problemas con este enfoque. En primer lugar, el programa se queda colgado esperando a que la relativamente lenta operación de E/S termine. El segundo problema es que este método de E/S dificulta las decisiones de intercambio del sistema operativo. Las ubicaciones virtuales 1000 a 1009 deben permanecer en memoria principal durante el curso de la transferencia del bloque. De lo contrario, parte de los datos se perderán. Si se está utilizando paginación, la página que contenga dichas direcciones virtuales, por lo menos, debe permanecer en memoria principal. De este modo, aunque algunas partes del proceso puedan ser expulsadas a disco, es imposible expulsar al proceso por completo, aunque el sistema operativo lo desee. Nótese también que hay riesgo de interbloqueo de un solo proceso. Si un proceso emite una orden de E/S, queda suspendido a la espera del resultado, se le expulsa antes de comenzar la operación y se bloquea esperando a que la operación termine. Mientras tanto, la operación de E/S queda bloqueada esperando a que el proceso vuelva a memoria. Para evitar este interbloqueo, la memoria de usuario implicada en la operación de E/S debe quedar fija en la memoria principal, inmediatamente después de emitir la petición de E/S, incluso aunque la operación de E/S se encole y pueda no ejecutarse por algún tiempo.

Universidad Autónoma de Nayarit 16

Page 17: Unidad5

Sistemas Operativos I Unidad 5

Figura 5.8 Esquemas de almacenamiento intermedio de E/S (entrada

) Las mismas consideraciones pueden aplicarse a las operaciones de salida. Si se transfiere un bloque desde el área de un proceso de usuario hacia un módulo de E/S directamente, el proceso se bloqueará durante la transferencia y no puede ser expulsado.

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 un tiempo después de hacer la petición. Esta técnica se conoce con el nombre de almacenamiento intermedio (buffering). En esta sección se van a considerar algunos esquemas de almacenamiento intermedio ofrecidos por los sistemas operativos para mejorar el rendimiento del sistema.

Universidad Autónoma de Nayarit 17

Page 18: Unidad5

Sistemas Operativos I Unidad 5

A la hora de discutir los distintos métodos de almacenamiento intermedio, es a veces importante hacer una distinción entre dos tipos de dispositivos: dispositivos de bloques y dispositivos de flujo. Los dispositivos de bloques almacenan la información en bloques, normalmente de un tamaño fijo, siendo las transferencias de un bloque cada vez. Generalmente, es posible referirse a los bloques por un número de bloque. Los discos y las cintas son ejemplos de dispositivos de bloques. Los dispositivos de flujo transfieren los datos como flujos de bytes; no poseen estructura de bloques. Terminales, impresoras, puertos de comunicación, ratones y otros dispositivos apuntadores y la mayoría de los dispositivos restantes que no son de almacenamiento secundario son dispositivos de flujo.

Buffer Sencillo La clase de apoyo más simple que el sistema operativo puede ofrecer es el buffer sencillo (Figura 5.8b). Cuando un proceso de usuario realiza una petición de E/S, el sistema operativo le asigna a la operación un buffer en la parte del sistema de la memoria principal.

Para los dispositivos de bloques, el esquema del buffer sencillo puede describirse como sigue. Las transferencias de entrada se realizan al buffer del sistema. Cuando se ha completado la transferencia, el proceso mueve el bloque al espacio del usuario y pide otro bloque inmediatamente. Esta técnica se llama lectura por adelantado o entrada anticipada, se realiza esperando que el bloque se necesite más adelante. Para muchos tipos de operaciones, ésta suposición es razonable la mayoría de las veces. La lectura del bloque será innecesaria sólo al final de una secuencia de procesamiento. Generalmente, este método proporciona una mayor velocidad en comparación con la ausencia de almacenamiento intermedio en el sistema. El proceso de usuario puede procesar un bloque de datos mientras se está leyendo el siguiente. El sistema operativo será capaz de expulsar al proceso porque la operación de entrada tiene lugar dentro de la memoria del sistema en vez de en la memoria de usuario del proceso. Sin embargo, esta técnica complica la lógica del sistema operativo. El sistema operativo debe guardar constancia de las asignaciones de buffers del sistema a los procesos de usuario. La lógica de intercambio también se ve afectada: Si la operación de E/S implica al mismo disco que se usa para intercambio, apenas importa encolar las escrituras al disco necesarias para expulsar al proceso. Este intento de expulsar al proceso y liberar memoria principal no comenzará hasta que la operación de E/S finalice, momento en que la expulsión del proceso al disco puede no ser ya apropiada. Se pueden aplicar consideraciones similares a la salida con dispositivos de bloque. Cuando se transmiten datos a un dispositivo, deben copiarse primero del espacio de usuario a un buffer del sistema, desde donde serán finalmente escritos. El proceso que realizó la petición podrá entonces continuar o ser expulsado si es necesario. KNUTH, D. sugiere una tosca pero informativa comparación de rendimiento entre e buffer sencillo y la ausencia de buffer. Supóngase que T es el tiempo necesario para realizar la entrada de un bloque y C es el tiempo que dura la operación que sucede entre dos peticiones de entrada. Sin almacenamiento intermedio, el tiempo de ejecución por bloque es, esencialmente, T + C. Con un buffer sencillo, el tiempo es max(C, T) + M donde M es el tiempo necesario para mover los datos del buffer del sistema a la memoria de usuario. En la mayoría de los casos, esta última cantidad es sustancialmente menor que la primera.

Universidad Autónoma de Nayarit 18

Page 19: Unidad5

Sistemas Operativos I Unidad 5

Para la E/S con dispositivos de flujo, el esquema del buffer sencillo puede aplicarse por líneas o por bytes. La operación línea a línea es adecuada para terminales con desplazamiento (scroll) vertical (a veces llamados terminales "tontos"). Con este tipo de terminales, la entrada del usuario se realiza por líneas, marcadas con un retorno de carro al final de la misma La salida al terminal es similar, línea a línea.

Las impresoras de línea constituyen otro ejemplo de tales dispositivos. La operación por bytes se utiliza en terminales de pantalla completa, donde cada tecla pulsada tiene su significado, así como para otros periféricos como sensores y controladores.

En el caso de la E/S por líneas, se puede emplear el buffer para guardar una sola línea. El proceso de usuario quedará suspendido durante la entrada, esperando la llegada de la línea completa. Para la salida, el proceso de usuario puede colocar una línea de salida en el buffer y seguir procesando. No será suspendido a menos que llegue una segunda línea para enviar antes de que se vacíe el buffer de la primera operación de salida.

Buffer Doble

Se puede realizar una mejora del buffer sencillo asignando dos buffers del sistema a cada operación (figura 5.8c). De esta forma, un proceso puede transfiere datos hacia (o desde) un buffer mientras que el sistema operativo vacía (o rellena) el otro. Esta técnica se conoce como buffer doble o intercambio de buffers.

Para las transferencias de bloques, se puede hacer una estimación aproximada del tiempo de transferencia como el máximo de C y T. Por tanto, es posible que el dispositivo de bloques funcione a su máxima velocidad si C < T. Por otro lado, si C > T, el buffer doble asegura que el proceso no tendrá que esperar en la E/S. En cualquier caso se consigue una mejora con respecto al buffer sencillo. Sin embargo, esta mejora sufre el coste del incremento de la complejidad.

En la entrada de flujos, 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 al buffer doble. Para la operación con bytes, el buffer doble no ofrece ninguna ventaja con respecto a un buffer sencillo de doble tamaño.

Buffer Circular El esquema del buffer doble debería solucionar el flujo de datos entre un dispositivo de E/S y un proceso. 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. El buffer doble puede ser inapropiado si el proceso lleva a cabo rápidas ráfagas de E/S. En este caso, el problema puede mitigarse usando más de dos buffers.

Cuando se emplean más de dos, el conjunto de buffers se conoce con el nombre de buffer circular (figura 5.8d). Cada buffer individual constituye una unidad del buffer circular.

Universidad Autónoma de Nayarit 19

Page 20: Unidad5

Sistemas Operativos I Unidad 5

La Utilidad del Almacenamiento Intermedio

El almacenamiento intermedio es una técnica que soluciona los problemas de "horas punta" en la demanda de E/S. Sin embargo, no existe un tamaño de los buffers que asegure a un dispositivo de E/S ir al mismo ritmo que un proceso cuando la demanda media del proceso es mayor que la que el dispositivo puede admitir. Incluso si se dispone de varios buffers, al final todos se llenarán y el proceso tendrá que quedarse esperando tras operar con una determinada cantidad de datos. Sin embargo, en un entorno de multiprogramación, con la variedad de actividades de E/S y de procesamiento que hay que realizar, el almacenamiento intermedio es una herramienta que puede incrementar la eficiencia del sistema operativo y el rendimiento de los procesos individuales. 5.2 ADMINISTRACIÓN DE DISCOS En los sistemas de computo multiprogramados, la ineficiencia se debe muchas veces al uso inapropiado de recursos de almacenamiento rotacional como discos y tambores.

5.2.1 OPERACIÓN DE UN ALMACENAMIENTO DE DISCO DE CABEZA MÓVIL La figura 5.9 es una representación esquemática de la vista lateral de un disco de cabeza móvil. Los datos se graban sobre una serie de discos magnéticos o platos. Estos discos están conectados por un eje común que gira a una velocidad muy alta (algunos ejes giran a velocidades de 3600 revoluciones por minuto).

Se obtiene acceso a los datos (es decir, se leen o escriben) mediante una serie de cabezas de lectura-escritura, una por cada superficie de disco.

Una cabeza de lectura-escritura sólo puede obtener acceso a los datos inmediatamente adyacentes a ella. Así, antes de que pueda obtenerse acceso a los datos, la porción de la superficie del disco de la que se leerán los datos (o en la que se escribirán) debe girar hasta que se encuentre justo abajo (o arriba) de la cabeza de lectura-escritura. El tiempo que le toma a los datos girar desde la posición en que se encuentran hasta una posición adyacente a la cabeza de lectura-escritura se llama tiempo de latencia.

Universidad Autónoma de Nayarit 20

Page 21: Unidad5

Sistemas Operativos I Unidad 5

Cada una de las diferentes cabezas de lectura-escritura, mientras están fijas en una posición, determinan una pista circular de datos sobre la superficie de un disco. Todas estas cabezas están sujetas a una sola unidad de brazo móvil, la cual puede moverse hacia adentro o hacia afuera. Cuando el brazo móvil desplaza las cabezas hacia una nueva posición, puede obtenerse acceso a otro conjunto de pistas. Para una posición dada del brazo móvil, el conjunto de pistas definido por todas las cabezas forma un cilindro vertical. El proceso de desplazar el brazo móvil hacia un nuevo cilindro se conoce como operación de búsqueda. Así, para obtener acceso a un registro de datos en particular en un disco de cabeza móvil por lo general son necesarias varias operaciones (figura 5.10). Primero, el brazo móvil debe desplazarse hacia el cilindro apropiado. Después, la porción del disco en donde se encuentran los datos debe girar hasta quedar inmediatamente abajo (o arriba) de la cabeza de lectura-escritura (es decir, el tiempo de latencia). Después el registro, cuyo tamaño es arbitrario (el máximo es toda una pista), debe girar para pasar por la cabeza (esto se conoce como tiempo de transmisión). Como cada una de estas operaciones implica un movimiento mecánico, el tiempo total de acceso a un registro especifico es a menudo una fracción apreciable de un segundo (0.01 a 0.1 segundos). Estas velocidades son muy lentas comparadas con las altas velocidades de procesamiento (millones o miles de millones de instrucciones por segundo) del sistema central de cómputo.

Figura 5.10 Componentes de un acceso a disco. 5.2.2 CARACTERÍSTICAS DESEABLES DE LAS POLÍTICAS DE PLANIFICACIÓN DE DISCO Algunos criterios para clasificar las políticas de planificación son:

• la productividad • el tiempo promedio de respuesta • la varianza de los tiempos de respuesta (predecibilidad)

Está claro que una política de planificación debe tratar de lograr una productividad máxima (el mayor número posible de peticiones atendidas por unidad de tiempo). Como las políticas de planificación pueden reducir el tiempo desperdiciado en búsquedas muy largas, es indudable que la producción puede ser mejor que con la atención FCFS. Una política de planificación también debe tratar de reducir el tiempo promedio de respuesta (es decir, el tiempo promedio de espera más el tiempo promedio de servicio). Una vez más, como la planificación reduce el tiempo de espera por búsquedas, debe ser ciertamente capaz de mejorar el tiempo promedio de respuesta de FCFS.

Universidad Autónoma de Nayarit 21

Page 22: Unidad5

Sistemas Operativos I Unidad 5

Los criterios recién señalados tratan de mejorar el rendimiento global, tal vez a expensas de las peticiones individuales. La planificación mejora a menudo el rendimiento global pero reduce el nivel de atención para ciertas peticiones. Una medida importante de este fenómeno es la varianza de los tiempos de respuesta. La varianza es una medida matemáticas de cuánto se desvían elementos individuales del promedio de los elementos. Como tal, utilizamos la varianzas para indicar la predecibilidad: a menor varianza mayor predecibilidad. Deseamos una política de planificación que reduzca al mínimo la varianzas. De otra forma, ciertas peticiones recibirían niveles de servicio erráticos, lo que podría ser intolerable, por ejemplo, un sistema de reservaciones de vuelos donde un servicio rápido puede ayudar a la venta de un boleto o asegurar que un pasajero llegue a tiempo para su vuelo. Si una política de planificación sólo trata de aumentar la producción sin reducir al mínimo la varianza, podría procesar nada más las peticiones fáciles y hacer caso omiso de las difíciles. El diseñador debe tener en cuenta esta situación. 5.2.3 OPTIMIZACIÓN DE BÚSQUEDA

La figura 5.11 resume algunas de las estrategias más populares de optimización de búsqueda.

?? FCFS (Primero en llegar, primero en ser atendido): No hay reordenamiento de la cola.

?? SSTF (Primero el menor tiempo de búsqueda): El brazo del disco se traslada en seguida (en cualquier dirección) a la petición que requiere un movimiento mínimo.

?? SCAN: El brazo del disco se mueve hacia adentro y hacia afuera, atendiendo todas las peticiones que encuentras a su paso. Cambia su dirección sólo cuando no hay más peticiones que atender en la dirección actual.

?? N-SCAN (Scan de N pasos): El brazo del disco se mueve igual que en SCAN, pero las peticiones que llegan durante el barrido en una dirección se almacenan y reordenan para darles un servicio óptimo durante el barrido de retorno.

?? C-SCAN (Scan circular): El brazo del disco se mueve en una sola dirección sobre la superficie del disco hacia la pista más interior. Cuando no hay más peticiones en esa dirección regresa para atender la petición más cercana a la pista exterior y de nuevo se mueve hacia adentro.

?? Esquema de Eschenbach: El movimiento del brazo del disco es circular como en C-SCAN, pero en varias diferencias importantes. En cada cilindro se atiende toda una pista de información sin importar si existen o no peticiones para ese cilindro. Las peticiones dentro de un cilindro se reordenan para atenderlas aprovechando su posición rotacional, pero si existen dos peticiones traslapadas de un cilindro se atenderá solo a una en ese barrido del brazo del disco.

Figura 5.11 Políticas básicas de planificación de disco. Planificación FCFS (First Come First Served, el primero que llega, el primero que se atiende) En planificación FCFS, la primera solicitud que llega es la primera que se atiende. FCFS es justa en el sentido de que al llegar una solicitud, su lugar en las planificación es fijo. Una petición no puede ser desplazada por la llegada de otra con mayor prioridad; en efecto FCFS realizará una búsqueda larga para atender una petición en espera aunque llegue una solicitud paras el mismo cilindro donde está colocada las cabeza de lectura-escrituras (Figura 5.12).

Universidad Autónoma de Nayarit 22

Page 23: Unidad5

Sistemas Operativos I Unidad 5

Cuando las peticiones están distribuidas uniformemente en la superficie del disco, la planificación FCFS da como resultado un patrón de búsquedas aleatorio. Hace caso omiso de las relaciones de posición entre las solicitudes pendientes. No hace ningún intento por optimizar el patrón de búsqueda. FCFS es aceptable cuando la carga del disco es ligera. Pero conforme crece la carga, FCFS tiende a saturar el dispositivo y aumenta los tiempos de respuesta. FCFS sí ofrece una varianza pequeña, pero esto no es mucho consuelo para la petición que espera al final de la cola mientras el brazo móvil se desplaza de un lado a otro.

Figura 5.12 Patrón de búsqueda aleatorio FCFS. Los números indican el orden de la llegada de las peticiones.

Planificación SSTF (Shortest Scanning Time First, primero el de menor tiempo de búsqueda) En la planificación SSTF, la petición que implica la menor búsqueda (y por ende el menor tiempo de búsqueda) es la siguiente en atenderse, aun cuando esta solicitud no sea la primera de la cola. SSTF es un esquema orientado hacia los cilindros. SSTF tiende a favorecer mucho ciertas solicitudes. Los patrones de búsqueda SSTF tienden a estar muy localizados y, en consecuencia, las pistas más exteriores e interiores pueden recibir una atención deficiente en comparación con la que reciben las pistas de la parte media (figura 5.13). SSTF ofrece mejores tasas de productividad que FCGS, y los tiempos de respuesta tienden a ser más bajos cuando la carga es moderada. Una desventaja importante es que aumenta las varianza de los tiempos de respuesta debido a la discriminación contra las pistas exteriores e interiores. En un caso extremo, podrías hacer inanición de las solicitudes alejadas de las cabezas de lectura-escritura. Si se consideran las importantes mejoras en la productividad y en los tiempos promedio de respuesta, el aumento en la varianza puede parecer tolerable. SSTF resulta útil en sistemas de procesamiento por lotes, donde la productividad es la consideración más importante. Pero la elevada varianzas de los tiempos de respuesta (o sea, su impredecibilidad) lo hace inaceptable en sistemas interactivos.

Universidad Autónoma de Nayarit 23

Page 24: Unidad5

Sistemas Operativos I Unidad 5

Figura 5.13 Patrón de búsqueda localizada SSTF.

Planificación SCAN Denning desarrolló la estrategia de planificación SCAN para evitar la discriminación y la alta variación en los tiempos de respuesta de SSTF. SCAN opera como SSTF, excepto que SCAN elige la solicitud que implica la menor distancia de búsqueda en una dirección preferida (figura 5.14). Si la dirección preferida es en un momento dado hacia afuera, la estrategia SCAN elige la distancia de búsqueda más corta en esa dirección. SCAN no cambia de dirección hasta que llega al cilindro más exterior o hasta que ya no hay solicitudes pendientes en la dirección preferida. En este sentido, se denomina a veces algoritmo del ascensor, porque un ascensor normalmente continúa en una dirección hasta que no hay más solicitudes pendientes y después cambia de dirección. SCAN ha sido la base de la mayor parte de las estrategias de planificación de disco implantadas hasta ahora. SCAN tiene un comportamiento muy parecido al de SSTF en términos de aumento de productividad y reducción de los tiempos promedios de espera, pero elimina gran parte de la discriminación inherente a los esquemas SSTF y ofrece una varianza mucho menor. SCAN, al igual que SSTF, es una estrategia orientada hacia los cilindros. A causa del movimiento oscilante de las cabezas de lectura-escritura en SCAN, las pistas más exteriores se visitan con menos frecuencia que las de la parte media, pero ellos no es tan grave como la discriminación de SSTF.

Universidad Autónoma de Nayarit 24

Page 25: Unidad5

Sistemas Operativos I Unidad 5

Figura 5.14 Planificación SCAN con direcciones preferidas.

Planificación SCAN de N pasos Una modificación interesante de las estrategias SCAN básica se denominas SCAN de N pasos. En esta estrategia, el brazo del disco se mueve en una y otra dirección como en SCAN, excepto que sólo atiende las solicitudes que ya estaban esperando cuando se inició un barrido específico. Las solicitudes que llegan durante un barrido se agrupan y ordenan para darles una atención óptima durante el barrido de regreso (figura 5.15). En cada barrido se atienden las primeras N peticiones (en secuencias óptimas de acuerdo con la dirección de las cabezas de lectura-escritura).

Figura 5.15 Planificación SCAN de N pasos.

Universidad Autónoma de Nayarit 25

Page 26: Unidad5

Sistemas Operativos I Unidad 5

SCAN de N pasos ofrece un buen desempeño en cuanto a productividad y tiempo promedio de respuesta. Su característica más importante es una menor variación de los tiempos de respuesta que en la planificación SSTF o en las SCAN convencional. SCAN de N pasos elimina la posibilidad de que ocurra un aplazamiento indefinido si llega un gran número de peticiones para el cilindro actual. Éste guardas dichas peticiones para atenderlas en el barrido de regreso.

Planificación C-SCAN Otra modificación interesante de la estrategia SCAN básicas se denominas CSCAN (SCAN circular). C-SCAN eliminas la discriminación de las estrategias anteriores contra los cilindros más interiores y exteriores. En la estrategia C-SCAN el brazo se mueve del cilindro exterior hacia el interior, atendiendo solicitudes según un criterio de la búsqueda más corta. Cuando el brazo ha completado su barrido hacia adentro, salta (sin atender peticiones) a la solicitud más cercana al cilindro más exterior y luego reinicia su barrido hacia adentro procesando solicitudes. C-SCAN se puede llevar a la práctica de manera tal que las solicitudes que lleguen durante un barrido sean atendidas en el siguiente barrido (Figura 16). Así, C--SCAN elimina por completo la discriminación contra solicitudes para los cilindros más exteriores o interiores. Presenta una varianzas muy pequeña de los tiempos de respuesta.

Esquema de Eschenbach Esta estrategia descrita en la figura 5.11, se desarrolló para un sistema de reservaciones de una línea aérea diseñado para manejar cargas en extremo pesadas. El esquema fue uno de los primeros en tratar de optimizar no sólo el tiempo de búsqueda, sino también el retraso rotacional. La estrategia C-SCAN con optimización rotacional ha demostrado ser mejor que el esquema de Eschenbach, sean cuales sean las condiciones de carga.

Universidad Autónoma de Nayarit 26

Page 27: Unidad5

Sistemas Operativos I Unidad 5

5.2.4 OPTIMIZACIÓN ROTACIONAL En condiciones de cargas pesadas aumenta la probabilidad de múltiples referencias a un cilindro específico, por lo que resultas útil tener en cuenta la optimización rotacional además de la optimización de búsqueda. La optimización rotacional se ha utilizado durante muchos años con dispositivos de cabeza fija como los tambores.

Figura 5.17 Planificación SLTF, las peticiones se atenderán en el orden indicado sin importar el orden en que lleguen

. La estrategia de primero el tiempo de latencia más corto (SLTF, shortest-latency-time-first) para la optimización rotacional es análoga a la estrategia SSTF para la optimización de búsqueda. Una vez que el brazo del disco llega a un cilindro determinado, puede haber muchas solicitudes pendientes para las diversas pistas de dicho cilindro. La estrategia SLTF examina todas estas solicitudes y atiende primero la que tiene el retraso rotacional más corto (Figura 5.17). Se ha demostrado que esta estrategia llega cerca del rendimiento óptimo teórico y su realización es relativamente sencilla. La optimización rotacional se denomina a veces puesta en cola de sectores; los sectores se colocan en una cola según su posición alrededor del disco y se atienden primero los sectores más cercanos. 5.2.5 MEMORIA CACHÉ DE DISCO Cuando se realiza una operación de escritura, podría pensarse que el registro se graba de inmediato en el disco. Esto es así en muchos sistemas, pero en otros con memoria caché de disco la escritura sólo hace que el registro se almacene en un buffer en almacenamiento primario; el registro permanece ahí hasta que el sistema se queda sin espacio de buffer para escrituras subsecuentes, y en ese momento se graba el registro en el disco. Si es necesario leer un registro escrito recientemente, se puede obtener del buffer de memoria caché de disco en almacenamiento primario mucho más rápido que si se tuviera que leer del disco. Como las operaciones de escritura no siempre se realizan cuando los programas creen que se realizaron, es probable que en un momento dado el contenido de los archivos de disco difiera de lo que los programas creen que contienen. Este problema es crucial sobre todo si se cae el sistema. Para reducir al mínimo la posibilidad de que los discos estén "en desacuerdo" con lo que los programas creen que contienen, el sistema operativo UNIX ejecuta periódicamente la llamada sync al sistema para grabar todos los buffers en disco. La clave para aprovechar la memoria caché de disco es mantener los registros de acceso frecuente en el buffer de memoria caché de disco en almacenamiento primario. Desde luego, esta técnica sólo funciona bien cuando es posible identificar los registros de acceso frecuente. A menudo se utiliza el razonamiento heurístico de la localidad: un registro al que se hizo referencia en el pasado reciente tal vez será requerido en el futuro cercano. Otro razonamiento heurístico que se usa con frecuencia en los sistemas con memoria caché de disco es obtener con anticipación los registros adyacentes a los que se solicitaron recientemente.

Universidad Autónoma de Nayarit 27