Entrada / Salida1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS8 3GESTIÓN DE MEMORIA8 4ENTRADA/SALIDA4...
-
Upload
cayetano-negro -
Category
Documents
-
view
2 -
download
0
Transcript of Entrada / Salida1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS8 3GESTIÓN DE MEMORIA8 4ENTRADA/SALIDA4...
Entrada / Salida 1
Horas
1 INTRODUCCIÓN
5
2 PROCESOS Y THREADS
8
3 GESTIÓN DE MEMORIA
8
4 ENTRADA/SALIDA
4
5 GESTIÓN DE FICHEROS
4
S.O.I TemarioCurso: 04/05
Entrada / Salida 2
Tema 4. Entrada / Salida
• PRINCIPIOS HARDWARE• Dispositivos y Controladores• E/S mapeada• DMA
• PRINCIPIOS SOFTWARE (Objetivos)
• NIVELES SOFTWARE• Manejadores de interrupción• Drivers de dispositivos• Independencia del dispositivo• Sw de E/S en el espacio de usuario
• DISCOS• Hardware (discos magnéticos)• Formateo• Planificación del brazo
Entrada / Salida 3
Principios Hardware (Dispositivos + Controladores )
Z80
D7-D0 INT
PBUS
ABUS
PMEM
PES
LEC
ESCA15-A0
8237DMA
D7-D0
EOP
DREQ
DACK
MR
MW
IOR IOW CS
HRQ
HLDA
A15-A0
8272FDC
INT D7-D0
R W CS
TC
DREQ
DACK
A0
MP64K
D7-D0
CS
LECESC
A15-A0
IORIOWMRMW ?
S.O => SimplicidadEficiencia
Entrada / Salida 4
Principios Hardware (Dispositivos)
• Orientados a bloques: Bloques [512B..32KB] y acceso aleatorio
• Orientados a caracteres: Flujo de bytes y acceso secuencial
• Tasas de transferencia muy variable: 10B/seg..20GB/seg
Dispositivo Tasa Trans.TecladoRatón
10 B/s100 B/s
Modem 56KImp. Láser
7 KB/s100 KB/s
Scanner 400 KB/sUSB 1,5 MB/s40x CD-ROM 6 MB/sFastEthernet 12,5 MB/s
SCSI Ultra 2 80 MB/sBus PCI 528 MB/sSun Gigaplane 20 GB/s
FireWire 50 MB/s
Entrada / Salida 5
Principios Hardware (Controladores)
Preámbulo Datos ECC
Sector
CPU MPControlador
Disco/sControladorImpresora
?
0100011101....
• Bloque de bytes• Buffer amortiguador de velocidad• Comprobar errores• Dejar en la memoria
Estándar
Entrada / Salida 6
Principios Sotware (Objetivos)
• Independencia del dispositivo: sort < entrada > salida
• Uniformidad de nombres: /dev/lp/dev/usr/alumnos/zz9999/dev/usr/profesores/pcarazo
¿mount?
• Gestión de errores: Cuanto más local mejor
• Tipo de transferencia: Síncrona vs asíncronaInterrupcionesBloqueo
• Almacenaje intermedio: Amortiguar velocidades, ...
• Compartido vs exclusivo: Ficheros en disco vslistados por impresora
Entrada / Salida 7
Niveles Software
HARDWARE
Gestores de Interrupciones
Drivers de dispositivos
Sw independiente del dispositivo
Sw de E/S a nivel de usuario
read (df, ….) => Petición de la E/S Respuesta de la E/S
Formateo, TRAP
Nombrado, protección, bloqueo, almacenamiento
Manejar controlador (reg), comprobar estado, erroresSalvar y recuperar estado, realizar tratamiento
Realización física de la E/S
Entrada / Salida 8
Niveles Software (Gestores de interrupciones)
HARDWARE
Gestores de Interrupciones
Drivers de dispositivos
Sw independiente del dispositivo
Sw de E/S a nivel de usuario
read (df, ….)
Driver
Comandos*
---------------out reg,valor
?Tratar la
interrupción
?wait (sDisco)más acciones
Rutina tratamiento interrupción
Salvar registros Ejecutar rutina específicaContexto rutina int Planificar procesoPila rutina int Recuperar estado procesoAck al controlador int rteRegistros salvados a descriptor
signal
Entrada / Salida 9
Niveles Software (Drivers de dispositivos)
HARDWARE
Gestores de Interrupciones
Drivers de dispositivos
Sw independiente del dispositivo
Sw de E/S a nivel de usuario
read (df, ….)
?DDisco DTeclado DImpLaser
?
LeerBloque (12.300, &buffer)
cilindropista, sector
¿Motor encendido? ON
¿Mucho tiempo? OFF
LeerBloque (5,&b)
• ¿Llega una petición?
Atender
petición
DDisco
?• ¿Posición actual? ?
¿Extraigo dispositivo?
Entrada / Salida 10
Niveles Software (Sw independiente del dispositivo)
HARDWARE
Gestores de Interrupciones
Drivers de dispositivos
Sw independiente del dispositivo
Sw de E/S a nivel de usuario
read (df, ….)
• Interfaz uniforme para los drivers
• Almacenamiento (buffers)
• Gestión de errores
• Pedir | Liberar dispositivos dedicados
• Tamaño de bloque independiente del dispositivo
Sistema Operativo
?
df = open (“/dev/fd0”, …)
?
Nombrado de dispositivos de E/S
i-nodetipo
# principal
# secundario
Entrada / Salida 11
Sw independiente: Almacenamiento (buffers)
PiUsuario
Kernel
Pi Pi Pi
Entrada / Salida 12
Sw independiente: Almacenamiento (buffers)
Entrada / Salida 13
Sw independiente (Gestión errores y dispositivos dedicados)
• Errores:
Parámetros => Operación inocua e informar del error
Físicos => Resolución local o pasar la pelota o crash
• Dispositivos dedicados:
Open => Como entrar en región crítica
Close => Como salir de región crítica
Entrada / Salida 14
Sw independiente (Tamaño de bloque independiente)
0..N
ramDisk
leerBloque (dispositivo, indBloque, dirBuffer)
escribirBloque
Operaciones:
Bloque 0 Bloque 1 Bloque 2 Bloque NDatos:
Sw independiente
dispositivo
Drivers
Por encima del Sw independiente, cada dispositivo de bloques:
Entrada / Salida 15
Niveles Software (Sw E/S en el espacio de usuario)
Llamadas al sistema rutinas de biblioteca count = write (fd, buffer, nbytes)
Rutinas tipo printf (formateo y pasar parámetros)
Sistema de spooling impresora: demonio y directorio de spooling red: demonio y directorio de spooling
Entrada / Salida 16
DISCOS (Hardware de los discos magnéticos - I)
Entrada / Salida 17
DISCOS (Hardware de los discos magnéticos - II)
•Posibilidad de posicionamiento simultáneo en varias unidades (búsquedas solapadas).
•Posibilidad de posicionamiento y r/w simultáneos en dos unidades.•NO transferencias simultáneas.
Entrada / Salida 18
DISCOS (Hardware de los discos magnéticos - III)
Geometría física de un disco con dos zonas Geometría virtual para el disco
Entrada / Salida 19
DISCOS (Formateo a bajo nivel: Sector de disco)
Preámbulo Datos ECC
Patrón de bits
Cilindro, Sector
Parametrizable
Habitual 512B
Error Correcting Code
Habitual 16 bits
¿ Capacidad efectiva ?
¿ Sectores defectuosos de fábrica ? Sectores extra alternativos
¿ Cómo ubicar los sectores en la superficie del disco ?
Entrada / Salida 20
DISCOS (Formateo a bajo nivel: cylinder skew)
Leer 5 sectores
Amortiguaposicionamiento
¿Viable?
Entrada / Salida 21
DISCOS (Formateo a bajo nivel: Entrelazado de sectores)
• Mientras se transfiere a memoria, el disco sigue girando y ….
¡ Controlador con un único buffer (sector) !
Interleaving = 0 Interleaving = 1 Interleaving = 2
¡ Habitual buffer en controlador para toda una pista !
Entrada / Salida 22
DISCOS (Establecer particiones)
Master boot record
Código de arranque
Tabla particiones# 1er sector tamañoCDEF
11001----------
10008000----------
¿Partición activa?
¿Formateo
a alto nivel?
Entrada / Salida 23
DISCOS (Planificación del brazo: FCFS)
• Ejemplo: Posición actual: cilindro 11 Llegan peticiones: 1, 36, 16, 34, 9 ,12
0 1 9 11 12 16 34 36X X
10
35
X XX X
20
18
25
3
¡ En total se atraviesan 111 cilindros !
¡ Colas de peticiones pendientes por
cilindro !
¡ En total se atraviesan 111 cilindros !
Entrada / Salida 24
DISCOS (Planificación del brazo: SSF “Shortest Seek First”)
¡ En total se atraviesan 61 cilindros !
INJUSTICIA + INANICIÓN
Entrada / Salida 25
DISCOS (Planificación del brazo: Ascensor )
• Idea de sentido: (Sube – Baja) *
Entrada / Salida 26
DISCOS (Planificación del brazo: Ascensor mejorado CSCAN )
Entrada / Salida 27
DISCOS (Planificación del brazo: Otras optimizaciones )
OTRAS OPTIMIZACIONES:
• Peticiones sobre el mismo cilindro sector más cercano
• Caché en el controlador
• Si N unidades de disco:Ordenar posicionamiento en N-1Realizar transferencia actual
• Factor de entrelazado (interleaving)
(Leer la sección 5.4.4. La sección 5.4.5 no entra para el examen.)