270 likes | 615 Views
S.O.I Temario Curso: 04/05. Horas INTRODUCCIÓN 5 PROCESOS Y THREADS 8 GESTIÓN DE MEMORIA 8 ENTRADA/SALIDA 4 GESTIÓN DE FICHEROS 4. Tema 4. Entrada / Salida. PRINCIPIOS HARDWARE Dispositivos y Controladores E/S mapeada DMA PRINCIPIOS SOFTWARE (Objetivos) NIVELES SOFTWARE
E N D
S.O.I Temario Curso: 04/05 • Horas • INTRODUCCIÓN 5 • PROCESOS Y THREADS 8 • GESTIÓN DE MEMORIA 8 • ENTRADA/SALIDA 4 • GESTIÓN DE FICHEROS 4
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
D7-D0 INT D7-D0 D7-D0 D7-D0 INT PBUS ABUS PMEM PES LEC ESC HRQ HLDA EOP DREQ DACK MR MW TC DREQ DACK MP 64K Z80 8237 DMA A15-A0 8272 FDC A15-A0 A0 LEC ESC A15-A0 IOR IOW CS R W CS CS IOR IOW MR MW Principios Hardware (Dispositivos + Controladores ) S.O => Simplicidad Eficiencia ?
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. 10 B/s Teclado Ratón 100 B/s Modem 56K 7 KB/s Imp. Láser 100 KB/s Scanner 400 KB/s USB 1,5 MB/s 40x CD-ROM 6 MB/s FastEthernet 12,5 MB/s FireWire 50 MB/s SCSI Ultra 2 80 MB/s Bus PCI 528 MB/s Sun Gigaplane 20 GB/s Principios Hardware (Dispositivos)
Sector Preámbulo Datos ECC CPU MP Controlador Disco/s Controlador Impresora Estándar • Bloque de bytes • Buffer amortiguador de velocidad • Comprobar errores • Dejar en la memoria Principios Hardware (Controladores) 0 1 0 0 0 1 1 1 0 1 . . . . ?
Bloqueo Interrupciones 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íncrona • Almacenaje intermedio: Amortiguar velocidades, ... • Compartido vs exclusivo: Ficheros en disco vs • listados por impresora
read (df, ….) => Petición de la E/S Respuesta de la E/S Sw de E/S a nivel de usuario Formateo, TRAP Sw independiente del dispositivo Nombrado, protección, bloqueo, almacenamiento Drivers de dispositivos Manejar controlador (reg), comprobar estado, errores Gestores de Interrupciones Salvar y recuperar estado, realizar tratamiento HARDWARE Realización física de la E/S Niveles Software
read (df, ….) Comandos* Sw de E/S a nivel de usuario Driver Sw independiente del dispositivo --------------- out reg,valor Drivers de dispositivos signal Rutina tratamiento interrupción Gestores de Interrupciones HARDWARE Niveles Software (Gestores de interrupciones) ? ? wait (sDisco) más acciones Tratar la interrupción Salvar registros Ejecutar rutina específica Contexto rutina int Planificar proceso Pila rutina int Recuperar estado proceso Ack al controlador int rte Registros salvados a descriptor
read (df, ….) Sw de E/S a nivel de usuario LeerBloque (12.300, &buffer) Sw independiente del dispositivo LeerBloque (5,&b) ? Drivers de dispositivos DDisco DTeclado cilindro pista, sector Gestores de Interrupciones HARDWARE DDisco • ¿Llega una petición? Atender petición ON OFF ¿Mucho tiempo? Niveles Software (Drivers de dispositivos) ¿Extraigo dispositivo? ? DImpLaser ? ¿Motor encendido? ? • ¿Posición actual?
read (df, ….) Sw de E/S a nivel de usuario Sw independiente del dispositivo ? Drivers de dispositivos Gestores de Interrupciones HARDWARE Sistema Operativo i-node tipo # principal # secundario Niveles Software (Sw independiente del dispositivo) • Interfaz uniforme para los drivers • Almacenamiento (buffers) • Gestión de errores • Pedir | Liberar dispositivos dedicados • Tamaño de bloque independiente • del dispositivo df = open (“/dev/fd0”, …) ? Nombrado de dispositivos de E/S
Pi Pi Pi Pi Usuario Kernel Sw independiente: Almacenamiento (buffers)
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
Por encima del Sw independiente, cada dispositivo de bloques: Datos: Bloque 0 Bloque 1 Bloque 2 Bloque N Operaciones: leerBloque (dispositivo, indBloque, dirBuffer) escribirBloque 0..N Sw independiente dispositivo Drivers ramDisk Sw independiente (Tamaño de bloque independiente)
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
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.
Geometría física de un disco con dos zonas • Geometría virtual para el disco DISCOS (Hardware de los discos magnéticos - III)
Preámbulo Datos ECC Patrón de bits Cilindro, Sector Parametrizable Habitual 512B Error Correcting Code Habitual 16 bits ¿ Capacidad efectiva ? Sectores extra alternativos DISCOS (Formateo a bajo nivel: Sector de disco) ¿ Sectores defectuosos de fábrica ? ¿ Cómo ubicar los sectores en la superficie del disco ?
Leer 5 sectores Amortigua posicionamiento ¿Viable? DISCOS (Formateo a bajo nivel: cylinder skew)
Interleaving = 0 Interleaving = 1 Interleaving = 2 DISCOS (Formateo a bajo nivel: Entrelazado de sectores) • Mientras se transfiere a memoria, el disco sigue girando y …. ¡ Controlador con un único buffer (sector) ! ¡ Habitual buffer en controlador para toda una pista !
Master boot record Tabla particiones # 1er sector tamaño C 1 1000 D 1001 8000 E ----- ----- F ----- ----- DISCOS (Establecer particiones) ¿Formateo a alto nivel? Código de arranque ¿Partición activa?
¡ Colas de peticiones pendientes por cilindro ! X X X 0 1 9 11 12 16 34 36 35 20 18 25 3 DISCOS (Planificación del brazo: FCFS) • Ejemplo: Posición actual: cilindro 11 • Llegan peticiones: 1, 36, 16, 34, 9 ,12 X X X 10 ¡ En total se atraviesan 111 cilindros ! ¡ En total se atraviesan 111 cilindros !
INJUSTICIA + INANICIÓN DISCOS (Planificación del brazo: SSF “Shortest Seek First”) ¡ En total se atraviesan 61 cilindros !
DISCOS (Planificación del brazo: Ascensor ) • Idea de sentido: (Sube – Baja) *
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-1 • Realizar transferencia actual • Factor de entrelazado (interleaving) • (Leer la sección 5.4.4. La sección 5.4.5 no entra para el examen.)