GESTIÓN DE ENTRADA Y SALIDA

 Gestión de entrada y salida

¿Qué es Gestión de E/S?

    Representa los intercambios de información desde el procesador o incluso al acceso directo de la memoria. Esta actividad de entrada y salida se realiza gracias a la relación que hay entre el sistema operativo con los diversos periféricos, así administrar y controlar los estados y recursos que tienen cada uno de estos mediante los controladores de dispositivos.
  • El sistema operativo es el vínculo entre la aplicación de usuario y el hardware de E/S.
  • Objetivos del subsistema de E/S del S.O:
    • Poder escribir programas capaces de acceder a un dispositivo de E/S sin saber de antemano de que dispositivo se trata.
  • Manejo de errores.
  • Gestión de distintos tipos de dispositivos.
    • Compartibles o dedicados.
    • De modo carácter o de modo bloque.
    • De acceso secuencial o aleatorio.
    • Etc...

Los Sistemas Operativos controlan los dispositivos de E/S por tres razones: 
  • La interfaz de hardware para la mayoría de los periféricos es relativamente cruda (necesita software complejo para controlarlos y utilizarlos).
  • Los periféricos son recursos compartidos (el S.O. debe protegerlos para que los accesos sean correctos y seguros).
  • El Sistema Operativo proporciona una interfaz consistente, uniforme y flexible para todos los periféricos (permite a los usuarios referenciar a los dispositivos por el nombre y realizar operaciones de alto nivel sin necesidad de conocer la configuración de la máquina). 

Dispositivos o periféricos:

    Son aparatos solidos e independientes que van conectados a la unidad central de la computadora. Existen diversos tipos de dispositivos con funciones diferentes. 

Existen tres tipos de dispositivos según su función: 

  • Dispositivos de entrada:

    Tienen la tarea de introducir información, órdenes, comandos e instrucciones para que la computadora lo procese con el sistema operativo.


  • Dispositivos de salida:
    Son los que se encargan de procesar los resultados de salida de los procesos de datos y mostrarlos al usuario.

  • Dispositivos de Bloques:

    Estos periféricos almacenan información en bloques de tamaño fijo, estos van desde 128 bytes hasta 1024 bytes.

Problemas entre el Sistema Operativo y los Dispositivos

  • Cada dispositivo tiene diferentes funciones.
  • Los dispositivos dependen de núcleo de sistema operativo.
  • Existe diferentes velocidades entre los dispositivo tanto como de entrada, salida y bloque.
  • El sistema operativo trata de buscar la mejor manera de realizar la función de entrada y salida.

Control de entrada y salida: 

    Mediante esta actividad el sistema operativo decide que proceso hará uso del recurso, durante cuánto tiempo y en que momento. Entrada y salida Controladas por Programas e Interrupciones. 
  • Por programas: es la forma más sencilla en realizar operaciones de entradas y salidas. Esto ocurre cuando el procesador y el dispositivo coinciden en el mismo tiempo definido; el procesador interactúa directamente con el dispositivo comprobando el estado o si tiene algún dato listo para así poder recibirlo.
  • Por interrupciones: en este caso el procesador espera un tiempo indefinido hasta que el modulo que es el encargado de proyectar la operación de entrada y salida este preparado para ejecutar la operación.

Principios de Software de E/S

    Consiste en organizar el software como una serie de estratos que oculten las características del hardware y presente una interfaz sencilla a los usuarios. Es importante resaltar la independencia del dispositivo, el control de errores, y los dispositivos con solo un propósito y dispositivos compartibles por varios usuarios al mismo tiempo. 

    La idea básica es organizar el software de E/S en una serie de capas de forma que podamos ocultar las peculiaridades y complejidades del hardware a los usuarios. 

Objetivos del software de E/S

  •  La Independencia de los dispositivos: Debe ser posible escribir programas que se puedan utilizar con archivos (en disquete o en disco duro) o sobre otros dispositivos sin tener que modificar los programas para cada caso.
  • Uniformidad en los nombres de dispositivo: El dispositivo se debe poder identificar mediante un número o una cadena de caracteres y no debe depender del dispositivo. Los programas harán referencia al dispositivo mediante su identificador asociado, siendo el S.O. el encargado de detectar el dispositivo real al que se está haciendo referencia.
  • Distinguir el tipo de transferencias: síncronas (bloqueado) o asíncronas (dirigido por interrupciones). La mayoría de la E/S física es asíncrona, es decir, la CPU solicita la operación y hace cualquier otra cosa hasta que recibe la interrupción de fin de la operación solicitada. Los programas de usuario se bloquean hasta que el S.O. recibe las operaciones asociadas a la interrupción. 
  • Manipulación de errores: Los errores se deben gestionar tan cerca del hardware como sea posible. Si el controlador detecta un problema en la lectura, intentará corregirlo (por ejemplo, haciendo otra lectura); si no puede, lo hará el driver del dispositivo (por ejemplo, vuelve a leer el bloque). Sólo si las capas inferiores no pueden solucionar el error, se informará a las capas superiores (usuario). 
  • Tratamiento uniforme de los periféricos: El S.O. debe manipular todos los tipos de dispositivos evitando los problemas que pueden presentar. Por ejemplo, existen dispositivos compartidos (como el disco duro) y dedicados (como la impresora), y el S.O. debe tratarlos como tales sin que el usuario tenga constancia de estas distinciones.
Estos objetivos se pueden lograr estructurando el software de E/S en 4 capas:
  1. Manipulador de interrupciones.
  2. Drivers de dispositivos.
  3. Software de E/S independiente de los dispositivos.
  4.  Software a nivel de usuario.

 Drivers

    Un driver o controlador de dispositivo es un programa que facilita la comunicación entre un sistema operativo y un periférico. En informática se le llama controlador de dispositivo, driver, o simplemente controlador al software que se encarga de permitir que un sistema interactúe con un periférico como una grabadora de CD o DVD, una cámara, un joystick y muchos otros. A menudo, el driver se ocupa de establecer una interfaz para la utilización del hardware recientemente instalado.

    En definitiva, provee de instrucciones al ordenador respecto de cómo comunicarse con el nuevo dispositivo. Un driver no siempre es necesario para el uso del nuevo hardware, pero casi siempre es recomendada su instalación para evitar problemas futuros.


Para lograr esto el software se estructura en 4 niveles:
  1. Manejadores de interrupciones.
  2. Manejadores de dispositivos.
  3. Software de E/S independiente del dispositivo.
  4. Software del usuario.

Manejadores y Controladores

    Programa de más bajo nivel que se encarga de los detalles que son dependientes del dispositivo. Elemento electrónico de la unidad de E/S (tarjeta de circuitos impresos).

Registros

  • Forman parte del espacio normal de direcciones de la memoria.
  • Espacio de direcciones especial para E/S.

Operaciones de E/S 

  • El S.O. escribe órdenes y parámetros en los registros.
  • El controlador acepta la orden y comienza a trabajar.
  • El controlador genera una interrupción. 
  • El S.O. mira si la operación se ha realizado correctamente.

  Software de E/S

  • Objetivos de la programación de la E/S.
    • Independencia del dispositivo.
    • Uniformidad de los nombres.
    •  Manejo de errores.
    • Presentar al programador transferencias síncronas.
      • Síncronas: bloquean al programa.
      • Asíncronas: no bloquean al programa.
    • Gestión de los dispositivos
      • compartidos
      • dedicados

Elementos de E/S

  • Cada elemento de E/S se conecta al bus del sistema directa o indirectamente.
  • Suele estar dividido en dos partes:
    • Controladora o adaptador de dispositivo.
      • Tarjeta de circuito impreso conectada a una ranura de expansión del computador.
      • Posee registros de estado, control y datos.
    • El dispositivo en sí
      • Conectado a la controladora mediante una ranura, cable o similar, que puede ser un estándar (p.e. IDE o SCSI)

Manejadores de interrupciones

  • En la mayoría de operaciones de E/S, las interrupciones son inevitables.
    • Se deben ocultar lo máximo posible.
    • El S.O. puede / debe realizar varias tareas:
      • Guardar registros y PSW y preparar un contexto y una pila para poder ejecutar una ISR.
      • Enviar el acuse de recibo a la controladora de interrupciones.
      • Ejecutar la ISR. Esta parte interactuará con la controladora que generó la interrupción.
      • En ocasiones, despertar a algún proceso implicado en la E/S e invocar al planificador.
      • Preparar el contexto y recuperar los registros del nuevo proceso.
      • Retornar de la interrupción y ejecutar al nuevo proceso.

Manejadores de Dispositivos

  • Contienen el código específico de cada dispositivo.
  • Funciones:
    • Inicializar el dispositivo.
    • Aceptar solicitudes abstractas de leer o escribir por el SW independiente de dispositivo.
    • Registrar los sucesos.
  • Suele estar escrito por el fabricante de cada dispositivo de hardware.
    • Es importante que los diseñadores del S.O. tengan un modelo bien definido de lo que hace un manejador de dispositivos y cómo interactúa con el S.O.
    • Interfaz estándar de dispositivos de modo bloque y de modo carácter.

Velocidades de dispositivos de E/S


Principios del hardware de E/S

Existen gran cantidad de periféricos de E/S que difieren en aspectos de:
  • Velocidad de transferencia de información (por ejemplo, en un disco magnético está en torno a los 10 millones de c.p.s., mientras que en un teclado ronda los 50 c.p.s.).
  • Unidad de transferencia (puede ser carácter, palabra, byte, registro, bloque, …).
  •  Representación de los datos (distintas formas de codificación para diferentes soportes de E/S). de paridad, tarjeta arrugada, error de checksum, …).
  • Operaciones permitidas (distintos periféricos, distintos tipos de operaciones. Por ejemplo, una cinta magnética se puede rebobinar, pero el papel de una impresora no).
  • Condiciones de error (distintos periféricos tienen distintas causas de error. Por ejemplo, error de paridad, tarjeta arrugada, error de checksum, …).

Clasificación del hardware de E/S

Los periféricos de E/S se pueden clasificar en dos categorías:
  • Dispositivos de bloques: Almacenan la información en bloques de tamaño fijo, cada uno con una dirección propia (permite leer, escribir o buscar un bloque sin dependencia de los demás). Por ejemplo: Disco magnético.
  • Dispositivos de caracteres: Aceptan o entregan un flujo de caracteres sin considerar estructuras de bloques. No son direccionables y, por tanto, no permiten operaciones de búsqueda. Por ejemplo: Impresora, terminales, cintas de papel, interfaz de redes, …

Controladores de dispositivos

    Las unidades de E/S constan de dos partes: una mecánica y otra electrónica (controlador de dispositivo o adaptador). El S.O. casi siempre trata con los controladores y no con los dispositivos. 


    Cada controlador tiene un conjunto de registros (conocidos como Puerto de E/S) que se usan para la comunicación con la CPU. Básicamente:
  • Registros de datos (búfer de E/S).
  • Registros de órdenes.
  • Registros de estado.
    Ejemplos de puertos son los puertos paralelos, los puertos serie, los puertos USB, … 

Las direcciones de los puertos de E/S pueden:
  •  Estar incluidas en las direcciones de memoria, ó
  •  Estar en un espacio de direcciones aparte, llamado Espacio de E/S.
El S.O. realiza la E/S escribiendo comandos en los registros de los controladores.

Funcionamiento de la E/S

La E/S se realiza generalmente guiada por interrupciones, según los siguientes pasos:
  • El S.O. solicita una operación a un controlador.
  • El controlador inicia la operación (la CPU puede asignarse a otro proceso).
  • La operación del controlador finaliza. 
  • El controlador envía una interrupción para informar del resultado.
  • El S.O. comprueba los resultados de la operación y obtiene los resultados y el estado del dispositivo leyendo uno o más bytes de información de los registros del controlador.
  • El S.O. comprueba los resultados de la operación y obtiene los resultados y el estado del dispositivo leyendo uno o más bytes de información de los registros del controlador.
Acceso Directo a Memoria (DMA, Direct Memory Access). 


Comentarios