Está en la página 1de 45

SISTEMAS OPERATIVOS I

Tema N° 4
Entrada/Salida

1 de 43
Sistemas Operativos I
Introducción
Clase III
• Recuento de la segunda clase.
• Preguntas sobre las prácticas, cuestionario y/o información de Linux.

• Introducción de clase IV:

Gestión y control de dispositivos. Dispositivos de almacenamiento, de


transmisión de interfaz humana y dispositivos especializados. Dispositivos de
bloque y de caracter. Revisión de conceptos: controlador, port, bus,
interrupciones, Acceso directo a memoria (DMA). Objetivos del software de
E/S. Drivers de dispositivos. Reporte de errores. Estudio de dispositivos de
E/S: RAID, CD, CD grabables y regrabables, DVD, Relojes. Algoritmos de
programación de los brazos del disco: FCFS, SSTF, SCAN, LOOK, CSCAN,
CLOOK.

Dispositivos de E/S:
(I/O) dispositivos periféricos dcapaces de interactuar con los elementos
externos a ese sistema de forma bidireccional, es decir, que permite tanto que
sea ingresada información desde un sistema externo, como emitir información
a partir de ese sistema. Su función es leer o grabar, permanente o
virtualmente, todo aquello que se haga con la computadora, para que pueda
ser utilizado por los usuarios u otros sistemas.
Dispositivos de Entrada/Salida

El SO debe gestionar y
controlar las operaciones y
dispositivos de E/S

• Los dispositivos de E/S permiten a la CPU


relacionarse con el mundo exterior:
teclados, pantallas, impresoras, discos . . .
• La comunicación de la CPU con un elemento
externo es similar a la comunicación con la
memoria: se leen y escriben datos

3 de 43
Sistemas Operativos I
Dispositivos de
Entrada/Salida

4 de 43
Sistemas Operativos I
Dispositivo Velocidad de transferencia
Teclado 10 bytes/seg
Mouse 100 bytes/seg
Modem de 56L 7 KBytes/seg
Dispositivos de Entrada/Salida

Escaner 400 KBytes/seg


Cámara de video digital 3,5 MBytes/seg
802.11g inalámbrico 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
5 de 43
Bus PCI 528 Mbytes/seg Sistemas Operativos I
Categorías de dispositivos de E/S

• dispositivos de almacenamiento: discos


cintas

• dispositivos de transmisión: tarjetas de red


módems

• dispositivos de interfaz humana: pantalla


teclado
mouse (ratón)

• dispositivos especializados: volantes

6 de 43
Sistemas Operativos I
Características de los Dispositivos de E/S
Aspecto Clasificación/ Ejemplo
Modo de transferencia Carácter Teclado
de datos Bloque Disco
Método de acceso Secuencial Modem
Aleatorio CD-ROM
Forma de Sincrónico Tape
transferencia Asincrónico Teclado
Compartición Dedicado Tape
Compartido Teclado
Velocidad de los Latencia
dispositivos Tiempo de búsqueda
Tempo de transferencia
Retardo entre operaciones
Dirección de E/S Solo lectura CD-ROM
Solo escritura Controlador gráfico
Lectura y escritura Disco 7 de 43
tivos I
Sistemas Opera
Dispositivos de Entrada/Salida
• dispositivos de bloque
– almacenan información en bloques de tamaño fijo, cada uno con
su propia dirección
– todas las transferencias se realizan en unidades de uno o más bloques
completos (consecutivos)
– es posible leer o escribir cada bloque de manera independiente de los
demás
– ejemplos: discos duros, CD-ROMs y memorias USBs
• dispositivos de carácter
– envían o aceptan un flujo de caracteres, sin importar la
estructura del bloque
– no son direccionables y no tiene ninguna
operación de búsqueda
– ejemplos: teclado, impresoras, las interfaces de red,
mouse
Los límites son difusos – hay dispositivos que no se adaptan
a ninguna clasificación. Ejemplo: relojes 7 de 43
Sistemas Operativos I
Controladores de Dispositivos de E/S

Componente electrónico llamado controlador de


dispositivo o adaptador. En las computadoras
personales tiene la forma de un chip en la tarjeta
Unidad principal o una tarjeta
de E/S
Componente mecánico es el dispositivo en sí
9 de 43
Sistemas Operativos I
Controladores de Dispositivos de E/S

ANSI
Standard IEEE
ISO

IDE
SATA
Unidades de disco SCSI
USB
Firew
ire
(IEE
E 10 de 43
Sistemas Operativos I
1394)
Controladores de Dispositivos de E/S

Una controladora es una colección de componentes


electrónicos que permite controlar un puerto, un bus o
un dispositivo. Ejemplo: un chip que controla las
señales que se transmiten a través de los hilos de un
puerto serie.
10 de 43
Sistemas Operativos I
E/S por asignación 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 envíe o acepte datos, se encienda o se apague, o realice cualquier
otra acción. 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. Además, hay un búfer 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 de 43
memoria, PCI, SCSI, USB, ISA Sistemas Operativos I
Acceso directo a Memoria (DMA)

Operación 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 interrupción (suponiendo que el sistema operativo haya
habilitado las interrupciones). Para ello, impone una señal en una línea de
bus que se le haya asignado. Esta señal es detectada por el chip
controlador de interrupciones en la tarjeta principal, que después decide lo
que debe hacer.
15 de 43
Sistemas Operativos I
Interrupciones precisas e imprecisas
Propiedades de una interrupción precisa:
1. El contador del programa (PC) se guarda en un lugar conocido
2. Todas las instrucciones antes de la instrucción a la que apunta el PC se han
ejecutado por completo
3. Ninguna instrucción más allá de la instrucción a la que apunta el PC se ha
ejecutado
4. Se conoce el estado de ejecución de la instrucción 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
• Denominación 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 más 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 sincrónicas (de bloqueo) y asincrónicas
(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
• Administración 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 búfer 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 búfer 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 carácter al registro de datos de la impresora,
c) Después de imprimir un carácter, la CPU sondea en forma continua el dispositivo para ver
si está listo para aceptar otro. Este comportamiento se conoce comúnmente como sondeo u
ocupado en espera . Esta acción activa la impresora. En general la impresora tiene un
segundo registro, que proporciona su estado. 18 de 43

Cuando está lista imprime el siguiente carácter. Sistemas Operativos I


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 más mientras espera a que la
impresora esté lista es utilizar interrupciones.
• Cuando se realiza la llamada al sistema para imprimir la cadena, el búfer se copia
en espacio de kernel (como vimos antes) y el primer carácter se copia a la
impresora, tan pronto como esté dispuesta para aceptar un carácter. En ese
momento, la CPU llama al planificador y se ejecuta algún 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 carácter, y está preparada para aceptar el
siguiente, genera una interrupción. Esta interrupción detiene el proceso actual y
guarda su estado. Después se ejecuta el procedimiento de servicio de
interrupciones de la impresora.
• Si no hay más caracteres por imprimir, el manejador de interrupciones realiza
cierta acción para desbloquear al usuario. En caso contrario, imprime el
siguiente carácter, reconoce la interrupción y regresa al proceso que se estaba
ejecutando justo antes de la interrupción, que continúa 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 interrupción en cada
carácter
• La solución 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, sólo 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 número de
interrupciones

20 de 43
Sistemas Operativos I
¿PREGUNTAS?

Descanso – 25 minutos
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 interrupción 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 interrupción.
2. Establecer un contexto para el procedimiento de servicio de
interrupciones. Para ello tal vez sea necesario establecer el TLB
(Translation Lookaside Buffer, Búfer de traducción adelantada),
la MMU (Memory Management Unit, Unidad de Administración
de Memoria) y una tabla de páginas.
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á información de los registros del controlador de
dispositivos que provocó la interrupción.
7. Elegir cuál proceso ejecutar a continuación. Si la interrupción 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 continuación. También 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 lógico del
software controlador de
dispositivos. En realidad toda
la comunicación entre el
software controlador y los
controladores de dispositivos
pasa a través 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 b) Con una interfaz de


controlador estándar controlador estándar

26 de 43
Sistemas Operativos I
Uso de Bufer

(a) Entrada sin búfer


(b) Uso de búfer en espacio de usuario
(c) Uso de búfer en el kernel, seguido de la acción de copiar al
espacio de usuario
(d) Uso de doble búfer 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 Magnéticos

30 de 43
Sistemas Operativos I
Estructura de un Disco

• Cada sector queda perfectamente especificado por sus tres


coordenadas: cilindro, cara y sector (típicamente la numeración
de las caras y cilindros comienza en 0 y la de los sectores en 1)
• Solo el manejador de dispositivo conoce las características
físicas del disco. El SO trata el disco como una sucesión de
bloques (lógicos). 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 sucesión de 360 bloques de 4K (cada
bloque) tiene 8 sectores
• La asignación 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
Planificación 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 concéntricas 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
• Típicamente cada sector tiene 512 bytes

33 de 43
Sistemas Operativos I
Tiempo de Acceso a un Disco

• Tiempo de Búsqueda:
Sectors tiempo para mover el brazo 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 en
Tracks 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 Búsqueda: depende de:


– Diámetro del Disco
– Densidad e Pistas por pulgada
– Número de Pistas
– Velocidad del Actuador

• Tiempo de Latencia: depende de:


– Velocidad de Rotación del disco (promedio = tiempo
1/2 vuelta)

• Tiempo de Transferencia: depende de:


– Número de Sectores por Pista
– Velocidad de rotación del disco (Velocidad lineal de
sector)
35 de 43
Sistemas Operativos I
Tiempo de Acceso a un Disco

36 de 43
Sistemas Operativos I
Comparación entre Discos

37 de 43
Sistemas Operativos I
Algoritmos de programación 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}
• Ubicación actual de la cabeza: Pista 53
• {98 , 183 , 37, 122, 14, 124, 65, 67} 38 de 43
Sistemas Operativos I
Algoritmos de programación de los brazos del Disco
SSTF (Shortest Seek Time First)

Selecciona el requerimiento que requiere el menor


movimiento de la cabeza desde la posición actual.
• Ejemplo: Cantidad de Pistas: 200 (0..199).
• Requerimientos en la cola: {98 , 183 , 37, 122, 14, 124, 65,
67}
• Ubicación actual de la cabeza: Pista 53
39
• {65 , 67, 37, 14, 98, 122, 124, 183 } de 43
Sistemas Operativos I
Algoritmos de programación de los brazos del Disco
SCAN

Importante: De que pista vengo!!!

Barre el disco en una dirección atendiendo los


requerimientos pendientes en esa ruta hasta llegar a la última
pista y luego cambia de dirección.
• Ejemplo: Cantidad de Pistas: 200 (0..199).
• Requerimientos en la cola: {98 , 183 , 37, 122, 14, 124, 65,
67}
40
• Ubicación actual de la cabeza: Pista 53 (Viene deSl is6te1m)as Operativos I
de 43
Algoritmos de programación 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 dirección que se encuentra atendiendo.
• Ejemplo: Cantidad de Pistas: 200 (0..199).
• Requerimientos en la cola: {98 , 183 , 37, 122, 14, 124,
65, 67}

• Ubicación actual de la cabeza: Pista 53 (Viene del 61) Sistemas Operativos


41 de 43
I
Algoritmos de programación de los brazos del Disco
C-SCAN

Importante: De que pista vengo!!!

Idem SCAN, pero restringe la atención 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}
• Ubicación actual de la cabeza: Pista 53 (Viene del 61) Sistemas Operativos
42 de 43
I
Algoritmos de programación de los brazos del Disco
CLOOK

Importante: De que pista vengo!!!

Idem LOOK, pero restringe la atención 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}
• Ubicación actual de la cabeza: Pista 53 (Viene del 61)
43 de 43
Sistemas Operativos I

También podría gustarte