You are on page 1of 43

SISTEMAS OPERATIVOS I

Tema N 7

Entrada/Salida

1 de 43
Sistemas Operativos I

Dispositivos de Entrada/Salida

El SO debe gestionar y
controlar las operaciones y
dispositivos de E/S
de circuito integrado que se puede insertar en una ranura de expansin (PCI)

Los dispositivos de E/S permiten a la CPU


relacionarse con el mundo exterior: teclados,
pantallas, impresoras, discos . . .
La comunicacin de la CPU con un elemento
externo es similar a la comunicacin con la
memoria: se leen y escriben datos
2 de 43
Sistemas Operativos I

Dispositivos de
Entrada/Salida

3 de 43
Sistemas Operativos I

Dispositivos de Entrada/Salida

Dispositivo

Velocidad de transferencia

Teclado

10 bytes/seg

Mouse

100 bytes/seg

Modem de 56L

7 KBytes/seg

Escaner

400 KBytes/seg

Cmara de video digital

3,5 MBytes/seg

802.11g inalmbrico

6,75 Mbytes/seg

CD-ROM de 52x

7,8 Mbytes/seg

Fast Ethernet

12,5 Mbytes/seg

Tarjeta Compact Flash

40 Mbytes/seg

FireWire (IEEE 1394)

50 Mbytes/seg

USB 2.0

60 Mbytes/seg

Red SONET OC-12

78 Mbytes/seg

Disco SCSI Ultra 2

80 Mbytes/seg

Gigabit Ethernet

125 Mbytes/seg

Unidad de Disco SATA

300 Mbytes/seg

Cinta de Ultrium

320 Mbytes/seg

Bus PCI

528 Mbytes/seg

4 de 43
Sistemas Operativos I

Categoras de dispositivos de E/S


dispositivos de almacenamiento:

discos
cintas

dispositivos de transmisin:

tarjetas de red
mdems

dispositivos de interfaz humana:

pantalla
teclado
mouse (ratn)

dispositivos especializados:

volantes
5 de 43
Sistemas Operativos I

Caractersticas de los Dispositivos de E/S

6 de 43
Sistemas Operativos I

Dispositivos de Entrada/Salida
dispositivos de bloque
almacenan informacin en bloques de tamao fijo, cada uno
con su propia direccin
todas las transferencias se realizan en unidades de uno o ms
bloques completos (consecutivos)
es posible leer o escribir cada bloque de manera independiente
de los dems
ejemplos: discos duros, CD-ROMs y memorias USBs
dispositivos de carcter
envan o aceptan un flujo de caracteres, sin importar la
estructura del bloque
no son direccionables y no tiene ninguna operacin de
bsqueda
ejemplos: teclado, impresoras, las interfaces de red, mouse
Los lmites son difusos hay dispositivos que no se adaptan a
ninguna clasificacin. Ejemplo: relojes

7 de 43

Sistemas Operativos I

Controladores de Dispositivos de E/S

Unidad
de E/S

Componente electrnico llamado controlador de


dispositivo o adaptador. En las computadoras
personales tiene la forma de un chip en la tarjeta
principal o una tarjeta
de circuito integrado que se puede insertar en una ranura de expansin (PCI)

Componente mecnico es el dispositivo en s


8 de 43
Sistemas Operativos I

Controladores de Dispositivos de E/S

Standard

ANSI
IEEE
ISO
IDE
SATA

Unidades de disco

SCSI
USB
Fire Wire (IEEE 1394)

9 de 43
Sistemas Operativos I

Controladores de Dispositivos de E/S

Una controladora es una coleccin de


componentes electrnicos que permite controlar
un puerto, un bus o un dispositivo. Ejemplo: un
chip que controla las seales que se transmiten a
travs de los hilos de un puerto serie.
10 de 43
Sistemas Operativos I

E/S por asignacin de memoria

Cada controlador tiene unos cuantos registros que se utilizan para


comunicarse con la CPU. Al escribir en ellos, el SO puede hacer que
el dispositivo enve o acepte datos, se encienda o se apague, o
realice cualquier otra accin. Al leer de estos registros, el SO puede
conocer el estado del dispositivo, si est preparado o no para aceptar
un nuevo comando, y sigue procediendo de esa manera. Adems,
hay un bfer de datos que el SO puede leer y escribir

11 de 43

Sistemas Operativos I

Dispositivos de Entrada/Salida

12 de 43
Sistemas Operativos I

Hardware de Entrada/Salida

Los sistemas Pentium pueden tener varios buses:


13
memoria, PCI, SCSI, USB, ISA
Sistemas Operativos I

de 43

Acceso directo a Memoria (DMA)

Operacin de una transferencia DMA para la


lectura de datos de la unidad de disco
14 de 43
Sistemas Operativos I

Interrupciones

Cuando un dispositivo de E/S ha terminado el trabajo que se le


asign, produce una interrupcin (suponiendo que el sistema
operativo haya habilitado las interrupciones). Para ello, impone una
seal en una lnea de bus que se le haya asignado. Esta seal es
detectada por el chip controlador de interrupciones en la tarjeta
principal, que despus decide lo que debe hacer.
15 de 43
Sistemas Operativos I

Interrupciones precisas e imprecisas


Propiedades de una interrupcin precisa:
1.El contador del programa (PC) se guarda en un lugar conocido
2.Todas las instrucciones antes de la instruccin a la que apunta el PC
se han ejecutado por completo
3.Ninguna instruccin ms all de la instruccin a la que apunta el PC
se ha ejecutado
4.Se conoce el estado de ejecucin de la instruccin a la que apunta el
PC

16 de 43
Sistemas Operativos I

Objetivos de Software de E/S


Independencia de dispositivos:

los programas deben poder acceder


a cualquier dispositivo de E/S sin tener que especificar el dispositivo por
adelantado

Denominacin uniforme: El nombre de un archivo o dispositivo


simplemente debe ser una cadena o un entero sin depender del dispositivo de
ninguna forma

Manejo de errores: los errores se deben manejar lo ms cerca del


hardware que sea posible. Si el controlador descubre un error de lectura, debe
tratar de corregir el error por s mismo. Si no puede, entonces tratar de leer el
bloque de nuevo

Transferencias sincrnicas (de bloqueo) y asincrnicas


(controladas por interrupciones) El SO operativo debe lograr que las
transferencias sean transparentes para los programas de usuario

Uso del buffer: el SO debe encargarse de los datos provenientes de


algunos dispositivos que no se pueden almacenar directamente en su destino
final

Administracin de dispositivos compartidos y dedicados: el


SO debe encargarse a fin de evitar problemas en sistemas multiusuarios

17 de 43

Sistemas Operativos I

Entrada/Salida programada

Pasos para imprimir una cadena:


a)ensambla la cadena a imprimir en un bfer en espacio de usuario
b)el proceso de usuario adquiere la impresora para escribir, haciendo una llamada
al sistema para abrirla. El SO copia el bfer con la cadena a imprimir a un arreglo
en el espacio del kernel. Tan pronto como la impresora est disponible, el SO copia
el primer carcter al registro de datos de la impresora,
c)Despus de imprimir un carcter, la CPU sondea en forma continua el dispositivo
para ver si est listo para aceptar otro. Este comportamiento se conoce
comnmente como sondeo u ocupado en espera . Esta accin activa la impresora.
En general la impresora tiene un segundo registro, que proporciona su estado. 18 de 43
Sistemas Operativos I
Cuando est lista imprime el siguiente carcter.

E/S controlada por interrupciones

La impresora no almacena caracteres en el buffer sino que imprime cada


uno a medida que va llegando.
La forma de permitir que la CPU haga algo ms mientras espera a que la
impresora est lista es utilizar interrupciones.
Cuando se realiza la llamada al sistema para imprimir la cadena, el bfer
se copia en espacio de kernel (como vimos antes) y el primer carcter se
copia a la impresora, tan pronto como est dispuesta para aceptar un
carcter. En ese momento, la CPU llama al planificador y se ejecuta algn
otro proceso. El proceso que pidi imprimir la cadena se bloquea hasta
que se haya impreso toda la cadena.
Cuando la impresora ha impreso el carcter, y est preparada para
aceptar el siguiente, genera una interrupcin. Esta interrupcin detiene el
proceso actual y guarda su estado. Despus se ejecuta el procedimiento
de servicio de interrupciones de la impresora.
Si no hay ms caracteres por imprimir, el manejador de interrupciones
realiza cierta accin para desbloquear al usuario. En caso contrario,
imprime el siguiente carcter, reconoce la interrupcin y regresa al
proceso que se estaba ejecutando justo antes de la interrupcin, que
contina desde donde se qued.
19 de 43
Sistemas Operativos I

E/S mediante el uso de DMA


Una obvia desventaja de la E/S controlada por
interrupciones es que ocurre una interrupcin en cada
carcter
La solucin es usar DMA. La idea es permitir que el
controlador de DMA alimente los caracteres a la impresora
uno a la vez, sin que la CPU se moleste. En esencia, el DMA
es E/S programada, slo que el controlador de DMA realiza
todo el trabajo en vez de la CPU principal. Esta estrategia
requiere hardware especial (el controlador de DMA) pero
libera la CPU durante la E/S para realizar otro trabajo
La gran ganancia con DMA es reducir el nmero de
interrupciones

20 de 43
Sistemas Operativos I

Capas del Software de E/S

21 de 43
Sistemas Operativos I

Manejadores de Interrupciones
Hay una serie de pasos que se deben llevar a cabo en el
software, una vez que se haya completado la interrupcin de
hardware.
1.Guardar los registros (incluyendo el PSW(Program Status
Word; Palabra de estado del programa)) que no han sido
guardados por el hardware de la interrupcin.
2.Establecer un contexto para el procedimiento de servicio de
interrupciones. Para ello tal vez sea necesario establecer el
TLB (Translation Lookaside Buffer, Bfer de traduccin
adelantada), la MMU (Memory Management Unit, Unidad de
Administracin de Memoria) y una tabla de pginas.
3.Establecer una pila para el procedimiento de servicio de
interrupciones.
4.Reconocer el controlador de interrupciones. Si no hay un
controlador de interrupciones centralizado, rehabilitar las
interrupciones.

22 de 43

Sistemas Operativos I

Manejadores de Interrupciones
5. Copiar los registros desde donde se guardaron (posiblemente
en alguna pila) a la tabla de procesos.
6. Ejecutar el procedimiento de servicio de interrupciones. ste
extraer informacin de los registros del controlador de
dispositivos que provoc la interrupcin.
7. Elegir cul proceso ejecutar a continuacin. Si la interrupcin
ha ocasionado que cierto proceso de alta prioridad que
estaba bloqueado cambie al estado listo, puede elegirse para
ejecutarlo en ese momento.
8. Establecer el contexto de la MMU para el proceso que se va
a ejecutar a continuacin. Tambin puede ser necesario
establecer un TLB.
9. Cargar los registros del nuevo proceso, incluyendo su PSW.
10.Empezar a ejecutar el nuevo proceso.
23 de 43
Sistemas Operativos I

Drivers de dispositivos
Posicionamiento lgico del
software controlador de
dispositivos. En realidad
toda la comunicacin entre
el software controlador y
los controladores de
dispositivos pasa a travs
del bus. Funciones:
- aceptar peticiones
abstractas de lectura y
escritura del software
independiente del
dispositivo que est por
encima de l, y ver que se
lleven a cabo
- inicializar el dispositivo
- administrar sus propios
requerimientos y eventos
del registro.
24 de 43
Sistemas Operativos I

Software de E/S independiente del dispositivo

Funciones del software de E/S independiente del dispositivo

25 de 43
Sistemas Operativos I

Interfaz uniforme para los controladores


de software de dispositivos

a) Sin una interfaz de


controlador estndar

b) Con una interfaz de


controlador estndar

26 de 43
Sistemas Operativos I

Uso de Bufer

(a) Entrada sin bfer


(b) Uso de bfer en espacio de usuario
(c) Uso de bfer en el kernel, seguido de la accin de copiar al
espacio de usuario
(d) Uso de doble bfer en el kernel

27 de 43
Sistemas Operativos I

Reporte de errores

El trabajo en red puede involucrar varias copias de un paquete

28 de 43
Sistemas Operativos I

Software de E/S en espacio de usuario

Niveles del sistema de E/S y las funciones principales de cada nivel

29 de 43
Sistemas Operativos I

Discos Magnticos

30 de 43
Sistemas Operativos I

Estructura de un Disco
Cada sector queda perfectamente especificado por sus
tres coordenadas: cilindro, cara y sector (tpicamente la
numeracin de las caras y cilindros comienza en 0 y la de
los sectores en 1)
Solo el manejador de dispositivo conoce las
caractersticas fsicas del disco. El SO trata el disco como
una sucesin de bloques (lgicos). Ejemplo: un disquete
de 1.4 Mbytes tiene 80 cilindros, 2 caras y 18 sectores por
pista. (2880 sectores de 512 bytes). SI lo formateamos
con bloques de 4k el S.O. lo considerar como una
sucesin de 360 bloques de 4K (cada bloque) tiene 8
sectores
La asignacin de espacio (y la contabilidad del espacio
libre) se hace por bloques, no por sectores
31 de 43
Sistemas Operativos I

Estructura de un Disco

32 de 43
Sistemas Operativos I

Planificacin de Discos
Un disco esta formado por un conjunto de platos que
giran solidariamente
Cada uno de las superficies de dichos platos se
denomina cara
Cada cara esta compuesta por una serie de coronas
circulares concntricas denominada pista. Al
conjunto formado por la misma pista en distintas
caras se le denomina cilindro
Cada cilindro est formado por una serie de sectores
El sector es la unidad de E/S elemental de un disco
duro
Tpicamente cada sector tiene 512 bytes
33 de 43
Sistemas Operativos I

Tiempo de Acceso a un Disco


Tiempo de Bsqueda:
tiempo para mover el brazo
Sectors
del disco al cilindro deseado
Tiempo de Latencia
rotacional: tiempo que tarda
el cabezal del disco en
localizar un sector dado
Tiempo de Transferencia:
tiempo que tardan los datos
Tracks
en fluir desde la unidad de
disco a la computadora o
viceversa cuando se realiza
la lectura/escritura del disco
34 de 43
Sistemas Operativos I

Tiempo de Acceso a un Disco


Tiempo de Bsqueda: depende de:
Dimetro del Disco
Densidad e Pistas por pulgada
Nmero de Pistas
Velocidad del Actuador
Tiempo de Latencia: depende de:
Velocidad de Rotacin del disco (promedio = tiempo
1/2 vuelta)
Tiempo de Transferencia: depende de:
Nmero de Sectores por Pista
Velocidad de rotacin del disco (Velocidad lineal de
sector)
35 de 43
Sistemas Operativos I

Tiempo de Acceso a un Disco

36 de 43
Sistemas Operativos I

Comparacin entre Discos

37 de 43
Sistemas Operativos I

Algoritmos de programacin de los brazos del Disco


FCFS (First Come First Served)

Atiende los requerimientos por orden de llegada.


Ejemplo: Cantidad de Pistas: 200 (0..199).
Requerimientos en la cola: {98 , 183 , 37, 122, 14, 124,
65, 67}
Ubicacin actual de la cabeza: Pista 53
{98 , 183 , 37, 122, 14, 124, 65, 67}
38 de 43
Sistemas Operativos I

Algoritmos de programacin de los brazos del Disco


SSTF (Shortest Seek Time First)

Selecciona el requerimiento que requiere el menor


movimiento de la cabeza desde la posicin actual.
Ejemplo: Cantidad de Pistas: 200 (0..199).
Requerimientos en la cola: {98 , 183 , 37, 122, 14, 124, 65,
67}
Ubicacin actual de la cabeza: Pista 53
39
{65 , 67, 37, 14, 98, 122, 124, 183 }
Sistemas Operativos I

de 43

Algoritmos de programacin de los brazos del Disco


SCAN

Importante: De que pista vengo!!!

Barre el disco en una direccin atendiendo los


requerimientos pendientes en esa ruta hasta llegar a la
ltima pista y luego cambia de direccin.
Ejemplo: Cantidad de Pistas: 200 (0..199).
Requerimientos en la cola: {98 , 183 , 37, 122, 14, 124, 65,
67}
40
Ubicacin actual de la cabeza: Pista 53 (Viene delSistemas
61) Operativos I

de 43

Algoritmos de programacin de los brazos del Disco


LOOK

Importante: De que pista vengo!!!

Idem SCAN pero no llega hasta la ltima pista sino hasta el


ltimo requerimiento en la direccin que se encuentra
atendiendo.
Ejemplo: Cantidad de Pistas: 200 (0..199).
Requerimientos en la cola: {98 , 183 , 37, 122, 14, 124,
65, 67}
41
Ubicacin actual de la cabeza: Pista 53 (Viene del
61)
Sistemas Operativos I

de 43

Algoritmos de programacin de los brazos del Disco


C-SCAN

Importante: De que pista vengo!!!

Idem SCAN, pero restringe la atencin en un solo sentido. Al


llegar a la ltima pista (o ltimo requerimiento) vuelve a la
primer pista y comienza a barrer nuevamente.
Ejemplo: Cantidad de Pistas: 200 (0..199).
Requerimientos en la cola: {98 , 183 , 37, 122, 14, 124, 65,
67}
42
Ubicacin actual de la cabeza: Pista 53 (Viene del 61)

de 43

Sistemas Operativos I

Algoritmos de programacin de los brazos del Disco


CLOOK
Importante: De que pista vengo!!!

Idem LOOK, pero restringe la atencin en un solo sentido. Al


llegar al ltimo requerimiento vuelve al menor requerimiento y
comienza a barrer nuevamente.
Ejemplo: Cantidad de Pistas: 200 (0..199).
Requerimientos en la cola: {98 , 183 , 37, 122, 14, 124, 65,
67}
Ubicacin actual de la cabeza: Pista 53 (Viene del 61)
43

de 43

Sistemas Operativos I

You might also like