Documentos de Académico
Documentos de Profesional
Documentos de Cultura
(Parte I)
Sistemas Operativos
Entrada / Salida
Introducción
El S.O. debe controlar todos los
dispositivos de E/S del computador: [Adm.
recursos]
– Envío de comandos
– Detección de interrupciones
– Control de errores
El S.O. debe proveer una interfaz entre los
dispositivos y el resto del sistema que sea
sencilla, fácil de usar y homogénea.
Sistemas Operativos
Entrada / Salida
Introducción
Sistemas Operativos
Entrada / Salida
Temas a tratar
I. Hardware de E/S
II. Software de E/S
III. Discos
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Dispositivos de E/S
Controladores de dispositivos
Acceso Directo a Memoria (DMA)
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Dispositivos de E/S
2 grandes categorías
– Dispositivos de BLOQUE.
– Dispositivos de CARACTER.
Disp. Bloque: Almacena la información en
bloques de tamaño fijo. Cada bloque tienen una
direcciones dada y se puede acceder en forma
independiente de los demás.
Los tamaños comunes de los bloques van desde
128 bytes a 1,024 bytes (Ejemplo: Discos).
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Dispositivos de E/S
Disp. Caracter: Envía o recibe un flujo de
caracteres sin sujetarse a una estructura de
bloques.
No usan direcciones ni tienen una operación de
búsqueda.
Las terminales, impresoras en línea, tarjetas de red,
mouse y otros dispositivos no parecidos a un disco
son dispositivos de carácter
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Dispositivos de E/S
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
Ejemplo: Disco.
– El Disco contiene información estructurada
en bloques (que corresponden a sectores
de p.ej.: 512 bytes).
– Cuando el disco envía información, lo
hace en forma de un flujo de bits en serie:
envía un preámbulo indicando la dirección
de la data, los 512*8 = 4096 bits de datos
y un checksum.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
Ejemplo: Disco.
– El controlador recibe esta cadena de bits,
y la convierte en bloques de bytes,
corrigiendo errores si así lo detectara. La
información se almacena en un buffer del
controlador.
– Finalmente, la información del buffer se
puede copiar a memoria principal, al
buffer del S.O. o proceso corresp.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
Así, podemos instalar una nueva unidad
de disco en el computador, con su
correspondiente controlador.
Si éste mantiene la interfase estándar para
discos, el driver actual será suficiente para
manejarlo.
De lo contrario, el fabricante debe proveer
un driver adecuado para nuestro S.O. a fin
de poder manejarlo.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
Los controladores contienen registros, los
cuales permiten comunicarse con él.
Estos registros pueden usarse para solicitar
la ejecución de comandos, capturar los
datos o enviar datos al controlador.
El acceso a ellos se puede dar de 2 formas:
0x2000
0x1000
Controlador
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
Espacio de Direcciones Especial para E/S
Memoria
CPU
Direcciones
para E/S
Controlador
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
Ejemplo: IBM PC
Reloj 040 - 043
Teclado 060 - 063
COM2 2F8 - 2FF
Disco 320 - 32F
Impresora 378 - 37F
Monitor Mono 380 - 3BF
COM1 3F8 - 3FF
Estas no son direcciones de memoria. Se acceden
con las instrucciones in reg,dir y out
dir,valor
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Acceso Directo a Memoria (DMA)
El DMA (Direct Memory Access) permite
optimizar el acceso a dispositivos de bloques al
relevar al CPU de una atención constante para
el proceso de E/S.
Del ejemplo del controlador de disco: Había
acumulado en un buffer interno el flujo de bits
enviado por el disco.
En ese momento, el controlador genera una
interrupción, para avisar que ya terminó y tiene
datos que entregar.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Acceso Directo a Memoria (DMA)
Dicha interrupción activará la rutina
correspondiente del sistema operativo.
Esta irá leyendo, palabra por palabra, todo el
bloque de datos que está almacenado en el
buffer del controlador.
Esta transferencia se hace a través del bus de
datos que conecta al CPU con el controlador.
Por ello se habla de palabras (según el ancho
del bus).
Cada ciclo de ejecución, se lee una palabra y el
CPU la almacena en la memoria.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Acceso Directo a Memoria (DMA)
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Acceso Directo a Memoria (DMA)
Obviamente, esto consume la utilización del
CPU, quien meramente actúa de intermediario
entre el buffer del controlador y la memoria.
En cambio, usando el mecanismo de DMA, el
CPU le indica al controlador:
– Dirección en memoria dónde guardar lo que
lea.
– Dirección del bloque del disco que se desea
leer.
– Número del bytes a leer.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Acceso Directo a Memoria (DMA)
En este caso, cuando el controlador ha
terminado de recibir la información del disco,
empieza a realizar, por su cuenta, una
transferencia de cada palabra de su buffer
interno a la memoria principal.
Para ello, va incrementando la dirección destino
en memoria y decrementando la cuenta
pendiente de bytes por transferir.
En cada transferencia se requiere acceder al bus
del sistema.
Al finalizar el proceso, se genera la interrupción.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Acceso Directo a Memoria (DMA)
Bus del Sistema
Buffer
CPU Registros DMA
Memoria - Dirección en memoria
- Contador
Controlador
de Disco
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Acceso Directo a Memoria (DMA)
Consideraciones:
El Bus del Sistema es empleado por todos los
dispositivos de E/S, incluyendo la Memoria, para
comunicarse entre sí.
En un momento dado, solo un dispositivo puede
estar accediendo al bus para comunicarse con otro.
Si no existiera un buffer en el controlador, tendría
que transferirse cada palabra directamente a
memoria ni bien llegara del disco. Pero esto
requiere el bus libre y no necesariamente lo estará.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Acceso Directo a Memoria (DMA)
Separación (graficar un disco)
Cuando el controlador está transfiriendo el
bloque leído a la memoria, ya no puede seguir
leyendo el siguiente bloque del disco (no puede
trabajar con dos dispositivos en simultáneo).
Sin embargo, el disco seguirá rotando, y en ese
punto el segundo sector pasará bajo el cabezal
de lectura, perdiéndose lo que se lea (controlador
está ocupado).
Entonces, para leer dicho sector habría que
esperar a que el disco de una vuelta completa.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Acceso Directo a Memoria (DMA)
Separación
Sin embargo, probablemente el controlador se
desocupe antes que el tercer sector llegue al
cabezal de lectura (primera vuelta).
Entonces, el controlador podría leer el tercer
sector, luego el quinto, etc.
Finalmente, toda la pista podría ser leída en 2
rotaciones completas: impares y pares. Para
lograrlo, el controlador debe estar preparado
para leer los sectores en desorden.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Acceso Directo a Memoria (DMA)
Separación
Esto funciona a menos que el controlador no se
haya desocupado para cuando el tercer sector
llegue.
Existe entonces un factor de dependencia entre la
velocidad de operación del controlador y el disco
físico.
Para facilitarlo, se puede numerar los sectores
considerando la velocidad de trabajo del
controlador y que siempre encuentre el siguiente
sector bajo el cabezal al desocuparse.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Acceso Directo a Memoria (DMA)
Separación
7 0 7 0 5 0
6 1 3 4 2 3
5 2 6 1 7 6
4 3 2 5 4 1
Sin separación Separación simple Separación doble
Los controladores actuales suelen ser lo
suficientemente rápidos como para no requerirlo.
El S.O. no requiere manejar el concepto de
separación al leer; solo al formatear.
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Objetivos del SW de E/S
Hemos definido el nivel superior del HW de
E/S como los controladores de dispositivo.
Estos se utilizan escribiendo y leyendo en sus
registros.
El SW de E/S abarca desde el nivel de acceso
a estos registros hasta el nivel del usuario,
donde se ofrecen los servicios de los
dispositivos con una interfaz adecuada.
Para ello, el SW de E/S se divide en distintos
niveles o capas.
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Objetivos del SW de E/S
Al desarrollar estas capas, se mantienen
algunos objetivos:
Independencia de Dispositivo:
Que se provean de servicios uniformes a los
programas del usuario de tal manera que un
mismo conjunto de instrucciones sean capaces
de operar sobre diferentes dispositivos.
Por ejemplo, para leer un archivo, no nos debe
interesar si esta en un disco duro, CD-ROM,
diskette, o cartucho.
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Objetivos del SW de E/S
Nombres Uniformes
La forma de referirse a los dispositivos y sus
contenidos debe ser uniforme.
Ejemplo de no uniformidad: Windows utiliza
letras del alfabeto para seleccionar qué disco o
diskette se va a accesar, y una cadena de
caracteres para el nombre del archivo.
Se están juntando dos nomenclaturas distintas
para referirse a un solo elemento: el archivo.
Unix, en cambio, maneja todo uniformemente.
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Objetivos del SW de E/S
Incluso los puertos serie, impresoras, terminales
pueden ser referenciados como si fueran archivos
(nombre con la misma nomenclatura).
En Windows y DOS, los puertos serie y la
impresora también pueden tratarse como archivos.
Manejo de Errores
Deben tratar de solucionarse en el nivel más bajo
posible, ya que cuanto mas bajo hay mayor control
de la situación. Ej.: error de lectura de diskette
(momentáneo).
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Objetivos del SW de E/S
Transferencias
Las transferencias de datos suelen estar
manejadas por interrupciones (transferencia
asíncrona), pero el programa del usuario está
escrito para solicitar un comando y esperar hasta
que se termine. No maneja llegadas paulatinas
de datos.
Luego, el S.O. debe manejar el bloqueo del
proceso del usuario, acumular los datos
requeridos y recién entonces retornarlos al
proceso, desbloqueándolo.
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Objetivos del SW de E/S
Dispositivos de Uso Exclusivo y No Exclusivo
El S.O. debe administrar y proveer una
interface consistente al usuario para el uso de
dispositivos que pueden accederse en forma
compartida (disco duro) y para dispositivos de
acceso exclusivo (impresora).
Debe proveer mecanismos para garantizar el
uso contínuo de un único proceso de los
dispositivos exclusivos.
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Capas del SW de E/S
Se divide en 4 capas: Interfaz uniforme para
acceder al dispositivo
Hardware
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Capas del SW de E/S
Manejadores de Interrupciones
Es el nivel mas bajo del SW de E/S
Su labor es administrar las interrupciones recibidas
por el CPU, procesándolas acorde al dispositivo
que la generó.
El proceso que solicita E/S se bloquea, por ejemplo
con un semáforo: down(disp).
NOTA: Este no suele ser un proceso del usuario
sino otro proceso del nivel siguiente (driver).
Cuando la interrupción sucede, el manejador
desbloquea al proceso correspondiente: up (disp)
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Capas del SW de E/S
Manejadores de Dispositivos
El SW de este nivel se encarga con precisión de
tratar al dispositivo que le corresponde.
Cada manejador de dispositivo controla sólo un tipo
de dispositivo; a lo más una familia.
Este manejador conoce exactamente cómo funciona
el controlador del dispositivo: comandos que
acepta, parámetros requeridos, errores que genera,
etc., y lo utiliza directamente.
Acepta las solicitudes abstractas del nivel superior y
las traduce en instrucciones concretas.
Sistemas Operativos
Manejadores de Dispositivos
Solicitud Abstracta: Escribir 2000 bytes del sector 150
Disco Duro Diskette
Comandos al Controlador
Word.doc User2
Impresora Driver de Impresora
Dispositivo de
Impresión de Red
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Capas del SW de E/S
Software a Nivel Usuario
El correo electrónico en Unix (mail) también es
manejado como un proceso tipo spool.
Cuando un usuario quiere enviar un archivo a otro
(conteniendo un mensaje, por ejemplo), lo coloca en
un directorio de spooling de correo (como hace el
programa mail).
Posteriormente, el demonio de correo lo ubicará y lo
transmitirá de la manera que necesite (vía conexión
telefónica, marcando y enviándolo, vía red, etc.)
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Capas del SW de E/S
Software a Nivel Usuario
Sistemas Operativos
Entrada / Salida
Resumen
Realizar Generar
operación Hardware
interrupción
Sistemas Operativos