Dispositivos y Manejadores de Dispositivos

Quizá el aspecto más confuso en el diseño de los sistemas operativos sea la entrada y salida.  Dada la amplia variedad de dispositivos y aplicaciones de esos dispositivos, resulta difícil desarrollar una solución general y consistente.

Los dispositivos externos que tienen que hacer funcionar la E/S en los sistemas informáticos pueden clasificarse básicamente en tres categorías:

  • Dispositivos legibles por los humanos: apropiados para la comunicación con el usuario.  Por ejemplo se pueden incluir los terminales de video, que constan de un teclado, una pantalla y, quizás, otros dispositivos como un ratón o una impresora.
  • Dispositivos legibles por la máquina: adecuados para comunicarse con equipos electrónicos, como discos, unidades de cinta, sensores, controladores e impulsores.
  • Dispositivos de comunicaciones: apropiados para comunicarse con dispositivos lejanos.  Por ejemplo, adaptadores de líneas digitales y módem.

 

Diferencias entre dispositivos

Existen grandes diferencias entre las clases de dispositivos y éstas son sustanciales dentro de cada clase.

a) Velocidad de los datos. Puede haber una diferencia de varios órdenes de magnitud en las velocidades de transmisión de datos.

b) Aplicaciones. La utilidad que se le da a un dispositivo tiene una gran influencia en el software y en las políticas del sistema operativo y de apoyo.  Por ejemplo, un disco que almacena archivos necesita el soporte de un software de gestión de archivos.  En cambio, un disco usado como almacén de páginas de un sistema de memoria virtual dependerá del uso que se haga del hardware y el software de memoria virtual.

El uso que se le dé exige niveles de privilegio y prioridades, por ejemplo, el uso que se le da al CPU.

c) Complejidad del control. Una impresora necesita una interfaz de control relativamente simple.  Un disco es mucho más complejo.  La lógica del módulo de E/S que controla el dispositivo filtra el efecto de estas diferencias sobre el sistema operativo.

d) Unidad de transferencia. Los datos pueden transmitirse como flujos de bytes o caracteres o en bloques mayores.  Por ejemplo, dispositivos de entrada/salida a terminal, dispositivo de entrada/salida a disco.

e) Representación de los datos. En diferentes dispositivos se emplean diferentes esquemas de codificación de datos, incluidas las diferencias en los códigos de caracteres.

f) Condiciones de error. La naturaleza de los errores, la manera en que se informa sobre ellos, sus consecuencias y el rango disponible de respuestas difieren ampliamente de un dispositivo a otro.