4.1 Dispositivos y manejadores de
dispositivos: Device Drivers
Se denomina periféricos a los aparatos o
dispositivos auxiliares e independientes conectados a la unidad central de
procesamiento de una computadora.
Se consideran periféricos tanto a las unidades
o dispositivos a través de los cuales la computadora se
comunica con el mundo exterior, como a los sistemas que almacenan o archivan la
información, sirviendo de memoria auxiliar de la memoria principal.
Se pueden clasificar en dos grandes categorías:
- Dispositivos de bloques: dispositivos que almacenan la información en bloques de
tamaño fijo (discos)
- Dispositivos de caracteres: maneja la información mediante un flujo de caracteres sin
estructurarlos en bloques (mouse, teclado, impresora)
Las principales características de los dispositivos de bloque son:
- La
información se almacena en bloques de tamaño fijo.
- Cada
bloque tiene su propia dirección.
- Los
tamaños más comunes de los bloques van desde los 128 bytes hasta los 1.024
bytes.
- Se
puede leer o escribir en un bloque de forma independiente de los demás, en
cualquier momento.
- Un
ejemplo típico de dispositivos de bloque son los discos.
Las principales características de los dispositivos de carácter son:
- La
información se transfiere como un flujo de caracteres, sin sujetarse a una
estructura de bloques.
- No
se pueden utilizar direcciones.
- No
tienen una operación de búsqueda.
- Un
ejemplo típico de dispositivos de carácter son las impresoras de línea,
terminales, interfaces de una red, ratones, etc.
Todos los dispositivos de E/S se pueden agrupar en tres
grandes grupos:
- Dispositivos
de interfaz de usuario. Se llama así a los dispositivos que permiten la
comunicación entre los usuarios y la computadora. Dentro de este grupo se
incluyen todos los dispositivos que sirven para proporcionar interfaz con
el usuario, tanto para entrada (ratón, teclado, etc.) como para salida
(impresoras, pantalla, etc.). Existen periféricos menos habituales, pero
más sofisticados, tales como un escáner, lectores de huella digital,
lectores de cinta magnética, instrumentos musicales digitales (MIDI), etc.
- Dispositivos
de almacenamiento. Se usan para proporcionar almacenamiento no volátil de datos y
memoria. Su función primordial es abastecer de datos y almacenamiento a
los programas que se ejecutan en la UCP. Según su capacidad y la
inmediatez con que se puede acceder a los datos almacenados en estos
dispositivos, se pueden dividir en almacenamiento secundario (discos y
disquetes) y terciario (cintas).
- Dispositivos
de comunicaciones. Permiten conectar a la computadora con otras computadoras a
través de una red. Los dos tipos de dispositivos más importantes de esta
clase son los módem, para comunicación vía red telefónica, y las tarjetas
de interfaz a la red, para conectar la computadora a una red de área
local.
En cualquier caso, y sea como sea el controlador, su misión
es convertir los datos del formato interno del dispositivo a uno externo que se
ofrezca a través de una interfaz de programación bien definida. Los
controladores de dispositivo se suelen agrupar en alguna de las siguientes
categorías o clases:
- Adaptadores
de audio (tarjetas de sonido).
- Dispositivos
de comunicación (infrarrojos, módems, etc).
- Dispositivos
de visualización; pantallas (displays).
- Teclados.
- Ratón
(“mouse” y otros señaladores gráficos).
- Dispositivos
multimedia.
- Dispositivos
de Red.
- Impresoras.
- Almacenamiento
Algunos dispositivos de entrada y salida:
·
Entrada:
Ø Teclado
Ø Ratón
Ø Joystick
Ø Lápiz óptico
Ø Micrófono
Ø Webcam
Ø Escáner
Ø Escáner de código de barras
- Salida:
Ø Monitor
Ø Altavoz
Ø Auriculares
Ø Impresora
Ø Plotter
Ø Proyector
- Entrada/salida
(mixtos):
Ø Unidades de almacenamiento: CD, DVD,
Blu-ray, Memory cards, Disco Duro Externo, Disco duro, Pendrive USB.
Ø Módem
Ø Router
Ø Pantalla táctil
Ø Tarjeta de red
Controladores de dispositivos
Un controlador (instaladores)
de dispositivos, normalmente llamado controlador en inglés (device driver)
es un programa que informático que permite al sistema operativo interactuar con
un periférico, haciendo una abstracción del hardware del dispositivo y
proporcionando una interfaz - posiblemente estandarizada - para
usarlo. Se puede esquematizar como un manual de instrucciones que se indica al
sistema operativo, cómo debe controlar y comunicarse con un
dispositivo en particular. Por lo tanto es una pieza esencial, sin el
cual, no se podría usar el hardware. Los controladores de dispositivos
son programas añadidos al núcleo del sistema para gestionar periféricos y
dispositivos oficiales.
Existen tantos tipos de
controladores como tipos de periféricos y es común más de un tipo de
controlador posible para el mismo dispositivo, cada uno ofreciendo un
nivel distinto de funcionalidades. Por ejemplo, aparte de los
oficiales (normalmente disponibles en la página web del fabricante se pueden
encontrar también los proporcionados por el sistema operativo o también
versiones no oficiales hechas por terceros.
Las unidades de e / s generalmente
constan de:
- Un componente mecánico.
- Un componente electrónico, el controlador del
dispositivo o adaptador.
Muchos controladores pueden manejar
más de un dispositivo. El S. O. generalmente trabaja con el controlador y
no con el dispositivo.
La interfaz entre el controlador y el dispositivo es con
frecuencia de muy bajo nivel:
- La
comunicación es mediante un flujo
de bits en serie que:
- Comienza
con un preámbulo.
- Sigue
con una serie de bits (de un sector de disco, por ej.).
- Concluye
con una suma para verificación o un código corrector de errores.
- El preámbulo:
- Se
escribe al dar formato al disco.
- Contiene
el número de cilindro y sector, el tamaño de sector y otros datos
similares.
El controlador debe:
- Convertir
el flujo de bits en serie en un bloque de bytes.
- Efectuar
cualquier corrección de errores necesaria.
- Copiar
el bloque en la memoria principal.
Cada controlador posee registros que utiliza para comunicarse
con la CPU:
- Pueden
ser parte del espacio normal de direcciones de la memoria: e / s mapeada a memoria.
- Pueden
utilizar un espacio de direcciones especial para la e / s, asignando a
cada controlador una parte de él.
El S. O. realiza la e/s al
escribir comandos en los registros de los controladores; los parámetros de los comandos
también se cargan en los registros de los controladores.
Al aceptar el comando, la CPU puede dejar al controlador y dedicarse a otro trabajo.
Al aceptar el comando, la CPU puede dejar al controlador y dedicarse a otro trabajo.
Al terminar el
comando, el controlador provoca
una interrupción para permitir que el S. O.:
- Obtenga
el control de la CPU.
- Verifique
los resultados de la operación.
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.
Todos los manejadores tienen una lista de peticiones
pendientes por dispositivo donde se encolan las peticiones que llegan de
niveles superiores.
·
El
manejador explora la lista de peticiones, extrae una petición pendiente y
ordena su ejecución.
·
La
política de extracción de peticiones de la lista es dependiente de manejador y
puede ser FIFO.
·
Una
vez enviada la petición al controlador, el manejador se bloquea o no,
dependiendo de la velocidad del dispositivo. Para los lentos (discos) se
bloquea esperando una interrupción. Para los rápidos (pantalla, discos RAM,
etcétera) responde inmediatamente.
·
Después
de recibir el fin de operación, controla la existencia de errores y devuelve al
nivel superior el estado de terminación de la operación. Si tiene operaciones
pendientes en la cola de peticiones, atiende a la siguiente, en caso de que le
toque ejecutar después de la operación de E/S. En caso contrario se bloquea.
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, agregara la nueva solicitud a una cola de solicitudes pendientes.
La solicitud de e / s, por ej. Para un disco, se debe traducir de términos abstractos a términos concretos:
La solicitud de e / s, por ej. Para un disco, se debe traducir de términos abstractos a términos concretos:
·
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 está bien transferirá los datos
al software independiente del dispositivo.
·
Regresa información de estado sobre los
errores a quien lo llamo.
·
Inicia otra solicitud pendiente o queda
en espera.
No hay comentarios.:
Publicar un comentario