Está en la página 1de 58

Entrada / Salida

(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

Dispositivos E/S de Flujo de caracteres Sistemas Operativos


Entrada / Salida
I. Hardware de E/S
Dispositivos de E/S Hace referencia a una
subclasificación de la familia.
Familia
Dispositivo de bloque Número menor

brw------- 1 root root 3, 0 Mar 25 14:40 disk0


brw------- 1 root root 3, 1 Mar 25 14:40 disk1
brw------- 1Subclasificación
root dentro
root 3, 2 Mar 25 14:40 disk2
del tipo de dispositivos
Dispositivo de caracter Número mayor

crw------- 2 root root14, 1 Mar 25 14:40 tty00


crw------- 2 root root14, 2 Mar 25 14:40 tty01
crw------- 2 root root 6, 1 Mar 25 14:40 lpt1
Tipo de dispositivos Terminales o pantallas
Número menor
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Dispositivos de E/S
 Esta clasificación no es perfecta, pues hay
dispositivos que no encajan muy bien.
 Por ejemplo
– Reloj
– Pantallas
 Por qué usar esta clasificación ?
Porque permite que el software del S.O. sea
relativamente independiente del dispositivo de
E/S en sí, al verlos como conjuntos de
dispositivos de bloque y caracter.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
 Para lograrlo lo anterior, el S.O. se apoya en un
software llamado manejador del dispositivo,
(driver).
 Este software, que es escrito especialmente para
cada diferente dispositivo del computador, conoce
en forma detallada el funcionamiento del
dispositivo, sus capacidades, funciones, formas de
error, restricciones, etc. [hacia abajo].
 Por otro lado, este software ofrece un conjunto
estándar de funciones que modelan al dispositivo
como tipo bloque o caracter [hacia arriba].
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos

Taxonomía de Drivers Linux, en términos de clases de drivers básicos Sistemas Operativos


Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
 Desde el punto de vista del dispositivo, podemos
diferenciar dos componentes:
– El componente mecánico
– El componente electrónico
 El primero lo constituye el dispositivo físico (ej: el
disco duro que gira, cabezal lector/grabador, etc).
 El segundo se denomina controlador del
dispositivo o adaptador, y corresponde
generalmente con una tarjeta de circuitos impresos
que se inserta en una ranura de expansión de la
computadora.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
 Las tarjetas suelen tener algún tipo de conector
que permite el enlace electrónico entre ella y el
dispositivo en sí (ISA, EISA, PCI).
 Las características del conector, así como las
normas que definen el funcionamiento del
enlace, son denominadas interfaz.
 Existen interfaces estándar en el mercado para
diferentes tipos de dispositivos. Los organismos
que los emiten son:
- ANSI - IEEE - ISO
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
 Ejemplos de interfaces para disco duro:
– IDE
– SuperIDE
– SCSI
 Ejemplos de interfaces para dispositivos seriales:
– RS-232
– RS-485
 Ejemplos de interfaces para adaptadores de video:
– CGA, EGA
– VGA, SuperVGA
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
 El S.O. casi siempre trabaja con el controlador
y no con el dispositivo directamente. Por qué ?
 Finalmente, son los drivers del S.O. los
encargados de interactuar con los
controladores.
 Generalmente, los fabricantes de dispositivos
proveen del driver adecuado para utilizar su
dispositivo en los principales S.O. del mercado
(provee un conjunto de drivers), con la finalidad
de no tener problemas de aceptación.
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
 Resumiendo:
Sistema Operativo
Driver 1 Driver 2 Driver 3
Software
Hardware
Controlador Controlador Controlador
CD-ROM Tape Backup Scanner

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:

– E/S mapeada a memoria


– Espacio de direcciones especial para E/S
Sistemas Operativos
Entrada / Salida
I. Hardware de E/S
Controladores de Dispositivos
 E/S mapeada a memoria asigna un rango
determinado de direcciones de memoria que
mapean a los registros de los controladores:
Rango de direcciones cuyo acceso
Memoria corresponde al acceso a los registros
del controlador del dispositivo.

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

 Ejemplos: Estructura de los controladores:


– Puerto Serie
– Impresora
– Teclado
– Disco Flexible

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

 Objetivos del SW de E/S.


 Capas del SW 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

Software a uso del usuario.

Software Nivel Usuario

Software independiente del dispositivo

Manejador del Dispositivo Controla las


(Device Driver) interrupciones,
Manejador de Interrupciones interrupe el
(Interrupt Handler) - Semáforos proceso de E/S

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

- Calcular Posición - Verificar protección del


del sector 150 en el diskette
disco. - Calcular Posición del
- Mover brazo al sector 150 en el disco.
cilindro correcto. - Asegurar motor encendido.
- Solicitar escritura de - Asegurar velocidad rotación
4 sectores - Mover cabezal al cilindro
- Bloquearse... correcto.
- Retornar resultados - Solicitar escritura de 4
sectores
- Bloquearse ...
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Capas del SW de E/S
SW E/S Independiente del Disp.
 La finalidad de este nivel es proporcionar una
interfaz uniforme al software a nivel usuario.
 Debe proveer las funciones de E/S comunes para
todos los dispositivo.
 Por ejemplo, es la encargada de resolver los
nombres uniformes asociándolos al manejador de
dispositivo correspondiente.
 Asimismo, debe de resolver los distintos tipos de
organización lógica que pueden manejar los
dispositivos inferiores. (tamaño del sector).
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Capas del SW de E/S
SW E/S Independiente del Disp.
 Este nivel también implementa el concepto de
buffers.
 P.ej.: el HW de un disco solo lee o escribe
bloques completos (sectores). Sin embargo, los
procesos del usuario pueden solicitar escribir
una fracción del bloque.
 Entonces, este nivel almacena internamente los
data a escribir hasta formar al menos el bloque
completo. Para ello emplea un buffer.
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Capas del SW de E/S
SW E/S Independiente del Disp.
 Un teclado puede proveer datos mas rápido de lo
que el proceso los lea. En este caso también se
guardan en un buffer.
 Se maneja también en este nivel el acceso exclusivo
a los dispositivos, manteniendo un status de que
proceso ha “abierto” el dispositivo y lo posee
exclusivamente hasta que lo “cierre”.
 Este nivel siempre ve al disco como una secuencia
lineal de bloques. No maneja concepto de pistas,
sectores, cilindros, que sí lo hace el manejador.
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Capas del SW de E/S
Software a Nivel Usuario
 Este nivel lo constituyen las bibliotecas de
funciones que se compilan junto con los
programas o se enlazan (link) al momento de
ejecución.
 Estas contienen funciones de alto nivel que
constituyen los puntos de entrada comunes a
los servicios generales de E/S. Estas funciones
generalmente se limitan a llamar a los servicios
de E/S del nivel inferior. Ej.: write(), read()
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Capas del SW de E/S
Software a Nivel Usuario
 Algunos otras realizan mas trabajo. Ej.: printf():
antes de llamar a la impresión en pantalla, realiza
una labor de formateo de la cadena a imprimir.
 En algunos sistemas operativos, este nivel puede
no existir o depender mucho del lenguaje usado
para realizar la programación
 También hay programas a nivel usuario pero que
actúan como aplicaciones bien definidas, no
siendo parte de ninguna biblioteca. Ej.: spooler.
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Capas del SW de E/S
Software a Nivel Usuario
 El spooler de impresión es una demonio (daemon)
que corre como un programa de usuario, pero con
permiso exclusivo de acceso a la impresora;
siempre permanece como proceso activo.
 Este maneja un directorio especial. Cada proceso
que requiere imprimir, crea un archivo en él
conteniendo lo que quiere enviar a la impresora.
 El demonio constantemente verifica el directorio, y
procede a imprimir uno por uno los archivos que
encuentra.
Sistemas Operativos
Entrada / Salida
II. Software de E/S
Capas del SW de E/S
Software a Nivel Usuario
Printer

Word.doc User2
Impresora Driver de Impresora

Dispositivo de Servidor de Impresión


Impresión Local

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

 En estos dos ejemplos, los programas se


ejecutan como aplicaciones fuera del
S.O., pero con permisos especiales
sobre algunos dispositivos y directorios.

Sistemas Operativos
Entrada / Salida
Resumen

Leer bloque Procesos del Usuario Recibir datos

Ver Cache, SW Independiente del Verifica


buffers, nombre Dispositivo resultado final
Preparar Reg. Despierta,
Manejadores de Dispositivos
del dispositivo retorna datos

Manejadores de Interrupciones Procesar


interrupción

Realizar Generar
operación Hardware
interrupción
Sistemas Operativos

También podría gustarte