dispositivos de entrada-salida

dispositivos de entrada-salida

domingo, 11 de mayo de 2014

Estructuras de datos de un driver

Las rutinas de un driver para dar un correcto servicio a las peticiones de entrada / salida necesitan para cada dispositivo una serie de datos que se encuentran en estructuras de datos en forma de tabla de manera que su composición depende del sistema operativo, aunque tienen forma y nombres similares a los siguientes:

Bloque de control del driver (BCD)

Es la representación del driver desde el punto de vista del sistema operativo. Contiene aquellos parámetros que son susceptibles de ser variados dinámicamente y aquellos que definen el tipo de dispositivo que puede ser atendido por el driver. Los datos que suele contener son:

-Dirección del siguiente BCD. Nombre del driver. 
-Dirección de comienzo de los bloques de control de unidades (BCU) que controle el driver. 
-Número de unidades a servir. 
-Dirección de comienzo de la rutina de inicialización del driver. 
-Estado del driver (On/off line). 
-Dirección de comienzo de la cola de bloques de entrada / salida (BES). 
-Dirección del BES que está siendo servido. 
-Variables particulares del driver.

Bloque de control de la unidad (BCU)

Cada dispositivo físico se relaciona desde el punto de vista del sistema operativo como una unidad dentro del tipo al que le corresponda y es definido e identificado por el sistema operativo por medio de su BCU. En general, contiene los siguientes datos:

-Dirección del siguiente BCU del driver. 
-Número de unidad. 
-Estado de la unidad. 
-Número del vector de interrupción asociado. 
-Dirección de la rutina de gestión de la interrupción. 
-Dirección del puerto (port) de entrada / salida. 
-Dirección del BCD al que pertenece. 
-Dirección del PCB del proceso que tiene reservada esta unidad. 
-Dirección del comienzo de la cola de bloques de entrada / salida (BES). 
-Dirección del BES que está siendo servido. 
-Características de la unidad. 
-Variables particulares del drive.

Paquete de petición de entrada/salida (PES)

Cuando un proceso de usuario intenta hacer una operación de entrada/salida, el sistema operativo crea un paquete asociado a dicho proceso y a dicha petición para ser tratado por el driver. Este paquete se coloca en una cola prioritaria para ser atendido por el driver al que va dirigido. Los datos que normalmente contiene son:

-Dirección del siguiente PES en la cola. 
-Prioridad de la petición de entrada/salida. 
-Proceso que ha lanzado la petición. 
-Dirección dónde devolver el resultado de la petición. 
-Función a realizar (entrada o salida). 
-Identificador del dispositivo.
-Identificador de la unidad. Dirección de la lista de parámetros de entrada de la llamada al sistema operativo.


No hay comentarios:

Publicar un comentario