S
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Índice
■ Introducción
■ Estructura y componentes del sistema de entrada/salida ■ Dispositivos de almacenamiento secundario
■ Dispositivos de almacenamiento terciario ■ El reloj
■ El sistema de E/S en Linux
S
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Índice
■ Dispositivos de almacenamiento secundario
✓ Discos
•
Estructura física de los discos•
Formateo de discos– Formateo físico
– Creación de particiones – Formateo lógico
•
Planificación del acceso a disco•
Fiabilidad y tolerancia a fallosS
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Bibliografía
■ J. Carretero et al. Sistemas Operativos: Una Visión Aplicada. McGraw-Hill.
2001. Capítulo 7.
■ W. Stallings. Sistemas Operativos. Prenctice-Hall. 2001. Capítulo 11. ■ A. Silbertschatz, P. Galvin, G. Gagne. Sistemas operativos.
S
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Índice
■ Introducción
■ Estructura y componentes del sistema de entrada/salida ■ Dispositivos de almacenamiento secundario
■ Dispositivos de almacenamiento terciario ■ El reloj
■ El sistema de E/S en Linux
■ El sistema de E/S en Windows NT/2K ■ Servicios de E/S en POSIX
S
S
O
O
II
II
II
II
Introducción
■ El SO necesita:◆ Dispositivos de almacenamiento de datos
● Almacenamiento secundario (discos) ● Almacenamiento terciario (cintas)
◆ Dispositivos de interacción con el usuario
● Periféricos de interfaz de usuario (ratones, pantallas, impresoras,
escáner, lápices ópticos, etc.)
◆ Dispositivos de comunicaciones
S
S
O
O
II
II
II
II
Estructura de una computadora
Dispositivos de salida (impresora, monitor, ...) Dispositivos de entrada (teclado, ratón, lápiz óptico, ...) Dispositivos de entrada/salida (discos, cintas, modem, ...) Unidad principal (CPU, registros, memoria RAM, entrada/salida -discos internos, red, ...-)
S
S
O
O
II
II
II
II
Estructura de una computadora
■ Dispositivos por bloques y por caracteres:◆ Dispositivos por bloques
● Manejan la información en unidades de tamaño fijo (bloques) ● Ejemplos: discos y cintas
◆ Dispositivos por caracteres
● Gestionan flujos de caracteres de forma lineal sin estructura tipo
bloque ni tamaño fijo
● Ejemplos: pantallas, teclados, impresoras, modems, tarjetas de red,
S
S
O
O
II
II
II
II
Conexión de dispositivos de E/S
Bus del sistema
Bus de expansión Controlador gráfico
…
CPU
Memoria
Controlador de disco estado control datosS
S
O
O
II
II
II
II
Conexión de dispositivos de E/S
■ Controladores de dispositivos:◆ Un controlador puede controlar uno o más dispositivos ◆ Funciones:
● Transferir información entre MC y periféricos
● Sincronizar la velocidad del procesador con la del periférico ● Detectar posibles errores que se produzcan en el acceso al
S
S
O
O
II
II
II
II
Funciones del sistema de E/S
■ ¿Qué es el sistema de entrada/salida (E/S)?◆ Parte del SO que ofrece:
● Visión lógica simplificada de los dispositivos de E/S
● Mecanismos de abstracción de los detalles físicos de éstos
■ Objetivos del sistema de E/S:
◆ Facilitar el manejo de los dispositivos de E/S ◆ Optimizar la E/S del sistema
◆ Proporcionar dispositivos virtuales para conexión de dispositivos sin
tener que remodelar el SO
S
S
O
O
II
II
II
II
Funciones del sistema de E/S
■ Mecanismos de incremento de prestaciones:◆ Caché de disco:
● Memoria intermedia situada en MC para bloques de disco
● Memoria de tamaño variable dependiendo del espacio libre para
procesos de usuario
● Contiene copia de algunos bloques del disco
● Lecturas anticipadas de datos: Principio de localidad de referencias ● Estrategia de reemplazo de bloques: Generalmente LRU
S
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Índice
■ Introducción
■ Estructura y componentes del sistema de entrada/salida ■ Dispositivos de almacenamiento secundario
■ Dispositivos de almacenamiento terciario ■ El reloj
■ El sistema de E/S en Linux
■ El sistema de E/S en Windows NT/2K ■ Servicios de E/S en POSIX
S
S
O
O
II
II
II
II
Estructura del sistema de E/S
Interfaz del Sistema Operativo
Gestor de Bloques
Gestor de Caché Sistemas de Archivos
NFTS HPFS FAT CD-ROM ...
Gestión de Redes (IPX/SPX, TCP/IP, ... ) Gestión de Redes
S
S
O
O
II
II
II
II
Estructura del sistema de E/S
■ Componentes:◆ Interfaz del SO:
● Proporciona servicios de E/S a las aplicaciones y una interfaz
homogénea para comunicarse con manejadores de dispositivos
◆ Sistemas de ficheros (SF):
● Proporciona una interfaz homogénea para acceder a los diferentes
SF del SO (SV, NTFS, FAT, ...) → SF virtuales
● Traduce las operaciones del formato del usuario al de bloques
◆ Gestor de redes:
● Proporciona una interfaz homogénea para acceder a los diferentes
S
S
O
O
II
II
II
II
Estructura del sistema de E/S
■ Componentes (cont.):◆ Gestor de bloques:
● Atiende peticiones a nivel de bloque
● Interacciona con la caché de bloques para optimizar la E/S
◆ Gestor de caché:
● Optimiza la E/S para dispositivos de tipo bloque mediante caché
◆ Manejadores de dispositivos:
● Traduce las operaciones sobre dispositivos a operaciones de control
S
S
O
O
II
II
II
II
Estructura del software de E/S
Aplicación Subsistema o DLL Gestor de archivos Gestor de bloques Gestor de caché Servicios Dispositivo (disco) Copia en el sistema operativo Copia en memoria del usuario Modo usuario Modo supervisor Proceso de usuario SW de E/S independiente de dispositivo SW de E/S independiente de dispositivo SW de E/S dependiente de dispositivo Hardware Software Bloque del dispositivo Copia en el controlador Controlador Manejador de interrupción Manejador de dispositivo
S
S
O
O
II
II
II
II
Estructura del software de E/S
■ Manejadores de interrupción y de dispositivos:◆ Manejador de interrupción:
● Tratan las interrupciones de los controladores de dispositivos →
Ejecución del manejador de interrupción
● Comunican el evento al manejador de dispositivo
◆ Manejador de dispositivo:
● Acepta peticiones del SW de E/S independiente del dispositivo ● Traduce las peticiones a formato del controlador
● Planifica el acceso de peticiones al dispositivo
S
S
O
O
II
II
II
II
Estructura del software de E/S
■ Operaciones de un manejador de dispositivo:Operaciones sobre datos Contestación a la petición Traducir a controlador Preparar respuesta de error Extraer petición E/S de la lista Peticiones de E/S del dispositivo
Bloqueo Error Esperar interrupción Programación del controlador Sí Sí No No Interrupción Leer registros estado del controlador formato del Enviar controlador mandatos al
S
S
O
O
II
II
II
II
Estructura del software de E/S
■ SW independiente del dispositivo:◆ Función:
● Ejecutar las funciones de E/S comunes a todos los dispositivos a
través de una interfaz común
◆ Proporciona:
● Acceso a nivel de bloques o caracteres Tamaños de acceso genéricos
● Almacenamiento intermedio en memoria del SO
S
S
O
O
II
II
II
II
Estructura del software de E/S
■ SW independiente del dispositivo (cont.):◆ Proporciona (cont.):
● Gestión de dispositivos
Nombrado: Traducción de nombres de usuario a identificativos del sistema
Protección
Control de acceso
● Planificación de la E/S ● Gestión de errores
S
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Índice
■ Introducción
■ Estructura y componentes del sistema de entrada/salida ■ Dispositivos de almacenamiento secundario
✓ Discos
•
Estructura física de los discos•
Formateo de discos– Formateo físico
– Creación de particiones – Formateo lógico
•
Planificación del acceso a discoS
S
O
O
II
II
II
II
Discos
■ Utilización:◆ Almacenamiento masivo y no volátil de datos
◆ Plataforma para el sistema de intercambio del gestor de memoria virtual ■ Taxonomía según la interfaz de su controlador:
◆ Dispositivos SCSI (Small Computer System Interface) ◆ Dispositivos IDE (Integrated Drive Electronics)
■ Taxonomía según la tecnología de fabricación:
◆ Discos duros (Winchester) Almacenamiento secundario ◆ Discos ópticos (CD-ROM, DVD)
◆ Discos extraíbles (disquetes, ZIP, JAZZ)
Estructura física y lógica muy similar para todos
S
S
O
O
II
II
II
II
Estructura física de los discos
■ Formato y organización de los datos:◆ Caras
Pistas Sectores Cilindros
◆ Estructura de un sector:
● Cabecera (Contiene el número de sector) ● Área de datos (256, 512 ó 1024 bytes)
S
S
O
O
II
II
II
II
Estructura física de los discos
■ Características físicas de los sistemas de disco:◆ Caras: ● Simple cara ● Doble cara ◆ Platos: ● Un solo plato ● Múltiples platos
◆ Portabilidad del disco:
● Disco no extraíble ● Disco extraíble
◆ Cabezal:
● Fijo: Uno por pista
● Móvil: Uno por superficie
◆ Mecanismo del cabezal:
● Contacto (disquetes) ● Hueco fijo
S
S
O
O
II
II
II
II
Estructura física de los discos
■ Capacidad del disco:◆ N° caras x N° pistas x N° sectores x Tamaño sector ■ Tiempo de acceso a disco:
(Tiempo de espera Para acceso al dispositivo)
Tiempo de posicionamiento Cabezal bajo la pista de los datos Tiempo de latencia Cabezal bajo el sector de los datos
Tiempo de transferencia Entre dispositivo y MC
◆ Tiempos medios en discos magnéticos actuales:
● Tiempo de posicionamiento: 5-10 msg.
Σ
S
S
O
O
II
II
II
II
Estructura física de los discos
■ Apreciaciones a tener en cuenta:◆ Densidad de cada pista: En los discos modernos el número de sectores
varía de unas pistas a otras
◆ Intercalado de sectores: La numeración de los sectores no es
consecutiva
◆ Almacenamiento intermedio en el controlador: Almacenamiento de la
pista entera en memoria del controlador
◆ Controladores inteligentes: Si controlan varios dispositivos, permiten
S
S
O
O
II
II
II
II
Ejemplo de disco duro
Capacidad: Velocidad: Tpo. posicionamiento: Tpo. latencia: Cilindros: Cabezas: Sectores: 1 7200 RPM 8,5 msg. 4,16 msg. 0.2 GB 1023 256 83
SEAGATE Barracuda ATA II ST330630A Parámetro Valor
S
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Índice
■ Introducción
■ Estructura y componentes del sistema de entrada/salida ■ Dispositivos de almacenamiento secundario
✓ Discos
•
Estructura física de los discos•
Formateo de discos– Formateo físico
– Creación de particiones – Formateo lógico
•
Planificación del acceso a disco•
Fiabilidad y tolerancia a fallos– Sistemas RAID
■ Dispositivos de almacenamiento terciario ■ ...
S
S
O
O
II
II
II
II
Formateo físico de discos
■ Formateo físico o de bajo nivel:◆ División del disco en sectores para que el controlador de disco pueda leer y
escribir
● Creación de la estructura de datos de cada sector
S
S
O
O
II
II
II
II
Formateo de discos
■ Creación de particiones:◆ Partición o volumen: Porción contigua de sectores del disco ◆ Particiones primarias y extendidas
◆ Partición activa, de sistema o de arranque
● Permite arrancar un SO
◆ Tabla de particiones:
● Información sobre la distribución lógica del disco en particiones ● Almacenada en el sector 0 (primer sector de la primera pista del
S
S
O
O
II
II
II
II
Formateo de discos
■ Tabla de particiones de un disco:S
S
O
O
II
II
II
II
Formateo lógico de discos
■ Formateo lógico de una partición:◆ Estructura lógica de un disco: Estructura significativa para el SO ◆ Formateo lógico de una partición → Creación de un SF
● format para sistemas Windows ● mkfs para sistemas Unix
S
S
O
O
II
II
II
II
Formateo lógico de discos
■ Tareas de un formateo lógico:◆ Construcción del bloque de carga o sector de arranque ◆ Creación de la estructura lógica del SF
◆ Creación de una lista de bloques defectuosos ◆ Creación de una lista de bloques de repuesto
S
S
O
O
II
II
II
II
Formateo lógico de discos
■ Bloque de carga o sector de arranque:◆ Contiene información sobre la estructura de la partición y el programa
cargador
◆ El programa cargador:
● Incluye los aspectos más básicos de iniciación del HW y un bucle de
lectura que carga el SO en una dirección de la memoria
● Cuando termina salta a la dirección de memoria donde puso el núcleo y
S
S
O
O
II
II
II
II
Formateo lógico de discos
Bloque de carga Bloque con Bloques de inodos Bloques de datos: Mapa de bits de bloques libres Mapa de bits de
■ Creación de la estructura lógica del SF: ◆ Estructura lógica de un SF con inodos:
S
S
O
O
II
II
II
II
Formateo lógico de discos
■ Lista de bloques defectuosos:◆ Los bloques en mal estado se marcan como ocupados y no se liberan nunca ◆ Bloque defectuoso: Cuando alguno de los sectores que lo componen son
defectuosos
◆ Detección por la paridad del sector introducida durante el formato físico ■ Lista de bloques de repuesto:
◆ Permite sustituir un bloque del dispositivo si falla durante el tiempo de vida
S
S
O
O
II
II
II
II
Recordando... Arranque de Linux
■ Partes del arranque de Linux desde el disco duro de un PC:◆ Cargador de la BIOS del PC ◆ Cargador LILO
◆ Núcleo
S
S
O
O
II
II
II
II
Recordando... Arranque de Linux
■ Cargador de la BIOS:◆ El procesador arranca en modo real
◆ La BIOS carga el “Master Boot Record (MBR)” del disco en RAM ◆ Se ejecuta el LILO
■ Cargador LILO:
◆ Pregunta por el SO a cargar
◆ Si es Linux copia el setup.S y el núcleo en RAM ◆ Ejecuta el setup.S:
● Consulta a la BIOS el HW instalado (memoria, teclado, etc.) ● Salta al núcleo ■ Núcleo ... MBR 0x1BE 0x1FE 0x000 Tabla de particiones LILO 0xAA55*
S
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Índice
■ Introducción
■ Estructura y componentes del sistema de entrada/salida ■ Dispositivos de almacenamiento secundario
✓ Discos
•
Estructura física de los discos•
Formateo de discos– Formateo físico
– Creación de particiones – Formateo lógico
•
Planificación del acceso a discoS
S
O
O
II
II
II
II
Planificación de disco
■ Uno de los objetivos del SO:◆ Usar el HW de forma eficiente
Para discos ⇒ Accesos rápidos y mucho ancho de banda
■ Objetivo de la planificación del acceso a disco: ◆ Minimizar el tiempo de posicionamiento
● Minimizar movimientos de cabezales
● Directamente proporcional a la distancia entre búsquedas
bytes transferidos tiempo de transferencia
Tiempo de posicionamiento Tiempo de latencia
Tiempo de transferencia
S
S
O
O
II
II
II
II
Planificación de disco
■ Algoritmos de planificación del acceso a disco:◆ FCFS ◆ SSF ◆ SCAN ◆ C-SCAN ◆ LOOK ◆ C-LOOK ◆ F-SCAN
S
S
O
O
II
II
II
II
FCFS
■ Peticiones atendidas por orden de llegada ■ Planificación sencilla■ Movimientos bruscos de cabezales ■ Tiempo de posicionamiento grande
S
S
O
O
II
II
II
II
FCFS
Cola de peticiones = 98, 183, 37, 122, 14, 124, 65, 67 Cabezal en sector 53 (dirección n°pista creciente)14 37 53 65 67 98 122 124 183 199
S
S
O
O
II
II
II
II
SSF
■ Sortest Seek First (SSF)■ Primero las peticiones que están más cerca de la posición actual del cabezal ■ Similar a planificación de CPU Sortest Jof First (SJF)
S
S
O
O
II
II
II
II
SSF
Cola de peticiones = 98, 183, 37, 122, 14, 124, 65, 67 Cabezal en sector 53 (dirección n°pista creciente)14 37 53 65 67 98 122 124 183 199
S
S
O
O
II
II
II
II
SCAN
■ El cabezal va de un extremo del disco al otro sirviendo las solicitudes que
encuentra a su paso
Al volver se sirven todas las del sentido contrario
■ Política seguida para controlar eficientemente los ascensores y asegurar que
todo el mundo suba → Algoritmo de planificación de disco del ascensor
■ Óptimo cuando las solicitudes uniformemente por todo el disco (no habitual)
Favorece a las solicitudes sobre cilindros más interiores y exteriores y a las últimas peticiones en llegar
S
S
O
O
II
II
II
II
SCAN
Cola de peticiones = 98, 183, 37, 122, 14, 124, 65, 67 Cabezal en sector 53 (dirección n°pista creciente)14 37 53 65 67 98 122 124 183 199
S
S
O
O
II
II
II
II
C-SCAN
■ Propiedad de ascensores (y discos):◆ Es más costoso subir a un edificio parando que ir de un golpe de arriba
abajo y viceversa
■ Variante del algoritmo del ascensor que viaja en un solo sentido
◆ Las cabezas se mueven de un extremo a otro del disco y luego vuelven al
principio
◆ No se atienden peticiones mientras las cabezas vuelven a la posición inicial ◆ Trata los cilindros como una lista circular que enlaza el último cilindro con el
primero → Ascensor cíclico
■ Tiempo de espera más uniforme que el ascensor normal
◆ En dispositivos con muchas peticiones de E/S tiene rendimiento superior a
otras
S
S
O
O
II
II
II
II
C-SCAN
Cola de peticiones = 98, 183, 37, 122, 14, 124, 65, 67 Cabezal en sector 53 (dirección n°pista creciente)14 37 53 65 67 98 122 124 183 199
S
S
O
O
II
II
II
II
LOOK
■ Igual que SCAN pero sin llegar a la última y primera pista para cambiar
dirección de cabezal
S
S
O
O
II
II
II
II
LOOK
Cola de peticiones = 98, 183, 37, 122, 14, 124, 65, 67 Cabezal en sector 53 (dirección n°pista creciente)14 37 53 65 67 98 122 124 183 199
S
S
O
O
II
II
II
II
C-LOOK
■ Igual que C-SCAN pero sin llegar a última y primera pista
◆ Llega hasta la petición con mayor número de pista y luego a la de
S
S
O
O
II
II
II
II
C-LOOK
Cola de peticiones = 98, 183, 37, 122, 14, 124, 65, 67 Cabezal en sector 53 (dirección n°pista creciente)14 37 53 65 67 98 122 124 183 199
S
S
O
O
II
II
II
II
F-SCAN
■ Con SSF, SCAN, C-SCAN, LOOK y C-LOOK puede que el brazo no se
mueva durante un periodo considerable de tiempo
◆ Por ejemplo, si uno o varios procesos tienen porcentajes altos de acceso
a una pista
■ Solución: Dividir las peticiones a disco en dos colas
◆ Al inicio de un rastreo todas las solicitudes en una cola y la otra vacía ◆ Las solicitudes que lleguen después se colocan en la cola inicialmente
vacía
S
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Índice
■ Introducción
■ Estructura y componentes del sistema de entrada/salida ■ Dispositivos de almacenamiento secundario
✓ Discos
•
Estructura física de los discos•
Formateo de discos– Formateo físico
– Creación de particiones – Formateo lógico
•
Planificación del acceso a discoS
S
O
O
II
II
II
II
Sistemas RAID
■ RAID (“Redundant Array of Independent Disks”, Vector Redundante de
Discos Independientes)
■ Planteamiento:
◆ Reemplazo de unidades de disco de gran capacidad por vectores de
discos de menor capacidad
■ Objetivos:
◆ Aumentar la seguridad de datos
S
S
O
O
II
II
II
II
RAID
■ Almacenamiento de datos:◆ Distribución de datos consecutivos entre los discos ⇒
Acceso simultaneo a datos de varios discos ⇒
Mejor rendimiento de E/S
◆ Cada disco se divide en bandas (“strips”)
● Banda: bloque, sector o alguna unidad
● Las bandas se asignan por turno rotatorio a discos consecutivos del
S
S
O
O
II
II
II
II
RAID
■ Almacenamiento de datos (cont.):◆ El SO ve el vector de discos físicos como una sola unidad lógica
Correspondencia de datos para una serie RAID nivel 0
banda 7 banda 6 banda 5 banda 4 banda 12 banda 8 banda 4 banda 0 banda 13 banda 9 banda 5 banda 1 banda 14 banda 10 banda 6 banda 2 banda 15 banda 11 banda 7 banda 3 banda 3 banda 2 banda 1 banda 0 Disco
físico 0 físico 1Disco físico 2Disco físico 3Disco Disco
lógico
SW de gestión del vector
S
S
O
O
II
II
II
II
RAID
■ Fiabilidad y tolerancia de fallos:◆ Redundancia para almacenar información de paridad
Posibilidad de recuperación de datos en caso de fallo de disco
◆ Por ejemplo, utilizando la operación XOR:
X2(i) = X0(i) X1(i) 1 1 1 0 0 0 1 1 Discos de datos 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 Disco de paridad X0 X1 X2 +
S
S
O
O
II
II
II
II
RAID
■ Fiabilidad y tolerancia de fallos (cont.):◆ Solicitud de lectura ⇒ Lectura de datos y código de corrección de error
Solicitud de escritura ⇒ Escritura de datos y código de corrección de error
Puede suponer acceder varias veces a los discos Repercusión en el tiempo de acceso
S
S
O
O
II
II
II
II
RAID
■ Niveles RAID:◆ Siete niveles con diferentes arquitecturas de diseño
● Existen combinaciones de niveles
◆ Cada nivel cumple distintos propósitos
S
S
O
O
II
II
II
II
RAID
■ Niveles RAID (cont.):◆ RAID 0 (no redundante)
◆ RAID 1 (espejo) banda 12 banda 8 banda 4 banda 0 banda 13 banda 9 banda 5 banda 1 banda 14 banda 10 banda 6 banda 2 banda 15 banda 11 banda 7 banda 3 banda 12 banda 8 banda 4 banda 0 banda 13 banda 9 banda 5 banda 1 banda 14 banda 10 banda 6 banda 2 banda 15 banda 11 banda 7 banda 3 banda 12 banda 8 banda 4 banda 0 banda 13 banda 9 banda 5 banda 1 banda 14 banda 10 banda 6 banda 2 banda 15 banda 11 banda 7 banda 3
S
S
O
O
II
II
II
II
RAID
■ Niveles RAID (cont.):◆ RAID 2 (redundancia mediante código de Hamming)
◆ RAID 3 (redundancia mediante paridad)
S
S
O
O
II
II
II
II
RAID
■ Niveles RAID (cont.):◆ RAID 4 (redundancia mediante paridad)
◆ RAID 5 (paridad por intercalación distribuida de bloques)
P(12-15) P(8-11) P(4-7) P(0-3) banda 12 banda 8 banda 4 banda 0 banda 13 banda 9 banda 5 banda 1 banda 14 banda 10 banda 6 banda 2 banda 15 banda 11 banda 7 banda 3 banda 15 banda 11 banda 7 P(0-3) banda 12 banda 8 banda 4 banda 0 P(10-12) banda 9 banda 5 banda 1 banda 13 P(7-9) banda 6 banda 2 banda 14 banda 10 P(4-6) banda 3
S
S
O
O
II
II
II
II
RAID
■ Niveles RAID (cont.):◆ RAID 6 (redundancia dual)
banda 15 banda 11 Q(4-6) P(0-3) banda 12 banda 8 banda 4 banda 0 P(10-12) banda 9 banda 5 banda 1 Q(10-12) P(7-9) banda 6 banda 2 banda 14 Q(7-9) P(4-6) banda 3 banda 15 banda 11 banda 7 Q(0-3)
S
S
O
O
II
II
II
II
RAID
■ RAID 0 ó DSA (“Data Striping Array without parity”):
◆ No incluye redundancia ⇒ No es miembro verdadero de la familia RAID ◆ Ventajas:
● Proporciona rendimiento más alto que disco convencional ● Se emplea toda la capacidad de los discos
● No tiene coste adicional ● Diseño sencillo
● Fácil implementación SW
◆ Desventajas:
● No tiene integridad de datos
S
S
O
O
II
II
II
II
RAID
■ RAID 1 ó MDA (“Mirrored Disk Array”):◆ Redundancia vía duplicación de datos
◆ Solicitud de lectura: La del disco que suponga menos tiempo de acceso
Solicitud de escritura: Rendimiento dado por la escritura más lenta de las dos
◆ Ventajas:
● Mayor rendimiento en las lecturas de datos respecto a un disco
convencional
Si alta tasa de solicitudes de lectura, doble rendimiento que RAID 0
S
S
O
O
II
II
II
II
RAID
■ RAID 2 ó HCEC (“Hamming Code for Error Correcting”): ◆ Bandas muy pequeñas (byte o palabra)
◆ Redundancia mediante código de Hamming ◆ Ventajas:
● Velocidad de transferencia alta ● Recuperación de datos
◆ Desventajas:
● Solución cara (pero menor que RAID1), mucho disco para códigos de error ● Tiempo de escritura alto
S
S
O
O
II
II
II
II
RAID
■ Detección y corrección de errores vía Código de Hamming: ◆ Sea un dato a transmitir de i bits
◆ Añadir p bits en posiciones potencias de 2
◆ En caso de error de un bit en la transmisión los p bits permiten detectar
el error y corregirlo
S
S
O
O
II
II
II
II
RAID
■ Detección y corrección de errores vía Código de Hamming (cont.): ◆ Ejemplo:
● Dato a transmitir: D3 D2 D1 D0
● Generación de códigos de paridad: P0 = D0 D1 D3
P1 = D0 D2 D3 P2 = D1 D2 D3
● Construcción dato nuevo:
+ +
+ +
+ +
D3 D2 D1 P2 D0 P1 P0 B7 B6 B5 B4 B3 B2 B1
S
S
O
O
II
II
II
II
RAID
■ Detección y corrección de errores vía Código de Hamming (cont.): ◆ Ejemplo (cont.):
● Detección error: Bit codificado en C2 C1 C0
C0 = P0 D0 D1 D3 C1 = P1 D0 D2 D3 C2 = P0 D1 D2 D3 + + + + + + + + + C2 C1 C0 FALLO 0 0 0 Ninguno 0 0 1 B1 0 1 0 B2 0 1 1 B3 1 0 0 B4 1 0 1 B5
S
S
O
O
II
II
II
II
RAID
■ RAID 3 ó PDA (“Parallel Disk Array”):◆ Bandas muy pequeñas (byte o palabra) ◆ Redundancia
● Un solo bit de paridad (para todos los bits en la misma posición de disco) ● Un solo disco redundante
◆ Ventajas:
● Velocidad de transferencia alta ● Recuperación de datos
◆ Desventajas:
● Si se pierde el disco de paridad, se pierde toda la información redundante ● Tiempo de escritura de datos alto
S
S
O
O
II
II
II
II
RAID
■ RAID 4 ó IDA (“Independent Disk Array”):◆ Bandas grandes
◆ Técnica de acceso independiente:
● Se pueden satisfacer solicitudes de E/S individuales en paralelo
◆ Ventajas:
● Alto rendimiento en aplicaciones de velocidad de demanda interactiva ● Recuperación de datos
◆ Desventajas:
S
S
O
O
II
II
II
II
RAID
■ RAID 5 ó IDA (“Independent Disk Array”):◆ RAID 4 con bandas de paridad distribuidas por todos los discos
● Asignación por turno rotatorio
◆ Ventajas:
● Alto rendimiento en aplicaciones de velocidad de demanda interactiva ● Recuperación de datos
● Evita el cuello de botella del disco de paridad exclusivo
◆ Desventajas:
● Rendimiento bajo en escrituras
S
S
O
O
II
II
II
II
RAID
■ RAID 6:◆ RAID 5 con dos cálculos distintos de paridad ◆ Ventajas:
● Alta fiabilidad
● Alto rendimiento en aplicaciones de velocidad de demanda interactiva ● Recuperación de datos
● Evita el cuello de botella del disco de paridad exclusivo
◆ Desventajas:
S
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Índice
■ Introducción
■ Estructura y componentes del sistema de entrada/salida ■ Dispositivos de almacenamiento secundario
■ Dispositivos de almacenamiento terciario ■ El reloj
■ El sistema de E/S en Linux
■ El sistema de E/S en Windows NT/2K ■ Servicios de E/S en POSIX
S
S
O
O
II
II
II
II
Almacenamiento terciario
■ Características:◆ Sistema de almacenamiento con:
● Alta capacidad ● Bajo coste
● Más lentos
● Dispositivos extraíbles donde
almacenar datos que no se necesitan inmediatamente en el sistema
Registros 10-60 nsg. Velocidad de acceso
S
S
O
O
II
II
II
II
Almacenamiento terciario
■ Disquetes, ZIP, JAZZ:◆ Pueden ser casi tan rápidos como el disco duro, pero suelen fallar más
debido a su constate manipulación
■ Discos magneto-ópticos:
◆ Mayor densidad, capacidad y fiabilidad
■ Memorias ópticas y discos digitales versátiles: ◆ CD, CD-ROM, CD-R, CD-RW
S
S
O
O
II
II
II
II
Almacenamiento terciario
■ Cintas magnéticas:◆ Soporte de gran capacidad y economía
◆ Ideal para operaciones que no requieren acceso rápido: respaldos,
almacenamiento masivo, etc.
◆ Manipuladas manualmente o mediante robots que cambian cintas
automáticamente
◆ Los ficheros residentes en disco se pueden archivar en cintas (por
S
S
O
O
II
II
II
II
Almacenamiento terciario
■ El comando tar del intérprete de comandos de sistemas UNIX:
◆ tar –cvf /usr/castano /dev/rmt0 Copia los datos del usuario castano
al dispositivo de cinta /dev/rmt0
◆ tar –uvf /usr/castano /dev/rmt0 Copia anterior incremental
◆ tar –tvf /dev/rmt0 Muestra la información almacenada
en /dev/rmt0
◆ tar –xvf /dev/rmt0 Extrae la información almacenada en /dev/rmt0
S
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Índice
■ Introducción
■ Estructura y componentes del sistema de entrada/salida ■ Dispositivos de almacenamiento secundario
■ Dispositivos de almacenamiento terciario ■ El reloj
■ El sistema de E/S en Linux
■ El sistema de E/S en Windows NT/2K
S
S
O
O
II
II
II
II
El reloj
■ Varias acepciones:◆ Reloj del procesador
◆ Reloj del sistema (mantiene fecha y hora)
◆ Reloj temporizador (activa periódicamente al SO) ■ ¿El reloj es un dispositivo de E/S?
◆ Características similares a dispositivos de E/S:
● Su programación implica usar registros de E/S ● Usa interrupciones
S
S
O
O
II
II
II
II
HW del reloj
■ Circuito temporizador que genera señal periódica (tic) ◆ Conectado a línea de interrupción de alta prioridad ◆ Frecuencia programable
■ Reloj CMOS:
◆ Alimentado por batería que mantiene hora y fecha cuando la máquina
está apagada
S
S
O
O
II
II
II
II
SW del reloj
■ Labor principal del SO con el reloj:◆ Gestión de las interrupciones de reloj ■ Frecuencia de interrupción:
◆ Demasiado alta: Excesiva sobrecarga por tratamiento de interrupciones
Demasiado baja: Limitada precisión en medida del tiempo
◆ Ejemplo típico: 100 Hz (1 interrupción cada 10 msg.) ■ Rutina de interrupción de reloj:
◆ Se debe minimizar el trabajo realizado en ella (ya que mientras no se
atienden interrupciones de menor prioridad)
◆ Solución típica: Dividir trabajo asociado a interrupción de reloj
● Operaciones más urgentes dentro de la rutina de interrupción ● Resto: tratamiento posterior fuera de la rutina
S
S
O
O
II
II
II
II
El reloj en Linux
■ Tipos de interrupciones en Linux:◆ Interrupciones rápidas (“fast interrupts”):
● Interrupciones deshabilitadas durante la ejecución de la rutina de
servicio
● Al finalizar la rutina de servicio retorno inmediato al código que se
estaba ejecutando cuando llegó la interrupción
◆ Interrupciones lentas (“slow interrupts”):
● Interrupciones habilitadas durante la ejecución de la rutina de
servicio
S
S
O
O
II
II
II
II
El reloj en Linux
■ Rutinas “bottom halves (BH)”:◆ Rutinas con operaciones que no han de ser ejecutadas necesariamente
tras una interrupción y que son llevadas a cabo posteriormente desde fuera del manejador de interrupción (rutina de servicio) por razones de eficacia
◆ Objetivo: Agilizar el tratamiento de las interrupciones
◆ Mapa de bits (número entero) para marcar las BHs activas ◆ Ejemplos:
● TIMER_BH: BH del reloj
● INMEDIATE_BH: BH genérica con tareas que han de ser ejecutadas
S
S
O
O
II
II
II
II
El reloj en Linux
■ ¿Desde dónde se invocan las BHs?◆ Se inicializan cuando arranca el sistema
◆ Se activan (marcan) desde el manejador de interrupción (rutina de servicio) ◆ Se invocan desde el planificador y también con las interrupciones lentas
● Se testea cada una de las posibles BHs
● Si están marcadas como activas (y están habilitadas) se ejecutan y se
marcan como inactivas
S
S
O
O
II
II
II
II
El reloj en Linux
El manejador de reloj realiza: void do_timer(...){ jiffies++; lost_ticks++; mark_bh(TIMER_BH); if (¡user_mode(regs)) lost_ticks_system++; ... }
La rutina BH del manejador de reloj realiza: void timer_bh(void) {
update_times(); run_old_timers(); run_timer_list(); } void update_times(){ p->utime += user; p->stime += system; p->counter -= ticks; if (p->counter < 0){ p->counter = 0; need_resched =1; }
jiffies Tiempo (tics) que lleva el sistema en marcha
lost_ticks Num. veces que se ha ejecutado el manejador de
reloj desde la última ejecución de su rutina BH
lost_ticks_systemlost_ticks en modo supervisor
user lost_ticks en modo usuario
system lost_ticks en modo supervisor
ticks Relacionado con lost_ticks
Activa TIMER_BH en mapa de bits de BH
Invocación del planificador
S
S
O
O
II
II
II
II
Funciones del manejador de reloj
■ Mantenimiento de fecha y hora■ Gestión de temporizadores ■ Contabilidad y estadísticas
S
S
O
O
II
II
II
II
Mantenimiento de fecha y hora
■ Cálculo de la fecha y hora:◆ En el arranque del SO se lee del reloj CMOS (tras programar la
frecuencia del reloj)
◆ A partir de entonces el SO actualiza la hora en cada interrupción ■ Almacenamiento de fecha y hora:
◆ Unidades de tiempo desde fecha fija en el pasado
● UNIX: sg. o µsg. desde 1-1-1970
● Windows: centenas de nsg. desde 1-1-1601
◆ Diferencias entre horarios de países:
● El SO almacena la hora en el sistema de tiempo estándar UTC
(Universal Coordinated Time)
S
S
O
O
II
II
II
II
Gestión de temporizadores
■ ¿Quién requiere los temporizadores?◆ Los procesos de usuario
◆ El SO crea múltiples temporizadores a partir de temporizador HW
● Módulo de comunicaciones ● Manejador de disquete, etc.
■ Implementación de temporizadores: ◆ Lista de temporizadores activos
● Elemento de lista: Plazo restante (en tics) + Función a ejecutar al
S
S
O
O
II
II
II
II
Contabilidad y estadísticas
■ La ejecución periódica de la rutina de interrupción de reloj permite muestrear
diversos aspectos del estado del sistema
◆ Contabilidad de uso de procesador de cada proceso
● Se le carga el uso de procesador al proceso en ejecución ● Se distingue si estaba en modo usuario o sistema
S
S
O
O
II
II
II
II
Soporte para la planificiación
■ Algoritmos de planificación:◆ En la mayoría influye el tiempo ⇒ La rutina de interrupción de reloj
conlleva acciones de planificación
◆ Round-Robin:
● En cada interrupción se descuenta tiempo a la rodaja ● Cuando llega a cero → Replanificación
◆ Algoritmos de prioridad:
S
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Índice
■ Introducción
■ Estructura y componentes del sistema de entrada/salida ■ Dispositivos de almacenamiento secundario
■ Dispositivos de almacenamiento terciario ■ El reloj
■ El sistema de E/S en Linux
■ El sistema de E/S en Windows NT/2K ■ Servicios de E/S en POSIX
S
S
O
O
II
II
II
II
Recordando... Diagrama de bloques del
núcleo de Linux
trap
fork, wait, exec,... open, read, stat,...
Modo usuario trap Gestor de procesos Librerías Comunicación entre procesos Planificador Gestor de memoria Gestor de ficheros
Dispositivos por Disp. por carácteres bloques
Drivers de dispositivos Caché de buffers
de bloques
Modo supervisor Interfaz con las llamadas al sistema
Sistema de E/S
S
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Índice
■ Introducción
■ Estructura y componentes del sistema de entrada/salida ■ Dispositivos de almacenamiento secundario
■ Dispositivos de almacenamiento terciario ■ El reloj
■ El sistema de E/S en Linux
■ El sistema de E/S en Windows NT/2K ■ Servicios de E/S en POSIX
S
S
O
O
II
II
II
II
E/S en Windows NT/2K
■ Módulos básicos de E/S:Controladores del SF Controladores del red Gestor de caché Gestor de E/S
S
S
O
O
II
II
II
II
E/S en Windows NT/2K
■ RAID:◆ Windows NT/2K soporta dos clases de configuraciones RAID:
● RAID de HW
La interfaz del controlador gestiona la creación y regeneración de la información redundante
● RAID de SW
Disponible en Windows 2K Server
Implementa la funcionalidad RAID como parte del SO
S
S
O
O
II
II
II
II
Tema 4. Sistemas de entrada/salida
Índice
■ Introducción
■ Estructura y componentes del sistema de entrada/salida ■ Dispositivos de almacenamiento secundario
■ Dispositivos de almacenamiento terciario ■ El reloj
■ El sistema de E/S en Linux
■ El sistema de E/S en Windows NT/2K
S
S
O
O
II
II
II
II
Servicios de E/S en POSIX
■ Servicios relacionados con el reloj:◆ Servicios de hora y fecha
● Para leer y cambiar (sólo superusuario) fecha y hora
◆ Temporizaciones
◆ Servicios de contabilidad
● Ejemplo: tiempo de procesador consumido por un proceso
■ Servicios de entrada/salida:
S
S
O
O
II
II
II
II
Servicios de E/S en POSIX
■ Lectura de fecha y hora:◆ Sintaxis:
time_t time (time_t *t);
◆ Descripción:
● Devuelve número de segundos desde 1-1-1970
◆ Funciones de biblioteca para convertir a año, mes, ..., segundos:
S
S
O
O
II
II
II
II
Servicios de E/S en POSIX
#include <stdio.h> #include <time.h> int main() { time_t tiempo; struct tm *fecha; tiempo=time(NULL);
fecha=localtime(&tiempo);
printf(“%02d/%02d/%04d %02d:%02d:%02d\n”,
fecha->tm_mday, fecha->tm_mon, fecha->tm_year+1900, fecha->tm_hour, fecha->tm_min, fecha->tm_sec);
exit(0); }
S
S
O
O
II
II
II
II
Servicios de E/S en POSIX
■ Modificación de fecha y hora:◆ Sintaxis:
int stime (time_t *t);
◆ Descripción:
● Fija hora según parámetro (segundos desde 1-1-1970) ● Sólo para superusuario
S
S
O
O
II
II
II
II
Servicios de E/S en POSIX
■ Activación de una alarma:◆ Sintaxis:
unsigned int alarm (unsigned int seconds);
◆ Descripción:
● Envía al proceso que la invoca la señal SIGALRM tras seconds
segundos
S
S
O
O
II
II
II
II
Servicios de E/S en POSIX
■ Servicios de contabilidad:◆ Sintaxis:
clock_t times (struct tms *info);
◆ Descripción:
● Proporciona a partir de info información sobre tiempo de ejecución de
proceso e hijos
● Devuelve valor relacionado con tiempo real en el sistema
Típicamente ticks de reloj desde arranque del sistema
● Este valor no se usa de forma absoluta
S
S
O
O
II
II
II
II
Servicios de E/S en POSIX
#include <stdio.h>#include <unistd.h> #include <time.h>
#include <sys/times.h>
int main(int argc, char *argv[]){ struct tms InfoInicio, InfoFin; clock_t t_inicio, t_fin;
long tickporseg;
tickporseg=sysconf(_SC_CLK_TCK); /* Num interrupciones reloj por seg */ t_inicio=times(&InfoInicio);
if (fork()==0) {execvp (argv[1], &argv[1]); perror(“Error hijo”); exit(-1);} wait(NULL);
t_fin=times(&InfoFin);
printf(“Tiempo real: %7.2f\n”, (float)(t_fin – t_inicio)/tickporseg); printf(“Tiempo de usuario: %7.2f\n”, (float)(InfoFin.tms_cutime-InfoInicio.tms_cutime)/tickporseg); printf(“Tiempo de sistema: %7.2f\n”, (float)(InfoFin.tms_cstime-InfoInicio.tms_cstime)/tickporseg); exit(0); } ■ Ejemplo:
S
S
O
O
II
II
II
II
Servicios de E/S en POSIX
■ Servicios de E/S sobre dispositivos:◆ Sintaxis:
int ioctl (int fildes, int request, arg);
◆ Descripción:
● Realiza sobre el dispositivo asociado a fildes la operación
especificada en request para la que se necesitarán los parámetros especificados a través de arg
● No definida en POSIX
Tomarán unos valores u otros según el tipo de fichero
S
S
O
O
II
II
II
II
Ejercicios
■ Ejercicio 1:Se dispone de un disco con 200 pistas al que llegan las siguientes solicitudes de acceso a pistas (en dicho orden): 55, 58, 39, 18, 90, 160, 150, 38, 184. El cabezal se encuentra en la pista 100 moviéndose en dirección a número de pistas crecientes.
¿Cuál es el número de pistas recorrido durante la atención de dichas solicitudes si el algoritmo de planificación de acceso a disco es:
(a) FCFS (b) SSF (c) LOOK (d) C-LOOK
S
S
O
O
II
II
II
II
Ejercicios
■ Ejercicio 1 (solución): (a) FCFS (b) SSFSiguiente N°pistas Siguiente N°pistas
pista recorridas pista recorridas
accedida accedida 55 45 90 10 58 3 58 32 39 19 55 3 18 21 39 16 90 72 38 1 160 70 18 20 150 10 150 132 38 112 160 10
S
S
O
O
II
II
II
II
Ejercicios
■ Ejercicio 1 (solución): (c) LOOK (d) C-LOOKSiguiente N°pistas Siguiente N°pistas
pista recorridas pista recorridas
accedida accedida 150 50 150 50 160 10 160 10 184 24 184 24 90 94 18 166 58 32 38 20 55 3 39 1 39 16 55 16 38 1 58 3 18 20 90 32 251 322