Sistemas Operativos Administración de Periféricos 1 Temario • Objetivos • Repaso de Unidades involucradas: Canales, UC, Dispositivos, instrucciones de E/S, tipos de canales • Asignación de dispositivos • Base de datos necesaria • Rutinas: Planificador de E/S, Controlador de tráfico de E/S, Manipulador de periféricos • Bloqueo y Algoritmos de acceso • Spooling • Tecnología RAID • Mecanismos de E/S • Puertos y protocolos de E/S • Ejemplo: UNIX 2 Objetivos • Llevar el estado de control de los dispositivos • Políticas de uso (dedicados, compartidos, virtuales) • Asignación y desasignación de dispositivos a procesos 3 Recordemos ... 4 Varios caminos, varios dispositivos ... 5 PSW Procesador de E/S 6 Instrucción Procesador de E/S • Codop: Transferencia – Acciones Para DISCO – Posicionamiento (cilindro, cabeza) – Búsqueda del bloque (sector) – Reintento – Transferencia (Dir, Long) 7 Selector 8 Multiplexor 9 Unidad de Control (controladora) • • • • Detecta errores de paridad Controla movimientos del periférico Buffers de sincronismo Serializa y deserializa la información 10 Tipos de Periféricos • Dedicados (cintas – impresoras) • Compartidos (discos) • Virtuales (SPOOL – RAM Disk – Discos Virtuales) 11 Asignación • Dedicados – al comienzo del trabajo – al comienzo de la etapa – al realizarse la instrucción Open • Asignación total o parcial • Compartidos: asignación dinámica • Virtuales: Asignación como archivos 12 Tablas de uso: Bloques de Dispositivos y PES • Bloque control de Dispositivo – Identificador del dispositivo – Estado del dispositivo – Lista de unidades de control a las que está conectado el dispositivo – Lista de procesos esperando este dispositivo • En el Bloque de Control del Procesador de E/S tendremos la siguiente información: – Identificador del canal o procesador de E/S – Estado del canal – Lista de unidades de control a las que está conectado el canal – Lista de procesos esperando el canal 13 Tablas de uso (Bloques de Unidades de Control) • En el Bloque de Control de la Unidad de Control tendremos la siguiente información: – Identificador de la unidad de control – Estado de la unidad de control – Lista de dispositivos conectados a esta unidad de control – Lista de canales conectados a esta unidad de control – Lista de procesos esperando a esta unidad de control 14 Rutinas • Planificador de E/S: Decide qué proceso toma el recurso. Determina el orden en que se asignarán a los procesos los dispositivos, unidades de control y procesadores de E/S, ya sea por algoritmos o por alguna prioridad • Controlador de Tráfico de E/S: Lleva el estado de los dispositivos, unidades de control y procesadores de E/S por medio de bloques de control. Determina la posibilidad de una operación de E/S y la posibilidad de caminos alternativos. Una vez que hay un orden, es el controlador de tráfico de E/S el que determina que puede ser satisfecho el pedido al colocarlo en un determinado Bloque de control estableciendo de esta forma la ruta. 15 Rutinas • Manipuladores de E/S (Drivers) : Arma el programa del procesador de E/S. Emite la instrucción de arranque de E/S. Procesa las interrupciones del dispositivo. Maneja errores del dispositivo. Realiza una planificación de acuerdo al periférico (estrategia de acceso). • Las rutas siempre se adquieren desde el periférico hacia el canal. • Pueden ser reemplazados por un IOP 16 Algoritmos de Planificación (bloqueo/agrupación y buffering) 17 Algoritmos de acceso a discos • FCFS (accesos 53 – 37 – 122 – 14 – 124) 18 Algoritmos de acceso a discos (alternativas) • El más corto primero • SCAN o barrido ascensor (se debe conocer comienzo y sentido) • C-SCAN o barrido circular (ordena los pedidos en un solo sentido, luego vuelve al comienzo) • Posición angular (sector queueing) 19 Periféricos Virtuales (SPOOLING) 20 Tiempos tomando sólo la actividad de spooling Estado del Proceso E B CPU proc. X CPU Spool B E E B B E E E X X X X X X X Graba Disco de spool T T X T Lee Graba T Lee X 1 2 3 4 5 6 7 8 9 10 11 T X Impresora Tiempo T 12 13 X 14 15 21 16 Beneficios del spooling • Simular más periféricos dedicados de los que existen en la instalación • Simular periféricos que no existen en la instalación • Menor tiempo en Listo-Ejecutando-Bloqueado • Funcionamiento del periférico a su máxima velocidad • Permite planificación de los trabajos de impresión 22 Comparación Si calculo el turnaround de un proceso solo en un ambiente de monoprogramación y luego lo calculo colocando ese proceso (también solo) en un ambiente de multiprogramación y luego también en un ambiente de multiprogramación con spool, concluimos que: Monoprogramación < Multiprogramación Por que se agrega el tiempo del Planificador de Procesos!! Y ahora Multiprogramación << Multiprogramación con spool Por que se agregan los tiempos de: - grabar y leer el disco de spool y - el tiempo de la rutina de Spool!! 23 Tecnología RAID • • • • • • • • • • • 0 Striping (sin redundancia) 1 Mirror 2 error recording code (Hamming) 3 bit-interleaved parity 4 Block-interleaved parity 5 Block interleaved and rotated parity 6 idem 5 dual redundancy 7 idem 5 pero con paridad en la cache 10 1 + 0 Idem 1, o sea mirror con striping 53 Igual 3 con striping 0 + 1 Igual 0 con mirror 24 Ejemplo Raid 5 • Puede tener disco “spare” 25 Ejemplos Raid 3 a 5 • Raid levels 3 through 5 • Backup and parity drives are shaded 26 RAID 0+1: Stripe & Mirror Host adapter RAID 0+1 controller 1 5 9 13 17 2 6 10 14 18 3 7 11 15 19 Mirror Member 1 4 8 12 16 20 1 5 9 13 17 2 6 10 14 18 3 7 11 15 19 4 8 12 16 20 Mirror Member 2 27 RAID 1+0: Mirror & Stripe Host adapter RAID 1+0 controller 1 5 9 13 17 Mirror Set 1 1 5 9 13 17 2 6 10 14 18 Mirror Set 2 2 6 10 14 18 3 7 11 15 19 Mirror Set 3 3 7 11 15 19 4 8 12 16 20 4 8 12 16 20 Mirror Set 4 28 RAID (3 a 6) Actualización • x4(i) = x3(i) xor x2(i) xor x1(i) xor x0(i) (1) • x1(i) x’1(i) • x’4(i) = x3(i) xor x2(i) xor x’1(i) xor x0(i) Como sabemos x1(i) xor x1(i) = 0, entonces sumamos en el 2do término recordando (1) • x’4(i) = x4(i) xor x1(i) xor x’1(i) Esto me ahorra tener que leer todos los discos para obtener un valor. 29 RAID (3 a 6) Reconstrucción • Suponemos pérdida de x1(i) • Al (1) anterior le sumamos x4(i)+ x1(i) en ambos miembros y eliminamos los miembros nulos Luego queda • x1(i) = x3(i) xor x2(i) xor x0(i) xor x4(i) Con lo que se puede reconstruir todo x1 30 Logical Volumen • Es posible tener (directorios (FS)) sobre distintos discos físicos • Existen discos físicos (PD) • Todo un PD o parte de él forma una partición física PP • Varias PP forman un disco Lógico LVG • Sobre un LVG se pueden armar discos lógicos (LD) o Particiones Lógicas (LP) 31 Estructura Bus 32 Mecanismos de I/O • Testeo de puertos (polling) • Interrupciones 33 Puerto de I/O • • • • • • Básicamente consiste en 4 registros status – control - data-in – data-out – status: estado de la operación control: se escribe el comando data-in: lee información el host data-out: escribe información el host 34 Puerto I/O (protocolo) • • • • • • 1 el host lee busy (status) hasta clear (pooling) 2 el host pone write (control) y escribe data-out 3 el host activa ready (control) 4 El controlador pone busy el status 5 El controlador lee ambos y hace I/O 6 El controlador deja estado de fin de I/O en status y clear 35 Ciclo I/O de Interupción 36 DMA 37 (DMA) Operación de transferencia de DMA 38 I/O kernel 39 En UNIX • < major, minor> number • major: Identifica el device driver • minor: identifica device (tabla asociada identificando puerto) 40 Ciclo de I/O 41