27/3/09

Gestión de Entrada y Salida

El hardware asociado con un dispositivo de E/S consta de cuatro elementos básicos que son el bus para comunicarse con la CPU y es compartido entre varios dispositivos, Un puerto que consta de varios registros (Estado, Control, Datos_entrada, Datos_salida), un controlador que recibe ordenes del bus del sistema, traduce ordenes, y lee/escribe datos desde/en el bus del sistema, y por ultimo el propio dispositivo, bien sea tradicional como impresoras, teclado, modem, ratón, pantalla, entre otros, como no tradicionales joystick, actuador de robot, superficie de vuelo de un avión, sistema de inyección de un coche, etc.

Existen varias formas en que el sistema operativo se comunique con cualquier dispositivo de entrada y salida, uno de ellos es el sondeo donde el CPU espera hasta que el estado sea libre y ajusta el registro de ordenes y datos-salida (si la operación es de salida), luego ajusta el estado a orden-preparada haciendo reaccionar el controlador y pone estado a ocupado, lee registro de ordenes y ejecuta orden, pone un valor en datos-salida (si es una orden de salida), suponiendo que la orden tiene éxito el controlador cambia el estado a ocioso, la CPU observa el cambio a ocioso y lee los datos si es una operación de salida. El sondeo es buena elección si los datos van a ser manejados al instante (un modem o teclado).

Por otro lado, en lugar de tener la CPU ocupada esperando la disponibilidad del dispositivo, se encuentra la interrupción, otra forma de comunicación entre sistema operátivo-dispositivo, donde el dispositivo interrumpe a la CPU cuando ha terminado una operación de e/s, cuando esto ocurre, la cpu determina que dispositivo la provocó y si la última orden fue una operación de entrada, recupera los datos del registro del dispositivo e  inicia la siguiente operación para el dispositivo.

Arquitectura software del sistema de E/S

Se puede estructurar el software de e/s en capas:

  • Manejadores de dispositivos: Cada manejador gestiona un tipo o clase de dispositivo. Acepta peticiones “abstractas” de la capa de software independiente del dispositivo y las traduce en ordenes para el controlador del dispositivo, además controla que la petición se realiza y se bloquea o no, según tipo de operación. Si no hay errores, da respuesta si es necesario, y retorna al llamador.
  • Software de e/s independiente del dispositivo: Realiza las tareas comunes a todos los dispositivos como la protección, implementa el búfering, asigna y libera dispositivos dedicados, informar de errores producidos y suministra una interfaz común al usuario.
  • Software a nivel de usuario: permiten realizar las llamadas al sistema de e/s para la gestión de formatos y control de los dispositivos


Rendimiento y sus soluciones

En cuanto a el rendimiento de las E/S se puede decir por varias razones que son costosas, ya que, Involucran movimientos físicos lentos (cabezal disco) o líneas de comunicaciones (teléfono-red) que también lo son.

Los dispositivos de E/S son a menudo disputados por múltiples procesos y se suministran por medio de llamadas al sistema y gestión de interrupciones, que son lentas. Para solucionar esto seria mas factible reducir el número de veces que los datos son copiados manteniéndolos en caché, reducir la frecuencia de interrupciones utilizando, si es posible, grandes transferencias de datos y descargar computación de la CPU principal utilizando controladores de dispositivos que puedan escribir directamente en memoria( DMA, Direct Memory Access).

No hay comentarios:

Publicar un comentario