Publicado el 10 de Febrero del 2017
1.405 visualizaciones desde el 10 de Febrero del 2017
796,7 KB
80 paginas
Creado hace 17a (16/04/2007)
Tema 6
Gestión de Entrada/Salida
Sistemas Operativos
1
Índice
1. Arquitectura del sistema de E/S (Tanenbaum [C5.1.1, C5.2 y C5.3])
2. Discos (Tanenbaum [C5.4.1, C5.4.3 y C5.4.4])
3. Relojes (Tanenbaum [C5.5])
4. Terminales (Tanenbaum [C5.6 y C5.7])
5. E/S en Linux (Tanenbaum [C10.5.1, C10.5.3 y C10.5.4])
6. E/S en Windows 2000 (Tanenbaum [C11.6.1, C11.6.3 y C11.6.4])
2
1. Arquitectura del sistema de E/S
Índice
1.1 Objetivos del software de E/S
1.2 Dispositivos de bloques y de caracteres
1.3 Estructura y componentes del sistema de E/S
1.4 Manejadores de interrupciones
1.5 Manejadores de dispositivos
1.6 Software de E/S independiente del dispositivo
1.7 Software de E/S en el espacio de usuario
3
1.1 Objetivos del software de E/S
1. Independencia de dispositivo
– Se debe poder acceder a los dispositivos de E/S sin tener que
especificar previamente de qué tipo de dispositivo se trata
2. Nombres uniformes para los dispositivos
– El nombre de un fichero o dispositivo debe ser simplemente una
cadena o un entero, y no depender del dispositivo. Así todos los
ficheros y dispositivos se direccionan de un mismo modo: “con
un nombre de ruta”
3. Manejo de errores
– Deben manejarse tan cerca del hardware como sea posible
– Subsanar todos los errores posibles
– Comunicando los no subsanables a los procesos de usuario
4
1.1 Objetivos del software de E/S (ii)
4. Conversión de transferencias asíncronas (controladas por interrupciones)
en síncronas (por bloqueo)
– Casi toda E/S física es asíncrona: la CPU inicia la transferencia y realiza otra
tarea hasta que llega una interrupción
– Sin embargo, es más sencillo escribir los programas si las operaciones de E/S
son bloqueantes
– El SO ha de hacer que las operaciones que son controladas por interrupciones
parezcan bloqueantes para el programador
5. Compartición de recursos
– Debe permitir la compartición de ciertos dispositivos (como los discos)
– Pero al mismo tiempo debe garantizar el uso exclusivo de otros (como las
impresoras)
6. Uso de buffers
– Debe proporcionar almacenamiento temporal en memoria para evitar pérdida de
datos (teclado) o acelerar dispositivos (discos)
5
1.2 Dispositivos de bloques y de caracteres (I)
Dispositivos de bloques (discos)
– Almacenan información en bloques de tamaño fijo, cada uno con su
propia dirección
– Es posible leer o escribir cada bloque con independencia de todos los
demás
Dispositivos de caracteres (lo que no es disco)
– Suministra o acepta un flujo de caracteres sin estructurarlos en bloques
– No es direccionable ni tiene una operación de desplazamiento
Impresoras, teclados, interfaces de red, etc…
Otros, sin embargo, no son direccionables por bloques y tampoco
aceptan un flujo de caracteres
Relojes, pantallas mapeadas a memoria
La división es muy útil:
– Sist. Ficheros ⇒ disp. bloques ⇒ manejador ⇒ disp. Físico
se ocupa sólo de dispositivos abstractos de bloques
6
1.2 Dispositivos de bloques y de caracteres (II)
Dispositivo
Tasa de datos
Teclado
Ratón
Modem de 56k
Canal telefónico
Líneas ISDN duales
Impresora láser
Escárner
Ethernet Clásico
USB
Cámara grabadora digital
Disco IDE
CD-ROM 40x
Ethernet rápida
Bus ISA
Disco EIDE (ATA-2)
Interfaz FireWire (IEEE
1394)
Monitor XGA
Red SONET OC-12
Disco SCSI Ultra 2
Ethernet Gigabit
Cinta Ultrium
Bus PCI
Tarjeta posterior Sun
Gigaplane XB
10 bytes/s
100 bytes/s
7 KB/s
8 KB/s
16 KB/s
100 KB/s
400 KB/s
1.25 MB/s
1.5 MB/s
4 MB/s
5 MB/s
6 MB/s
12.5 MB/s
16.7 MB/s
16.7 MB/s
50 MB/s
60 MB/s
78 MB/s
80 MB/s
125 MB/s
320 MB/s
528 MB/s
20 GB/s
7
1.3 Estructura y componentes del software de E/S
El SW de E/S suele estar organizado en 4 capas, cada una con una función
bien definida y una interfaz clara con las capas adyacentes
1. Manejadores de interrupciones
2. Manejadores de dispositivos
3. Software de E/S independiente del dispositivo (SID)
4. Software de E/S en el espacio de usuario
Capa
Respuesta
de E/S
Funciones de E/S
Solicitud
de E/S
Procesos de usuario
Hace llamadas de E/S; da formato a la E/S; spooling
Software independiente
del dispositivo
Manejadores
de dispositivo
Manejadores
de interrupciones
Dar nombres, protección, bloqueos, uso de buffers, asignaciones
Inicializa los registros del dispositivo; comprueba el estado
Despierta al manejador al terminar la E/S
Hardware
Realiza la operación de E/S
8
1.4 Manejadores de interrupciones (I)
Se deben ocultar al máximo en el S.O.
El proceso que solicita la operación se bloquea hasta
que termina la E/S
Cuando se presenta una interrupción el manejador de
interrupciones hace lo propio para manejarla. Después
avisa al manejador que le solicitó esa operación de E/S
El manejador despierta al proceso y prosigue su
ejecución
Así, el efecto real es que el proceso que antes estaba
bloqueado ahora ya puede ejecutarse
9
1.4 Manejadores de interrupciones (II)
Incluso a la hora de implementar el SO interesa ocultar
las interrupciones (inevitables por molestas que sean)
– La mejor manera de ocultar las interrupciones es hacer que el
controlador que inicia una operación de E/S se bloquee hasta
que la E/S haya terminado y se presente la interrupción
– Dicho controlador puede bloquearse ejecutando down en un
semáforo, wait en una variable de condición, receive de un
mensaje, etc
– La subrutina de atención a interrupciones después de hacer su
trabajo (si realiza alguno) desbloqueará el controlador que la
generó ejecutando up sobre semáforo, signal variable de
condición, enviando un mensaje al controlador bloqueado etc…
– Este modelo funciona de forma óptima si los controladores se
estructuran como procesos del kernel, con sus propios estados,
pilas y contadores de programa
10
1.5 Manejadores de dispositivos
Código que depende de los dispositivos, que sirve para controlarlos
El fabricante proporciona manejadores de su dispositivo para varios SO
Cada manejador controla un dispositivo, o una clase de dispositivos
Forma parte del núcleo del SO, necesita ejecutarse en modo núcleo para
acceder a los registros de la controladora del dispositivo
En sistemas Unix antiguos los manejadores se compilaban junto con el
kernel (se cambiaba poco de dispositivos y los usuarios estaban
familiarizados en compilar el kernel) en lugar de cargarlos de forma
dinámica a arrancar o en tiempo de ejecución
La mayoría de los SO definen una interfaz que todos los manejadores
deben soportar (cjto de procedimientos que el resto del SO puede invocar
para pedir a la controladora que realice algún trabajo)
Al solicitar la orden a realizar, el manejador puede ser que tenga que
esperar (bloqueándose hasta que se produzca una interrupción) o que la operación
termine sin retraso (el manejador no se bloquea)
Ha de ser reentrante ⇒⇒⇒⇒ durante su ejecución, debe considerar la
posibilidad de que se le invoque otra vez antes de terminar
11
1.6 Software de E/S independiente de dispositivo
Hay software que no depende directamente del dispositivo
Dependiente versus independiente: ¿dónde está la frontera?
– Algunas funciones que podrían efectuarse con independencia del dispositivo en
realidad se ejecutan en el manejador por eficiencia o por otros motivos
Funciones:
1.
2. Asociación de nombres simbólicos de los dispositivos y el manejador correcto:
Interfaz uniforme del software a nivel de usuario
/dev/tty0 ⇒ nodo-i especial (id. tipo y dispositivo)
Interfaz uniforme para manejadores de dispositivo
3.
4. Protección de dispositivos ⇒ evitar que usuarios no autorizados accedan al
dispositivo
5. Tamaño de bloque independiente del dispositivo
•
•
Agrupar o dividir sectores para conseguir un tamaño único de bloque lógico
Las capas superiores pueden trabajar con dispositivos abstractos
12
1.6 Software de E/S independiente de dispositivo (ii)
Funciones (continúa...)
6. Uso de buffers para almacenamiento temporal de los datos
•
Homogeneizan velocidades, se pueden recibir los datos de manera más rápida que la
velocidad que pueden salir
7. Asignación de espacio en los dispositivos de bloques
•
Realizar la gestión de la lista ligada o mapa de bits para administrar el espacio libre es
independiente del dispositivo
8. Arbitrio entre dispositivos de uso exclusivo
•
Examinar las solicitudes de uso de dispositivos y aceptarlas o rechazarlas, según el
dispositivo esté disponible o no
9.
Informe de errores
•
Los errores no resueltos por los manejadores deberán ser tratados por el SID, que
intentará solucionarlos, y si no puede, deberá informar de los mismos
13
1.7 Software de E/S en espacio de usuario
Procedimientos de biblioteca
– La mayoría del software de E/S está en el núcleo
– Sin embargo, también hay procedimientos de biblioteca que se ejecutan
en modo usuario y que se encargan de realizar las llamadas al
sistema (ej. read, printf, etc.)
– Normalmente preparan el «entorno» adecuado y a continuación
realizan la llamada al sistema
Sistema de spooling
– Los dispositivos de uso exclusivo no se pueden dejar a cargo de
programas de usuario (problema: monopolización)
– El sistema de spooling es una forma de manejar dispositivos dedicados
en un sistema con multipogramación
– Hay un demonio y un directorio de spooling
– El demonio verifica periódicamente el directorio para saber si hay
trabajos pendientes
– Las impresoras se manejan de esta manera
14
1.7 Software de E/S en espacio de usuario
printf en OSO
aplicación
kernel
15
Índice
2. Discos
2.1 Hardware para discos. Estructura física
2.2 Planificación de los movimientos del brazo del disco
2.3 Manejo de errores
2.4 Discos en RAM
2.5 Fiabilidad y tolerancia a fallos. Sistemas RAID
16
2.1 Hardware
Serie de platos que giran sobre un eje
(≈ 10.000rpm)
Conjunto de cabezas, una por cada
superficie del disco
Cabezas conectadas a un brazo móvil.
Determinan qué pistas conforman un
cilindro
Cada cilindro tiene tantas pistas como
cabezas haya
Las pistas se dividen en sectores
Las unid
Comentarios de: Tema 6 - Gestión de Entrada/Salida (0)
No hay comentarios