1
Sistemas Operativos
Administración de Periféricos
2
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
3
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
4
Recordemos ...
5
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
procesador
BU
S
controlador electromecánica
6
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
canal de L/E
adaptador
controlador
…
…
…
BU
S
7
PSW Procesador de E/S
8
Selector
9
Multiplexor
10
Instrucción Procesador de E/S
• Codop: Transferencia – Acciones
Para DISCO
– Posicionamiento (cilindro, cabeza)
– Búsqueda del bloque (sector)
– Reintento
– Transferencia (Dir, Long)
11
Unidad de Control (controladora)
• Detecta errores de paridad
• Controla movimientos del periférico
• Buffers de sincronismo
• Serializa y deserializa la información
12
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
controlador
Dispositivo 1
Dispositivo 2
Dispositivo n
…
13
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
14
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.
controlador
Dispositivo 1
Dispositivo n
…Dispositivo n-1
15
Estructura lógica de un controlador
• Arquitectura en tres niveles:• interfaz al bus (hardware)
• registros (software)
• interfaz al dispositivo (hardware)
– Registros de órdenes de configuración (selección de modo)
– Registros de comandos
– Registros de estado
– Registros de lectura/escrituracontrolador
BUS
interfaz al bus
registros
interfaz a disp.
16
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
17
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
BUS
procesador DMA Dispositivo Memoria
18
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
19
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
20
Diseño Modular de E/S
Dispositivo
Controlador de Dispositivo
Gestor de dispositivo
Software de L/E independientede dispositivo
Software de L/E en espacio de usuario
SSISoftwareHardware
21
Diseño Modular de E/S
Tarea Floppy
Núcleo
Tarea HD
…Tarea del Sistema
Administrador de Archivos Administradorde Memoria
Administradorde Red
Proceso de usuario
SSI Floppy
ch= fgetc(f);
READ fd, pos, tam
DISK_READ fd0, bloque
Controlador
FLOPPY
abcedefghi….
22
Varios caminos, varios dispositivos ...
23
Tipos de Periféricos
• Dedicados (cintas – impresoras)
• Compartidos (discos giratorios - sólidos)
• Virtuales (SPOOL – RAM Disk – Discos Virtuales)
24
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
25
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
26
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
27
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
28
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.
29
• 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
Rutinas
30
Esquema Hard Disk
31
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 provee bloque 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
32
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)
33
Algoritmos de Planificación (bloqueo/agrupación y buffering)
34
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)
35
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)
36
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, 120 5 10 15 20 25 30 35
10 3520
1825
3
37
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
1 418 2
35
0 5 10 15 20 25 30 35
Número total de cilindros saltados: 1 + 4 + 18 + 2 + 35 + 8 = 68
38
Periféricos Virtuales (SPOOLING)
39
Tiempos tomando sólo la actividad de spooling
Estado del Proceso
E B B E E B B E E E T T T T T T
CPU proc. X X X X X X
CPU Spool X X X X
Disco de spool
Graba Graba Lee Lee
Impresora X X
Tiempo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
40
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
41
ComparaciónSi 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 ahoraMultiprogramación << Multiprogramación con spoolPor que se agregan los tiempos de:
- grabar y leer el disco de spool y - el tiempo de la rutina de Spool!!
42
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
43
Ejemplo Raid 5
• Puede tener disco “spare”
44
Ejemplos Raid 3 a 5
• Raid levels 3 through 5• Backup and parity drives are shaded
45
RAID 0+1: Stripe & Mirror
Hostadapter
RAID 0+1controller
1 2 3 45 6 7 89 10 11 1213 14 15 1617 18 19 20
1 2 3 45 6 7 89 10 11 1213 14 15 1617 18 19 20
Mirror Member 1 Mirror Member 2
46
RAID 1+0: Mirror & Stripe
Hostadapter
RAID 1+0controller
Hostadapter
RAID 1+0controller
Hostadapter
RAID 1+0controller
1 25 69 1013 1417 18
1 2 3 45 6 7 89 10 11 1213 14 15 1617 18 19 20
37111519
48121620
Mirror Set 1 Mirror Set 2 Mirror Set 3 Mirror Set 4
47
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.
48
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
49
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)
50
Estructura Bus
51
Mecanismos de I/O
• Testeo de puertos (polling)
• Interrupciones
52
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
53
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
54
Ciclo I/O de Interupción
55
DMA
56
I/O kernel
57
En UNIX
• < major, minor> number
• major: Identifica el device driver
• minor: identifica device (tabla asociada identificando puerto)
58
Ciclo de I/O
59
SSD (Solid State Disk) (nand memory)
(aproximado)(driver es TRIM)
60
trim (aproximado)
• Nand no sobreesribre (primero borra)• La información se escribre en páginas agrupadas
en bloques (se borra bloque completo)• La información borrada queda como Garbage
collection • trim se ocupa de borrarla
– background (cuando no se hace nada)– foreground (cuando se necesita)
• http://thessdreview.com/daily-news/latest-buzz/garbage-collection-and-trim-in-ssds-explained-an-ssd-primer/
61
Páginas agrupadas en bloques
62
Visiones (OS – Logical block addressing (LBA) – Física)
63
Dudas SSD
• Cuánto dura ? (por nand) ?
• File System ? (quien le informa?) trim