dispositivos de entrada-salida

dispositivos de entrada-salida

domingo, 11 de mayo de 2014

Estructuras de datos para manejo de dispositivos.

Los procesos de usuario emiten peticiones de entrada/salida al sistema operativo. Cuando un proceso solicita una operación de E/S, el sistema operativo prepara dicha operación y bloquea al proceso hasta que se recibe una interrupción del controlador del dispositivo indicando que la operación está completa. Las peticiones se procesan de forma estructurada en las siguientes capas:
• Manejadores de interrupción.
• Manejadores de dispositivos o drivers.
•Software de E/S independiente de los dispositivos. Este software está formado por la parte de alto nivel de los manejadores, el gestor de cache, el gestor de bloques y el servidor de archivos.
• Interfaz del sistema operativo. Llamadas al sistema que usan las aplicaciones de usuario.

Manejadores de interrupción

Los manejadores de interrupción se encargan de tratar las interrupciones que generan los controladores de dispositivos una vez que éstos están listos para la transferencia de datos o bien han leído o escrito los datos de memoria principal en caso de acceso directo a memoria. Para tratar dicha interrupción se ejecuta el correspondiente manejador de interrupción cuyo efecto es el de salvar los registros, comunicar el evento al manejador del dispositivo y restaurar la ejecución de un proceso (que no tiene por qué ser el interrumpido).
Los manejadores de interrupción suelen hacer algo más que comunicar el evento al manejador de dispositivo. Cuando una interrupción ocurre muy frecuentemente, caso del reloj, o cuando la cantidad de información a transferir es muy pequeña, caso del teclado, sería muy costoso comunicar siempre el evento al manejador de dispositivo asociado. En estos casos, el propio manejador de interrupción registra la ocurrencia del evento, bien mediante el incremento de una variable global para el reloj o la acumulación de caracteres en un buffer del teclado. La notificación al manejador se hace únicamente cada cierto número de ocurrencias del evento, en el caso del reloj, o activando una bandera que indica que hay datos en el buffer del teclado.

Las interrupciones deben ocultarse en el S. O.: 
-
Cada proceso que inicie una operación de e / s se bloquea hasta que termina la e / s y ocurra la interrupción. 
-El procedimiento de interrupción realiza lo necesario para desbloquear el proceso que lo inició.

Manejadores de dispositivos

Cada dispositivo de E/S, o cada clase de dispositivos, tiene un manejador asociado en el sistema operativo.
Dicho manejador incluye: código independiente del dispositivo para proporcionar al nivel superior del sistema operativo una interfaz de alto nivel y el código dependiente del dispositivo necesario para programar el controlador del dispositivo a través de sus registros y datos. La tarea de un manejador de dispositivo es aceptar peticiones en formato abstracto, de la parte del código de E/S independiente del dispositivo, traducir dichas peticiones a términos que entienda el controlador, enviar al mismo las órdenes adecuadas en la secuencia correcta y esperar a que se cumplan.



Cada controlador posee uno o más registros de dispositivos: 


-Se utilizan para darle los comandos. 
-Los manejadores de dispositivos proveen estos comandos y verifican su ejecución adecuada.

La labor de un manejador de dispositivos es la de: 

-Aceptar las solicitudes abstractas que le hace el software independiente del dispositivo. 
-Verificar la ejecución de dichas solicitudes.

Si al recibir una solicitud el manejador está ocupado con otra solicitud, agregará la nueva solicitud a una cola de solicitudes pendientes.

La solicitud de E/S, por ejemplo para un disco, se debe traducir de términos abstractos a términos concretos: El manejador de disco debe:

- Estimar el lugar donde se encuentra en realidad el bloque solicitado.
- Verificar si el motor de la unidad funciona.
- Verificar si el brazo está colocado en el cilindro adecuado, etc.
- Resumiendo: debe decidir cuáles son las operaciones necesarias del controlador y su orden.
- Envía los comandos al controlador al escribir en los registros de dispositivo del mismo.
- Frecuentemente el manejador del dispositivo se bloquea hasta que el controlador realiza cierto trabajo; una interrupción lo libera de este bloqueo.
- Al finalizar la operación debe verificar los errores.
- Si todo esta en orden transferirá los datos al software independiente del dispositivo.
- Regresa información de estado sobre los errores a quien lo llamó.
- Inicia otra solicitud pendiente o queda en espera.

No hay comentarios:

Publicar un comentario