Unidad5

338 visualizaciones

Publicado el

Unidad V. de la materia de S.O

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
338
En SlideShare
0
De insertados
0
Número de insertados
27
Acciones
Compartido
0
Descargas
15
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Unidad5

  1. 1. Sistemas Operativos I Unidad 5 5. ADMINISTRACIÓN DE ENTRADA/SALIDA5.1 PRINCIPIOS DE HARDWARE Y SOFTWARE DE E/SEl control de las operaciones de E/S es otra de las misiones que debe realizar un sistemaoperativo para facilitar el uso de los distintos dispositivos que forman parte de un sistemainformático.Los dispositivos hardware de la computadora cuya misión es la de intercambiar datos con elprocesador y la memoria principal en un sentido, en otro o en ambos, comúnmentedenominados 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 dedichos dispositivos, sino únicamente intercambiar datos con ellos. Por tanto, estos detallesdeben ser ocultados para que de este modo las operaciones de E/S sean independientes deltipo y modelo del dispositivo (Figura 5.1).En general, el software de gestión de las operaciones de E/S que posee un sistema operativorepresenta, aproximadamente, el 50 por ciento del total, por lo que esta parte es de sumaimportancia, más para el diseñador y programador de sistemas que para los programadoresde aplicaciones y usuarios, los cuales necesitan, al menos, un conocimiento global de dichagestión.5.1.1 DISPOSITIVOS DE HARDWAREA lo largo de la historia de las computadoras se han desarrollado muchos tipos dedispositivos que podemos reunir en tres grandes grupos: • Dispositivos de almacenamiento • Terminales • Dispositivos de Comunicaciones Universidad Autónoma de Nayarit 1
  2. 2. Sistemas Operativos I Unidad 5A su vez, los dispositivos se pueden clasificar, atendiendo al tipo de información quemanejan 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 ALMACENAMIENTODiscosSon los dispositivos para almacenamiento secundario más comunes. Aceptan y recuperandatos a alta velocidad (superior a 2 Mbits/seg.). Los datos son transferidos entre el disco y lamemoria en bloques. Los discos pueden ser fijos y removibles. Los primeros no se puedencambiar, mientras que los segundos pueden ser intercambiados, con los que se consigue unmayor volumen de almacenamiento.Pueden reunirse varios discos en un paquete (disk pack) (disco Duro) para conseguir con elloun mayor almacenamiento en un reducido espacio. Todos los discos de un disco duro giran ala misma velocidad (aproximadamente 60 vueltas/segundos). Cada disco se divide en pistasconcéntricas de tal forma que todas las homólogas de los distintos discos forman lo que sedenomina cilindro. Cada pista, a su vez, se divide en sectores, y cada sector contiene unbloque de información.Los discos flexibles (floppy disk) son similares, pero sólo constan de un disco y son siempreremovibles. Estos discos giran a menos velocidad, y sólo lo hacen cuando necesitan realizaruna 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. Siun sector es detectado como incorrecto, se marca como tal, y el sistema operativo no vuelveacceder al mismo.La lectura y escritura en un disco se realiza gracias a una cabeza magnética que se mueve alo largo de un radio del disco, hacia el centro o hacia la periferia, en un movimiento conocidocomo búsqueda (seeking). Las órdenes de magnitud del tiempo invertido en esta operaciónoscilan entre 20 y 80 mseg. En el caso de los disk pack (discos duros) existe una cabeza porcara de cada disco, de manera que el movimiento de la misma es simultaneo, recorriendo lamisma pista de cada disco en el mismo instante.Cinta magnéticaSe destinan principalmente al almacenamiento de grandes archivos de datos y a copias deseguridad periódicas.Al igual que los discos, se trata de un medio magnético consistente en una cinta plásticarecubierta por una cara de una fina capa de oxido magnetizable. Generalmente se denominatrama (frame) a un conjunto de nueve bits de los cuales 8 se destinan para bytes de datos yel noveno se conoce como bit de paridad, para el control de errores. Universidad Autónoma de Nayarit 2
  3. 3. Sistemas Operativos I Unidad 5El empaquetamiento de datos se realiza a densidades que oscilan entre 800 y 6,250 tramaspor pulgada de cinta. La densidad de una cinta es constante en toda ella. Las tramas seagrupan en registros separados por huecos (GAPS) y, a su vez los registros se agrupan enarchivos (files) separados por huecos mayores que los anteriores. La transferencia de datosa/o desde cinta debe ser realizada a través de buffers de tamaño adecuado. Muchossistemas 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 seconoce como etiqueta (Label).La lectura de las cintas se pueden hacer en dos sentidos: avance y retroceso.5.1.3 TERMINALESEn general se denomina terminal al conjunto formado por un teclado y una pantallaconectados a la computadora para introducir datos a través del primero y recibirlos a travésde la segunda. Los terminales pueden dividirse en dos categorías: los que se conectan através del estándar RS-232 y los mapeados en memoria.Terminales RS-232Constan de teclado y pantalla que transmiten bit a bit en serie. La velocidad de transmisiónde 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 asubes se conectan al bus de dicha computadora. Se conocen, generalmente, con el nombregenérico TTY.Terminales mapeados en memoriaNo necesitan línea de conexión a la computadora ya que están directamente conectados albus del mismo. En estos terminales, el teclado se conecta directamente al bus y esindependiente a la pantalla.Líneas de comunicacionesSon dispositivos cuya misión es la conectar entre si computadoras y estos con sus terminalescuando la distancia es grande. Suele llevar consigo elementos físicos, como puede ser lapropia línea, los adaptadores a la línea denominados módems, y lógicos, como puede ser elprotocolo 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
  4. 4. Sistemas Operativos I Unidad 55.1.4 INTERFAZ PROCESADOR- PERIFÉRICOLa velocidad y complejidad de los periféricos determinan cómo deben ser conectados alprocesador. Estudiaremos tres tipos de conexión:RegistrosLos dispositivos se pueden conectar al procesador por los registros de los dispositivos quepueden 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 podercontrolar su terminación, pero para ver cuándo se ha completado una operación se puedenemplear 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.ControladoresLos dispositivos complejos (discos...) no se conectan directamente al procesador, sino que lohacen a través de un controlador que contiene el estado del dispositivo (status), controla elmismo y chequea los datos transferidos.El controlador E/S es que acepta las órdenes del procesador y se comunica con él a travésde registros como si se tratara de un dispositivo.El controlador, también llamado unidad de control, puede manejar varios dispositivos delmismo tipo.CanalesNormalmente los controladores se conectan al procesador a través de un canal o procesadorde E/S(IOP- Input Output Processor). El propósito de un canal es conseguir que losdispositivos sean tratados como virtuales, abstractos o transparentes. Los canales sonmanejados por comandos y cuando terminan la operación devuelven el statuscorrespondiente 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
  5. 5. Sistemas Operativos I Unidad 55.1.5 DISPOSITIVOS DE ENTRADA/SALIDALos dispositivos externos que tienen que hacer E/S con los computadores puedenclasificarse, 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 dealcanzar, tanto desde el punto de vista del sistema operativo como de los procesos de unusuario. Universidad Autónoma de Nayarit 5
  6. 6. 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 Salida Humano 1 línea 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,05Adaptador 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.000Tabla 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 sistemasinformáticos, el DMA es la forma dominante de transferencia ofrecida por el sistemaoperativo. Universidad Autónoma de Nayarit 6
  7. 7. Sistemas Operativos I Unidad 5Tabla 3.2 Técnicas de E/S Sin interrupciones Con interrupcionesTransferencia de E/S a E/S programada E/S dirigida pormemoria a través del interrupcionesprocesadorTransferencia de E/S Acceso directo a memoriadirecta a memoria (DMA)Evolución de las funciones de la E/SA medida que los sistemas informáticos han evolucionado, se ha producido una tendenciacreciente en la complejidad y sofisticación de cada componente individual. En ningún caso sehace esto más evidente que en las funcione de la E/S. Las etapas de su evolución puedenresumirse 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 realizasin la participación de la CPU. El procesador central se ve liberado cada vez más de lastareas relacionadas con la E/S, mejorando así el rendimiento. En las dos últimas etapas (5 y6) se produce un cambio sustancial con la introducción del concepto de módulo de E/S capazde 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 uncontrol directo de la memoria principal por parte del módulo de E/S. Además, el módulo deE/S de la etapa 5 es a menudo denominado canal de E/S, mientras que al de la etapa 6 se lellama procesador de E/S. Universidad Autónoma de Nayarit 7
  8. 8. Sistemas Operativos I Unidad 5Sin embargo, cada término se aplica, en algunos casos, a ambas situaciones. En la partesiguiente de esta sección se empleará el término canal de E/S para referirse a ambos tiposde módulos.Acceso Directo a MemoriaLa figura 5.2 muestra, en líneas generales, la lógica del DMA. La unidad de DMA es capazde imitar a la CPU y, de hecho, es capaz de relevar a la CPU en el control del sistema paratransferir los datos con la memoria por el bus del sistema. Normalmente, el módulo de DMAdebe usar el bus sólo cuando la CPU no lo necesite, o debe forzar a la CPU a que suspendatemporalmente su operación. Esta última técnica es más común y se denomina robo deciclos porque la unidad de DMA debe robar un ciclo del bus. Figura 5.2 Diagrama de bloques de un DMA típicoLa 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, launidad de DMA transfiere una palabra de memoria y devuelve el control a la CPU. Nóteseque 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áslentamente. Sin embargo, el DMA es mucho más eficiente que la E/S programada o dirigidapor interrupciones para una transferencia de varias palabras. Universidad Autónoma de Nayarit 8
  9. 9. Sistemas Operativos I Unidad 5 Figura 5.3 Puntos de ruptura por DMA e interrupciones en un ciclo de instrucciónEl mecanismo de DMA puede configurarse de muchas formas. Algunas posibilidades semuestran en la figura 5.4. En el primer ejemplo, todos los módulos comparten el mismo busdel sistema. El módulo del DMA, actuando como una CPU suplente, realiza E/S programadapara 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/Sprogramada, cada transferencia de una palabra consume dos ciclos de bus.El número de ciclo de bus requerido puede ser acortado sustancialmente mediante laintegración de las funciones del DMA y de la E/S. Como muestra la figura 5.4b, esto significaque debe haber un camino entre el módulo del DMA y uno o más módulo de E/S que nopasen por el bus del sistema. La lógica del DMA puede formar parte del módulo de E/S, opuede constituir un módulo separado que controle uno o más módulos de E/S. Esta ideapuede llevarse un paso mas allá si se conectan los módulos de E/S al módulo de DMAmediante un bus de E/S (figura 5.4c). Esto reduce a una el número de interfaces de E/S en elmó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 lamemoria principal es utilizado por el módulo de DMA sólo para intercambiar señales decontrol con la CPU. El intercambio de datos entre el módulo del DMA y el de E/S tiene lugarfuera del bus del sistema. Universidad Autónoma de Nayarit 9
  10. 10. Sistemas Operativos I Unidad 5 Figura 5.4 Configuraciones posibles de DMACaracterísticas de los Canales de E/SEl canal de E/S es una extensión del concepto de DMA. Un canal de E/S tiene la capacidadde 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 sealmacenan en la memoria principal y serán ejecutadas por un procesador de propósitoespecífico en el mismo canal de E/S. Así, la CPU inicia una transferencia de E/S ordenandoal 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 atomar bajo ciertas condiciones de error. Hay dos tipos comunes de canales de E/S, como seilustra en la figura 5.5. Un canal selector controla varios dispositivos de alta velocidad y sededica 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 deE/S muy parecido a los antes descritos, maneja un dispositivo o un pequeño conjunto dedispositivos. Así, el canal de E/S actúa en vez de la CPU manejando estos controladores. Universidad Autónoma de Nayarit 10
  11. 11. Sistemas Operativos I Unidad 5Un canal multiplexor puede manejar la E/S con varios dispositivos al mismo tiempo. Paradispositivos de baja velocidad, un multiplexor de bytes recibe o transmite caracteres de/avarios dispositivos tan rápido como sea posible. Por ejemplo, el flujo de caracteres resultantepara tres dispositivos con velocidades diferentes de datos y con flujos individuales A1A2A3A4..., B1 B2 B3B4...,ClC2C3C4... podría ser AlBlClA2C2A3B2C3A4, y así sucesivamente. Paradispositivos de alta velocidad, un multiplexor de bloques puede mezclar los bloques de datosde 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 operacionesde entrada y salida sobre cualquier periférico conectado a la computadora, siendoparticulares para cada dispositivo.Un Driver no es un proceso o tarea independiente gestionada por el sistema operativo, sinoun conjunto de tablas en las que se aloja la información que caracteriza a cada periféricoconectado a la computadora, y una serie de rutinas que controlan toda la gestión de losmismos y las informaciones que fluyen en un sentido o en otro. Se encuentranpermanentemente alojados en memoria principal y requieren una elevada rapidez deejecució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
  12. 12. Sistemas Operativos I Unidad 5El tratamiento por el núcleo de un sistema operativo de toda la información de E/S desde, o aun 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 DriverEntre 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
  13. 13. Sistemas Operativos I Unidad 55.1.8 ASPECTOS DE DISEÑO EN LOS SISTEMAS OPERATIVOSObjetivos de DiseñoHay dos objetivos primordiales en el diseño de la E/S: eficiencia y generalidad. La eficienciaes importante porque las operaciones de E/S constituyen a menudo un cuello de botella enlos sistemas informáticos. Si se puede observar de nuevo la tabla 3.1 se puede comprobarque la mayoría de los dispositivos de E/S son extremadamente lentos en comparación con lamemoria principal y el procesador.Una manera de abordar este problema es el uso de la multiprogramación, que, como se havisto, hace que algunos procesos esperen en operaciones de E/S mientras otro proceso seestá ejecutando. Sin embargo, a pesar del enorme tamaño de la memoria principal en loscomputadores actuales, seguirá dándose el caso de que la E/S no mantenga el nivel con laactividad del procesador. Se puede utilizar el intercambio para introducir más procesos listos para ejecución y mantenerasí 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 deerrores, será deseable manejar todos los dispositivos de una manera uniforme. Estaafirmación se aplica tanto a la manera en que los procesos contemplan a los dispositivos deE/S como a la forma en que el sistema operativo gestiona los dispositivos de E/S y lasoperaciones. Debido a la diversidad de características de los dispositivos, en la práctica esdifícil conseguir una generalidad verdadera.Lo que puede hacerse es emplear un enfoque jerárquico y modular para el diseño de lasfunciones de E/S. Este proceder ocultará la mayoría de los detalles de la E/S con dispositivosen rutinas de bajo nivel, de forma que los procesos y los niveles superiores del sistemaoperativo 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/SLa filosofía jerárquica propone que las funciones del sistema operativo deben separarse deacuerdo 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 deniveles. 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 losdetalles de éstas últimas. Así mismo, cada nivel ofrece servicios al nivel superior. En el mejorde los casos, los niveles deben definirse de forma que los cambios en un nivel no provoquenmás cambios en otros niveles. De este modo, el problema se ha descompuesto en una seriede subproblemas más manejables.En general, los niveles inferiores hacen frente a un rango de tiempos mucho menor. Algunaspartes 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 pocosnanosegundos. Universidad Autónoma de Nayarit 13
  14. 14. Sistemas Operativos I Unidad 5En el otro extremo del espectro, algunas partes del sistema operativo se comunican con elusuario, que emite órdenes a un ritmo mucho más pausado, como puede ser una cada pocossegundos.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ónsugerida por la figura 5.7. Los detalles de la organización dependen del tipo de dispositivo yde 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 operativosenfocan 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 secomunica de una manera sencilla, como un flujo de bytes o de registros (Figura 5.7a). Losniveles 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 muchoa la ya descrita. La diferencia principal es que el módulo de E/S lógica se reemplaza por unaarquitectura de comunicaciones, que puede constar, asimismo, de varios niveles.Por ejemplo, la conocida arquitectura de interconexión de sistemas abiertos (OSI) consta desiete niveles.La figura 5.7c muestra la estructura representativa de gestión de E/S en un dispositivo dealmacenamiento 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
  15. 15. Sistemas Operativos I Unidad 5 Figura 5.7 Un modelo de organización de E/S Universidad Autónoma de Nayarit 15
  16. 16. 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/SSupóngase que un proceso de usuario desea leer bloques de datos de una cinta, uno cadavez, siendo cada bloque de 100 bytes. Los datos van a ser leídos en una zona de datos delproceso 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 esperapodría ser activa (comprobando continuamente el estado del dispositivo) o, de manera máspráctica, suspender al proceso en espera de una interrupción.Hay dos problemas con este enfoque. En primer lugar, el programa se queda colgadoesperando a que la relativamente lenta operación de E/S termine. El segundo problema esque este método de E/S dificulta las decisiones de intercambio del sistema operativo. Lasubicaciones virtuales 1000 a 1009 deben permanecer en memoria principal durante el cursode 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 lomenos, debe permanecer en memoria principal. De este modo, aunque algunas partes delproceso 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 unsolo proceso. Si un proceso emite una orden de E/S, queda suspendido a la espera delresultado, se le expulsa antes de comenzar la operación y se bloquea esperando a que laoperación termine. Mientras tanto, la operación de E/S queda bloqueada esperando a que elproceso vuelva a memoria. Paraevitar este interbloqueo, la memoria de usuario implicada en la operación de E/S debequedar 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
  17. 17. 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 transfiereun bloque desde el área de un proceso de usuario hacia un módulo de E/S directamente, elproceso se bloqueará durante la transferencia y no puede ser expulsado.Para evitar esta carga e incapacidad, a veces es conveniente llevar a cabo las transferenciasde entrada por adelantado a las peticiones y realizar las transferencias de salida un tiempodespués de hacer la petición. Esta técnica se conoce con el nombre de almacenamientointermedio (buffering). En esta sección se van a considerar algunos esquemas dealmacenamiento intermedio ofrecidos por los sistemas operativos para mejorar el rendimientodel sistema. Universidad Autónoma de Nayarit 17
  18. 18. Sistemas Operativos I Unidad 5A la hora de discutir los distintos métodos de almacenamiento intermedio, es a vecesimportante hacer una distinción entre dos tipos de dispositivos: dispositivos de bloques ydispositivos 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 lascintas son ejemplos de dispositivos de bloques. Los dispositivos de flujo transfieren los datoscomo flujos de bytes; no poseen estructura de bloques. Terminales, impresoras, puertos decomunicación, ratones y otros dispositivos apuntadores y la mayoría de los dispositivosrestantes que no son de almacenamiento secundario son dispositivos de flujo.Buffer SencilloLa 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 sistemaoperativo 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 comosigue. Las transferencias de entrada se realizan al buffer del sistema. Cuando se hacompletado la transferencia, el proceso mueve el bloque al espacio del usuario y pide otrobloque 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 deoperaciones, ésta suposición es razonable la mayoría de las veces. La lectura del bloqueserá innecesaria sólo al final de una secuencia de procesamiento.Generalmente, este método proporciona una mayor velocidad en comparación con laausencia de almacenamiento intermedio en el sistema. El proceso de usuario puedeprocesar 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 lamemoria del sistema en vez de en la memoria de usuario del proceso. Sin embargo, estatécnica complica la lógica del sistema operativo. El sistema operativo debe guardarconstancia 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 mismodisco que se usa para intercambio, apenas importa encolar las escrituras al disco necesariaspara expulsar al proceso. Este intento de expulsar al proceso y liberar memoria principal nocomenzará hasta que la operación de E/S finalice, momento en que la expulsión del procesoal disco puede no ser ya apropiada.Se pueden aplicar consideraciones similares a la salida con dispositivos de bloque. Cuandose transmiten datos a un dispositivo, deben copiarse primero del espacio de usuario a unbuffer del sistema, desde donde serán finalmente escritos. El proceso que realizó la peticiónpodrá entonces continuar o ser expulsado si es necesario.KNUTH, D. sugiere una tosca pero informativa comparación de rendimiento entre e buffersencillo y la ausencia de buffer. Supóngase que T es el tiempo necesario para realizar laentrada de un bloque y C es el tiempo que dura la operación que sucede entre dos peticionesde 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 eltiempo necesario para mover los datos del buffer del sistema a la memoria de usuario. En lamayoría de los casos, esta última cantidad es sustancialmente menor que la primera. Universidad Autónoma de Nayarit 18
  19. 19. Sistemas Operativos I Unidad 5Para la E/S con dispositivos de flujo, el esquema del buffer sencillo puede aplicarse porlíneas o por bytes. La operación línea a línea es adecuada para terminales condesplazamiento (scroll) vertical (a veces llamados terminales "tontos"). Con este tipo determinales, la entrada del usuario se realiza por líneas, marcadas con un retorno de carro alfinal 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 porbytes se utiliza en terminales de pantalla completa, donde cada tecla pulsada tiene susignificado, 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. Elproceso de usuario quedará suspendido durante la entrada, esperando la llegada de la líneacompleta. Para la salida, el proceso de usuario puede colocar una línea de salida en el buffery seguir procesando. No será suspendido a menos que llegue una segunda línea para enviarantes de que se vacíe el buffer de la primera operación de salida.Buffer DobleSe puede realizar una mejora del buffer sencillo asignando dos buffers del sistema a cadaoperación (figura 5.8c). De esta forma, un proceso puede transfiere datos hacia (o desde) unbuffer mientras que el sistema operativo vacía (o rellena) el otro. Esta técnica se conocecomo buffer doble o intercambio de buffers.Para las transferencias de bloques, se puede hacer una estimación aproximada del tiempode transferencia como el máximo de C y T. Por tanto, es posible que el dispositivo debloques funcione a su máxima velocidad si C < T. Por otro lado, si C > T, el buffer dobleasegura que el proceso no tendrá que esperar en la E/S. En cualquier caso se consigue unamejora con respecto al buffer sencillo. Sin embargo, esta mejora sufre el coste delincremento 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 osalida a menos que el proceso se adelante al buffer doble. Para la operación con bytes, elbuffer doble no ofrece ninguna ventaja con respecto a un buffer sencillo de doble tamaño.Buffer CircularEl esquema del buffer doble debería solucionar el flujo de datos entre un dispositivo de E/S yun proceso. Si preocupa el rendimiento de un proceso determinado, sería deseable que lasoperaciones de E/S fueran capaces de ir al ritmo del proceso. El buffer doble puede serinapropiado si el proceso lleva a cabo rápidas ráfagas de E/S. En este caso, el problemapuede mitigarse usando más de dos buffers.Cuando se emplean más de dos, el conjunto de buffers se conoce con el nombre de buffercircular (figura 5.8d). Cada buffer individual constituye una unidad del buffer circular. Universidad Autónoma de Nayarit 19
  20. 20. Sistemas Operativos I Unidad 5La Utilidad del Almacenamiento IntermedioEl 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 undispositivo de E/S ir al mismo ritmo que un proceso cuando la demanda media del procesoes mayor que la que el dispositivo puede admitir. Incluso si se dispone de varios buffers, alfinal todos se llenarán y el proceso tendrá que quedarse esperando tras operar con unadeterminada cantidad de datos. Sin embargo, en un entorno de multiprogramación, con lavariedad de actividades de E/S y de procesamiento que hay que realizar, el almacenamientointermedio es una herramienta que puede incrementar la eficiencia del sistema operativo y elrendimiento de los procesos individuales.5.2 ADMINISTRACIÓN DE DISCOSEn los sistemas de computo multiprogramados, la ineficiencia se debe muchas veces al usoinapropiado de recursos de almacenamiento rotacional como discos y tambores.5.2.1 OPERACIÓN DE UN ALMACENAMIENTO DE DISCO DE CABEZA MÓVILLa figura 5.9 es una representación esquemática de la vista lateral de un disco de cabezamóvil. Los datos se graban sobre una serie de discos magnéticos o platos. Estos discosestán conectados por un eje común que gira a una velocidad muy alta (algunos ejes giran avelocidades de3600 revolucionespor minuto).Se obtiene acceso alos datos (es decir,se leen o escriben)mediante una seriede cabezas delectura-escritura,una por cadasuperficie de disco.Una cabeza delectura-escriturasólo puede obteneracceso a los datosinmediatamenteadyacentes a ella.Así, antes de que pueda obtenerse acceso a los datos, la porción de la superficie del discode la que se leerán los datos (o en la que se escribirán) debe girar hasta que se encuentrejusto abajo (o arriba) de la cabeza de lectura-escritura. El tiempo que le toma a los datosgirar desde la posición en que se encuentran hasta una posición adyacente a la cabeza delectura-escritura se llama tiempo de latencia. Universidad Autónoma de Nayarit 20
  21. 21. Sistemas Operativos I Unidad 5Cada 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 cabezasestán sujetas a una sola unidad de brazo móvil, la cual puede moverse hacia adentro o haciaafuera. Cuando el brazo móvil desplaza las cabezas hacia una nueva posición, puedeobtenerse acceso a otro conjunto de pistas. Para una posición dada del brazo móvil, elconjunto de pistas definido por todas las cabezas forma un cilindro vertical. El proceso dedesplazar 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 porlo general son necesarias varias operaciones (figura 5.10). Primero, el brazo móvil debedesplazarse hacia el cilindro apropiado. Después, la porción del disco en donde seencuentran los datos debe girar hasta quedar inmediatamente abajo (o arriba) de la cabezade lectura-escritura (es decir, eltiempo de latencia). Después elregistro, cuyo tamaño es arbitrario (elmáximo es toda una pista), debegirar para pasar por la cabeza (estose conoce como tiempo detransmisión). Como cada una deestas operaciones implica unmovimiento mecánico, el tiempo totalde acceso a un registro especifico esa menudo una fracción apreciable deun segundo (0.01 a 0.1 segundos).Estas velocidades son muy lentascomparadas con las altasvelocidades de procesamiento(millones o miles de millones deinstrucciones por segundo) delsistema 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 DEDISCOAlgunos 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íticasde planificación pueden reducir el tiempo desperdiciado en búsquedas muy largas, esindudable que la producción puede ser mejor que con la atención FCFS. Una política deplanificación también debe tratar de reducir el tiempo promedio de respuesta (es decir, eltiempo promedio de espera más el tiempo promedio de servicio). Una vez más, como laplanificación reduce el tiempo de espera por búsquedas, debe ser ciertamente capaz demejorar el tiempo promedio de respuesta de FCFS. Universidad Autónoma de Nayarit 21
  22. 22. Sistemas Operativos I Unidad 5Los criterios recién señalados tratan de mejorar el rendimiento global, tal vez a expensas delas peticiones individuales. La planificación mejora a menudo el rendimiento global peroreduce el nivel de atención para ciertas peticiones.Una medida importante de este fenómeno es la varianza de los tiempos de respuesta. Lavarianza es una medida matemáticas de cuánto se desvían elementos individuales delpromedio de los elementos. Como tal, utilizamos la varianzas para indicar la predecibilidad: amenor varianza mayor predecibilidad. Deseamos una política de planificación que reduzca almí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 unservicio rápido puede ayudar a la venta de un boleto o asegurar que un pasajero llegue atiempo para su vuelo. Si una política de planificación sólo trata de aumentar la producción sinreducir al mínimo la varianza, podría procesar nada más las peticiones fáciles y hacer casoomiso 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 debú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 seatiende)En planificación FCFS, la primera solicitud que llega es la primera que se atiende. FCFS esjusta en el sentido de que al llegar una solicitud, su lugar en las planificación es fijo. Unapetición no puede ser desplazada por la llegada de otra con mayor prioridad; en efecto FCFSrealizará una búsqueda larga para atender una petición en espera aunque llegue unasolicitud paras el mismo cilindro donde está colocada las cabeza de lectura-escrituras (Figura5.12). Universidad Autónoma de Nayarit 22
  23. 23. Sistemas Operativos I Unidad 5Cuando las peticiones están distribuidas uniformemente en la superficie del disco, laplanificación FCFS da como resultado un patrón de búsquedas aleatorio. Hace caso omisode las relaciones de posición entre las solicitudes pendientes. No hace ningún intento poroptimizar el patrón de búsqueda.FCFS es aceptable cuando la carga del disco es ligera. Pero conforme crece la carga, FCFStiende a saturar el dispositivo y aumenta los tiempos de respuesta. FCFS sí ofrece unavarianza pequeña, pero esto no es mucho consuelo para la petición que espera al final de lacola 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 debúsqueda)En la planificación SSTF, la petición que implica la menor búsqueda (y por ende el menortiempo de búsqueda) es la siguiente en atenderse, aun cuando esta solicitud no sea laprimera de la cola. SSTF es un esquema orientado hacia los cilindros.SSTF tiende a favorecer mucho ciertas solicitudes. Los patrones de búsqueda SSTF tiendena estar muy localizados y, en consecuencia, las pistas más exteriores e interiores puedenrecibir una atención deficiente en comparación con la que reciben las pistas de la partemedia (figura 5.13).SSTF ofrece mejores tasas de productividad que FCGS, y los tiempos de respuesta tiendena ser más bajos cuando la carga es moderada. Una desventaja importante es que aumentalas varianza de los tiempos de respuesta debido a la discriminación contra las pistasexteriores e interiores. En un caso extremo, podrías hacer inanición de las solicitudesalejadas de las cabezas de lectura-escritura. Si se consideran las importantes mejoras en laproductividad y en los tiempos promedio de respuesta, el aumento en la varianza puedeparecer tolerable. SSTF resulta útil en sistemas de procesamiento por lotes, donde laproductividad es la consideración más importante. Pero la elevada varianzas de los tiemposde respuesta (o sea, su impredecibilidad) lo hace inaceptable en sistemas interactivos. Universidad Autónoma de Nayarit 23
  24. 24. Sistemas Operativos I Unidad 5 Figura 5.13 Patrón de búsqueda localizada SSTF.Planificación SCANDenning desarrolló la estrategia de planificación SCAN para evitar la discriminación y la altavariación en los tiempos de respuesta de SSTF.SCAN opera como SSTF, excepto que SCAN elige la solicitud que implica la menor distanciade búsqueda en una dirección preferida (figura 5.14). Si la dirección preferida es en unmomento dado hacia afuera, la estrategia SCAN elige la distancia de búsqueda más corta enesa dirección. SCAN no cambia de dirección hasta que llega al cilindro más exterior o hastaque ya no hay solicitudes pendientes en la dirección preferida. En este sentido, se denominaa veces algoritmo del ascensor, porque un ascensor normalmente continúa en una direcciónhasta que no hay más solicitudes pendientes y después cambia de dirección. SCAN ha sidola base de la mayor parte de las estrategias de planificación de disco implantadas hastaahora.SCAN tiene un comportamiento muy parecido al de SSTF en términos de aumento deproductividad y reducción de los tiempos promedios de espera, pero elimina gran parte de ladiscriminació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 pistasmás exteriores se visitan con menos frecuencia que las de la parte media, pero ellos no estan grave como la discriminación de SSTF. Universidad Autónoma de Nayarit 24
  25. 25. Sistemas Operativos I Unidad 5 Figura 5.14 Planificación SCAN con direcciones preferidas.Planificación SCAN de N pasosUna modificación interesante de las estrategias SCAN básica se denominas SCAN de Npasos. En esta estrategia, el brazo del disco se mueve en una y otra dirección como enSCAN, 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 ordenanpara darles una atención óptima durante el barrido de regreso (figura 5.15). En cada barridose atienden las primeras N peticiones (en secuencias óptimas de acuerdo con la dirección delas cabezas de lectura-escritura). Figura 5.15 Planificación SCAN de N pasos. Universidad Autónoma de Nayarit 25
  26. 26. Sistemas Operativos I Unidad 5SCAN de N pasos ofrece un buen desempeño en cuanto a productividad y tiempo promediode respuesta. Su característica más importante es una menor variación de los tiempos derespuesta que en la planificación SSTF o en las SCAN convencional. SCAN de N pasoselimina la posibilidad de que ocurra un aplazamiento indefinido si llega un gran número depeticiones para el cilindro actual. Éste guardas dichas peticiones para atenderlas en elbarrido de regreso.Planificación C-SCANOtra modificación interesante de la estrategia SCAN básicas se denominas CSCAN (SCANcircular). C-SCAN eliminas la discriminación de las estrategias anteriores contra los cilindrosmás interiores y exteriores.En la estrategia C-SCAN el brazo se mueve del cilindro exterior hacia el interior, atendiendosolicitudes según un criterio de la búsqueda más corta. Cuando el brazo ha completado subarrido hacia adentro, salta (sin atender peticiones) a la solicitud más cercana al cilindro másexterior y luego reinicia su barrido hacia adentro procesando solicitudes. C-SCAN se puedellevar a la práctica de manera tal que las solicitudes que lleguen durante un barrido seanatendidas en el siguiente barrido (Figura 16).Así, C--SCAN elimina por completo la discriminación contra solicitudes para los cilindros másexteriores o interiores. Presenta una varianzas muy pequeña de los tiempos de respuesta.Esquema de EschenbachEsta estrategia descrita en la figura 5.11, se desarrolló para un sistema de reservaciones deuna línea aérea diseñado para manejar cargas en extremo pesadas. El esquema fue uno delos primeros en tratar de optimizar no sólo el tiempo de búsqueda, sino también el retrasorotacional. La estrategia C-SCAN con optimización rotacional ha demostrado ser mejor que elesquema de Eschenbach, sean cuales sean las condiciones de carga. Universidad Autónoma de Nayarit 26
  27. 27. Sistemas Operativos I Unidad 55.2.4 OPTIMIZACIÓN ROTACIONALEn condiciones de cargas pesadas aumentala probabilidad de múltiples referencias a uncilindro específico, por lo que resultas útiltener en cuenta la optimización rotacionalademás de la optimización de búsqueda. Laoptimización rotacional se ha utilizadodurante muchos años con dispositivos decabeza 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 delatencia más corto (SLTF, shortest-latency-time-first) para la optimización rotacional es análoga a la estrategia SSTF para laoptimizació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. Laestrategia SLTF examina todas estas solicitudes y atiende primero la que tiene el retrasorotacional más corto (Figura 5.17). Se ha demostrado que esta estrategia llega cerca delrendimiento óptimo teórico y su realización es relativamente sencilla. La optimizaciónrotacional se denomina a veces puesta en cola de sectores; los sectores se colocan en unacola según su posición alrededor del disco y se atienden primero los sectores más cercanos.5.2.5 MEMORIA CACHÉ DE DISCOCuando se realiza una operación de escritura, podría pensarse que el registro se graba deinmediato en el disco. Esto es así en muchos sistemas, pero en otros con memoria caché dedisco la escritura sólo hace que el registro se almacene en un buffer en almacenamientoprimario; el registro permanece ahí hasta que el sistema se queda sin espacio de buffer paraescrituras subsecuentes, y en ese momento se graba el registro en el disco. Si es necesarioleer un registro escrito recientemente, se puede obtener del buffer de memoria caché dedisco 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 quese realizaron, es probable que en un momento dado el contenido de los archivos de discodifiera de lo que los programas creen que contienen. Este problema es crucial sobre todo sise cae el sistema. Para reducir al mínimo la posibilidad de que los discos estén "endesacuerdo" con lo que los programas creen que contienen, el sistema operativo UNIXejecuta 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 accesofrecuente 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 accesofrecuente. A menudo se utiliza el razonamiento heurístico de la localidad: un registro al quese 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 solicitaronrecientemente. Universidad Autónoma de Nayarit 27

×