Title: Dise
1Tema 5. Sistemas de Entrada/Salida
- Dos módulos
- Sistema de entrada/salida
- Almacenamiento secundario y terciario
- Objetivos
- Que el alumno entienda los conceptos de
dispositivo de e/s - Mostrar el software de e/s del sistema operativo
- Estudiar los dispositivos de almacenamiento
secundario y terciario - Que el alumno comprenda la estructura del
sistema de e/s - Presentar distintas técnicas de gestión del
almacenamiento secundario
2Módulo 1.Sistemas de Entrada/Salida
Hardware de entrada/salida Interfaz de aplicación
para la entrada/salida Subsistema de
entrada/salida del núcleo Transformación de
peticiones de usuario al hardware Rendimiento
3Sistema de E/S
4Flujo de una Operación de E/S
5Hardware de E/S
- Gran variedad de dispositivos
- Conceptos generales
- Puerto
- Bus (daisy chain o acceso directo compartido)
- Controlador (adaptador para el computador)
- Las instrucciones de E/S controlan los
dispositivos - Los dispositivos tienen direcciones, usadas por
- Instrucciones de E/S directa (Ej. Intel)
- E/S proyectada en memoria (Ej. Motorola)
- Gestión de E/S
- Muestreo (polling)
- Interrupciones
6Conexión de Dispositivos
7Muestreo (polling)
- Muestreo periódico de los dispositivos
- Determina el estado del dispositivo
- listo
- ocupado
- error
- Ciclo de espera activa para esperar del
dispositivo de E/S - Ventaja no hay gasto de tiempo de gestión de
interrupción. - Desventaja Consume mucha CPU para dispositivos
poco usados - Aplicación
- Hardware sin interrupciones
- Programas de control de canales de E/S
8Interrupciones
- Líneas de petición de interrupción de la CPU
activadas por los dispositivos - El gestor de interrupciones recibe y maneja la
interrupción - Enmascarables para ignorar o retrasar
interrupciones - El vector de interrupción tiene las direcciones
de memoria de los manejadores de interrupción - Las interrupciones se procesan según distintas
políticas - Prioridad, FIFO, etc.
- Algunas no se pueden enmascarar (NMI). Ejemplo
reset. - Los mecanismos de interrupción se usan también
para excepciones. Ejemplo instrucción errónea.
9E/S por Interrupciones
10Acceso Directo a Memoria (DMA)
- Se usa para evitar la E/S programada de grandes
bloques de datos - Necesita un controlador con DMA
- Evita el uso de la CPU transfiriendo los datos
directamente entre los dispositivos de E/S y la
memoria - del usuario
- del núcleo
- Básico para aprovechar la CPU en un sistema
multiprogramado, ya que libera tiempo de la CPU
que se puede usar para ejecutar otros programas.
11Pasos de la E/S por DMA
12Interfaz de E/S de las Aplicaciones
- Las llamadas de E/S encapsulan el comportamiento
de los dispositivos en clases genéricas - La capa del manejador esconde las diferencias
entre los controladores de E/S del núcleo - La dispositivos pueden variar en muchas
dimensiones - Bloque o carácter
- Acceso secuencial o aleatorio
- Bloqueantes o no bloqueantes (Síncronos o
asíncronos) - Compartidos o dedicados
- Velocidad de operación
- lectura-escritura, sólo lectura o sólo escritura
13Dispositivos de Bloque y de Carácter
- Dispositivos de bloque
- Acceso a nivel de bloque, secuencial o aleatorio
- Mandatos leer, escribir, buscar,
- E/S directa o a través del servidor de ficheros
- Acceso posible a través de ficheros proyectados
en memoria - Ejemplo discos y cintas
- Dispositivos de carácter
- Acceso a nivel de a carácter, secuencial o
aleatorio - Mandatos get, put, .
- Bibliotecas para optimizar y dar forma a este
tipo de accesos edición de líneas, ventanas
virtuales, . - Ejemplo terminales e impresoras
14Dispositivos de red
- Difieren de los dos anteriores -gt interfaz propio
- UNIX y Windows NT tienen una interfaz de sockets
- Separan protocolos de red y operaciones
- Se basan en el uso de puertos
- Incluyen la función select para manejar al tiempo
varios puertos - Las soluciones varían ampliamente
- pipes, FIFOs, streams, colas, buzones, puertos,
. - Es difícil clasificarlos
- Todos ellos manejan paquetes, pero de tamaño
variable - Los protocolos son muy distintos Ethernet, ATM
...
15Relojes y Temporizadores
- Proporcionan la fecha y hora actual, el tiempo
transcurrido y la temporización - Interfaz de usuario para definir intervalos
programables en los temporizadores
interrupciones periódicas (ciclos) y aperiódicas
(eventos) - ioctl (en POSIX) permite manejar aspectos poco
usuales de la E/S, tales como - relojes y temporizadores
- características de los manejadores
- semántica de las operaciones de E/S
16E/S Bloqueante y No-bloqueante
- Bloqueante procesos suspendidos hasta que la E/S
termina - Fácil de usar y comprender
- Insuficiente para algunos requisitos
- Ejemplo read, write, ... de POSIX
- No bloqueante la llamada de E/S vuelve
inmediatamente - Interfaz de usuario más complejo y espacio para
copia de datos - Se puede implementar con threads
- Vuelve rápidamente con el estado de la operación
- Variación operaciones asíncronas -gt los procesos
ejecutan mientras la E/S se lleva a cabo - Difícil de usar por operaciones pendientes
- El sistema de E/S señala el fin de operación
pendiente - Interfaz para comprobar estado y esperar (aiowait)
17Subsistema de E/S de Núcleo I
- Planificación
- Las peticiones de E/S se gestionan por
dispositivo - Cola general por dispositivo genérico y otra por
dispositivo particular - Algunos SSOO tratan de ser justos. No siempre es
conveniente. - Políticas FIFO, prioridad, scan, ...
- Almacenamiento intermedio en memoria mientras hay
transferencias entre dispositivos - para poder hacer frente a errores en dispositivos
- para resolver errores de tamaño de transferencia
- para mantener una semántica de copia
18Subsistema de E/S del Núcleo II
- Caching copia rápida de los datos que existen
ene memoria - Siempre se hace copia
- Clave para el rendimiento
- Distintos niveles controlador, manejador, gestor
de bloques, - Spooler proceso que gestiona la E/S para un
dispositivo - Si un dispositivo es lento o secuencial
- Si un dispositivo no permite uso compartido
- Ejemplo impresora
- Reserva de recursos acceso exclusivo a
dispositivos - Llamadas al sistema para reservar y liberar
- Cuidado con los interbloqueos
19Gestión de Errores
- El SO puede gestionar y resolver errores variados
de E/S de tipo transitorio - fallos escritura, temporización de red, impresora
fuera de línea, .. - Errores permanentes o desconocidos devuelven un
código de error como resultado de la llamada de
E/S al sistema - Registro de errores de E/S para poder informar de
los problemas al administrador o al usuario - Errores de dos tipos
- genéricos
- dependientes de dispositivo
20Estructuras de Datos del Núcleo
- El núcleo guarda el estado de los componentes de
E/S, incluyendo - tablas de ficheros abiertos
- conexiones de red
- estado de los dispositivos de caracteres
- Muchas estructuras de datos, y muy complejas,
para seguir la pista de bloques, páginas, bloques
sucios, caracteres tecleados, etc. - Algunos sistemas usan orientación a objetos
(Windows NT) y paso de mensajes (MINIX) para
implementar la E/S.
21Flujo de las Operaciones de E/S
- Suponga que un proceso quiere leer de un fichero,
para lo que ejecuta la llamada al sistema read. - El sistema de E/S recibe la petición del servidor
de archivos y - Determina el dispositivo que almacena el fichero
(major, minor) - Traduce datos lógicos a representación física en
el dispositivo - Lee los datos físicamente del disco al buffer de
memoria - Pone los datos disponibles para el proceso que
los pidió - Devuelve el control al proceso
- El ciclo de vida de una petición de E/S para por
casi todos los componentes del sistema operativo
22Ciclo de Vida de una Petición de E/S
23Rendimiento
- La E/S es uno de los factores más importantes
para el rendimiento del sistema porque - gasta CPU para ejecutar los manejadores, el
software de E/S y los gestores de interrupción - origina cambios de contexto y planificaciones
debidas a las interrupciones - necesita copia de datos en memoria
- puede incluir tráfico por la red, que degrada
especialmente el rendimiento - los dispositivos de E/S son muchos más lentos que
la CPU - Cuanto más rápida es la CPU más se nota el efecto
negativo de la E/S
24Comunicación por la Red
25Incremento de Prestaciones
- Reducir el número de cambios de contexto
- Reducir operaciones de copia de datos
- Reducir el número de interrupciones haciendo
transferencias de tamaño mayor, usando
controladores inteligentes, muestreo, - Usar DMA
- Gestión de cache adecuada
- Balancear el rendimiento conjunto de la CPU, el
bus, la memoria y la E/S para lograr el máximo
26Módulo 2. Almacenamiento secundario y terciario
Estructura de los discos Planificación y gestión
de discos Gestión del espacio de intercambio de
memoria (swap) Fiabilidad y Rendimiento Dispositiv
os de almacenamiento terciario Aspectos del
sistema operativo
27Estructura de los Discos
- Los discos se manejan como vectores grandes de
bloques lógicos, siendo el bloque la unidad
mínima de transferencia - El vector de bloques lógicos se proyecta sobre
los sectores del disco secuencialmente - Sector 0 primer sector de la primera pista del
cilindro más externo - El mapa se hace en primero en esa pista, luego en
las restantes pistas de ese cilindro y luego en
los restantes cilindros - El manejador de disco no sabe nada de la
organización de los ficheros - Puede tener una cache de bloques del disco,
distinta de la del servidor de archivos
28Planificación de disco
- El SO es responsable de usar el hardware de forma
eficiente. Hablando de discos, esto implica
accesos rápidos y mucho ancho de banda - El tiempo de acceso tiene dos componentes
principales - búsqueda tiempo que tarda el brazo del disco
para mover las cabezas hasta el cilindro que
contiene el sector deseado - latencia tiempo de espera adicional para que el
disco gire hasta ponerse sobre el sector deseado - Objetivo minimizar el tiempo de búsqueda, que es
directamente proporcional a la distancia de
búsqueda - Ancho de banda bytes transferidos / tiempo de
transferencia
29Algoritmos de Planificación
- Variados FIFO, SCAN, CSCAN, SSF, EDF, .
- Fundamentales para optimizar el acceso al disco.
- Criterios de planificación
- Optimizar el tiempo de búsqueda
- Dar servicio determinista
- El primero en SSOO, el segundo en multimedia y
SSTR - A continuación se estudian varios ejemplos usando
la siguiente cola de peticiones - 98, 183, 37, 122, 14, 124, 65, 67
- Se asume que las cabezas están en 53
30FCFS (FIFO)
31Shortest Seek Time First (SSTF)
- Primero las peticiones que minimizan el
movimiento de cabezas desde la posición actual - La política SSTF es una variante de planificación
de CPU con Shortest Job First - Puede causar inanición de algunas peticiones
- Idea maximizar el ancho de banda del disco
- La ilustración siguiente muestra el movimiento
total de las cabezas del disco 236 cilindros
32SSTF
33Ascensor (SCAN)
- El movimiento del brazo empieza siempre en un
extremo del disco y continúa hasta el otro. Allí
se cambia el sentido y se vuelve el otro extremo - Idea evitar desplazamientos atrás y adelante
- Problema puede retrasar mucho el servicio de
algunas peticiones si no se insertan
adecuadamente dentro de las rodajas - Movimiento total de cabezas en el ejemplo 208
cilindros
34SCAN
35Ascensor de un Sentido (C-SCAN)
- Variación del ascensor
- 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 - Tiempo de espera más uniforme que el ascensor
normal - Trata los cilindros como una lista circular que
enlaza el último cilindro con el primero - Movimiento cabezas en ejemplo 345!
- El número es engañoso. Ir del último al primero
se hace en un único movimiento y tarda muy poco - Se usa frecuentemente
36C-SCAN
37C-LOOK
- Versión del C-SCAN
- El brazo sólo llega hasta la última petición en
cada dirección - Cuando termina vuelve, pero no al principio, sino
hasta la petición más próxima al principio - Ahorro pequeño de movimientos y gestión más
compleja - No se usa muy frecuentemente
38C-LOOK
39Selección de un Algoritmo de Planificación
- SSTF es frecuente y parece el más natural
- SCAN y C-SCAN tienen mejor rendimiento para
sistemas que usan mucho el disco - El rendimiento depende del número y el tipo de
peticiones - Las peticiones al disco pueden depender de la
política de asignación de espacio a los ficheros - El algoritmo de planificación de disco debe ser
escrito como un módulo separado, para que sea
fácil de reemplazar. - Algoritmo de elección por defecto SSTF o LOOK
- Algoritmo estándar en casi todos los sistemas
C-SCAN
40Gestión del Disco
- Formato a bajo nivel, o físico divide el disco
en sectores que el controlador puede leer y
escribir - Para usar un disco, se debe
- partir el disco en grupos de cilindros
(particiones) - crear un sistema de ficheros para dar formato
lógico al disco - El bloque de carga inicia el sistema
- El cargador hardware está almacenado en la ROM
- Función leer el bloque de carga, instalar y
arrancar el cargador - Métodos
- Intercalado de sectores para rendimiento
- Sectores de recambio para manejar los sectores
defectuosos
41Gestión del Espacio de Swap
- Gestión del swap la memoria virtual usa el
espacio de disco como una extensión de la memoria
principal - El espacio de intercambio se puede gestionar
- fuera del servidor de ficheros
- como una partición más (lo más frecuente)
- Gestión del espacio de intercambio
- 4.3 BSD preasigna espacio cuando arranca el
proceso para almacenar el segmento de texto y el
de datos - El núcleo tiene mapas del swap para gestionar su
uso - Solaris 2 asigna espacio de swap dinámicamente
cuando se expulsa una página de memoria física,
no cuando se crea la página por primera vez
42Fiabilidad del Disco
- Varias técnicas para mejorar el uso del disco
involucran la utilización de varios discos que
trabajan cooperativamente - Los técnicas de reparto usan un grupo de discos
como una única unidad de almacenamiento - Los esquemas tipo RAID mejoran el rendimiento y
la fiabilidad del sistema de almacenamiento
guardando información de redundancia - Discos espejo, o sombra, que duplican el
contenido de cada disco - Bloques de paridad intercalados que usan mucha
menos redundancia
43Almacenamiento Estable
- Los sistemas con registro y escritura adelantada
requieren almacenamiento estable - Para implementar almacenamiento estable
- Se replica la información en más de un medio de
almacenamiento no volátil con modos de fallo
independientes - Se actualiza la información de forma controlada
para asegurar que se pueden recuperar los datos
estables después de un fallo durante la
transferencia o recuperación de datos - Cuanta más tolerancia a fallos se desee, más
redundancia es necesaria
44Almacenamiento Terciario I
- Motivación son baratos y, generalmente,
extraíbles - Ejemplos frecuentes disquetes, CD-ROMs, ZIP,
cintas, - Disquetes, ZIP, JAZZ
- discos extraíbles y baratos que pueden almacenar
desde un 1 MB hasta 1 GB - Pueden ser casi tan rápidos como el disco duro,
pero suelen fallar más debido a su constate
manipulación - Discos magneto-ópticos que se leen y escriben con
láser - Mayor densidad, capacidad y fiabilidad
- Las cabezas nunca tocan el disco, la luz
magnetiza a distancia y permite almacenar datos y
leerlos. Hasta hace poco sólo lectura
45Almacenamiento Terciario II
- Discos WORM aluminio plastificado que se escribe
y lee por láser - No regrabables porque el láser agujerea la
superficie - Muy duraderos y fiables
- Ejemplos CDROM y DVD
- Cintas soporte en cinta magnética de gran
capacidad y economía - Ideal para operaciones que no requieren acceso
aleatorio rápido respaldos, almacenamiento
masivo, etc. - Instalaciones robotizadas que cambian cintas
automáticamente - los ficheros residentes en disco se pueden
archivar en cintas, por razones económicas, y
volver a cargar en disco de forma dinámica
46Aspectos del SO
- Presentar una máquina virtual al usuario que
oculte la jerarquía de almacenamiento - Para discos duros hay dos abstracciones básicas
- Disco crudo un vector de bloques de datos, sin
caches - Sistema de ficheros el SO encola y planifica
peticiones concurrentes de varias aplicaciones - Para cintas sólo se suele usar la primera
- Aplicar mecanismos de incremento de prestaciones
también al almacenamiento terciario - Planificador a largo plazo expulsar ficheros de
disco a cinta y volverlos a cargar
47Interfaz de Aplicación
- La mayoría de los SO manejan los dispositivos
extraíbles igual que los fijos-gt necesitan
formato y sistema de ficheros - Las cintas se suelen presentar como un medio
crudo, es decir, que no se suelen abrir ficheros
en una cinta sino el medio completo - Habitualmente, el manejador de la cinta se
reserva para el proceso que la abre - Si se usa un dispositivo crudo, no hay interfaz
de ficheros, luego la aplicación debe gestionar
el vector de bloques - Puesto que cada aplicación decide el formato de
la cinta, ésta sólo se puede reutilizar por la
aplicación que la creó, o sus colaboradoras
48Manejadores de Cinta
- Las operaciones básicas son distintas de las de
un disco - locate para buscar un bloque, no una pista entera
- read (write) lee (escribe) el bloque lógico donde
están las cabezas - space permite movimientos relativos
- rewind para ir al principio
- Las cintas sólo permiten añadir datos, no
reescribir. Escribir en medio, borra todo lo que
hay después. Razón escribe EOT - Las cintas no tienen mapa ni directorio. Si hay
varios ficheros y se quiere buscar uno de ellos,
hay que recorrer la cinta hasta buscarlo. - La lectura si puede ser aleatoria read, space,
read, .
49Nombres de Ficheros
- Problema escribir en un computador y leer en
otro - Normalmente problema no resuelto por el SO las
aplicaciones deben saber cómo acceder e
interpretar los datos. Ej tar, od, cpio, etc - Algunos medios removibles (disquetes, cdrom, )
están estandarizados de hecho, por lo que todos
los sistemas saben cómo leerlos. - En principio, en cualquier sistema, es necesario
montar la unidad extraíble antes de usarla para
que el sistema sepa que existe.
50Gestión de Almacén Jerárquico (HSM)
- Un almacén jerárquico extiende la jerarquía de
almacenamiento para incorporar almacenamiento
terciario - Habitualmente usan jukebox de cintas o discos
extraibles - Extensión del sistema de ficheros para sistemas
terciarios - Ficheros pequeños y muy usados en disco
- Ficheros grandes, viejos o inactivos van a
dispositivos terciarios - HSM es habitual en centros de supercomputación
(Ej San Diego) y otras grandes instalaciones con
un volumen enorme de datos (CERN)
51Rendimiento
- Dos aspectos importantes del almacenamiento
terciario son latencia y ancho de banda - Ancho de banda en bytes/seg.
- Sostenido tasa de transferencia en operaciones
grandes (nº de bytes/tiempo transferencia) - Efectivo ancho de banda medio durante todo el
tiempo de la E/S, incluyendo seek o locate y
cambios de cartuchos. Define la tasa global del
dispositivo. - Latencia tiempo necesario para llegar a la
transferencia efectiva - Mayor que en secundarios debido a posibles
cambios de medio y a mayor lentitud de los mismos
para arrancar
52Rendimiento II
- Latencia de acceso tiempo necesario para
localizar los datos - Disco mover brazo latencia rotacional lt 35
mseg. - Cinta rebobinar hasta el bloque (segundos)
- CDROM arranque movimiento brazo rotación gt
200 mseg. - Generalmente se dice que un acceso aleatorio a
cinta es miles de veces más lento que a disco - El coste barato resulta de tener muchos cartuchos
baratos compartidos por unos pocos discos caros - Una biblioteca en medio extraíble es más adecuada
para datos de uso poco frecuente, porque sólo
puede satisfacer un número pequeño de peticiones
por hora. - Normalmente las peticiones de este tipo se hacen
off-line
53Fiabilidad
- Un disco fijo suele ser más fiable que un medio
extraíble - Un cartucho óptico es más fiable que una cinta o
un disquete - Un aterrizaje de cabezas en un disco fijo suele
resultar en pérdida de datos - El fallo de una unidad de cinta o disco óptico no
suele dañar los datos almacenados. - Un modelo frecuente para tener más fiabilidad es
el cintas primarias y actualizaciones. El nuevo
primario no se valida hasta que todo ha ido bien.
54Coste
- La memoria principal es mucho más cara que el
disco - El almacenamiento terciario permite ahorrar
costes sólo cuando el número de cartuchos es
mucho mayor que el de discos. Ej bibliotecas de
ficheros de salida de choques de partículas - El coste del disco es competitivo con el de la
cinta si sólo se usa una cinta - Actualmente, ambos modelos compiten en coste y
capacidad - El almacenamiento terciario tiene otras
justificaciones copias de seguridad, archivos,
etc.