sistemas operativos

63
1 Sistemas Operativos Administración de Periféricos

Upload: kawena

Post on 05-Jan-2016

27 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Sistemas Operativos

1

Sistemas Operativos

Administración de Periféricos

Page 2: Sistemas Operativos

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

Page 3: Sistemas Operativos

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

Page 4: Sistemas Operativos

4

Recordemos ...

Page 5: Sistemas Operativos

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

Page 6: Sistemas Operativos

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

Page 7: Sistemas Operativos

7

PSW Procesador de E/S

Page 8: Sistemas Operativos

8

Selector

Page 9: Sistemas Operativos

9

Multiplexor

Page 10: Sistemas Operativos

10

Instrucción Procesador de E/S

• Codop: Transferencia – Acciones

Para DISCO

– Posicionamiento (cilindro, cabeza)

– Búsqueda del bloque (sector)

– Reintento

– Transferencia (Dir, Long)

Page 11: Sistemas Operativos

11

Unidad de Control (controladora)

• Detecta errores de paridad

• Controla movimientos del periférico

• Buffers de sincronismo

• Serializa y deserializa la información

Page 12: Sistemas Operativos

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

Page 13: Sistemas Operativos

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

Page 14: Sistemas Operativos

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

Page 15: Sistemas Operativos

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.

Page 16: Sistemas Operativos

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

Page 17: Sistemas Operativos

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

Page 18: Sistemas Operativos

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

Page 19: Sistemas Operativos

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

Page 20: Sistemas Operativos

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

Page 21: Sistemas Operativos

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….

Page 22: Sistemas Operativos

22

Varios caminos, varios dispositivos ...

Page 23: Sistemas Operativos

23

Tipos de Periféricos

• Dedicados (cintas – impresoras)

• Compartidos (discos giratorios - sólidos)

• Virtuales (SPOOL – RAM Disk – Discos Virtuales)

Page 24: Sistemas Operativos

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

Page 25: Sistemas Operativos

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

Page 26: Sistemas Operativos

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

Page 27: Sistemas Operativos

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

Page 28: Sistemas Operativos

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.

Page 29: Sistemas Operativos

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

Page 30: Sistemas Operativos

30

Esquema Hard Disk

Page 31: Sistemas Operativos

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

Page 32: Sistemas Operativos

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)

Page 33: Sistemas Operativos

33

Algoritmos de Planificación (bloqueo/agrupación y buffering)

Page 34: Sistemas Operativos

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)

Page 35: Sistemas Operativos

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)

Page 36: Sistemas Operativos

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

Page 37: Sistemas Operativos

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

Page 38: Sistemas Operativos

38

Periféricos Virtuales (SPOOLING)

Page 39: Sistemas Operativos

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

Page 40: Sistemas Operativos

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

Page 41: Sistemas Operativos

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!!

Page 42: Sistemas Operativos

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

Page 43: Sistemas Operativos

43

Ejemplo Raid 5

• Puede tener disco “spare”

Page 44: Sistemas Operativos

44

Ejemplos Raid 3 a 5

• Raid levels 3 through 5• Backup and parity drives are shaded

Page 45: Sistemas Operativos

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

Page 46: Sistemas Operativos

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

Page 47: Sistemas Operativos

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.

Page 48: Sistemas Operativos

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

Page 49: Sistemas Operativos

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)

Page 50: Sistemas Operativos

50

Estructura Bus

Page 51: Sistemas Operativos

51

Mecanismos de I/O

• Testeo de puertos (polling)

• Interrupciones

Page 52: Sistemas Operativos

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

Page 53: Sistemas Operativos

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

Page 54: Sistemas Operativos

54

Ciclo I/O de Interupción

Page 55: Sistemas Operativos

55

DMA

Page 56: Sistemas Operativos

56

I/O kernel

Page 57: Sistemas Operativos

57

En UNIX

• < major, minor> number

• major: Identifica el device driver

• minor: identifica device (tabla asociada identificando puerto)

Page 58: Sistemas Operativos

58

Ciclo de I/O

Page 59: Sistemas Operativos

59

SSD (Solid State Disk) (nand memory)

(aproximado)(driver es TRIM)

Page 60: Sistemas Operativos

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/

Page 61: Sistemas Operativos

61

Páginas agrupadas en bloques

Page 62: Sistemas Operativos

62

Visiones (OS – Logical block addressing (LBA) – Física)

Page 63: Sistemas Operativos

63

Dudas SSD

• Cuánto dura ? (por nand) ?

• File System ? (quien le informa?) trim