Está en la página 1de 58

ENTRADA Y SALIDA

CURSO DE
SISTEMAS
OPERATIVOS

CONTENIDO

Principios del hardware de E/S


Principios del software de E/S
Estancamientos
Panorama general de la e/s en MINIX
Discos de RAM
Discos
Relojes
Terminales

Principios del hardware de


E/S
Entenderemos por hardware de E/S como la programacin de
los dispositivos de entrada y salida.
Los dispositivos de E/S se dividen en dos categoras:
dispositivos de bloque y dispositivos de caracteres. Los
dispositivos de bloque transfieren la informacin en bloques
direccionables de tamao fijo. Los dispositivos de caracteres
aceptan o entregan un flujo de caracteres sin importar la
estructura.

Controladores de dispositivo
Los dispositivos constan de una parte mecnica y
otra electrnica. A la parte electrnica se le llama
controlador o manejador del dispositivo. El
sistema operativo trata generalmente con el
controlador.
Manejadores de disco
Interfaz del controlador y dispositivo
CPU

Memoria

Controlador
de disco

Impresora

Controlador de
la impresora

Otros
...

controladores

Bus del sistema

Continuacin
El trabajo del controlador es convertir un flujo de
bits en serie en un bloque de bytes y realizar
cualquier correccin de errores que se necesite.
Controladores de E/S

Direcciones de E/S

Vector de int.

Reloj

040-043

Teclado

060-063

RS232 secundaria

2F8-2FF

11

Disco duro

320-32F

13

Impresora

378-37F

15

Despliegue mono.

3B8-3BF

Despliegue de color

3D0-3DF

Disco flexible

3F0-3F7

14

RS232 primaria

3F8-3FF

12

Acceso directo a memoria


DMA
El acceso directo a memoria se requiere
para liberar a la CPU en la transferencia
de bloque de informacin de o hacia la
memoria.
La CPU debe especificarle al controlador
de DMA la direccin de la memoria
donde se dirige el bloque y el nmero de
bytes a transferir.

continuacin
CPU

Controlador
del disco
Memoria

Manejador

Buffer
Registros DMA
Conteo

Direccin de la memoria
Conteo
Bus del sistema

Intercalacin
7

3
(a)

5
(b)

1
(c)

(a) Sin intercalacin. (b) Intercalacin sencilla.


(c) Doble intercalacin.

Principios del software de


E/S
Un concepto importante es el de
independencia del dispositivo.
Esto quiere decir que los archivos deben
utilizarse de la misma manera
independientemente de si estn en un disco
duro o en un disco flexible.

continuacin
Otro aspecto importante es el de nominacin,
esto es, los archivos y dispositivos deben
reconocerse con nombres que no dependan del
dispositivo en ninguna manera, como en UNIX.
Por otro lado el manejo de errores debe hacerse en
los estratos ms bajo. Y solo se deber informar a
los estratos superiores si el estrato bajo no puede
manejarlo.

Clasificacin de dispositivos
Los dispositivos se clasifican en compartibles y
dedicados.
Los compartibles son como los discos, varios
usuarios pueden hacer uso de ellos al mismo
tiempo sin crear conflictos.
Los dedicados como las impresoras, solo
aceptan un usuario a la vez.

Estratos del software de


E/S
1. Manejadores de interrupciones
2. Manejadores de dispositivos
3. Software del sistema operativo independiente
del dispositivo
4. Software a nivel del usuario

Manejadores de
interrupciones
Las interrupciones son indeseables, una forma de
ocultarlas es bloquear los procesos de E/S
siempre que ocurra un comando de E/S y se
espere una interrupcin.
Al recibir la interrupcin, el procedimiento de
interrupciones desbloquea al manejador mediante
un semforo o mediante seales.

Manejadores de dispositivos
En trminos generales, el trabajo de un
manejador de dispositivo consiste en aceptar
solicitudes abstractas del software independiente
del dispositivo que est sobre l y observar que
se cumpla la requisicin.
Despus de que la operacin se ha completado
debe verificar si hubo errores.
Si todo est bien, el manejador puede hacer que
pasen los datos al software independiente del
dispositivo.

Software del sist. Oper.


Indep.del dispositivo
La funcin bsica del software independiente del
dispositivo consiste en ejecutar las funciones de
E/S que son comunes a todos los dispositivos y
proporcionar una interfaz uniforme al software a
nivel del usuario.

Funciones
Sincronizacin uniforme de los manejadores de dispositivos
Nominacin de dispositivos
Proteccin de los dispositivos
Proporcin de un tamao de bloque independiente del
dispositivo
Separacin
Asignacin del almacenamiento en dispositivo de bloque
Asignacin y devolucin de dispositivos dedicados
Informe de errores

Software a nivel del usuario


Las llamadas al sistema, entre ellas las llamadas
al sistema se E/S, normalmente son realizadas
por procedimientos de biblioteca.
Estos procedimientos hacen un poco ms que
colocar sus parmetros en el sitio adecuado para
la llamada al sistema.

continuacin
Otro software a nivel de usuario es el manejo de
la cola de impresin.
La cola es controlada por un software llamado
demonio impresor, el cual maneja un directorio
especial llamado directorio de manejo de cola
de impresin.
Los demonios tambin se utilizan en la
transferencia de archivos de un sistema a otro.

continuacin
Solicitud de E/S

Estrato

Contestacin de E/S
Funciones de E/S

Procesos de usuarios

Hacer la llamada a E/S, formatear la E/S;


manejo por cola de impresin

Software independiente
del dispositivo

Nominacin, proteccin, bloqueo,


separacin, asignacin

Manejadores de dispositivos

Conformar registros de dispositivos;


verificar condicin

Manejadores de interrupciones

Desbloquear el manejador cuando


se complete una E/S

Hardware

Realizar la opreacin de E/S

Estancamientos
Supngase que una computadora tiene una
unidad de cinta y una graficadora.
El proceso A solicita la cinta y B, la graficadora.
Ahora A pide la graficadora (sin renunciar a la
cinta) y B pide la cinta (sin renunciar a la
graficadora), de manera que ambos procesos se
bloquean indefinidamente.
A esta situacin se le llama estancamiento.

continuacin

D
T

(a)

(b)

U
C
(c)

Solicitud de R
Solicitud de S
Liberacin de R
Liberacin de S

Solicitud de S
Solicitud de T
Liberacin de S
Liberacin de T

(a)
1. A solicita a R
2. B solicita a S
3. C solicita a T
4. A solicita a S
5. B solicita a T
6. C solicita a R
estancamiento
(d)

C
Solicitud de T
Solicitud de R
Liberacin de T
Liberacin de R

(b)

(c)

(e)

(f)

(g)

(h)

(i)
(j)

1. A solicita a R
A
2. C solicita a T
3. A solicita a S
4. C solicita a R
R
5. A libera a R
6. A libera a S
no hay estancamiento
A
(k)

(l)

(m)

(n)

(o)

(p)

(q)

Condiciones de
estancamiento
1. Condicin de exclusin mutua. Cada recurso se asigna
por lo regular exactamente a un proceso o bien esta
disponible.
2. Condicin de contencin y espera. Los procesos que
regularmente contienen recursos otorgados antes pueden
solicitar nuevos recursos.
3. Condicin de sin prioridad. Los recursos previamente
otorgados no pueden extraerse por la fuerza de un proceso.
Deben ser liberados en forma explcita por el proceso que lo
contiene.
4. Condicin de espera circular. Debe haber una cadena
circular de dos o ms procesos, cada uno de los cuales est
esperando un recurso contenido en el siguiente miembro de
la cadena.

Estrategias para trabajar


con los estancamientos
1. Simplemente se ignora el problema por
completo.
2. Deteccin y recuperacin.
3. Prevencin, anulando una de las cuatro
condiciones necesarias.
4. Evitacin dinmica por medio de una
distribucin cuidadosa de los recursos.

Algoritmo del avestruz


En unix simplemente se ignora el problema. Hay
que tomar en cuenta que se pueden producir
estancamientos por causas como: nmero
limitado de ranuras para procesos (la llamada
fork podra fracasar), el nmero mximo de
archivos abiertos por el tamao de la tabla de
nodos i, el espacio para intercambio (swap)
limitado, etc

Deteccin y recuperacin
Esta tcnica consiste en eliminar los ciclos
cuando estos se produzcan, esto se hace
eliminando un proceso si se produce un ciclo al
concederle un recurso.

Prevencin del
estancamiento
Esta tcnica consiste en garantizar que nunca se
produzcan las cuatro condiciones para conducir
al estancamiento. Esto se hace, por ejemplo, con
el demonio impresor, ya que es el nico
capacitado para solicitar la impresora teniendo,
por tanto, exclusin mutua.

1. Lectora de tarjetas
2. impresora
3. Graficadora
4. Unidad de cinta
5. Perforadora de tarjetas
(a)

j
(b)

Mtodos para la prevencin


de estancamientos
Condicin

Mtodo

Exclusin mutua

Todo se maneja por cola de


impresin

Contencin y espera Inicialmente se piden todos los


recursos
No hay prioridad

Se retiran los recursos

Espera circular

Los recursos se ordenan


numricamente

Algoritmo del banquero


El banquero sabe que no todos los clientes
necesitarn su lmite de crdito mximo de
inmediato, en esta analoga los clientes son
procesos, las unidades son, por ejemplo, unidades
de cinta y el banquero es el sistema operativo.
Algoritmo del banquero
Nombre

Se usa Mximo

Nombre

Se usa Mximo

Nombre

Se usa Mximo

Andy

Andy

Andy

Brbara

Brbara

Brbara

Marvin

Marvin

Marvin

Suzanne

Suzanne

Suzanne

Disponible:10

Disponible:2

(a)

(b)

Disponible:1
(c)

Trayectoria de recursos
En la se aprecia un modelo para trabajar con dos
procesos y dos recursos, una graficadora y una
impresora. El eje horizontal representa el nmero
de instrucciones ejecutadas por el proceso A. El
eje vertical denota el nmero de instrucciones
ejecutadas por el proceso B, en I1 A solicita la
impresora; en I2 necesita una graficadora. La
primera la devuelve en I3 y la segunda en I4. El
proceso B necesita la graficadora de I5 a I7 y la
impresora de I6 a I8.

continuacin
B
Impresora

u (ambos procesos terminados)


I
I
I
I

8
7
6

Graficadora

s
p

A
4

Impresora
Graficadora

El algoritmo del banquero para


mltiples recursos
El algoritmo para verificar si un estado es seguro es:
1. Bsquese un rengln, R, cuyo recurso no satisfecho
necesite todos los menores que A. Si no existe tal rengln,
el sistema se estanca porque no ningn proceso puede
ejecutarse hasta terminar.
2. Supngase que el procesos del rengln elegido solicita
todos los recursos que necesita (lo que garantiza que es
posible) y termina. Mrquese este proceso como terminado
y smese todos sus recursos al vector A.
3. Reptase los pasos 1 y 2 hasta que todos los procesos se
marquen terminados, en cuyo caso el estado inicial era
seguro, o bien hasta que ocurra un estancamiento, en cuyo
caso era riesgoso.

continuacin
Proceso
Manejadores de cinta
Graficadoras
Impresoras
Perforadoras

Proceso
Manejadores de cinta
Graficadoras
Impresoras
Perforadoras

Recursos asignados

Recursos que se siguen necesitando

E=(6342)
P=(5322)
A=(1020)

Panorama general de la e/s


en MINIX
Manejadores de interrupciones en minix
Muchos de los manejadores de dispositivos dan
inicio a algn dispositivo de E/S y despus se
bloquean, esperando la llegada de un mensaje.
Otros no dan inicio a ningn dispositivo fsico de
E/S (por ejemplo, la lectura de un disco RAM) y
no esperan un mensaje de un dispositivo de E/S.

Comunicacin usuario
sistema
Sistema estructurado por procesos
Procesos

Espacio del
usuario

1
Sistema
de archivo

Sistema monoltico

Proceso
del usuario
4

3
Manejador
del dispositivo

1-4 son mensajes de solicitud


y de contestacin entre tres
procesos independientes.

(a)

Espacio del
kernel

Un proceso
Parte del
espacio
del usuario
Sistema
de archivo

Manejador
del dispositivo

La parte del espacio del usuario llama


a la parte del espacio del kernel con trampa.
El sistema de archivo llama el manejador
del dispositivo como procedimeinto.
Todo el sistema operativo es
parte de cada proceso.
(b)

Tarea de E/S en MINIX


message mess;
/* buffer de mensajes */
io_task()
{
int r, caller;
inicialize();
/* slo se hace una vez, durante la inic. del sistema */
while (TRUE) {
receive(ANY, &mess);
/* espera una solicitud para trabajar */
caller = mess.m_source;
/* proceso del cual provino el mensaje */
switch(mess.m_type) {
/* maneja cada tipo de solicitud posible */
case READ: r = do_read(); break;
case WRITE:r = do_write(); break;
case OTHER:r = do_other(); break;
default: r = ERROR;
}
mess.m_type = TASK_REPLY;
mess.REP_STATUS = r;
/* cdigo del resultado */
send(caller, &mess);
/* enviar mensaje de contestacin al solicitante */
}
}

Software de E/S en MINIX


Software de E/S independiente del dispositivo
El proceso del sistema de archivo de minix contiene todo el
cdigo de E/S independiente del dispositivo.
Software de E/S a nivel de usuario
Se dispone de procedimientos de biblioteca para hacer
llamadas al sistema y para convertir de binario a ASCII y de
ASCII a binario.
Manejo del estancamiento
Se ignora el problema por completo. El nico sitio en que
pueden ocurrir estancamientos es con los recursos
compartidos implcitos, como las ranuras de la tabla de
procesos, ranuras de la tablas de nodos i, etc.

Discos de RAM
La idea que ostenta un disco de RAM es simple.
Un dispositivo de bloque es un medio de
almacenamiento con dos comandos: la escritura
de un bloque y la lectura de un bloque.
Al colocar el directorio raz en al disco RAM, el
nico disco flexible puede montarse y
desmontarse a voluntad, permitiendo que haya
medios removibles. Al tener el dispositivo raz en
el disco de RAM el sistema se vuelve altamente
flexible: cualquier combinacin de discos flexibles
y duros puede montarse en l.

Un disco de RAM
Memoria central (RAM)
Programas
de usuarios

Disco
de RAM
Bloque 1 del disco de RAM

Sistema
Operativo

Las lecturas y escrituras del bloque 0


de RAM utiliza esta memoria

Manejador del disco de RAM


en minix
/dev/ram, es un disco de RAM verdadero. Los dos
dispositivos menores que siguen se utilizan para leer y
escribir memoria fsica y la memoria del kernel,
respectivamente. Cuando /dev/mem se abre y se lee,
produce el contenido de las localidades de memoria fsica
que comienzan en 0 absoluto (vectores de interrupcin). El
archivo especial /dev/kmem es como /dev/mem, salvo que
el byte 0 de este archivo es el byte 0 de la memoria del
kernel (direccin fsica 0x600 o bien 1536 decimal en minix).
El ltimo archivo de este grupo, /dev/null, es un archivo
especial que acepta datos y los desecha. Se utiliza
comnmente en comandos del shell cuando el programa
solicitado genere una salida que no se necesita.

Hardware del disco


Todos los discos reales estn organizados en cilindros, donde cada
uno contiene tantas pistas como haya cabezas apiladas
verticalmente. Las pistas se dividen en sectores, donde el nmero de
sectores en torno a la circunferencia en comnmente de 8 a 32.
Todos los sectores contienen el mismo nmero de bytes. Los
parmetros de un disco flexible de la IBM PC se muestran en la tabla
siguiente.
Nmero de cilindros

40

Tiempo de localizacin (cilindros adyacentes)

6ms

Pistas por cilindro

Tiempo de localizacin (caso promedio)

77ms

Sectores por pista

Tiempo de rotacin

200ms

Sectores por disquete

720

Tiempo de arranque/detencin del motor

250ms

Bytes por sector

512

Tiempo para transferir un sector

22ms

Bytes por disquete

368640

Algoritmos de planificacin del


brazo del disco
Posicin
inicial
0
Tiempo

Solicitudes
pendientes

10

15

20

25

30 Cilindro

Secuancia de
localizaciones

Posicin
inicial
0
Tiempo

10

15

20
Secuancia de
localizaciones

25

30 Cilindro

Manejo de errores
Algunos de los ms comunes son:
1. Error de programacin (por ejemplo, solicitud de un
sector no existente).
2. Error transitorio de la suma de verificacin (por
ejemplo, ocasionado por polvo en la cabeza).
3. Error permanente de la suma de verificacin (por
ejemplo, bloque del disco fsicamente daado).
4. Error de localizacin (por ejemplo, el brazo se envi al
cilindro 6 pero se fue al 7).
5. Error del controlador (por ejemplo, el controlador se
niega a aceptar comandos).

manejador del disco flexible


en MINIX
Procedimientos principales que forman el
manejador del disco flexible.
disk_task

do_rdwt

dma_setup

start_motor

Formacin de
registros DMA

Encendido del
motor de la
unidad

localizacin
Desplazamiento
del brazo al
cilindro adecuado

transferencia
Lectura o
escritura
de datos

clock_mess
Iniciacin
del cronmetro
guardian

Relojes
Los relojes controlan la hora del da y evitan que
algn proceso monopolice a la CPU, entre otras
cosas.
Oscilador de cristal

El contador se disminuye en cada pulso


El registro de contencin se utiliza
para cargar el contador

Software del reloj


Las funciones del manejador de reloj son, entre otras:
1. Conservacin de la hora del da.
2. Prevencin de que los procesos se ejecuten ms
tiempo del que tienen autorizados.
3. Conteo para uso de la CPU.
4. Manejo de la llamada al sistema alarm que hacen los
procesos de los usuarios.
5. Provisin de cronmetros guardianes para cuidar
partes del sistema en s.
6. Realizacin de perfiles, monitoreo y recoleccin de
estadsticas.

Hora del da
64 bits

32 bits

32 bits

Contador en pulsos

Hora del da en pulsos


Nmero de pulsos en
el segundo corriente
Hora del da en segundos

(a)

(b)

Tiempo de carga del


sistema en segundos
(c)

Simulacin de cronmetros
mltiples con un solo reloj
Es posible simular varios relojes con un solo reloj fsico. Se puede
utilizar una lista enlazada como en la figura 24. Cada captacin de
la lista indica cuntas pulsaciones del reloj despus de la anterior se
debe esperar antes de producir una seal. En este ejemplo, las
seales estn pendientes para 4203, 4207, 4213, 4215 y 4216.

Tiempo corriente
Encabezado

4200

Siguiente seal
3

del reloj
3

1 x

Panorama del manejador


del reloj en MINIX
El manejador acepta cuatro tipos de mensajes como sigue:
SET_ALARM permite a un proceso fijar un cronmetro que
se agote en un nmero especificado de pulsaciones de reloj.
Tambin lo utilizan las tareas para los cronmetros
guardianes.
GET_TIME produce el tiempo real corriente con el nmero
de segundos que han transcurrido desde el 1 de enero de
1970 a las 12:00 a.m. SET_TIME fija el tiempo real.
CLOCK_TICK es el mensaje que se enva al manejador
cuando ocurre una interrupcin de reloj.

Terminales
La tarea del manejador de la terminal es ocultar
la diferencias entre las diferentes terminales, de
manera que la parte independiente del
dispositivo del sistema operativo y los
programas de los usuarios no tengan que
reescribirse para cada tipo de terminal.

Tipos de terminales
Terminales

Interfaz de
la RS-232

Copia dura

Tty
de vidrio

Interfaz delineada
en la memoria

Inteligente

Blit

Orientada a
los caracteres

Orientada
a los bits

Terminal RS-232
Computadora

CPU

Bus

Tarjeta de
interfaz de
Memoria RS-232

UART

Terminal

Lnea de recepcin
Lnea de
transmisin
(50 a 9600 bps)

UART

Terminales delineadas en la
memoria
Controlador de video
CPU

Memoria

Tarjeta de la
RAM de video

Monitor

Bus
Seal de video analgica
(por ejemplo, 16MHz)
Puerto paralelo
Teclado

Una imagen en la RAM


Ram de video

Pantalla
Direccin de RAM

A B C D
0 1 2 3
25 lneas

...x3 x 2 x 1 x 0

0xB00A0

80 caracteres

...xD x C x B x A 0xB0000
160 caracteres
(a)

(b)

Software de entrada
El manejador se hace cargo de la edicin entre
lneas y simplemente entrega las lneas
corregidas a los programas de los usuarios o
bien puede suministrar los caracteres tal y
como los recibe. El primer modo es el modo
elaborado y el segundo el modo no
elaborado.

Buffer de la terminal
Estructura de datos
de la terminal
La reserva del
Terminal
buffer central

Estructura de datos
de la terminal
Terminal

0
1

Area del
buffer de la
terminal 0

3
1

(a)

Area del
buffer de la
terminal 1
(b)

Modo elaborado
Carcter

Comentario

Retroceso

Retrocede y suprime un carcter

Suprime la lnea corriente

Escape (acepta el siguiente carcter literalmente)

tab

Posiblemente se extienda a espacios en la salida

CTRL-S

Detiene la salida

CTRL-Q

Inicia la salida

DEL

Interrupcin del proceso (SIGINT)

CTRL-\

Obliga un vaciado del ncleo (SIGQUIT)

CTRL-D

Fin de archivo

Panorama general del manejador


de la terminal en MINIX
El manejador de la terminal es el archivo ms grande de
MINIX. Este acepta cinco mensajes:
1. Lectura de caracteres desde la terminal (del sistema de
archivo a la mitad de un proceso de usuario).
2. Escritura de caracteres en la terminal (del sistema de
archivo a la mitad de un proceso de usuario).
3. Fijacin de los parmetros de la terminal para ioctl (del
sistema de archivo a la mitad de un proceso de usuario).
4. Carcter disponible (del proceso de interrupcin).
5. Cancelacin de la solicitud de lectura anterior (del
sistema de archivo cuando ocurra una seal).

También podría gustarte