Gestión del sistema de E/S |1

6. GESTIÓN DEL SISTEMA DE E/S
Cada controlador de E/S se conecta al bus del sistema o aun conmutador centralizado y supervisa a uno o más dispositivos. Dispone de la lógica necesaria para realizar una función de comunicación entre los periféricos del computador y el bus. Motivos por los que los periféricos no se conectan directamente al bus: a) Hay una gran variedad de periféricos con diversos métodos de operación. No es práctico incorporar dentro de la CPU la lógica que se necesita para controlar un conjunto tan amplio. b) La velocidad de transferencia de datos de los periféricos suele ser mucho menor que la de la memoria con la CPU. c) Los periféricos a menudo utilizan formatos de datos y longitudes de palabras distintas a las del computador al que están conectados. Estas razones justifican la existencia de los controladores de E/S, que tienen dos grandes funciones: 1) Comunicarse con la CPU y la memoria a través del bus del sistema 2) Comunicarse con uno o varios dispositivos periféricos mediante enlaces de datos adaptados a cada periférico. Los periféricos se pueden clasificar en cuatro categorías: 1) Adaptados al usuario: Son para comunicar información al usuario. 2) Adaptados a la máquina: Permiten comunicarse con el sistema. 3) De comunicación: Preparados para transmitir información a dispositivos remotos. 4) De interacción con el medio externo: Transmiten información a elementos actuadores y reciben información de elementos sensores. Existen grandes diferencias entre dispositivos E/S que pertenecen a la misma categoría: a) Velocidad de transferencia b) Aplicaciones c) Unidad de transferencia: o Orientados a bloques:  Los bloques normalmente son de tamaño fijo  Es posible leer o escribir en un bloque de forma independiente de los demás.  Los datos se referencian o direccional dando el número del bloque que se desea transferir. o Orientados a caracteres:  No están sujetos a una estructura de bloques  No se pueden utilizar direcciones  No es posible realizar operaciones de búsqueda d) Complejidad del controlador del dispositivo e) Condiciones de error La comunicación con el controlador de E/S se efectúa mediante señales de datos, de control y de estado del dispositivo. Los datos están constituidos por un conjunto de bits que se envían o reciben desde el controlador de E/S. Las señales de control determinan la función que realiza el dispositivo: a) Enviar el dato al controlador de E/S (Leer) b) Aceptar el dato del controlador de E/S (Escribir) c) Realizar alguna función de control particular para ese dispositivo Las señales de estado indican el estado en el que se encuentra el dispositivo. La lógica de control asociada con el periférico gobierna su funcionamiento en respuesta a las órdenes enviadas por el controlador de E/S.

Gestión del sistema de E/S |2

6.1 Controlador de E/S
Es el módulo del computador responsable del control de uno o más dispositivos externos y del intercambio de datos entre dichos periféricos con la memoria principal.

6.1.1 Funciones del controlador de E/S Control y temporización Coordina el intercambio de información entre los recursos internos y los dispositivos externos. Comunicación con la CPU Requiere: a) Decodificación con la orden b) Datos c) Información sobre el estado d) Reconocimiento de la dirección Comunicación con el dispositivo externo La comunicación comprende órdenes, información del estado del dispositivo y datos. Almacenamiento temporal de datos Tarea esencial del controlador de E/S. Sirve para adecuar las diferencias de velocidades entre la interfaz interna con el computador. Detección de errores Es a menudo responsable de la detección de errores y de informar a la CPU cuando ocurren.

-

6.1.2 Estructura del controlador de E/S Varían considerablemente en complejidad y en el número de dispositivos externos.

El controlador se conecta con el resto del computador a través del bus del sistema. El registro de estado a veces funciona como un registro de control que acepta información proveniente de la CPU. A este conjunto de registros genéricamente se les suele llamar puertos del controlador. Cada controlador tiene asociada una única dirección, o un conjunto de ellas si controla más de un dispositivo externo.

6.1.3 Estructura del sistema E/S Hay tres maneras de utilizar el bus para interconectar la CPU con la memoria y la unidad de E/S: 1) Utilizar dos buses independientes (computadores con procesador de E/S, PE/S) 2) Utilizar un bus común, pero con líneas de control independientes

Gestión del sistema de E/S |3
3) Utilizar un bus común con líneas de control comunes

6.2 E/S controlada por programa
La CPU ejecuta un programa que tiene el control directo de la operación de E/S e incluye la comprobación del estado del dispositivo, el envío de una orden de lectura o escritura y la transferencia del dato. Cuando la CPU emite una orden al controlador de E/S debe esperar hasta que finalice la operación. El computador es el que “adapta” su velocidad de trabajo a la del periférico. Es responsabilidad del procesador comprobar periódicamente el estado del controlador de E/S hasta que detecta que ha finalizado la operación. 6.2.1 Órdenes de E/S (CPU  Controlador E/S) Se envía una orden de E/S y una dirección que especifica el controlador y el periférico particular. Cuatro tipos: a) Órdenes de control: Activar periférico y decirle qué hacer. Adaptadas a cada tipo particular. b) Órdenes de comprobación: Verificar condiciones de estado asociadas con un controlador de E/S y sus periféricos. c) Órdenes de lectura: El controlador de E/S obtiene dato de periférico y lo coloca en RD. La CPU puede entonces conseguir el dato pidiendo al controlador que lo coloque en el bus de datos. d) Órdenes de escritura: El controlador de E/S toma un dato del bus de datos y lo transmite al periférico.

Gestión del sistema de E/S |4

6.2.2 Instrucciones de E/S (ejecuta la CPU) La forma de instrucción depende de la manera en que se direccionan los dispositivos externos. Cuando la CPU, la memoria principal y la unidad de E/S comparte un bus común, la forma de hacer el direccionamiento difiere según que la E/S esté localizada en memoria o esté aislada. E/S localizada en memoria Hay un único espacio de direcciones para las posiciones de memoria y los dispositivos de E/S. La CPU trata los RD y RE de los controladores de E/S como posiciones de memoria y utiliza las mismas instrucciones máquina para acceder tanto a la memoria como a los periféricos.

Por ejemplo, con 12 líneas de direcciones se pueden tener 212=4096 posiciones de memoria y direcciones E/S en cualquier combinación. Sólo se necesita un conjunto de señales de lectura y escritura (SC).

E/S aislada de memoria El bus en este caso dispone de líneas de control específicas de E/S para acceder a los periféricos. El rango completo de direcciones está disponible para ambos.

Gestión del sistema de E/S |5
Ahora con las 12 líneas de dirección la CPU puede direccionar 4096 posiciones de memoria y 4096 direcciones de E/S.

Inconvenientes del mecanismo de E/S controlada por programa: 1) Pérdida de tiempo en el bucle de espera. 2) Si existen programas que tienen que ejecutarse necesariamente de forma periódica, esto implica que no se puede permanecer en el bucle de espera por tiempo indefinido. 3) Hay problemas cuando se quiere atender a varios periféricos. Mientras el computador espera a que un periférico esté preparado para transmitir no puede estar atendiendo a los otros. SOLUCIÓN: Limitar el tiempo de espera en el bucle (ejecutándolo un número determinado de veces).

6.3 E/S por interrupciones
La solución de limitar el tiempo de espera no garantiza la realización de la transmisión de información entre el periférico y el computador. La idea básica del mecanismo de E/S por interrupciones es eliminar el bucle de espera. La CPU envía una orden de E/S al periférico y prosigue con la tarea que estaba ejecutando. Cuando el periférico está preparado para intercambiar información, fuerza una interrupción en la tarea que realiza la CPU para que atienda a la operación de E/S. La CPU no está siempre en disposición de aceptar peticiones de interrupción por parte de los periféricos (no precisa datos o se está atendiendo una interrupción con más prioridad).

Tratamiento de una petición de interrupción: 1) Activar el sistema de interrupciones en la CPU. 2) El periférico activa la línea de petición de interrupción (PI = 1) cuando está preparado para comunicarse con el computador. 3) La CPU suspende el programa en curso. Salva el contenido del PC y de los otros registros accesibles por el programa. 4) La CPU inhibe las interrupciones (bit de máscara) y comienza a ejecutar el programa correspondiente de servicio de interrupción. 5) Se informa al periférico de que se ha reconocido su PI (mediante una línea de reconocimiento de interrupción, RI = 1). El dispositivo desactiva PI (PI = 0). 6) Una vez finalizado el programa de servicio de la interrupción, se activa de nuevo el sistema de interrupciones que se había inhibido en el paso 4. 7) La CPU continúa la ejecución del programa interrumpido en el punto en el que lo dejó.

Gestión del sistema de E/S |6

La E/S por interrupciones requiere un programa más complejo que la controlada por programa porque la transferencia de información tiene lugar cuando el dato está disponible, no cuando el programador necesita o espera.

6.3.1 Clasificación de las interrupciones

6.4 Acceso directo a memoria (DMA)
Tanto en la E/S por interrupciones como en la E/S controlada por programa, se requiere de la intervención activa de la CPU para transferir datos entre la memoria y un periférico. Estas dos formas de E/S tienen dos desventajas: 1) La transferencia de datos está limitada por la velocidad con que la CPU puede comprobar y atender a un periférico. 2) La CPU está obligada a gestionar la transferencia de E/S; hay que ejecutar una serie de instrucciones durante cada operación de E/S. Cuando se mueven grandes cantidades de datos, se necesita una técnica más eficaz: Acceso Directo a Memoria (DMA).

6.4.1 Controlador de DMA Es capaz de hacer las funciones asignadas a la CPU durante la transferencia de datos y asumir el control del sistema, especialmente de los buses de datos y dirección. Contiene un registro de dirección y un registro contador de palabras. Permiten al controlador de DMA transferir datos desde (o hacia) una zona contigua de la memoria. El registro de dirección se utiliza para almacenar la dirección de la siguiente palabra que se va a transmitir. El registro contador almacena el número de palabras que quedan por enviar. Funcionamiento: cuando la CPU desea leer o escribir un bloque de datos emite una orden al controlador de DMA enviándole: a) Si la operación es de lectura/escritura. b) La dirección del periférico. c) La posición de comienzo en memoria de donde hay que leer o donde hay que escribir. d) El número de palabras que se tienen que leer/escribir. A partir de este momento la CPU continúa realizando otra tarea. El controlador de DMA transfiere directamente, palabra a palabra, el bloque completo de datos entre el periférico y la memoria, sin pasar por la CPU. Cuando la transferencia finaliza, el controlador de DMA envía una señal de interrupción a la CPU.

Gestión del sistema de E/S |7

6.4.2 Transferencia de datos mediante DMA Existen diferentes formas de obtener el control del bus que suponen distintos compromisos entre velocidad de transferencia y actividad de la CPU. a) Por ráfagas: El DMA toma el control del bus y no lo libera hasta que no ha transmitido el bloque de datos pedido. Se tiene a la CPU inactiva durante periodos relativamente grandes (parada del procesador).

b) Por robo de ciclos: El DMA toma el control del bus y lo retiene durante un sólo ciclo. La CPU no tiene que ocuparse de de la operación y sigue ejecutando su programa, casi con la misma velocidad, mientras que de forma simultánea se efectúa la transferencia de datos.

c) DMA transparente: Solamente se roban ciclos cuando la CPU no está utilizando el bus del sistema. La CPU no necesita usar el bus en todas las fases de la ejecución de una instrucción. Esto no es una interrupción; la CPU no guarda su contexto.

Gestión del sistema de E/S |8
Los pasos que se siguen en la transferencia mediante DMA son: 1) La CPU ejecuta tres instrucciones de E/S: registro de dirección de memoria (contiene la dirección base de la zona de memoria principal), registro de dirección del periférico y contador de palabras del controlador de DMA. 2) Cuando el controlador de DMA está preparado, activa la línea de “petición de DMA”. La CPU espera en el siguiente punto de ruptura del DMA, renuncia al control de los buses de datos y direcciones según el tipo de DMA y activa la línea de “reconocimiento de DMA”. 3) El controlador de DMA transfiere los datos a o desde la memoria principal por alguno de los métodos. 4) Si el contenido del registro contador de palabra no es 0, pero el periférico no está preparado, el controlador de DMA devuelve el control a la CPU liberando el bus del sistema y desactivando “petición de DMA”. La CPU responde desactivando “reconocimiento de DMA”. 5) Si el contenido del registro contador de palabra es 0, el controlador de DMA renuncia al control del bus y envía una señal de interrupción a la CPU.

6.5 Procesador de E/S (PE/S)
6.5.1 Características de los PE/S El PE/S representa una extensión del concepto DMA. Tiene la capacidad de ejecutar instrucciones de E/S, no lo hace la CPU. Las instrucciones de E/S se almacenan en memoria principal para ser ejecutadas por un PE/S. La CPU inicia una transferencia de E/S al dar una orden al PE/S para que ejecute un programa. El programa especifica: a) El periférico, o periféricos. b) La zona de memoria utilizada. c) Las prioridades. d) Qué acciones hay que efectuar si se producen ciertas condiciones de error. El PE/S sigue estas instrucciones y controla la transferencia de datos. Los formatos de los datos difieren a menudo de los de la memoria y de la CPU. El PE/S debe estructurar datos de muy diversas fuentes.

La comunicación entre el PE/S y los dispositivos que tiene conectados es similar al método de transferencia de E/S controlada por programa mientras que la comunicación con la memoria es análoga a la E/S controlada por DMA. La comunicación entre la CPU y el PE/S depende del nivel de sofisticación del sistema. Normalmente la CPU es el procesador maestro mientras que los PE/S’s son los procesadores esclavos. La CPU debe iniciar todas las operaciones, pero las instrucciones (órdenes para diferenciar) de E/S se ejecutan en un PE/S.

Gestión del sistema de E/S |9

6.5.2 Clasificación de los PE/S 1) Canal selector: Controla múltiples dispositivos de alta velocidad. En cualquier instante de tiempo está dedicado a la transferencia de datos con uno sólo de estos dispositivos. Cada dispositivo está manejado por un controlador de E/S. El PE/S sustituye a la CPU para la supervisión de los controladores de E/S.

2) Canal multiplexor: Controla de forma simultánea operaciones de E/S con múltiples dispositivos. Para periféricos de baja velocidad, un mux orientado a la “transferencia de bytes” acepta o transmite caracteres de la forma más rápida posible. Para dispositivos de alta velocidad, un mux orientado a la “transferencia de bloques” alterna bloques de datos de algunos dispositivos.

6.6 Gestión del sistema de E/S
6.6.1 Principios generales de diseño del SO La idea fundamental que subyace en el software de E/S es que los programas de aplicación de los usuarios puedan efectuar sus operaciones de E/S con total independencia del dispositivo. El SO debe encargarse de los problemas originados por el hecho de que estos dispositivos sean distintos y requieran manejadores diferentes.

G e s t i ó n d e l s i s t e m a d e E / S | 10
La idea de independencia del dispositivo implica un principio de generalidad en el diseño del sistema de E/S. Se trata de utilizar todos los dispositivos con una visión uniforme considerando: a) La forma en que los procesos ven a los dispositivos de E/S. b) La forma en que el SO gestiona los dispositivos y las operaciones de E/S. La estrategia es utilizar un enfoque modular y jerárquico en el diseño de la función de E/S. Las operaciones de E/S son con frecuencia el cuello de botella de una gran parte de los sistemas, por ello conviene considerar: la eficiencia, el manejo de errores, la forma de transferencia, la diferencia entre dispositivos de uso exclusivo y dispositivos que se pueden compartir.

6.6.2 Estructura lógica de la función de E/S La naturaleza jerárquica de los SO modernos implica que sus funciones de E/S se separen teniendo en cuenta: a) Complejidad b) Escala de tiempos c) Nivel de abstracción Las funciones de E/S se estructuran en un modelo conceptual por niveles. Los niveles se deben definir de forma que los cambios que se realicen en un determinado nivel no requieran modificación alguna en los otros. Las ventajas de esta estructuración por capas son: 1) Permite alcanzar los objetivos de eficiencia, manejo de errores, etc. 2) Cada nivel realiza un subconjunto de las funciones de E/S necesitadas por el SO. 3) Cada nivel descansa sobre el siguiente nivel inferior para efectuar funciones más básicas. 4) Cada nivel esconde los detalles a los niveles superiores a los que proporciona servicios. 5) Permite la descomposición del problema original en una serie de subproblemas más manejables. Las capas son las siguientes:

1) Manejadores de interrupciones Está en contacto con el dispositivo físico. Conmuta al estado bloqueado al iniciar la operación y espera hasta que acabe. En gran parte de los dispositivos de E/S las operaciones de lectura y escritura comienzan y acaban por medio de interrupciones. Una forma de manejar las interrupciones es bloquear al proceso que inicia una E/S hasta que termine ésta y ocurra una nueva interrupción. Se puede bloquear mediante un semáforo, una variable de condición, un mensaje o un monitor. 2) Manejadores de dispositivos Aceptan las solicitudes que hace el software del nivel superior y verifican su ejecución. Tienen todo el código que depende del dispositivo. Debe indicar al controlador las operaciones necesarias y su secuencia de ejecución. Una vez determinadas las

G e s t i ó n d e l s i s t e m a d e E / S | 11
órdenes el manejador las escribe en los registros del dispositivo del controlador. Dos situaciones: a) El manejador debe esperar hasta que el controlador realice algún trabajo bloqueándose hasta que ocurre una interrupción que lo despierta. b) La operación se hace sin retraso por lo que el manejador no se tiene que bloquear. Se deben verificar los errores después de terminar la operación. Si todo es correcto, el manejador podrá transmitir los datos al programa que los solicitó. 3) Software independiente del dispositivo La separación entre este nivel y el inferior depende del sistema, puesto que hay algunas tareas que, aunque independientes del dispositivo, las realiza el manejador, principalmente por cuestiones de eficacia. Funciones: a) Realizar las tareas de E/S comunes a todos los dispositivos, proporcionando una interfaz uniforme. b) Asociar los nombres simbólicos de los dispositivos con el nombre adecuado. c) Proporcionar esquemas de protección a los dispositivos. d) Proporcionar un tamaño de bloque uniforme a los niveles superiores de software. e) Utilización de buffers, aunque la E/S se haga por bloques, los procesos de usuario deben poder leer y escribir unidades arbitrarias. f) Asignación de espacio en los dispositivos por bloques. g) Asignación y liberación de los dispositivos de uso exclusivo. h) Informar a los niveles superiores de la jerarquía de los errores y del tratamiento dado a los mismos. 4) Software de usuario Hay una parte del software de E/S que no está dentro del SO, sino que son librerías accesibles a los programas de los usuarios o programas completos. Otra categoría importante es el sistema de spooling (sistema de almacenamiento auxiliar utilizado como buffer temporal para reducir retardos de procesamiento cuando se transfieren datos entre periféricos). Para evitar dejar un dispositivo de uso exclusivo inutilizado, se crea un proceso especial, demonio, y un directorio especial, directorio de spooling. Cuando un proceso quiere utilizar un dispositivo: a) Genera el archivo que se desea transferir (para impresión, por ejemplo) b) Coloca el archivo en el directorio de spooling. El demonio es el único proceso autorizado para usar el dispositivo, el que va transmitiendo los archivos. Se utiliza principalmente para impresoras y en servicios de red para la transferencia de archivos.

6.7 Buffers de E/S
Los buffers de E/S son el espacio de la memoria principal que se reserva para el almacenamiento intermedio de datos procedentes o con destino a los periféricos. Tienen mucha importancia en el rendimiento de un sistema. Para evitar posibles bloqueos de los procesos durante una operación de E/S o conflictos en el intercambio de procesos en memoria principal se efectúan las transferencias de entrada antes de que se realicen las peticiones y las de salida algún tiempo después de realizada la petición. Esta técnica se conoce como reserva de zonas o buffers de E/S.

6.7.1 Buffer simple Para dispositivos orientados a bloque las transferencias de entrada se describen: 1) La transferencia se hace desde el dispositivo al buffer que el SO le reserva en la MP.

G e s t i ó n d e l s i s t e m a d e E / S | 12
2) Cuando finaliza la transferencia el proceso mueve el bloque desde el buffer al espacio del proceso del usuario. 3) Se solicita otro bloque. Para transferencias de salida: 1) El bloque se copia desde el espacio del proceso de usuario al buffer que el SO le reserva en MP. 2) El bloque se escribe desde el buffer en el controlador de E/S.

Esto representa una mejora en velocidad ya que el proceso de usuario puede estar procesando un bloque de datos mientras se está leyendo otro bloque en el buffer. Esta técnica complica la lógica del SO y la del intercambio de procesos. El SO debe mantener un registro de las asignaciones que se hacen entre los buffers del sistema. Para dispositivos orientados a caracteres: 1) Procesamiento de toda la línea de caracteres. En una operación de entrada el proceso de usuario se suspende esperando la llegada de la línea completa. Si la operación es de salida el proceso puede colocar la línea en el buffer y continuar su procesamiento. 2) Procesamiento carácter a carácter. Se emplea en terminales utilizados en modo formulario donde la pulsación de cada tecla es significativa.

6.7.2 Buffer doble Se puede conseguir una mejora adicional asignando dos buffers. Un proceso transfiere datos a (o desde) uno de los buffers mientras el SO vacía (o llena) el otro. Para dispositivos de entrada orientados a caracteres: 1) Procesamiento de toda la línea de caracteres. El proceso de usuario no necesita suspenderse para operaciones de entrada/salida a menos que vaya por delante de los dos buffers. 2) Procesamiento carácter a carácter. No ofrece ninguna ventaja.

6.7.3 Comparación de los tiempos de transferencia Para medir el rendimiento en velocidad se utilizan tres parámetros: tB = tiempo requerido para transferir un bloque tC = tiempo de cálculo que media entre dos peticiones de transferencia tM = tiempo requerido para transferir el bloque desde el buffer a la memoria del proceso de usuario

G e s t i ó n d e l s i s t e m a d e E / S | 13
Sin buffer T = tB + tC Con buffer simple T = max (tB, tC) + tM Con buffer doble T = max (tB, tC) Es posible mantener el dispositivo orientado a bloques trabajando a su máxima velocidad si tC<tB. Si tC>tB el empleo de un buffer doble asegura que el proceso no tendrá que esperar por la operación de E/S.

6.8 Discos magnéticos
Principal soporte para la memoria secundaria y el sistema de archivos.

6.8.1 Estructura física Película de óxido magnético que recubre a un disco. Estos platos pueden ser extraíbles o fijos. Una unidad puede disponer de varios platos. Los discos giran a una velocidad constante. El número de discos varía entre 1 y 20. Los datos se leen y escriben mediante cabezas de lectura/escritura montadas de forma que contacten con la parte del disco que contiene los datos. Cada disco tiene dos superficies, por lo que hay dos cabezas por disco. Los datos se almacenan en las superficies magnéticas del disco en forma de círculos concéntricos llamados pistas. El conjunto de pistas de todas las superficies que están a la misma distancia del eje se conoce como cilindro. Las pistas se dividen en sectores y cada sector tiene varios centenares de bytes.

El número de sectores por pista y el número de bytes por sector son constantes por las pistas tienen distinto radio, la densidad de grabación en las pistas internas será mayor que en las externas. Dependiendo del número de cabezas, los discos pueden ser de cabeza fija o de cabeza móvil. Los de cabeza fija tienen generalmente una cabeza de lectura/escritura por cada pista. El tiempo para acceder al sector se denomina latencia rotacional y en promedio es igual a la mitad del tiempo de revolución del disco. Los discos de cabeza móvil tienen una o unas pocas cabezas por superficie. La lectura de un sector requiere que el montaje de las cabezas sea desplazado hasta el cilindro correspondiente. El tiempo de acceso (ta) está compuesto por el tiempo de posicionamiento de la cabeza o tiempo de búsqueda (tB) y el tiempo de latencia rotacional (tr). La velocidad de transferencia de datos de los discos actuales suele ser de 5Mb/s.

G e s t i ó n d e l s i s t e m a d e E / S | 14
El tiempo que se precisa para que los datos se transfieran desde el disco a la MP se compone de: 1) Tiempo de búsqueda (tb): Tiempo necesario para que las cabezas se desplacen al cilindro. Consta de dos componentes: el tiempo de arranque inicial (ti) y el tiempo que se tarda en recorrer todos los cilindros que hay entre la pista inicial y la final: tb = m × n + ti donde n = número de pistas recorridas m = constante que depende de la unidad de disco 2) Retardo rotacional (tr): Tiempo medio que tarda el sector en estar debajo de la cabeza de lectura/escritura. tr = 2𝑓𝑓 𝑏𝑏

1

3) Tiempo de transferencia (tt): Tiempo que se tarda en transferir los datos. Si b es el número de bytes que se desean transferir y P el número de bytes que hay en una pista: tt = 𝑃𝑃
× 𝑓𝑓

6.8.2 Controlador del disco Un controlador puede manejar varias unidades, se necesitan líneas de control para seleccionar la unidad (líneas de selección de unidad). Las líneas de selección de cabeza activan la cabeza de lectura/escritura adecuada. Las líneas de dirección indican como se desplazará la cabeza desde la situación actual. Las líneas de paso proporcionan la secuencia de impulsos y las líneas leer y escribir activan la cabeza seleccionada en modo lectura o escritura. Las líneas de entrada y salida de datos transportan los bits leídos del disco o los que hay que grabar en el mismo. Después vienen una serie de entradas como reinicializar, indicación de fallo, etc. El control de errores es necesario para detectar los errores transitorios provocados por ruidos e interferencias electromagnéticas y para manejar los defectos del medio de almacenamiento. Cuando se escribe un dato en el disco, el controlador calcula los bits de verificación y los añade a la información que se transmite. Dependiendo de la causa, un error puede ser transitorio o permanente. Los primeros de corrigen leyendo varias veces el sector correspondiente. Si después de unas cuantas lecturas el error persiste, éste se trata como permanente. El bloque queda marcado como defectuoso, de forma que se impide su utilización. Los bloques defectuosos pueden detectarse durante la fase de inicialización del disco. Otros errores, los errores de búsqueda, pueden deberse a problemas mecánicos en las cabezas. También se ha de considerar la necesidad de que el controlador disponga de un buffer interno para el almacenamiento temporal. Una vez que se ha iniciado una operación de E/S desde el disco, los datos se transfieren a velocidad constante, independientemente de que el controlador esté preparado o no para recibirlos. La utilización de un buffer interno hace innecesario el bus del sistema hasta que comienza el acceso por DMA y tiene consecuencias importantes en la gestión del sistema de E/S. Cuando el controlador o la propia CPU están transfiriendo los datos a la memoria, el siguiente sector estará pasando por debajo de las cabezas de lectura de manera que la información correspondiente estará llegando al controlador. Este tipo de controladores no es capaz de leer bloques contiguos de información. La lectura de una pista requiere al menos dos rotaciones. La técnica de saltar bloques, para dar un margen de tiempo al controlador para que transmita los datos a memoria, se llama entrelazado. Éste puede ser simple, doble o cuádruple.

G e s t i ó n d e l s i s t e m a d e E / S | 15
Como la transferencia de datos entre el disco y la memoria se hace mediante DMA, la rutina de disco no devuelve datos explícitos a sus invocadores, excepto la información referente al resultado de la operación. Cuando se detecta una excepción la rutina del disco indica el número real de bytes transferidos correctamente antes del error.

6.9 Planificación del disco
Cuando un programa requiere una operación de E/S del disco, envía la correspondiente llamada al sistema operativo: a) Tipo de operación b) Dirección en el disco c) Dirección en memoria d) Cantidad de información que se va a transferir Si está disponible, se atiende de forma inmediata la petición. Si no, se ponen en cola todas las peticiones pendientes que vayan llegando. La diferencia de rendimiento de unos discos a otros está en el tiempo de búsqueda, por lo que hay varias formas de planificar las peticiones a disco.

6.9.1 Planificación FCFS: primero en llegar, primero en ser servido Forma más sencilla de gestión de búsqueda. Las solicitudes se van almacenando en una memoria tipo FIFO. Muy probable que no ofrezca en promedio el mejor tiempo de servicio.

6.9.2 Planificación SSTF: primero la de menor tiempo de posicionamiento Shortest Service Time First. Atiende la petición que requiere el menor movimiento de la cabeza de lectura/escritura desde su posición actual. No garantiza que el tiempo medio de búsqueda a lo largo de un número de movimientos sea mínimo. Un problema potencial que se puede presentar es el bloqueo indefinido de algunas peticiones.

6.9.3 Planificación SCAN Evita el bloque indefinido. La cabeza va recorriendo todas las pistas en una dirección y satisfaciendo todas las peticiones que se encuentra en el camino, hasta que alcanza la última pista. En este punto se invierte el sentido del recorrido y la búsqueda prosigue de la misma forma. Si llega una petición a la cola justo delante de la cabeza se atenderá inmediatamente, mientras que si corresponde a una posición que está por detrás deberá esperar a que la cabeza llegue al final y dé la vuelta. Este algoritmo no explota la localidad de las posiciones.

6.9.4 Planificación C-SCAN Restringe el rastreo a una única dirección. Cuando se ha visitado la última pista en una dirección, la cabeza vuelve al extremo opuesto del disco y comienza otra vez la exploración.

6.9.5 Planificación LOOK y C-LOOK Variantes de SCAN y C-SCAN. La cabeza se mueve hasta la última petición de cada dirección. Si no hay peticiones pendientes en la dirección actual, se cambia el sentido del movimiento.

Sign up to vote on this title
UsefulNot useful