La gestión E/S, o I/O (del original en inglés input/output), es la colección de interfaces que utilizan diferentes unidades funcionales (subsistema) de un sistema de procesamiento de información para unas a otras o las señales (informaciones) enviadas a través de esas interfaces.
Los dispositivos de E/S son los que permiten la comunicación usuario-maquina o computador.
Por medio de los drivers, el sistema operativo puede unificar y controlar el acceso a los programas y recursos naturales(también conocidos como administradores periféricos o de entrada/salida).
Objetivos del software de E/S
- Independencia de dispositivo
Se debe poder acceder a los dispositivos de E/S sin tener que especificar previamente de qué tipo de dispositivo se trata como en los dispositivos de bloques: disquetes, discos duros, cdrom's. El S.O. debe resolver los problemas causados por usar diferentes dispositivos, que requieren órdenes distintas para manejarlos.
- Nombres uniformes para los dispositivos
El nombre de un fichero o dispositivo debe ser simplemente una cadena o un entero, y no depender del dispositivo.
- Manejo de errores
Deben manejarse tan cerca del hardware como sea posible subsanar todos los errores posibles comunicando los no subsanables a los procesos de usuario.
- Compartición de recursos
Debe permitir la compartición de ciertos dispositivos (como los discos) pero al mismo tiempo debe garantizar el uso exclusivo de otros (como las impresoras).
- Uso de buffers
Debe proporcionar almacenamiento temporal en memoria para evitar pérdida de datos (teclado) o acelerar dispositivos (discos).
Estructura y componentes del software de E/S
El software de E/S suele estar organizado en 4 capas, cada una con una función bien definida y una interfaz clara con las capas:
1. Manejadores de interrupciones:
Se deben ocultar al máximo en el S.O. el proceso que solicita la operación se bloquea hasta que termina la E/S cuando se presenta una interrupción el manejador de interrupciones hace lo propio para manejarla. Después avisa al manejador que le solicitó esa operación de E/S. El manejador despierta al proceso y prosigue su ejecución, así, el efecto real es que el proceso que antes estaba bloqueado ahora ya puede ejecutarse.
2. Manejadores de dispositivos
Códigos que dependen de los dispositivos, que sirve para controlarlos.
Cada manejador habla con la controladora de un tipo determinado de dispositivos, o de una clase de dispositivos forma parte del núcleo del SO, necesita ejecutarse en modo núcleo para acceder a los registros de la controladora del dispositivo.
Tareas del manejador del dispositivo:
Trata las solicitudes abstractas del SID y se encarga de que se satisfagan indicando a la controladora qué hay que hacer y leyendo la respuesta de la misma verifica la ejecución de la operación, corrigiendo posibles errores Inicializa el dispositivo, comprueba si está encendido (por ejemplo el motor de una disquetera), si está conectado, o si está ocupado al solicitar la orden a realizar, el manejador puede ser que tenga que esperar (bloqueándose hasta que se produzca una interrupción) o que la operación termine sin retraso (el manejador no se bloquea)
Ha de ser reentrante ) durante su ejecución, debe considerar la posibilidad de que se le invoque otra vez antes de terminar.
3. Software de E/S independiente del dispositivo (SID):
Hay software que no depende directamente del dispositivo dependiente versus independiente: ¿dónde está la frontera? Algunas funciones que podrían efectuarse con independencia del dispositivo en realidad se ejecutan en el manejador por eficiencia o por otros motivos.
Funciones:
1. Interfaz uniforme del software a nivel de usuario.
2. Asociación de nombres simbólicos de los dispositivos y el manejador correcto: /dev/tty0 ) nodo-i especial (id. tipo y dispositivo).
3. Interfaz uniforme para manejadores de dispositivo.
4. Protección de dispositivos ) evitar que usuarios no autorizados accedan al dispositivo.
5. Tamaño de bloque independiente del dispositivo agrupar o dividir sectores para conseguir un tamaño único de bloque lógico, las capas superiores pueden trabajar con dispositivos abstractos.
6. Uso de buffers para almacenamiento temporal de los datos homogeneizan velocidades, se pueden recibir los datos de manera másrápida que la velocidad que pueden salir.
1. Manejadores de interrupciones:
Se deben ocultar al máximo en el S.O. el proceso que solicita la operación se bloquea hasta que termina la E/S cuando se presenta una interrupción el manejador de interrupciones hace lo propio para manejarla. Después avisa al manejador que le solicitó esa operación de E/S. El manejador despierta al proceso y prosigue su ejecución, así, el efecto real es que el proceso que antes estaba bloqueado ahora ya puede ejecutarse.
2. Manejadores de dispositivos
Códigos que dependen de los dispositivos, que sirve para controlarlos.
Cada manejador habla con la controladora de un tipo determinado de dispositivos, o de una clase de dispositivos forma parte del núcleo del SO, necesita ejecutarse en modo núcleo para acceder a los registros de la controladora del dispositivo.
Tareas del manejador del dispositivo:
Trata las solicitudes abstractas del SID y se encarga de que se satisfagan indicando a la controladora qué hay que hacer y leyendo la respuesta de la misma verifica la ejecución de la operación, corrigiendo posibles errores Inicializa el dispositivo, comprueba si está encendido (por ejemplo el motor de una disquetera), si está conectado, o si está ocupado al solicitar la orden a realizar, el manejador puede ser que tenga que esperar (bloqueándose hasta que se produzca una interrupción) o que la operación termine sin retraso (el manejador no se bloquea)
Ha de ser reentrante ) durante su ejecución, debe considerar la posibilidad de que se le invoque otra vez antes de terminar.
3. Software de E/S independiente del dispositivo (SID):
Hay software que no depende directamente del dispositivo dependiente versus independiente: ¿dónde está la frontera? Algunas funciones que podrían efectuarse con independencia del dispositivo en realidad se ejecutan en el manejador por eficiencia o por otros motivos.
Funciones:
1. Interfaz uniforme del software a nivel de usuario.
2. Asociación de nombres simbólicos de los dispositivos y el manejador correcto: /dev/tty0 ) nodo-i especial (id. tipo y dispositivo).
3. Interfaz uniforme para manejadores de dispositivo.
4. Protección de dispositivos ) evitar que usuarios no autorizados accedan al dispositivo.
5. Tamaño de bloque independiente del dispositivo agrupar o dividir sectores para conseguir un tamaño único de bloque lógico, las capas superiores pueden trabajar con dispositivos abstractos.
6. Uso de buffers para almacenamiento temporal de los datos homogeneizan velocidades, se pueden recibir los datos de manera másrápida que la velocidad que pueden salir.
7. Asignación de espacio en los dispositivos de bloques.
Realizar la gestión de la lista ligada o mapa de bits para administrar el espacio libre es independiente del dispositivo.
8. Arbitrio entre dispositivos de uso exclusivo.
Examinar las solicitudes de uso de dispositivos y aceptarlas o rechazarlas,
según el dispositivo esté disponible o no.
según el dispositivo esté disponible o no.
9. Informe de errores.
Los errores no resueltos por los manejadores deberán ser tratados por el SID,que intentará solucionarlos, y si no puede, deberá informar de los mismos.
Los errores no resueltos por los manejadores deberán ser tratados por el SID,que intentará solucionarlos, y si no puede, deberá informar de los mismos.
4. Software de E/S en el espacio de usuario
Procedimientos de biblioteca
La mayoría del software de E/S está en el núcleo sin embargo, también hay procedimientos de biblioteca que se ejecutan en modo usuario y que se encargan de realizar las llamadas al sistema (ej. read, printf, etc.). Normalmente preparan el «entorno» adecuado y a continuación realizan la llamada al sistema
Sistema de spooling
Los dispositivos de uso exclusivo no se pueden dejar a cargo de programas de usuario (problema: monopolización) .El sistema de spooling es una forma de manejar dispositivos
dedicados en un sistema con multipogramación.
No hay comentarios:
Publicar un comentario