miércoles, 29 de octubre de 2014

4.3 Estructura de datos para manejo de dispositivos

4.3 Estructura de datos para manejo de dispositivos

Una Estructura de Datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación.
Un dato elemental es la mínima información que se tiene en un sistema. 

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
Después de dar servicio a un dispositivo ejecutando su rutina de servicio de interrupción (RSI) asociada, el procesador reanuda la actividad desde el punto de la interrupción.
Las interrupciones deben ocultarse en lo más profundo de las entrañas del S.O. La forma de esconderlo es que cada proceso que inicie una operación de E/S ser bloquea hasta que termine la E/S y ocurra la interrupción . El proceso se puede bloquear asi mismo mediante un DOWN en un semáforo, un WAIT en una variable de condición o un PECEIVE en un mensaje.





MANEJADORES DE DISPOSITIVOS

Todo el código que depende de los dispositivos aparece en los manejadores de dispositivos.

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 esta ocupado con otra solicitud, agregara la nueva solicitud a una cola de solicitudes pendientes. 
UN 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 esta colocado en el cilindro adecuado, etc.


OResumiendo: debe decidir cuales son las operaciones necesarias del controlador y su orden.
OEnvía los comandos al controlador al escribir en los registros de dispositivo del mismo.
OFrecuentemente el manejador del dispositivo se bloquea hasta que el controlador realiza cierto trabajo; una interrupción lo libera de este bloqueo.
OAl finalizar la operación debe verificar los errores.
OSi todo esta o.k. transferirá los datos al software independiente del dispositivo.
ORegresa información de estado sobre los errores a quien lo llamo.

OInicia otra solicitud pendiente o queda en espera.



E/S INDEPENDIENTE DE DISPOSITIVO
La frontera de este nivel con el anterior es difusa.
Ya que tiene diferentes Funciones:
O- Ofrecer una interfaz uniforme a los procesos de usuarios.
O- Asignar nombres a los dispositivos.
O- Proteger a los dispositivos.
O- Ofrecer un tamaño de bloque independiente de los dispositivos.
O- Almacenar los datos temporales en la transferencias de E/S.
O- Gestionar la asignación del espacio en dispositivos de bloques.
O- Reservar y liberar los dispositivos dedicados.
O- Informar de los posibles errores.
O- Un aspecto muy importante en un S.O. es la asignacion de nombres a los
archivos y dispositivos.

No hay comentarios:

Publicar un comentario