630 likes | 841 Views
Sistemas Operativos. Administración de Periféricos. Temario. Objetivos Repaso de Unidades involucradas: Canales, UC, Dispositivos, instrucciones de E/S, tipos de canales Asignación de dispositivos Base de datos necesaria
E N D
Sistemas Operativos Administración de Periféricos
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
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
procesador Controladores y adaptadores • Controlador: • Interfaz electrónica del dispositivo • Gobierna el funcionamiento del dispositivo • Recibe órdenes del procesador • En sistemas más simples: específico para ordenador y dispositivo controlador electromecánica BUS
Concepto de canal • Canal de E/S: subsistema hardware especializado en gestión de lectura/escritura • Adaptadores se conectan a canal • Basados en procesador especializado • Son capaces de procesar listas de órdenes de “alto nivel” • Simplifican en gran medida SO pues: • abstraen gran parte de la gestión de los dispositivos • homogeinizan los dispositivos conectados adaptador … canal de L/E … BUS controlador …
Instrucción Procesador de E/S • Codop: Transferencia – Acciones Para DISCO • Posicionamiento (cilindro, cabeza) • Búsqueda del bloque (sector) • Reintento • Transferencia (Dir, Long)
Unidad de Control (controladora) • Detecta errores de paridad • Controla movimientos del periférico • Buffers de sincronismo • Serializa y deserializa la información
Controladores múltiples • Gobiernan varios dispositivos del mismo tipo • Formas de conexión: • Conexión directa (multiplexor) • Conexión en cadena • Conexión en bus • Conexión directa (multiplexor) • Circuitos independientes por dispositivo Dispositivo 1 controlador Dispositivo 2 … Dispositivo n
Controladores múltiples • Ventajas: • Posibilidad de simultanear transferencias • Fallo en un dispositivo no afecta a los demás • Inconvenientes: • Complejidad del hardware (coste) • Nº de dispositivos limitado por controlador
Controladores múltiples • Conexión en bus Todos los dispositivos comparten conexión a controlador Hardware se simplifica mucho (más barato) Fallo de un dispositivo no necesariamente afecta a otros No se puede garantizar que fallo en un dispositivo no pueda afectar a otros (ejemplo: cortocircuito en bus Transferencia simultánea : imposible. Dispositivo 1 controlador … Dispositivo n-1 Dispositivo n
Estructura lógica de un controlador • Arquitectura en tres niveles: • interfaz al bus (hardware) • registros (software) • interfaz al dispositivo (hardware) • Registros de órdenesde configuración (selección de modo) • Registros de comandos • Registros de estado • Registros de lectura/escritura controlador interfaz a disp. registros interfaz al bus BUS
Estructura lógica de un controlador • Acceso a registros: • Mapeados en memoria: • Acceso mediante cualquier instrucción con operandos en memoria • Protección: mediante mecanismos de protección de memoria • Mapeados en espacio de lectura/escritura • Algunos procesadores (ej. Intel) disponen de espacio de direcciones separado para lectura/escritura • Acceso mediante instrucciones especiales: IN, OUT, etc
procesador Acceso directo a memoria (DMA) • DMA: dispositivo capaz de transferir bloques de datos entre memoria y dispositivo • Es programado por procesador con: • dirección del registro del dispositivo • dirección inicial del bloque • nº de bytes/palabras a transferir • cuando termina transferencia: interrupción DMA Dispositivo Memoria BUS
Acceso directo a memoria (DMA) • Puede estar integrado en: • Chipset del sistema: de propósito general, asignable a cualquier dispositivo • En el controlador de un dispositivo: de uso dedicado a dicho dispositivo • Controladores de DMA de propósito general: frecuentemente son multicanal (múltiples transferencias en curso) • Algunos controladores de DMA soportan transferencias de memoria a memoria
Tratamiento por Interrupciones • Dispositivos suelen disponer de alguna señal de interrupción • Esta señal de interrupción se puede conectar a entrada de interrupción de CPU • Dispositivos se puede configurar para que generen interrupción cuando requieran atención • Tratamiento del dispositivo: en subrutina de servicio de interrupción • Se ejecuta en modo supervisor de modo transparente para el resto de actividades de la CPU
Diseño Modular de E/S Software de L/E en espacio de usuario Software de L/E independientede dispositivo Gestor de dispositivo SSI Software Hardware Controlador de Dispositivo Dispositivo
Diseño Modular de E/S Proceso de usuario abcedefghi…. ch= fgetc(f); Administrador de Archivos Administradorde Memoria Administradorde Red READ fd, pos, tam Tarea Floppy Tarea HD Tarea del Sistema … DISK_READ fd0, bloque FLOPPY Núcleo SSI Floppy Controlador
Tipos de Periféricos • Dedicados (cintas – impresoras) • Compartidos (discos giratorios - sólidos) • Virtuales (SPOOL – RAM Disk – Discos Virtuales)
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
Tablas de uso: Bloques de Dispositivos • 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
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
Tablas de uso (Bloques de Procesadores de E/S) • 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
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.
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). • Calcula direcciones en términos del Cilindro-Pista-Sector • Las rutas siempre se adquieren desde el periférico hacia el canal. • Pueden ser reemplazados por un IOP
Cálculo Cilindro-Pista-Sector • NB = nro. de bloque buscado (lo provee el FS) • Nps = nro. de sectores por pista • Cp = nro. de pistas por cilindro • [NB/Nps] = nro de pista (Np) – f(resto) (NB/Nps)= Sector • [Np/Cp] = Cil – f(resto) (Np/Cp) = Pista del cilindro • FS proveebloque 2005 (disco con 20 sectores x pista ) (4 platos 8 caras) • [2005/20] = 100 (pista) f(resto) (2005/20) = 5 (sector) • [100/8] = 12 (cilindro) f(resto) (100/8) = 4 (pista) o sea cilindro 12, pista 4, sector 5
Cálculo LBA • CHS (cylinder/head/sector) tuples can be mapped to LBA address with the following formula: • LBA = ((C x HPC) + H) x SPT + S (-1) • Where: • C, H and S are the cylinder number, the head number, and the sector number • LBA is the logical block address • HPC is the maximum number of heads per cylinder • SPT is the maximum number of sectors per track • LBA addresses can be mapped to CHS tuples with the following formula • C = [LBA / (SPT x HPC)] • H = [LBA / SPT] mod HPC • S = (LBA mod SPT) (+1)
Algoritmos de Planificación (bloqueo/agrupación y buffering)
Algoritmos de acceso a discos • FCFS (accesos 53 – 37 – 122 – 14 – 124) = (16 + 85 + 108 +110 = 319) de otra manera (23 + 16 + 69 + 2 = 110)
Algoritmos de acceso a discos (alternativas) • El más cercano primero NSCAN • 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)
0 5 10 15 20 25 30 35 FCFS • Criterio FCFS • Número total de cilindros saltados: 10 + 35 + 20 + 18 + 25 + 3 = 111 • Las peticiones se atienden en el mismo orden en que se reciben • Ejemplo: • Cabezal inicialmente en cilindro 11 • Búsquedas: 1, 36, 16, 34, 9, 12 10 35 20 18 25 3
0 5 10 15 20 25 30 35 C-SCAN • Se establece sentido de movimiento de las cabezas: • Se atienden todas las peticiones en el orden en que se van encontrando, hasta llegar a la última • Se salta a petición mas lejana en extremo opuesto de disco • Se repite proceso • Ejemplo: • Cabezal inicialmente en cilindro 11, sentido ascendente • Búsquedas: 1, 36, 16, 34, 9, 12 4 1 18 2 35 Número total de cilindros saltados: 1 + 4 + 18 + 2 + 35 + 8 = 68
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
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!!
Tecnología RAID: Redundant Array of Independent Disks • 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
Ejemplo Raid 5 • Puede tener disco “spare”
Ejemplos Raid 3 a 5 • Raid levels 3 through 5 • Backup and parity drives are shaded
Mirror Member 1 Mirror Member 2 RAID 0+1: Stripe & Mirror
Mirror Set 1 Mirror Set 2 Mirror Set 3 Mirror Set 4 RAID 1+0: Mirror & Stripe
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.
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
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)