Una de las funciones principales de un
S. O. es el control de todos los dispositivos de e / s de la computadora.
Las principales funciones relacionadas
son:
- Enviar comandos a los dispositivos.
- Detectar las interrupciones.
- Controlar los errores.
- Proporcionar una interfaz entre los
dispositivos y el resto del sistema:
- Debe ser sencilla y fácil de usar.
- Debe ser la misma (preferentemente) para
todos los dispositivos (independencia del dispositivo).
Principios del Hardware de E / S
El enfoque que se considerará tiene que
ver con la interfaz que desde el hardware se presenta al software.
- Comandos que acepta el hardware.
- Funciones que realiza.
- Errores que puede informar.
Dispositivos de E / S
Se pueden clasificar en
dos grandes categorías:
- Dispositivos de bloque.
- 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.
Controladores de Dispositivos
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.
Los modelos más frecuentes de comunicación
entre la cpu y los controladores son:
- Para la mayoría de las micro y mini
computadoras:
- Modelo de bus del sistema.
- Para la mayoría de los mainframes:
- Modelo de varios buses y computadoras
especializadas en e / s llamadas canales de e/s.
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 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.
La cpu obtiene los resultados y
el estado del dispositivo al leer uno o más bytes de información de los
registros del controlador.
Ejemplos de controladores,
sus direcciones de e / s y sus vectores de
interrupción en la PC IBM pueden verse en la Tabla 5.1.
Controlador
de e / s
|
Dirección de e / s
|
Vector de interrupciones
|
Reloj
|
040 - 043
|
8
|
Teclado
|
060 - 063
|
9
|
Disco duro
|
320 - 32f
|
13
|
Impresora
|
378 - 37f
|
15
|
Disco
flexible
|
3f0 - 3f7
|
14
|
Rs232
primario
|
3f8 - 3ff
|
12
|
Rs232
secundario
|
2f8 - 2ff
|
11
|
Tabla 5.1: Controladores de e / s, direcciones de e / s y vector de
interrupciones.
|
Acceso Directo a Memoria (DMA)
Muchos controladores, especialmente los
correspondientes a dispositivos de bloque, permiten el DMA.
Si se lee el disco sin DMA:
- El controlador lee en serie el bloque (uno o
más sectores) de la unidad:
- La lectura es bit por bit.
- Los bits del bloque se graban en el buffer
interno del controlador.
- Se calcula la suma de verificación para corroborar que no existen errores de lectura.
- El S. O. lee el bloque del disco por medio del
buffer del controlador:
- La lectura es por byte o palabra a la vez.
- En cada interacción de este ciclo se lee un
byte o una palabra del registro del controlador y se almacena en memoria.
- Se desperdicia tiempo de la
cpu.
DMA se ideó para liberar a la cpu de
este trabajo de bajo nivel.
La cpu le proporciona al controlador:
- La dirección del bloque en el disco.
- La dirección en memoria adonde debe ir el
bloque.
- El número de bytes por transferir.
Luego de que el controlador leyó todo
el bloque del dispositivo a su buffer y de que corroboró la suma de
verificación.
No hay comentarios:
Publicar un comentario