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
O archivos
y dispositivos.
No hay comentarios:
Publicar un comentario