Está en la página 1de 110

SO

II
Tema 4. Sistemas de entrada/salida II

Í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

Sistemas Operativos II (II-UJI) Sistemas de E/S


1
SO
II
Tema 4. Sistemas de entrada/salida II

Í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 fallos
– Sistemas RAID

Sistemas Operativos II (II-UJI) Sistemas de E/S


2
SO
II
Tema 4. Sistemas de entrada/salida II

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. Adison-
Wesley. 2002. Capítulos 12 y 13.

Sistemas Operativos II (II-UJI) Sistemas de E/S


3
SO
II
Tema 4. Sistemas de entrada/salida II

Í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

Sistemas Operativos II (II-UJI) Sistemas de E/S


4
SO
II
Introducción II

■ 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
● Conexión con otras máquinas (tarjetas de red, modems, etc.)

Sistemas Operativos II (II-UJI) Sistemas de E/S


5
SO
II
Estructura de una computadora II

Dispositivos de salida
(impresora, monitor, ...)
Unidad principal
(CPU, registros,
memoria RAM,
entrada/salida
-discos internos,
red, ...-)

Dispositivos de
entrada/salida
(discos, cintas,
Dispositivos de entrada modem, ...)
(teclado, ratón,
lápiz óptico, ...)

Sistemas Operativos II (II-UJI) Sistemas de E/S


6
SO
II
Estructura de una computadora II

■ 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,

etc.

Sistemas Operativos II (II-UJI) Sistemas de E/S


7
SO
II
Conexión de dispositivos de E/S II

Memoria
CPU
Controlador
gráfico

Bus del sistema


Controlador
de disco
estado control datos Bus de expansión

Sistemas Operativos II (II-UJI) Sistemas de E/S


8
SO
II
Conexión de dispositivos de E/S II

■ 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

periférico

Sistemas Operativos II (II-UJI) Sistemas de E/S


9
SO
II
Funciones del sistema de E/S II

■ ¿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
◆ Permitir la conexión de dispositivos nuevos de E/S

Sistemas Operativos II (II-UJI) Sistemas de E/S


10
SO
II
Funciones del sistema de E/S II

■ 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

Sistemas Operativos II (II-UJI) Sistemas de E/S


11
SO
II
Tema 4. Sistemas de entrada/salida II

Í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

Sistemas Operativos II (II-UJI) Sistemas de E/S


12
SO
II
Estructura del sistema de E/S II

Interfaz del Sistema Operativo

Sistemas de Archivos
NFTS HPFS FAT CD-ROM ...

Gestión
Gestióndede
Redes
Redes
(IPX/SPX, TCP/IP, ... )

Gestor de Bloques

Gestor de Caché

Manejadores de Dispositivos
(CD-ROM, cinta, disco, puerto, ... )

Controladores de dispositivo

Sistemas Operativos II (II-UJI) Sistemas de E/S


13
SO
II
Estructura del sistema de E/S II

■ 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

sistemas de red del SO (TCP/IP, Novell, ...)

Sistemas Operativos II (II-UJI) Sistemas de E/S


14
SO
II
Estructura del sistema de E/S II

■ 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

de cada dispositivo particular

Sistemas Operativos II (II-UJI) Sistemas de E/S


15
SO
II
Estructura del software de E/S II

Proceso Aplicación
Subsistema Copia en
de usuario memoria del
o DLL
usuario
Modo usuario
Modo supervisor
Servicios
SW de E/S Gestor de
independiente archivos
de dispositivo Gestor de
bloques Copia en el
Gestor de sistema
SW de E/S caché operativo
independiente
de dispositivo Manejador de
SW de E/S dispositivo
dependiente
de dispositivo
Manejador de
interrupción
Software

Hardware Copia en el
Controlador controlador

Dispositivo Bloque del


(disco) dispositivo

Sistemas Operativos II (II-UJI) Sistemas de E/S


16
SO
II
Estructura del software de E/S II

■ 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

● Envía las órdenes al controlador

● Espera a que se cumplan

● Comprueba el estado de la operación cuando llega la interrupción

● Gestiona los errores, si existen, y los resuelve, si es posible

Sistemas Operativos II (II-UJI) Sistemas de E/S


17
SO
II
Estructura del software de E/S II

■ Operaciones de un manejador de dispositivo:


Peticiones de
E/S del dispositivo

Extraer petición Contestación a


E/S de la lista la petición

Traducir a Preparar
formato del Operaciones
respuesta sobre datos
controlador de error

Sí No
Enviar
mandatos al Error
controlador
Programación del
controlador
No Leer registros
Bloqueo estado del
controlador

Esperar Interrupción
interrupción

Sistemas Operativos II (II-UJI) Sistemas de E/S


18
SO
II
Estructura del software de E/S II

■ 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


 Optimización de la E/S evitando accesos a dispositivos
 Oculta diferencias de velocidad
 Facilita la implementación de la compartición

Sistemas Operativos II (II-UJI) Sistemas de E/S


19
SO
II
Estructura del software de E/S II

■ 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

Sistemas Operativos II (II-UJI) Sistemas de E/S


20
SO
II
Tema 4. Sistemas de entrada/salida II

Í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


■ ...

Sistemas Operativos II (II-UJI) Sistemas de E/S


21
SO
II
Discos II

■ 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)
Almacenamiento terciario
◆ Discos extraíbles (disquetes, ZIP, JAZZ)

Estructura física y lógica muy similar para todos

Sistemas Operativos II (II-UJI) Sistemas de E/S


22
SO
II
Estructura física de los discos II

■ 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)
● Apéndice (Contiene código de corrección de errores
Se calcula cada cada vez que se lee o escribe un sector)
Información usada por el controlador de disco,
◆ Miles de pistas por superficie no accesible por usuario
Varios cientos de sectores por pista

Sistemas Operativos II (II-UJI) Sistemas de E/S


23
SO
II
Estructura física de los discos II

■ Características físicas de los sistemas de disco:


◆ Caras: ◆ Cabezal:
● Simple cara ● Fijo: Uno por pista
● Móvil: Uno por superficie
● Doble cara

◆ Platos: ◆ Mecanismo del cabezal:


● Contacto (disquetes)
● Un solo plato

● Hueco fijo
● Múltiples platos

● Hueco aerodinámico (discos Winchester)


◆ Portabilidad del disco:
● Disco no extraíble

● Disco extraíble

Sistemas Operativos II (II-UJI) Sistemas de E/S


24
SO
II
Estructura física de los discos II

■ Capacidad del disco:


◆ N° caras x N° pistas x N° sectores x Tamaño sector
0 en cabezales fijos
■ 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.
● Tiempo de latencia: 3-5 msg.
◆ El SO sólo puede influir en el tiempo de posicionamiento

Sistemas Operativos II (II-UJI) Sistemas de E/S


25
SO
II
Estructura física de los discos II

■ 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
efectuar operaciones de búsqueda solapadas

Sistemas Operativos II (II-UJI) Sistemas de E/S


26
SO
II
Ejemplo de disco duro II

SEAGATE Barracuda ATA II ST330630A

Parámetro Valor

Capacidad: 1 0.2 GB
Cilindros: 1023
Cabezas: 256
Sectores: 83
Velocidad: 7200 RPM
Tpo. posicionamiento: 8,5 msg.
Tpo. latencia: 4,16 msg.

Sistemas Operativos II (II-UJI) Sistemas de E/S


27
SO
II
Tema 4. Sistemas de entrada/salida II

Í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


■ ...

Sistemas Operativos II (II-UJI) Sistemas de E/S


28
SO
II
Formateo físico de discos II

■ 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

◆ Realizado normalmente como parte del proceso de fabricación

Sistemas Operativos II (II-UJI) Sistemas de E/S


29
SO
II
Formateo de discos II

■ 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

cilindro más externo)

Sistemas Operativos II (II-UJI) Sistemas de E/S


30
SO
II
Formateo de discos II

■ Tabla de particiones de un disco:

Sistemas Operativos II (II-UJI) Sistemas de E/S


31
SO
II
Formateo lógico de discos II

■ 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

Sistemas Operativos II (II-UJI) Sistemas de E/S


32
SO
II
Formateo lógico de discos II

■ 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

Sistemas Operativos II (II-UJI) Sistemas de E/S


33
SO
II
Formateo lógico de discos II

■ 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
se arranca el SO

Sistemas Operativos II (II-UJI) Sistemas de E/S


34
SO
II
Formateo lógico de discos II

■ Creación de la estructura lógica del SF:


◆ Estructura lógica de un SF con inodos:

Mapa de bits de Bloques de


Bloque de carga bloques libres inodos

Bloque con Mapa de bits de Bloques de datos:


información inodos  directorio
sobre el sistema  fichero
de ficheros  indirección
(superbloque)  libre

Sistemas Operativos II (II-UJI) Sistemas de E/S


35
SO
II
Formateo lógico de discos II

■ 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
del mismo

Sistemas Operativos II (II-UJI) Sistemas de E/S


36
SO
II
Recordando... Arranque de Linux II

■ Partes del arranque de Linux desde el disco duro de un PC:


◆ Cargador de la BIOS del PC
◆ Cargador LILO
◆ Núcleo
◆ Primer programa de usuario /sbin/init

Sistemas Operativos II (II-UJI) Sistemas de E/S


37
SO
II
Recordando... Arranque de Linux II

■ 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 0x000 0x1BE 0x1FE

MBR LILO Tabla de 0xAA55*


■ Cargador LILO: particiones

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

Sistemas Operativos II (II-UJI) Sistemas de E/S


38
SO
II
Tema 4. Sistemas de entrada/salida II

Í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


■ ...

Sistemas Operativos II (II-UJI) Sistemas de E/S


39
SO
II
Planificación de disco II

■ Uno de los objetivos del SO:


◆ Usar el HW de forma eficiente
Para discos ⇒ Accesos rápidos y mucho ancho de banda
bytes transferidos
■ Objetivo de la planificación del acceso a disco: tiempo de transferencia
◆ Minimizar el tiempo de posicionamiento
● Minimizar movimientos de cabezales

● Directamente proporcional a la distancia entre búsquedas

Σ
Tiempo de posicionamiento
Tiempo de acceso a disco = Tiempo de latencia
Tiempo de transferencia

Sistemas Operativos II (II-UJI) Sistemas de E/S


40
SO
II
Planificación de disco II

■ Algoritmos de planificación del acceso a disco:


◆ FCFS
◆ SSF
◆ SCAN
◆ C-SCAN
◆ LOOK
Variantes del algoritmo SCAN
◆ C-LOOK
◆ F-SCAN

Sistemas Operativos II (II-UJI) Sistemas de E/S


41
SO
II
FCFS II

■ Peticiones atendidas por orden de llegada

■ Planificación sencilla

■ Movimientos bruscos de cabezales

■ Tiempo de posicionamiento grande

Sistemas Operativos II (II-UJI) Sistemas de E/S


42
SO
II
FCFS II

Cola de peticiones = 98, 183, 37, 122, 14, 124, 65, 67


Cabezal en sector 53 (dirección n°pista creciente)
PISTAS 14 37 53 65 67 98 122 124 183 199

N° pistas desplazadas=(98-53)+(183-98)+(183-37)+(122-37)+(122-14)+(124-14)+(124-65)+(67-65)=641

Sistemas Operativos II (II-UJI) Sistemas de E/S


43
SO
II
SSF II

■ 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)

■ Puede causar inanición de algunas peticiones

Sistemas Operativos II (II-UJI) Sistemas de E/S


44
SO
II
SSF II

Cola de peticiones = 98, 183, 37, 122, 14, 124, 65, 67


Cabezal en sector 53 (dirección n°pista creciente)
PISTAS 14 37 53 65 67 98 122 124 183 199

N° pistas desplazadas = 226

Sistemas Operativos II (II-UJI) Sistemas de E/S


45
SO
II
SCAN II

■ 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

Sistemas Operativos II (II-UJI) Sistemas de E/S


46
SO
II
SCAN II

Cola de peticiones = 98, 183, 37, 122, 14, 124, 65, 67


Cabezal en sector 53 (dirección n°pista creciente)
PISTAS 14 37 53 65 67 98 122 124 183 199

N° pistas desplazadas = 331

Sistemas Operativos II (II-UJI) Sistemas de E/S


47
SO
II
C-SCAN II

■ 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

■ Se usa frecuentemente (UNIX, Linux, Windows)

Sistemas Operativos II (II-UJI) Sistemas de E/S


48
SO
II
C-SCAN II
Cola de peticiones = 98, 183, 37, 122, 14, 124, 65, 67
Cabezal en sector 53 (dirección n°pista creciente)
PISTAS 14 37 53 65 67 98 122 124 183 199

N°engañoso: Ir del último al primero se hace en


N° pistas desplazadas = 382 un único movimiento y tarda muy poco → 183

Sistemas Operativos II (II-UJI) Sistemas de E/S


49
SO
II
LOOK II

■ Igual que SCAN pero sin llegar a la última y primera pista para cambiar
dirección de cabezal
◆ Sólo llega hasta la petición con menor y mayor número de pista

Sistemas Operativos II (II-UJI) Sistemas de E/S


50
SO
II
LOOK II

Cola de peticiones = 98, 183, 37, 122, 14, 124, 65, 67


Cabezal en sector 53 (dirección n°pista creciente)
PISTAS 14 37 53 65 67 98 122 124 183 199

N° pistas desplazadas = 299

Sistemas Operativos II (II-UJI) Sistemas de E/S


51
SO
II
C-LOOK II

■ 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
menor número de pista

Sistemas Operativos II (II-UJI) Sistemas de E/S


52
SO
II
C-LOOK II

Cola de peticiones = 98, 183, 37, 122, 14, 124, 65, 67


Cabezal en sector 53 (dirección n°pista creciente)
PISTAS 14 37 53 65 67 98 122 124 183 199

N° pistas desplazadas = 222


N°engañoso → 153

Sistemas Operativos II (II-UJI) Sistemas de E/S


53
SO
II
F-SCAN II

■ 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
Se atenderán cuando la otra cola esté vacía

Sistemas Operativos II (II-UJI) Sistemas de E/S


54
SO
II
Tema 4. Sistemas de entrada/salida II

Í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


■ ...

Sistemas Operativos II (II-UJI) Sistemas de E/S


55
SO
II
Sistemas RAID II

■ 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
◆ Mejorar el tiempo de acceso a datos

Sistemas Operativos II (II-UJI) Sistemas de E/S


56
SO
II
RAID II

■ 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

vector

Sistemas Operativos II (II-UJI) Sistemas de E/S


57
SO
II
RAID II

■ 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

Disco Disco Disco Disco Disco


lógico físico 0 físico 1 físico 2 físico 3
banda 0 banda 0 banda 1 banda 2 banda 3
banda 1 banda 4 banda 5 banda 6 banda 7
banda 2 banda 8 banda 9 banda 10 banda 11

banda 3 banda 12 banda 13 banda 14 banda 15


banda 4

banda 5
SW de gestión
banda 6
del vector
banda 7

Sistemas Operativos II (II-UJI) Sistemas de E/S


58
SO
II
RAID II

■ 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:
X0 X1 X2

11100011 11101101 00001110


Discos de datos Disco de paridad

X2(i) = X0(i) + X1(i)

Si falla X1, por ejemplo, sumando X2(i) + X1(i) a ambos lados de la


ecuación se obtiene:

X1(i) = X2(i) + X0(i)

Sistemas Operativos II (II-UJI) Sistemas de E/S


59
SO
II
RAID II

■ 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


◆ Implementación SW costosa

Sistemas Operativos II (II-UJI) Sistemas de E/S


60
SO
II
RAID II

■ Niveles RAID:
◆ Siete niveles con diferentes arquitecturas de diseño
● Existen combinaciones de niveles
◆ Cada nivel cumple distintos propósitos
◆ No hay un nivel RAID perfecto para todos los usuarios

Sistemas Operativos II (II-UJI) Sistemas de E/S


61
SO
II
RAID II

■ Niveles RAID (cont.):


◆ RAID 0 (no redundante)

banda 0 banda 1 banda 2 banda 3

banda 4 banda 5 banda 6 banda 7


banda 8 banda 9 banda 10 banda 11

banda 12 banda 13 banda 14 banda 15

◆ RAID 1 (espejo)

banda 0 banda 1 banda 2 banda 3 banda 0 banda 1 banda 2 banda 3


banda 4 banda 5 banda 6 banda 7 banda 4 banda 5 banda 6 banda 7
banda 8 banda 9 banda 10 banda 11 banda 8 banda 9 banda 10 banda 11

banda 12 banda 13 banda 14 banda 15 banda 12 banda 13 banda 14 banda 15

Sistemas Operativos II (II-UJI) Sistemas de E/S


62
SO
II
RAID II

■ Niveles RAID (cont.):


◆ RAID 2 (redundancia mediante código de Hamming)

b0 b1 b2 b3 f4 (b) f1 (b) f2 (b)

◆ RAID 3 (redundancia mediante paridad)

b0 b1 b2 b3 P (b)

Sistemas Operativos II (II-UJI) Sistemas de E/S


63
SO
II
RAID II

■ Niveles RAID (cont.):


◆ RAID 4 (redundancia mediante paridad)

banda 0 banda 1 banda 2 banda 3 P(0-3)

banda 4 banda 5 banda 6 banda 7 P(4-7)


banda 8 banda 9 banda 10 banda 11 P(8-11)

banda 12 banda 13 banda 14 banda 15 P(12-15)

◆ RAID 5 (paridad por intercalación distribuida de bloques)

banda 0 banda 1 banda 2 banda 3 P(0-3)

banda 4 banda 5 banda 6 P(4-6) banda 7


banda 8 banda 9 P(7-9) banda 10 banda 11

banda 12 P(10-12) banda 13 banda 14 banda 15

Sistemas Operativos II (II-UJI) Sistemas de E/S


64
SO
II
RAID II

■ Niveles RAID (cont.):


◆ RAID 6 (redundancia dual)

banda 0 banda 1 banda 2 banda 3 P(0-3) Q(0-3)

banda 4 banda 5 banda 6 P(4-6) Q(4-6) banda 7


banda 8 banda 9 P(7-9) Q(7-9) banda 11 banda 11

banda 12 P(10-12) Q(10-12) banda 14 banda 15 banda 15

Sistemas Operativos II (II-UJI) Sistemas de E/S


65
SO
II
RAID II

■ 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

● Un error en uno de los discos implica la pérdida total de los datos

Sistemas Operativos II (II-UJI) Sistemas de E/S


66
SO
II
RAID II

■ 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
● Recuperación de datos sencilla

◆ Desventajas:
● Bastante caro (doble espacio del necesario)

● Lentitud en la escritura de datos (escritura en dos discos)

 Si alta tasa de solicitudes de escritura, igual rendimiento que RAID 0

Sistemas Operativos II (II-UJI) Sistemas de E/S


67
SO
II
RAID II

■ 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

● No existen implementaciones comerciales

Sistemas Operativos II (II-UJI) Sistemas de E/S


68
SO
II
RAID II

■ 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
◆ Ha de cumplirse 2p ≥ i+p+1

Sistemas Operativos II (II-UJI) Sistemas de E/S


69
SO
II
RAID II

■ 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

B7 B6 B5 B4 B3 B2 B1
● Construcción dato nuevo: D3 D2 D1 P2 D0 P1 P0

Sistemas Operativos II (II-UJI) Sistemas de E/S


70
SO
II
RAID II

■ 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
C2 C1 C0 FALLO C1 = P1 + D0 + D2 + D3
0 0 0 Ninguno C2 = P0 + D1 + D2 + D3
0 0 1 B1
0 1 0 B2
0 1 1 B3
1 0 0 B4
1 0 1 B5
1 1 0 B6
1 1 1 B7

● Corrección error: Complementar bit codificado en C2 C1 C0

Sistemas Operativos II (II-UJI) Sistemas de E/S


71
SO
II
RAID II

■ 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

Sistemas Operativos II (II-UJI) Sistemas de E/S


72
SO
II
RAID II

■ 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:
● Si se pierde el disco de paridad, se pierde toda la información redundante

● El disco de paridad puede ser un cuello de botella

● Velocidad de transferencia menor que en RAID 0-3

Sistemas Operativos II (II-UJI) Sistemas de E/S


73
SO
II
RAID II

■ 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

● Velocidad de transferencia menor que en RAID 0-3

Sistemas Operativos II (II-UJI) Sistemas de E/S


74
SO
II
RAID II

■ 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:
● Rendimiento bajo en escrituras

● Velocidad de transferencia menor que en RAID 0-3

Sistemas Operativos II (II-UJI) Sistemas de E/S


75
SO
II
Tema 4. Sistemas de entrada/salida II

Í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

Sistemas Operativos II (II-UJI) Sistemas de E/S


76
SO
II
Almacenamiento terciario II

■ 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 Velocidad
de acceso

Capacidad Registros 10-60 nsg.


Coste

Memoria
RAM
Almacenamiento 20-70 msg.
secundario
Almacenamiento 150-500 msg.
terciario

Sistemas Operativos II (II-UJI) Sistemas de E/S


77
SO
II
Almacenamiento terciario II

■ 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
DVD, DVD-R, DVD-RW

Sistemas Operativos II (II-UJI) Sistemas de E/S


78
SO
II
Almacenamiento terciario II

■ 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
razones económicas) y volver a cargar en disco de forma dinámica

Sistemas Operativos II (II-UJI) Sistemas de E/S


79
SO
II
Almacenamiento terciario II

■ 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

Copia glogal vs. Copia incremental

Sistemas Operativos II (II-UJI) Sistemas de E/S


80
SO
II
Tema 4. Sistemas de entrada/salida II

Í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

Sistemas Operativos II (II-UJI) Sistemas de E/S


81
SO
II
El reloj II

■ Varias acepciones:
◆ Reloj del procesador
◆ Reloj del sistema (mantiene fecha y hora)
Vinculación con SO
◆ 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

Sistemas Operativos II (II-UJI) Sistemas de E/S


82
SO
II
HW del reloj II

■ 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
◆ Consultado por SO en su arranque

Sistemas Operativos II (II-UJI) Sistemas de E/S


83
SO
II
SW del reloj II

■ 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

Sistemas Operativos II (II-UJI) Sistemas de E/S


84
SO
II
El reloj en Linux II

■ 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
● Al finalizar la rutina de servicio ejecución de todas las rutinas “bottom
halves” pendientes

Sistemas Operativos II (II-UJI) Sistemas de E/S


85
SO
II
El reloj en Linux II

■ 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
inmediatamente

Sistemas Operativos II (II-UJI) Sistemas de E/S


86
SO
II
El reloj en Linux II

■ ¿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


● Son operaciones atómicas

Sistemas Operativos II (II-UJI) Sistemas de E/S


87
SO
II
El reloj en Linux II

El manejador de reloj realiza: La rutina BH del manejador de reloj realiza:


void do_timer(...){ void timer_bh(void) {
jiffies++; update_times();
lost_ticks++; run_old_timers();
mark_bh(TIMER_BH); run_timer_list();
if (¡user_mode(regs)) }
lost_ticks_system++;
... Activa TIMER_BH en mapa void update_times(){
de bits de BH p->utime += user;
}
p->stime += system;
jiffies Tiempo (tics) que lleva el sistema en marcha p->counter -= ticks;
lost_ticks Num. veces que se ha ejecutado el manejador de if (p->counter < 0){
reloj desde la última ejecución de su rutina BH p->counter = 0;
lost_ticks_systemlost_ticks en modo supervisor need_resched =1;
user lost_ticks en modo usuario }
system lost_ticks en modo supervisor Invocación del
ticks Relacionado con lost_ticks planificador

Sistemas Operativos II (II-UJI) Sistemas de E/S


88
SO
II
Funciones del manejador de reloj II

■ Mantenimiento de fecha y hora


■ Gestión de temporizadores
■ Contabilidad y estadísticas
■ Soporte para la planificación de procesos y recursos

Sistemas Operativos II (II-UJI) Sistemas de E/S


89
SO
II
Mantenimiento de fecha y hora II

■ 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)


● Las bibliotecas se encargan de conversión a horario local

Sistemas Operativos II (II-UJI) Sistemas de E/S


90
SO
II
Gestión de temporizadores II

■ ¿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

cumplir

■ Gestión de temporizadores:
◆ Puede consumir bastante tiempo
● Típicamente realizada fuera de rutina de interrupción

Sistemas Operativos II (II-UJI) Sistemas de E/S


91
SO
II
Contabilidad y estadísticas II

■ 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

Sistemas Operativos II (II-UJI) Sistemas de E/S


92
SO
II
Soporte para la planificiación II

■ 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:
● Pueden requerir recalcular periódicamente prioridad

Sistemas Operativos II (II-UJI) Sistemas de E/S


93
SO
II
Tema 4. Sistemas de entrada/salida II

Í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

Sistemas Operativos II (II-UJI) Sistemas de E/S


94
Recordando... Diagrama de bloques del SO
II
núcleo de Linux II
Librerías
Modo usuario
trap trap Modo supervisor
Interfaz con las llamadas al sistema
open, read, stat, ... fork, wait, exec, ...

Gestor de ficheros
Comunicación
entre procesos

Sistema de E/S Caché de buffers


de bloques Gestor de
Planificador
procesos
Dispositivos por Disp. por
carácteres bloques Gestor de
Manejadores de Drivers de dispositivos memoria
dispositivos

Control del HW
Controladores
de dispositivos
HW

Sistemas Operativos II (II-UJI) Sistemas de E/S


95
SO
II
Tema 4. Sistemas de entrada/salida II

Í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

Sistemas Operativos II (II-UJI) Sistemas de E/S


96
SO
II
E/S en Windows NT/2K II

■ Módulos básicos de E/S:

Gestor de E/S
Gestor de
caché

Controladores
del SF

Controladores
del red

Controladores de
dispositivos HW

Sistemas Operativos II (II-UJI) Sistemas de E/S


97
SO
II
E/S en Windows NT/2K II

■ 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
 Se puede usar con cualquier conjunto de varios discos

Sistemas Operativos II (II-UJI) Sistemas de E/S


98
SO
II
Tema 4. Sistemas de entrada/salida II

Í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

Sistemas Operativos II (II-UJI) Sistemas de E/S


99
SO
II
Servicios de E/S en POSIX II

■ 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:
◆ Acceso a dispositivos a través de interfaz de archivos

Sistemas Operativos II (II-UJI) Sistemas de E/S


100
SO
II
Servicios de E/S en POSIX II

■ 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:



localtime

Sistemas Operativos II (II-UJI) Sistemas de E/S


101
SO
II
Servicios de E/S en POSIX II

■ Ejemplo:
#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);
}

Sistemas Operativos II (II-UJI) Sistemas de E/S


102
SO
II
Servicios de E/S en POSIX II

■ 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

Sistemas Operativos II (II-UJI) Sistemas de E/S


103
SO
II
Servicios de E/S en POSIX II

■ 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
● Ver en tema 3 “Servicios POSIX sobre alarmas”

Sistemas Operativos II (II-UJI) Sistemas de E/S


104
SO
II
Servicios de E/S en POSIX II

■ 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
Se realizan dos llamadas y se calcula la diferencia

Sistemas Operativos II (II-UJI) Sistemas de E/S


105
SO
II
Servicios de E/S en POSIX II

■ Ejemplo:
#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);
}

Sistemas Operativos II (II-UJI) Sistemas de E/S


106
SO
II
Servicios de E/S en POSIX II

■ 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
Tomarán unos valores u otros
● No definida en POSIX según el tipo de fichero

Sistemas Operativos II (II-UJI) Sistemas de E/S


107
SO
II
Ejercicios II

■ 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

Sistemas Operativos II (II-UJI) Sistemas de E/S


108
SO
II
Ejercicios II

■ Ejercicio 1 (solución):
(a) FCFS (b) SSF
Siguiente 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
184 146 184 24
498 248

Sistemas Operativos II (II-UJI) Sistemas de E/S


109
SO
II
Ejercicios II

■ Ejercicio 1 (solución):
(c) LOOK (d) C-LOOK
Siguiente 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

Sistemas Operativos II (II-UJI) Sistemas de E/S


110

También podría gustarte