Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porCayetano Negro Modificado hace 10 años
1
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 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-D INT PBUS ABUS PMEM PES LEC ESC A15-A0 8237 DMA D7-D0 EOP DREQ DACK MR MW IOR IOW CS HRQ HLDA 8272 FDC INT D7-D0 R W CS TC A0 MP 64K CS IOR IOW S.O => Simplicidad Eficiencia ? 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. Teclado Ratón 10 B/s 100 B/s Modem 56K Imp. Láser 7 KB/s 100 KB/s Scanner 400 KB/s USB 1,5 MB/s 40x CD-ROM 6 MB/s FastEthernet 12,5 MB/s SCSI Ultra 2 80 MB/s Bus PCI 528 MB/s Sun Gigaplane 20 GB/s FireWire 50 MB/s Entrada / Salida
5
Principios Hardware (Controladores)
Preámbulo Datos ECC Sector 1 . CPU MP Controlador Disco/s Impresora ? 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íncrona Interrupciones Bloqueo Almacenaje intermedio: Amortiguar velocidades, ... Compartido vs exclusivo: Ficheros en disco vs listados por impresora Entrada / Salida
7
Niveles Software read (df, ….) => Petición de la E/S
Respuesta de la E/S HARDWARE Gestores de Interrupciones Drivers de dispositivos Sw independiente del dispositivo Sw de E/S a nivel de usuario Formateo, TRAP Nombrado, protección, bloqueo, almacenamiento Manejar controlador (reg), comprobar estado, errores Salvar 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 signal Rutina tratamiento interrupción ? ? 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 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, ….) ¿Extraigo dispositivo? LeerBloque (12.300, &buffer) LeerBloque (5,&b) ¿Llega una petición? ? ? DDisco DTeclado DImpLaser cilindro pista, sector Atender petición DDisco ? ¿Motor encendido? ON ? ¿Mucho tiempo? ¿Posición actual? OFF 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 i-node tipo # principal # secundario df = open (“/dev/fd0”, …) ? Entrada / Salida Nombrado de dispositivos de E/S
11
Sw independiente: Almacenamiento (buffers)
Pi Usuario Kernel Pi Pi Pi Entrada / Salida
12
Sw independiente: Almacenamiento (buffers)
Entrada / Salida
13
Sw independiente (Gestión errores y dispositivos dedicados)
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)
Bloque N Datos: Sw independiente dispositivo Drivers Por encima del Sw independiente, cada dispositivo de bloques: leerBloque (dispositivo, indBloque, dirBuffer) escribirBloque Operaciones: 0..N ramDisk 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 Tanenbaum comenta detalles de electrónica y algo de formateo. No hay referencias a los drivers del sistema que los gestionan. La tecnología de cómo están construidos estos dispositivos no es de SO-1. Entrada / Salida
19
DISCOS (Formateo a bajo nivel: Sector de disco)
Preámbulo Datos ECC ¿ Capacidad efectiva ? Patrón de bits Cilindro, Sector Parametrizable Habitual 512B Error Correcting Code Habitual 16 bits ¿ 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 Amortigua posicionamiento ¿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)
¿Formateo a alto nivel? Master boot record Código de arranque Tabla particiones # 1er sector tamaño C D E F 1 1001 ----- 1000 8000 ¿Partición activa? Entrada / Salida
23
DISCOS (Planificación del brazo: FCFS)
¡ Colas de peticiones pendientes por cilindro ! Ejemplo: Posición actual: cilindro 11 Llegan peticiones: 1, 36, 16, 34, 9 ,12 1 9 11 12 16 34 36 X X X X 10 35 20 18 25 3 ¡ En total se atraviesan 111 cilindros ! ¡ 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 )
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) La sección Gestión de errores viene bastante bien explicada. En cualquier caso es puramente ilustrativa: cada SO trata los suyos (que son muchos más). La sección explica una estrategia para asegurar la integridad de datos en un disco en presencia de errores (según modelo que formula). Dado lo corto que vamos de tiempo, optaría por no pedirlo para el examen. (Leer la sección La sección no entra para el examen.) Entrada / Salida
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.