Administración de entrada y salida
4.1 Dispositivos y manejadores de dispositivos

Se pueden clasificar en dos grandes categorías:
1. Dispositivos de bloque
2. Dispositivos de carácter
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 busqueda.
Unos ejemplos típicos de dispositivos de carácter son las
impresoras de
línea, terminales, interfaces de una red, ratones, etc.
4.2 Mecanismos y funciones de los manejadores de
dispositivos: device drivers
¿Qué es una estructura?
Los sistemas operativos actuales son grandes y complejos,
estos deben poseer
una ingeniería correcta para su fácil actualización y para
que puedan cumplir su
función correctamente. La estructura es generalmente
modular, cada modulo
cumple una función determinada e interactúa con los demás
módulos.
Estructura simple
El sistema MS-DOS es, sin duda, el mejor sistema operativo
para
microcomputadoras. Sin embargo, sus interfaces y niveles de
funcionalidad no
están bien definidos. Los programas de aplicación pueden
acceder a operaciones
básicas de entrada / salida para escribir directamente en
pantalla o discos. Este
libre acceso, hace que el sistema sea vulnerable, ya que un
programa de
aplicación puede eliminar por completo un disco rígido por
alguna falla. Además
este sistema, también esta limitado al hardware sobre el que
corre.
Otra estructura simple es la utilizada por la versión
original de UNIX, esta consiste
de dos partes separadas, el kernel y los programas de
sistemas . El kernel fue
posteriormente separado en manejadores (drivers) de
dispositivos y una serie de
interfaces. El kernel provee el sistema de archivos, la
programación de CPU, el
administrador de memoria y otras funciones del sistema
operativo que responden
a las llamadas del sistema enunciadas anteriormente.
Estructura por capas (layers)
Las nuevas versiones de UNIX se diseñaron para hardware mas
avanzado. Para
dar mayor soporte al hardware, los sistemas operativos se dividieron
en pequeñas
partes. Ahora los sistemas operativos tienen mayor control
sobre el hardware y las
aplicaciones que se ejecutan sobre este.
La modularizacion de un sistema se puede presentar de varias
formas, la mas
utilizada es la de capas, la cual consiste en dividir al
sistema operativo en un
numero de capas. La capa de menor nivel es el hardware y la
de mayor nivel es la
interfaz con el usuario.
La principal ventaja es que cada capa cumple con una serie
de funciones y
servicios que brinda a las otras capas, esto permite una
mejor organización del
sistema operativo y una depuración mas fácil de este.
Cada capa se implementa solo utilizando las operaciones
provistas por la capa de
nivel inferior. Una capa no necesita saber como se
implementan estas funciones,
solo necesita saber que operaciones puede realizar.
4.3 Estructuras de datos para manejo 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. La siguiente figura muestra un
diagrama de flujo con
las operaciones de un manejador.
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.
