Agrandar Imagen |
LOS CONTROLADORES DE LOS DISPOSITIVOS (PERIFÉRICOS)
Cada
controlador tiene ciertos registros de dispositivos que se utilizan para darle
comandos o ciertos registros de dispositivos que se utilizan para leer su
estado, o ambos. El número de registros de dispositivos y la naturaleza de los
comandos varían radicalmente de un dispositivo a otro. Por ejemplo, un driver
de ratón tiene que aceptar información del ratón que le indica qué tanto se ha
desplazado y cuáles botones están oprimidos en un momento dado. Por el
contrario, un driver de disco tal vez tenga que saber todo acerca de los
sectores, pistas, cilindros, cabezas, movimiento del brazo, los propulsores del
motor, los tiempos de asentamiento de las cabezas y todos los demás mecanismos
para hacer que el disco funcione en forma apropiada. Obviamente, estos drivers
serán muy distintos.
Como
consecuencia, cada dispositivo de E/S conectado a una computadora necesita
cierto código específico para controlarlo. Este código, conocido como driver, es
escrito por el fabricante del dispositivo y se incluye junto con el mismo. Como
cada sistema operativo necesita sus propios drivers, los fabricantes de
dispositivos por lo común los proporcionan para varios sistemas operativos populares.
Cada
driver maneja un tipo de dispositivo o, a lo más, una clase de dispositivos
estrechamente relacionados. Por ejemplo, un driver de disco SCSI puede manejar
por lo general varios discos SCSI de distintos tamaños y velocidades, y tal vez
un CD-ROM SCSI también. Por otro lado, un ratón y una palanca de mandos son tan
distintos que por lo general se requieren controladores diferentes. Sin
embargo, no hay una restricción técnica en cuanto a que un driver controle varios
dispositivos no relacionados. Simplemente no es una buena idea.
Para
poder utilizar el hardware del dispositivo (es decir, los registros del
controlador físico), el driver por lo general tiene que formar parte del kernel
del sistema operativo, cuando menos en las arquitecturas actuales. En realidad
es posible construir controladores que se ejecuten en el espacio de usuario,
con llamadas al sistema para leer y escribir en los registros del dispositivo.
Este diseño aísla al kernel de los controladores, y a un controlador de otro, eliminando
una fuente importante de fallas en el sistema: controladores con errores que
interfieren con el kernel de una manera u otra. Para construir sistemas
altamente confiables, ésta es, en definitiva, la mejor manera de hacerlo.
Generalmente
los sistemas operativos clasifican los controladores en una de un pequeño
número de categorías. Las categorías más comunes son los dispositivos de bloque
como los discos, que contienen varios bloques de datos que se pueden
direccionar de manera independiente, y los dispositivos de carácter como los
teclados y las impresoras, que generan o aceptan un flujo de caracteres.
No hay comentarios:
Publicar un comentario