6.1 Dispositivos y manejadores de dispositivos
Dispositivos de entrada/salida
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 búsqueda.
- Unos ejemplos típicos de dispositivos de carácter
son las impresoras de línea, terminales, interfaces de una red, ratones, etc.
Manejadores de Dispositivos
Todo el código que depende de los dispositivos
aparece en los manejadores de dispositivos.
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:
El
manejador de disco debe:
·
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á o.k. 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.
6.2 Mecanismos y Funciones de los manejadores.
Los manejadores de
dispositivos tienen la función de comenzar las operaciones de E/S en un
dispositivo y procesar la terminación de una solicitud de E/S.
El sistema de archivos
básico trata con bloques de datos que son los que se intercambian con los
discos o cintas. Ubica estos bloques en el almacenamiento secundario o en el
intermedio en memoria principal. Este sistema normalmente se considera parte
del SO.
El supervisor básico de
E/s se responsabiliza de iniciar y terminar la E/s con archivos, Selecciona el
dispositivo donde se realizará la E/S, según el archivo seleccionado. Planifica
los accesos a disco y cinta, asigna los buffers de E/S y reserva la memoria
secundaria. Es parte del SO.
La E/S lógica tiene la
función de permitir a los usuarios y aplicaciones acceder a los registros.
El método de acceso es
el nivel mas cercano al usuario, proporcionando una interfaz entre las
aplicaciones y los archivos.
6.3 Estructuras de datos para manejo de dispositivos.
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 módulo 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.
6.4 Operaciones de Entrada y Salida.
Funciones
que realizan
Vamos a señalar las
funciones que debe realizar un computador para ejecutar trabajos de
entrada/salida:
- Direccionamiento o selección del
dispositivo que debe llevar a cabo la operación de E/S.
- Transferencia de los datos entre el
procesador y el dispositivo (en uno u otro sentido).
- Sincronización y coordinación de las
operaciones.
Esta última función es
necesaria debido a la deferencia de velocidades entre los dispositivos y la CPU
y a la independencia que debe existir entre los periféricos y la CPU (por
ejemplo, suelen tener relojes diferentes).
Se define una
transferencia elemental de información como la transmisión de una sola unidad
de información (normalmente un byte) entre el procesador y el periférico o
viceversa. Para efectuar una transferencia elemental de información son
precisas las siguientes funciones:
-
Establecimiento de una comunicación física entre el procesador y el periférico
para la transmisión de la unidad de información.
- Control de los periféricos, en que se
incluyen operaciones como prueba y modificación del estado del periférico. Para
realizar estas funciones la CPU gestionara las líneas de control necesarias.
Definiremos una
operación de E/S como el conjunto de acciones necesarias para la transferencia
de un conjunto de datos (es decir, una transferencia completa de datos). Para
la realización de una operación de E/S se deben efectuar las siguientes
funciones:
- Recuento de las unidades de información
transferidas (normalmente bytes) para reconocer el fin de operación.
- Sincronización de velocidad entre la CPU
y el periférico.
- Detección de errores (e incluso
corrección) mediante la utilización de los códigos necesarios (bits de paridad,
códigos de redundancia cíclica,
etc.)
- Almacenamiento temporal de la
información. Es más eficiente utilizar un buffer temporal específico para las
operaciones de E/S que utilizan el
área de datos del programa.
- Conversión de códigos , conversión
serie/paralelo, etc.
No hay comentarios:
Publicar un comentario