Software de entrada y salida. Las metas generales del software de entrada y salida son fáciles de establecer. La idea básica es organizar el software como una serie de capas, en donde las capas inferiores se encarguen de ocultar las peculiaridades del hardware a las capas superiores y de forma que estas se preocupen por presentar una interfaz agradable, limpia y regular a los s.
Manejadores de interrupciones. Directivas de dispositivos. Software de S. O. independiente de los dispositivos. Software a nivel .
Manejadores de Interrupciones. El primer objetivo referente a los manejadores de interrupciones consiste en que el programador o el no debe darse cuenta de los manejos de bajo nivel para los casos en que el dispositivo está ocupado y se debe suspender el proceso o sincronizar algunas tareas. Desde el punto de vista del proceso o , el sistema simplemente se tardó más o menos en responder a su petición. Manejadores de Dispositivos. El sistema debe proveer los manejadores de dispositivos necesarios para los periféricos, así como ocultar las peculiaridades del manejo interno de cada uno de ellos, tales como el formato de la información, los medios mecánicos, los niveles de voltaje y otros. Por ejemplo, si el sistema tiene varios tipos diferentes de discos duros, para el o programador las diferencias técnicas entre ellos no le deben importar, y los manejadores le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos. Software que sea independiente de los dispositivos. Este es un nivel superior de independencia que el ofrecido por los manejadores de dispositivos. Aquí el sistema operativo debe ser capaz, en lo más posible, de ofrecer un conjunto de utilerías para acezar periféricos o programarlos de una manera consistente. Por ejemplo, que para todos los dispositivos orientados a bloques se tenga una llamada para decidir si se desea usar 'buffers' o no, o para posicionarse en ellos. Software para s. La mayoría de las rutinas de entrada - salida trabajan en modo privilegiado, o son llamadas al sistema que se ligan a los programas del formando parte de sus aplicaciones y que no le dejan ninguna flexibilidad al en cuanto a la apariencia de los datos. Existen otras librerías en donde el si tiene poder de decisión (por ejemplo la llamada a "printf" en el lenguaje "C"). Otra facilidad ofrecida son las áreas de trabajos encolados (spooling areas), tales como las de impresión y correo electrónico.
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 a visa 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.
Manejadores de dispositivos Código que depende 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: 1. 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 2. Verifica la ejecución de la operación, corrigiendo posibles errores 3. Inicializa el dispositivo, comprueba si está encendido (p.e. el motor de una disquetera), si está conectado, o si está ocupado Al solicitarla ordena 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 determinar
Software de E/S independiente de dispositivo 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
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 s no autorizados accedan al dispositivo 5. Tamaño de boque 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