Sei sulla pagina 1di 43

1

Entrada/Salida
Captulo 4
4.1 Principios hardware de E/S
4.2 Principios software de E/S
4.3 Niveles software de E/S
4.4 Discos
2
Principios hardware de E/S (1)
El SO debe controlar los dispositivos de E/S:
Dar comandos
Atrapar interrupciones
Gestionar errores

Interfaz clara y sencilla

Deseable: misma interfaz para todos los dispositivos.

I/O 30% del SO
3
Principios hardware de E/S (2)
Dispositivos de E/S:
Diseadores y constructores
Mantenimiento
Control y explotacin
PROGRAMACIN
Comandos
Funcionalidad
Errores

Cmo programar el dispositivo?
4
Principios hardware de E/S (3)
Dispositivos E/S
Dos tipos:
Orientados a bloques
Almacena informacin en bloques de tamao fijo.
Direccionables por bloque
Discos.
Orientados a caracteres
Almacena/genera un flujo de caracteres
No acceso directo/ no bloques
Terminales, impresoras, lneas

Otros: cintas, relojes
5
Principios hardware de E/S (4)
Controladores de Dispositivo
Dispositivo E/S:
Componente mecnico
Componente electrnico controlador
Procesador Memoria
Controlador
de disco
Controlador
de impresora
Otros
controladores
discos impresora
Bus. Ruta de datos
6
Principios hardware de E/S (5)
Controladores de Dispositivo
P.ejem: discos: cilindros, pistas, sectores.
ECC Preambulo Datos
Sector
- nmero de sector
- nmero de cilindro
- tamao del sector
Controlador:
De secuencia de bits a bloque de bytes
Almacenar en buffer del controlador
Chequear errores
Copiar bloque a memoria
7
Principios hardware de E/S (6)
Memoria mapeada
CPU registros del controlador. Dos opciones:
Puertos de E/S
Memoria mapeada
(La discusin sobre las ventajas/desventajas de ambas opciones, seccin
5.1.3, no entra para el examen).
0xFFFF
0
Memoria
Puertos E/S
8
Principios hardware de E/S (7)
Direct Memory Access (DMA)
cuenta
Ruta de datos del sistema
Procesador Memoria
Controlador
de disco
disco
cuenta
direccin
de memoria
buffer
cuenta
0) dir. del bloque, dir. de memoria, num. bytes; 1) El controlador lee el bloque en
su buffer; 2) Checksum; 3) El controlador copia de buffer a memoria. 4) El
controlador interrumpe a la CPU; 5) El SO ya tiene la copia realizada
9
Principios hardware de E/S (8)
Direct Memory Access (DMA)
Para qu el buffer en el controlador?
cuenta
Ruta de datos del sistema
Procesador Memoria
Controlador
de disco
disco
cuenta
direccin
de memoria
buffer
cuenta
La seccin 5.1.5 no entra para el examen
10
Principios software de E/S (1)
Objetivos del software de E/S
INDEPENDENCIA DEL DISPOSITIVO.
Un programa debe ejecutarse correctamente independientemente de dnde lea
o escriba:
sort < entrada > salida

UNIFORMIDAD DE NOMBRES.
Nombres de ficheros y de dispositivos se construyen igual.
/dev/lp
/usr1/alumnos/f0175/modula2

GESTIN DE ERRORES.
Por las capas ms bajas. Si no pueden que lo comuniquen a las de arriba.
11
Principios software de E/S (2)
Objetivos del software de E/S
TIPO DE TRANSFERENCIA.
sncrona asncrona
bloqueante interrupciones

Casi todos los dispositivos son asncronos (interrupciones)
PERO: los programas son ms fciles de escribir con sncronas (bloqueantes).
El SO debe disfrazar las asncronas en sncronas

BUFFERING.
Almacenamiento intermedio de datos que vienen de dispositivos

TIPO DE DISPOSITIVOS
Dedicados compartidos
impresora disco
dedicados spooling compartidos.
Leer las secciones 5.2.2, 5.2.3 y 5.2.4
12
Niveles software de E/S (1)
Software de E/S a nivel de usuario
Software independiente
del dispositivo
Drivers de dispositivos
Gestores de interrupciones
Hardware
Respuesta de la E/S
Peticin de la E/S
Llamada de E/S; formateo de E/S
Asignacin de nombres, proteccin,
bloqueo, buffering
Lectura y escritura de registros,
comprobacin de estado
Salvar/restaurar estado, bifurcar a
la rutina de tratamiento.
Realizacin fsica de la E/S
13
Niveles software de E/S (2)
Gestores de interrupciones
Las interrupciones no son amigables.
Esconderlas en algn mdulo del SO.
El resto del SO no sabe nada de interrupciones.
1. Comando de E/S
2. Bloquearse
interrupcin
desbloquear
al driver
Driver
Rutina de
tratamiento de
interrupcin
Dispositivo
14
Niveles software de E/S (3)
Gestores de interrupciones
Tratamiento de una interrupcin (genrico)

Salvar registros
Poner contexto para la rutina de tratamiento (TLB, MMU, )
Poner stack para la rutina de tratamiento
Ack al controlador de interrupciones
Copiar registros salvados a la tabla de procesos
Ejecutar la rutina de tratamiento
Seleccionar proceso a ejecutar
Pone contexto para el nuevo proceso (MMU, TLB, )
Cargar los registros del nuevo proceso
Arrancar el nuevo proceso
15
Niveles software de E/S (4)
Drivers de dispositivos
16
Niveles software de E/S (5)
Drivers de dispositivos
Cdigo dependiente del dispositivo.
Cada clase de dispositivo un driver diferente.
Lee/escribe en los registros de control del dispositivo.
Funcin: traducir peticiones abstractas en concretas.
Software de E/S independiente
del dispositivo
Driver de disco
leer el bloque N
Controlador de disco
registros
Disco
17
Niveles software de E/S (6)
Drivers de dispositivos
Cuando llega la peticin: driver ocioso?
SI: ejecutarla inmediatamente
NO: encolarla

Leer bloque N
num cilindro, num sector, pista.
motor encendido?
posicin actual del brazo?
18
Niveles software de E/S (7)
Drivers de dispositivos
decidir qu operaciones (comandos al controlador)
decidir el orden de las operaciones.
Escribir en los registros del controlador (arrancar la
operacin).
Tipo de operacin?
bloqueante espera interrupcin.
No bloqueante no esperes.
Chequear errores.
Hay: intenta corregirlo
No hay: pasa informacin al nivel superior (datos y
estado de la operacin)
Quedan peticiones encoladas?
SI: seleccionar una
NO: dormir (bloquearse) hasta que llegue la siguiente peticin
19
Niveles software de E/S (8)
Software de E/S independiente del dispositivo
Gran parte del SW de E/S es independiente del dispositivo.

Funciones bsicas:
- Implementar las operaciones de E/S que son comunes a
todos los dispositivos.
- Presentar a los programas de usuario una interfaz uniforme.

Funciones tpicas:
- Interfaz uniforme para los drivers
- Buffering
- Gestin de errores
- Asignacin y liberacin de dispositivos dedicados
- Proporcionar un tamao de bloque independiente del
dispositivo
20
Niveles software de E/S (9)
Software de E/S independiente del dispositivo
Interfaz uniforme para los drivers

(a) Sin interfaz estndar
(b) Con interfaz estndar
21
Niveles software de E/S (10)
Software de E/S independiente del dispositivo
Interfaz uniforme para los drivers. Nombrado de dispositivos E/S

Driver
adecuado
Nombre simblico
de dispositivo
Software de E/S
independiente del
dispositivo
/dev/tty0
I-node
nmero principal
de dispositivo
nmero secundario
de dispositivo
22
Niveles software de E/S (11)
Software de E/S independiente del dispositivo
Buffering
23
Niveles software de E/S (12)
Software de E/S independiente del dispositivo
Buffering
La comunicacin en red puede implicar muchas copias
24
Niveles software de E/S (13)
Software de E/S independiente del dispositivo
Gestin de errores
La mayora de los errores los maneja el driver.
Si el driver no puede
software independiente del dispositivo: decisiones polticas.

Asignar y liberar dispositivos dedicados
Pedir al SO el recurso (por ejemplo: open).
Liberar recurso (por ejemplo: close).

Tamao de bloque independiente del dispositivo
El software independiente del dispositivo da la visin de un nico
tamao de bloque (independiente del tamao real del bloque del
dispositivo).
25
Niveles software de E/S (14)
Software de E/S en espacio de usuario
Llamadas al sistema rutinas de biblioteca
count = write (fd, buffer, nbytes)

Rutinas tipo printf (formateo y pasar parmetros)

Sistema de spooling
impresora: demonio y directorio de spooling
red: demonio y directorio de spooling
26
Discos (1). Hardware. Discos magnticos
cilindro X
cilindro Y
cilindro Z
pista 1 del cilindro X
pista 1 del cilindro Y
pista 1 del cilindro Z
sector n
cabezas de r/w
27
Discos (2). Hardware. Discos magnticos
Posibilidad de posicionamiento simultneo en varias unidades
(bsquedas solapadas).
Posibilidad de posicionamiento y r/w simultneos en dos unidades.
NO transferencias simultneas.
28
Discos (3). Hardware. Discos magnticos
Geometra fsica de un disco con dos zonas
Geometra virtual para el disco
(los epgrafes RAID, CD-ROMs, CD grabables, regrabables y DVD
no entran para el examen)
29
Discos (4). Formateo de discos
Formato de un sector de un disco
N cilindro
N sector
Error-Correcting Code
512 bytes
Adems, hay sectores para sustituir a los defectuosos de fbrica
Reduccin de capacidad en el disco formateado
30
Discos (5). Formateo de discos
Ejemplo de cylinder skew
31
Discos (6). Formateo de discos
Por ejemplo:
10000 rpm, 300 sectores por pista, 800 seg salto entre pistas,
cul es el cylinder skew apropiado?

10000 rpm 6 msg. en dar una vuelta
300 sectores/pista y 6 msg. en dar una vuelta
se tarda 20 seg en leer un sector
En 800 seg se leen 800/20 = 40 sectores

cylinder skew apropiado = 40

(sin considerar la seleccin de cabeza)
32
Discos (7). Formateo de discos
(a) Sin interleaving
(b) Interleaving = 1
(c) Interleaving = 2
Mientras se transfiere a memoria, el disco sigue girando.
33
Discos (8). Formateo de discos
- Particionar el disco.
- Sector 0 -> master boot record (contiene):
cdigo de arranque
tabla de particiones (sector inicial y final de cada particin)
Una de las particiones debe estar activa

-Formateo (alto nivel) de cada particin:
boot block
indicacin de bloques libres
directorio raz,
(cuando veamos el sistema de ficheros)
34
Discos (9). Algoritmos de planificacin del
brazo del disco
tiempo de acceso =
tiempo de posicionamiento (brazo al cilindro adecuado) +
tiempo de latencia (espera de rotacin) +
tiempo de transferencia.

Algoritmos para disminuir el tiempo de posicionamiento.

FCFS (First-Come, First-Served)
- Atiende las peticiones por orden de llegada.
- Muy sencillo.
- Ninguna optimizacin.
35
Discos (10). Algoritmos de planificacin
del brazo del disco
Ejemplo (FCFS):
posicin actual: cilindro 11
llegan peticiones: 1, 36, 16, 34, 9 ,12

0 1 9 11 12 16 34 36
X X X X X X
posicin actual
(10)
(35)
(20)
(18)
(25)
(3)
Total cilindros atravesados = 111
36
Discos (11). Algoritmos de planificacin
del brazo del disco
SSF (Shortest Seek First)

Suposicin: las peticiones pendientes se pueden encolar
mientras se atiende la actual.
0 p12 p31 p2
1 p1 p14
N p2
cilindro
37
Discos (12). Algoritmos de planificacin
del brazo del disco
SSF (Shortest Seek First)

0 1 9 11 12 16 34 36
X X X X X X
posicin actual
Total cilindros atravesados = 61
(1)
(3)
(7)
(15)
(33)
(2)
38
Discos (13). Algoritmos de planificacin
del brazo del disco
SSF (Shortest Seek First)
Problema: POSIBLE INANICIN.

Mejora la eficiencia, (minimiza el tiempo de respuesta)
pero no es equitativo.
39
Discos (14). Algoritmos de planificacin
del brazo del disco
Algoritmo del Ascensor

Plantas: cilindros;
peticiones: usuarios

Compromiso entre eficiencia y equidad.

Moverse en un sentido hasta que no haya ms peticiones en ese
sentido (atendiendo a la ms corta) y cambiar de sentido.

Inicialmente subiendo
40
Discos (15). Algoritmos de planificacin
del brazo del disco
Algoritmo del Ascensor

0 1 9 11 12 16 34 36
X X X X X X
posicin actual
Total cilindros atravesados = 60
(1) (4)
(18)
(2)
(27)
(8)
En general, peor que SSF.
Dado un conjunto cualquiera de peticiones lmite superior
del movimiento total = 2 veces el nmero de cilindros.
41
Discos (16). Algoritmos de planificacin
del brazo del disco
C-SCAN
Variante del algoritmo del ascensor: recorrer el disco siempre en el
mismo sentido. Disminuye la desviacin en los tiempos de respuesta

0 1 9 11 12 16 34 36
X X X X X X
posicin actual
Total cilindros atravesados = 68
(1) (4)
(18)
(2)
(35)
(8)
42
Discos (17). Algoritmos de planificacin
del brazo del disco
En el algoritmo del ascensor
acumulacin de peticiones en un extremo.
numero de
peticiones
sentido del brazo
43
Discos (18). Algoritmos de planificacin
del brazo del disco
OTRAS OPTIMIZACIONES.

Peticiones sobre el mismo cilindro sector ms cercano

Cach en el controlador

Si N unidades de disco:
Ordenar posicionamiento en N-1
Realizar transferencia actual

Factor de entrelazado (interleaving)
(Leer la seccin 5.4.4. La seccin 5.4.5 no entra para el examen.)

Potrebbero piacerti anche