Download Entrada y Salida
Document related concepts
no text concepts found
Transcript
Entrada y Salida
Los problemas
Los procesos hacen un uso extensivo de E/S
Cuanta mayor concurrencia de E/S, mayor
aprovechamiento del sistema
Cada dispositivo de E/S tiene su propia idiosincrasia
Funcionalidad diversa
Almacenamiento (Discos)
Interfaz de usuario (Teclado, ratón)
Comunicaciones (Tarjetas de red, módem)
Etc.
Modo de acceder a ellos
Diferentes grados de autonomía e inteligencia
Los dispositivos necesitan ayuda del núcleo
Diferentes velocidades
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 2
1
Diferentes velocidades
Velocidad de dispositivos de E/S
Teclado
Ratón serie
Módem 56k
Floppy 1.44Mb
Ethernet
Tarjeta de memoria SD
Fast Ethernet
DVD-ROM
Disco duro
Gigabit Ethernet
Tarjeta de video 3D PCIe
1E+00
1E+01
1E+02
1E+03
1E+04
1E+05
1E+06
1E+07
1E+08
1E+09
1E+10
Velocidad de transferencia (bytes/s)
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 3
Caso de estudio: PC compatible
La plataforma PC tiene una historia de 25 años
IBM PC en 1981
La “arquitectura PC” evoluciona en función de las
necesidades y novedades tecnológicas
Plataforma original:
HW: CPU Intel 8086/8088 y otros componentes estándar
SW:
Principalmente por evolución de CPU y dispositivos de E/S
BIOS patentada por IBM
Sistema operativo DOS de Microsoft
Características de E/S:
Dispositivos básicos controlados por el chip i8255 o
conectados directamente al bus de procesador
Expansión mediante bus PC/ISA
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 4
2
Arquitectura PC
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 5
Buses
Se utilizan para interconectar dos o más elementos del computador
Buses compartidos (shared bus): ISA, PCI, SCSI, P-ATA…
Buses punto a punto: PCI-Express, S-ATA, USB…
Dentro de un computador existen jerarquías de diferentes buses. Los
elementos que interconectan dos buses se denominan puentes (bridges)
Característica principal de un bus: capacidad de transportar información.
Depende sobre todo de:
Su velocidad de reloj (Mhz)
El número de líneas (ancho del bus)
Otras características:
Capacidad de compartir interrupciones
Arbitraje del bus (master-slave)
Según su uso:
Bus de Procesador/Sistema/Front Side Bus (FSB): Conecta la CPU al
resto del sistema
Buses para interconexión de periféricos
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 6
3
Evolución (i386/i486)
Problemas: Desajuste entre velocidad de la CPU y de la DRAM.
Saturación en el bus de sistema (acceso a memoria y E/S)
Solución: Utilización de cachés y desacoplo entre bus de
procesador y bus de sistema
Problema: Desajuste entre velocidad de la CPU y los buses de
expansión. Se necesita mejorar los buses de E/S
Bus frontal de la CPU: hasta 33Mhz/32bits = 132Mb/s
ISA (AT): 16 bits, 8Mhz, 2 ciclos por transferencia = 8Mb/s
Solución: Buses mejorados: EISA y MCA
Compartidos entre VGA, discos duros, ethernet, etc.
MCA (Microchannel): Propietario de IBM, 32 bits, 10Mhz
EISA (Enhanced ISA): “estándar”, 32 bits, 8 Mhz
Mejoras insuficientes, caros. No se imponen.
Solución: Idea “nueva”, usar el “bus local” de la CPU para
aquellos dispositivos muy rápidos (VGA, IDE, Ethernet)
Estándar VL-Bus (VESA Local Bus)
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 7
Cachés y VL-Bus
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 8
4
Buses locales
VL-Bus:
Ventajas
Desventajas
Alta velocidad: 33Mhz/32bits
Sencillez en la implementación (simple duplicación del bus de
sistema)
Totalmente ligado al bus de sistema del i486. Imposible su
uso en otras arquitecturas o en otras CPUs x86 con diferente
protocolo de bus (p.e. Pentium)
Carga del bus de sistema. Máximo 3 ranuras en condiciones
muy estrictas; normalmente sólo 1 o 2 dispositivos.
Intel introduce el bus local PCI
Desacoplado del bus de sistema pero igual de rápido
(inicialmente, i486)
Independencia de la plataforma: Aplicable a i486, Pentium…
Elemento fundamental: PCI-bridge
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 9
PCI Local bus
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 10
5
PCI Local Bus
PCI:
Peripheral Component Interconnect (1993)
Implementación típica: 33Mhz, 32 bits (132Mb/s)
Existen especificaciones hasta 66Mhz y 64 bits (528Mb/s) pero son
infrecuentes
Interrupciones compartidas
Plug and Play
5 conectores
Se pueden encadenar buses PCI jerárquicamente mediante PCI
brigdes
Variantes:
Bus avanzado: PCI-X (1999) (no es PCI-Express)
Periféricos de alto rendimiento (Gigabit Ethernet, SCSI)
Hasta 133Mhz y 64 bits. Poco extendido
PCI-X 266 (o DDR): 266Mhz
Bus para portátiles: Cardbus
PCI con formato PCMCIA
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 11
North/South Bridge
Limitación de la arquitectura anterior: el FSB (host bus)
soporta gran tráfico
Intel Pentium: Host bus de 64 bits/66Mhz
Gran tráfico desde/hacia la caché L2 sobre el host bus.
Idea: desacoplar la RAM del host bus
Pasa por él todo el tráfico de periféricos a RAM
Pasa por él todo el tráfico de CPU a la caché L2 y la RAM
Independencia del tipo de RAM, ancho, velocidad, etc.
DMA no interfiere en el host bus
North Bridge: “Guardia de tráfico” de los datos
South Bridge: Agregador de periféricos y buses varios
IDE
Bus ISA
Buses legacy (serie, paralelo, teclado, ratón…)
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 12
6
Arquitectura Pentium
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 13
DIB y AGP
Limitaciones de la arquitectura empleada en el Pentium:
Los gráficos comienzan a requerir enormes anchos de
banda: Saturación del bus PCI, que se comparte con otros
periféricos rápidos (Discos, Ethernet…)
El FSB se comparte para lecturas de la caché L2 y resto de
tráfico (RAM, E/S…)
Soluciones:
AGP (Advanced Graphics Port)
DIB (Dual Independent Bus)
Bus punto a punto dedicado para el adaptador gráfico
AGP 1X: 66Mhz, 32 bits. Basado en PCI. Modos especiales
de transferencia (2x, 4x, 8x) para ciertos datos.
La caché sigue conectada al FSB pero transfiere los datos a la
CPU vía un bus trasero (backside bus) (Pentium II)
Tónica general: “Cuantos más buses, más ancho de
banda total en el sistema”
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 14
7
North bridge y South bridge
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 15
Tendencias posteriores
Proliferación de buses: FSB, AGP, memoria, PCI, etc.
Conexión entre North Bridge y South Bridge mediante buses
dedicados de alta velocidad (p.e. HyperTransport). ¿Por qué?
Bus PCI se satura con dispositivos de alta velocidad: Gigabit
Ethernet, dispositivos ATA, etc.
Entre el South Bridge y el North Bridge viaja todo el tráfico de
todos los periféricos conectados al South Bridge
Solución: Usar otro bus más rápido dedicado de interconexión.
Bus PCI relegado a bus legacy, soportado por el South Bridge.
Tendencia hacia los buses punto a punto. De shared bus a shared
switch (p.e. PCI Express)
Conexiones dedicadas para dispositivos de alta velocidad
Tendencia hacia buses más estrechos pero de más frecuencia.
Ejemplos:
HyperTransport: 16 bits, 1Ghz (vs. PCI, 32 bits y 66Mhz)
Serial ATA: 1 bit, 1.5Ghz (vs. Parallel-ATA, 16 bits 66Mhz)
PCI Express: “lanes” de 1 bit en cada sentido, 2.5Ghz.
Integración del controlador de memoria en la CPU: AMD Hammer
(Athlon 64)
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 16
8
Arquitectura actual del PC (2006)
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 17
PCI Express
Motivos para sustituir PCI
Bus compartido
Ancho de banda actualmente insuficiente
Para aumentar prestaciones, o se aumenta el ancho del bus o se
aumenta la frecuencia. Ambos plantean problemas técnicos
Conectores grandes, buses muy anchos
PCI Express (PCIe): Sustituto de PCI
Topología punto a punto con un switch compartido, en lugar de
bus compartido. Cada dispositivo tiene un “link” dedicado.
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 18
9
PCI Express
Características
Enfoque: Bus serie de alta frecuencia
Reducción del “pin count” y simplificación de la transmisión
“La potencia de proceso es más barata que el ancho de bus”
Concepto de “lane” (carril) PCIe
Cada lane es capaz de transmitir una señal serie de 1 bit en ambos
sentidos de cada vez (full duplex) gracias a que tiene un canal de
transmisión y otro de recepción
Codificación 8B/10B (10 bits por byte)
Comparativamente, PCI tiene una capacidad total de aproximadamente
132Mb/s (32bits x 33Mhz)
Un link se puede componer de uno o más lanes agregados.
Las tránsmisiones se fragmentan y reensamblan en los extremos lane
Un lane tiene una capacidad de 250 Mb/s en cada sentido
Forma fácil de aumentar el ancho de banda
Un link con un lane se denomina x1. PCIe soporta links x1, x2, x4, x8,
x12, x16 y x32. Actualmente se usan de x1, x4, x8 y x16.
Compatible con PCI
El switch PCIe se encarga de traducir los accesos a memoria en las
peticiones a los dispositivos correspondientes y de
fragmentar/reensamblar los datos
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 19
PCI Express
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 20
10
Placas madre
Es la principal placa de circuito en el PC e incluye;
Procesador
Memoria RAM
Conectores de conexión de periféricos
Ranuras de expansión de diversos tipos de bus: ISA, PCI, PCIe,
AGP…
Conectores para diversos buses de periféricos: USB, IDE, Serie…
La ROM BIOS (Basic Input/Output System)
Software básico del sistema
Rutinas de autochequeo en el inicio (POST, Power-On Self-Test)
Configuración básica de dispositivos
Rutinas de apoyo para la carga del S.O. y acceso básico a periféricos
(BIOS)
Memoria RAM CMOS
Alimentada por una pila, guarda parámetros de configuración del
sistema: Dispositivo de arranque, parámetros de CPU y RAM, etc.
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 21
Placa Madre
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 22
11
Periféricos
Diversidad de dispositivos con diferentes necesidades y
problemáticas
Tipo (Almacenamiento, comunicaciones, interfaz…)
Dispositivos internos o externos
Necesidad o no de conexión y desconexión en caliente
Necesidades de ancho de banda diversas
Normalmente no se conectan directamente a un bus del
sistema
Escasez de líneas de interrupción
Complejidad
Escasez de ranuras de expansión
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 23
Periféricos
Lo normal es emplear un bus específico para el periférico en
cuestión, gestionado por un controlador hardware que a su vez se
conecta a un bus de sistema como PCI, ISA, etc.
Se definen características físicas (cable, tensiones, señales) y de
protocolo (comandos, paquetes de datos, etc.)
Ejemplo: Protocolo IDE/ATA
Originalmente (PC/AT):
Dispositivos externos
Bus serie RS-232 (máximo 115Kbps). 2 puertos típicamente.
Bus paralelo IEEE1284. Máximo 500Kb/s aprox. 1 puerto.
Conector de teclado específico.
Dispositivos internos
Conexión de floppy
Conexión de disco duro
Resto de dispositivos conectados al bus ISA (Video, red)
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 24
12
Periféricos internos
Buses internos
Típicamente para dispositivos de almacenamiento como discos
duros o unidades ópticas
Bus IDE/ATA (Parallel ATA, o PATA)
Conexión con cable de cinta (40-80 hilos), 16bits, hasta 66Mhz
(133Mb/s)
Cada bus soporta hasta 2 dispositivos denominados maestro y
esclavo.
Bus SCSI
Físicamente similar a ATA, pero el controlador hardware tiene
mayor “inteligencia”
Múltiples variantes
SCSI, FastSCSI, UltraSCSI, UltraWide SCSI, Ultra2, Ultra160,
Ultra320… hasta 320Mb/s
Según versión, hasta 16 dispositivos teóricos en cada bus.
Mucho más sofisticado y caro.
Fibre-Channel: SCSI sobre fibra óptica
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 25
Periféricos internos
Serial ATA (SATA)
Conexión punto a punto, serie, 1.5Ghz (150Mb/s efectivos)
SATA/300 (SATA II) a 3.0Ghz
Incorpora el requisito de soportar NQC (Native Command
Queueing)
NCQ: El controlador puede reordenar los comandos
pendientes de atender para mejorar la eficiencia. Similar al
TQC de SCSI
Existe una versión con conectores externos (eSATA)
Factor importante: Sencillez y comodidad de instalación
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 26
13
Periféricos externos
USB (Universal Serial Bus)
Definido en 1995 por un consorcio liderado por Intel como
alternativa más sencilla y barata a FireWire
Diseño asimétrico: Un nodo servidor (host) y múltiples
dispositivos, conectados en forma de árbol mediante
concentradores (hubs)
Hasta 127 dispositivos por bus, incluyendo los hubs
Ofrece alimentación de 5V (hasta cierto límite)
Conexión en caliente
USB 1.1 (original)
Dos velocidades: Low Speed (1.5Mbps) y Full Speed (12Mbps)
Adecuado para periféricos de entrada (teclados, ratones) y
algunos dispositivos de baja velocidad, como módems o
impresoras
USB 2.0
Añade Hi-Speed (480Mbps)
Adecuado para dispositivos de almacenamiento (Discos duros,
DVD) y aplicaciones de video, así como redes de mayor
velocidad (IEEE 802.11g, 54Mbps)
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 27
Periféricos externos
El bus USB suele estar proporcionado por el South
Bridge u otro controlador conectado al bus PCI
En un PC actual existen conectores externos e internos
(típicamente 8-10)
Dos tipos de conectores, A (para hosts y hubs) y B (para
periféricos) con versiones “mini” para ambos.
El futuro (?): Wireless USB (WUSB)
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 28
14
Periféricos Externos
FireWire (IEEE 1394)
Desarrolado por Apple (1995) como alternativa serie a SCSI
Pensado para dispositivos de almacenamiento y cámaras digitales de
video
No necesita un host: Los periféricos conectados pueden comunicarse
entre ellos directamente
Hasta 63 dispositivos
Más rápido (400Mbps), con mayor capacidad de alimentación (hasta
45W por puerto, 30V), mejor velocidad sostenida, más adecuado para
tiempo real
Permite la creación de redes, soporta varios hosts por bus
En general, mayor “inteligencia” y características mucho más potentes
que USB (al estar basado SCSI). Más complejo de implementar y más
caro que USB
Versiones de 800Mbps y hasta 3.2Gbps sobre fibra óptica
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 29
Interfaz con los controladores
La interacción con dispositivos de E/S incluye varios
aspectos a estudiar
Interacción con los controladores de dispositivos
Instrucciones específicas de E/S
Espacio de E/S proyectado en memoria
Mecanismos de interrupciones
Muestreo (polling)
Acceso directo a memoria (ADM)
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 30
15
Acceso directo a memoria
Objetivo: solapar operaciones de CPU y E/S
El ADM es un elemento básico para realizar de forma
eficiente la multiprogramación
Programación del ADM:
Número de datos a transferir
Puntero a la zona de memoria de destino
Consideraciones:
Necesidad de buffers en los controladores
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 31
Acceso Directo a Memoria
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 32
16
Gestión de la E/S
El sistema operativo es el vínculo entre la aplicación de
usuario y el hardware de E/S
Objetivos del subsistema de E/S del S.O.:
Ocultar el HW a las aplicaciones
Presentar una interfaz uniforme de acceso
Independencia de dispositivo
sort < entrada > salida
Manejo de errores
Gestión de distintos tipos de dispositivos
Compartibles o dedicados
De modo caracter o de modo bloque
De acceso secuencial o aleatorio
Etc…
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 33
Cómo alcanzar estos objetivos
“Idea nueva”: estructuración en niveles
Manejador de interrupciones
Manejadores de dispositivos (drivers)
Programas de S.O. independientes del dispositivo
Software en espacio de de usuario
Manejadores de interrupciones
Las interrupciones se deben ocultar
El núcleo se debe encargar de su atención
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 34
17
Esquema global
Respuesta de E/S
Petición de E/S
Procesos de usuario
SW independiente de dispositivo
Llamada de E/S; formateo de E/S; spooling
Asignación de nombres, protección, bloqueo,
buffering, asignación de dispositivos
Manejadores de dispositivo
Asignación de valores a los registros de
dispositivo, comprobación del estado
Manejadores de interrupciones
Reactivación del manejador cuando se
completa la E/S
Realización de la E/S
Hardware
Entrada y Salida 35
© 1999-2006 S2P, OGP & IGT
Manejadores de dispositivos
Contienen el código dependiente del dispositivo
Operaciones inmediatas o que requieren espera
Interrupción al finalizar al E/S
Un manejador puede tener capacidad de gestionar varias
E/S en curso
Mantiene una cola de solicitudes por cada dispositivo
controlado
Dispositivo: unidad de disco 1
Estado: libre
Dispositivo: unidad de disco 2
Estado: ocupado
Dispositivo: impresora
Estado: ocupada
Operación: lectura
Archivo: datos.txt
Operación: escritura
Archivo: bal.mp3
Archivo: trp.ps
Dispositivo: teclado
Estado: libre
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 36
18
E/S independiente de dispositivo
La frontera de este nivel con el anterior es difusa
Funciones:
Ofrecer una interfaz uniforme a los procesos de usuario
Asignar nombres a los dispositivos
Proteger los dispositivos
Ofrecer un tamaño de bloque independiente de los dispositivos
Almacenar los datos temporales en las transferencias de E/S
Gestionar la asignación del espacio en dispositivos de bloques
Reservar y liberar dispositivos dedicados
Informar de los posibles errores
Un aspecto muy importante en un SS.OO. es la asignación de
nombres a los archivos y dispositivos y su protección
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 37
E/S en el espacio de usuario
Procedimientos de biblioteca:
Forman parte del del software de E/S en espacio de
usuario.
Ejemplo:
printf ("Solucion = %d \n"), dato);
Ejemplo: La biblioteca de funciones POSIX del S.O.
Gestión de E/S por parte de procesos de sistema
Ejemplo: Demonio de gestión del sistema de spooling:
Recibe peticiones de uso de un recurso por parte de los
procesos de usuario (p.e. una impresora)
Gestiona el uso del recurso a alto nivel (p.e. una cola de
impresión)
Así, evita que los usuarios monopolicen el uso de los
dispositivos de E/S
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 38
19
Spooling
Programa
spooler
Programa
Programa
Driver de Driver de
impresora impresora
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 39
Ejemplo: Dispositivo sencillo bajo Linux
Vamos a ver a continuación un ejemplo con un dispositivo
básico, en el S.O. Linux
Características del dispositivo
Un único puerto de E/S en la dirección 0x378
Es capaz de generar la interrupción 5
El manejador debe incluir:
Funciones para tratar con el dispositivo: func_leer() y
func_escribir()
Estas funciones harán in() y out() al puerto entre otras
cosas
Se pueden especificar muchas más funciones. Depende de
las necesidades y complejidad del dispositivo manejado
Manejador de interrupción: maneja_int()
¿Cómo se incorpora todo esto al S.O. y cómo se pone a
disposición del usuario?
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 40
20
Manejadores en Linux
En la inicialización del manejador, éste debe indicar a
Linux:
Qué rango de puertos de E/S necesita usar
Cuáles son las funciones básicas de operación que el
manejador ofrece
Qué major number del sistema quiere solicitar el manejador
El major number y el minor number son números que sirven
para identificar a posteriori un dispositivo dentro del sistema
Existe una tabla en la que cada tipo de dispositivo tiene unos
números estándar
Para nuestro caso usaremos el número 55 de forma arbitraria
Además, si el manejador lo necesita debe registrar el
manejador de interrupción para que sea ejecutado
cuando ésta se genere
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 41
Manejadores en Linux
Reservar los puertos
request_region( 0x378, 0, “midispositivo”);
Registrar las funciones
Las funciones se le indican al núcleo mediante una estructura estándar
que contiene punteros a las funciones implementadas o NULL si no lo
están
struct file_operations misfunciones = {
NULL,
/* lseek */
func_leer,
func_escribir,
NULL,
/* readdir */
NULL,
/* poll */
NULL,
/* ioctl */
NULL,
/* mmap */
NULL,
/* open */
NULL,
/* flush */
NULL,
/* release (close) */
[ ... Otras funciones ... ]
};
El major number (55) se indica en el registro de las funciones
register_chrdev( 55, “midispositivo”, &misfunciones);
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 42
21
Manejadores en Linux
Registrar el manejador de interrupción
request_irq( 5, maneja_int, misflags, “midispositivo”, NULL);
¿Cómo puede una aplicación de usuario acceder al dispositivo?
El sistema operativo tiene asociado internamente un major
number
Se asocia un nombre dentro del sistema de archivos a dicho
major number
Se genera un archivo de tipo “dispositivo”
user@host$ mknod /dev/nuevodispositivo c 55 0
A partir de este momento, el “archivo” creado da acceso al
dispositivo y se puede usar como cualquier otro archivo
Ejemplo:
La aplicación de usuario abre el archivo con open() y escribe
con la llamada al sistema write()
El sistema operativo vé que es un archivo de tipo “dispositivo”.
Cuando se abre o se escribe sobre él, mira el major y minor
number
Finalmente, con el major y minor number localiza y llama a las
funciones que registró el manejador (p.e. func_escribir() )
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 43
Ejemplo: Gestión de disco
Veremos a continuación un ejemplo de los diferentes
elementos del subsistema de E/S utilizando el disco
rígido como ejemplo:
Problemática de gestión del hardware
Manejador de dispositivo
Gestión lógica del espacio en el dispositivo
Planificación de la E/S
Gestión de errores
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 44
22
Detalles del hardware de disco
El disco viene dividido en sectores
de 512 bytes
Se referencian mediante
cordenadas:
Pista, cabeza, sector (CHS)
Tiempos de acceso:
T. posicionamiento
T. latencia
T. transferencia
¿Cómo optimizar?
En los discos modernos la
estructura interna del disco es
transparente y los sectores se
referencian mediante un índice
(LBA, Logical Block Addressing)
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 45
Manejador de disco
Función: Leer y escribir sectores del disco
Procedimientos básicos:
Inicializar el DMA
Arrancar el motor (en el caso de disquetes)
Mover las cabezas al lugar adecuado (mediante un
comando a la controladora de disco)
Leer o escribir los datos
La finalización de la operación la indicará el controlador
mediante interrupción
Detener el motor (en los disquetes)
Las operaciones a realizar dependerán del grado de
inteligencia e independencia de la controladora de disco
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 46
23
Particiones en el PC
Resuelto el acceso a un sector, es necesario organizar el
espacio para su uso
Organización lógica del disco en particiones
MBR
Código de arranque
Tabla de particiones
Sector de boot
Sector de boot
Sector de boot
Sector de boot
Partición activa
MBR
Partición 1
Partición 2
Partición lógica 1
Partición 3
© 1999-2006 S2P, OGP & IGT
Partición lógica 4
Partición 4 (extendida)
Entrada y Salida 47
Particiones en el PC
Master Boot Record (primer sector)
Bytes 1-446: código de arranque
Bytes 447-510: tabla de particiones (4 entradas)
Bytes 511-512: número mágico AA55
El resto de sectores pueden estar:
Sin utilizar
En una partición
En espacio libre que puede ser asignado a nuevas
particiones
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 48
24
Particiones en el PC
En el MBR sólo se puede especificar hasta 4 particiones primarias
Cada entrada de la tabla de particiones incluye:
Tipo de partición (Linux, NTFS, HURD, etc.)
Etiqueta de “bootable” o no
Posición inicial y final en el disco
Con objeto de permitir un mayor número de particiones se introduce
un tipo especial denominada “partición extendida”
La partición extendida puede tener hasta cuatro particiones lógicas
La partición extendida puede contener particiones extendidas, que
contengan particiones extendidas y así sucesivamente
La partición extendida puede ocupar cuarquier posición. No es
necesario que sea la última
En Linux cada partición en el disco duro maestro del primer canal de
tipo IDE se representa como /dev/hda1, /dev/hda2, etc.
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 49
Planificación de la E/S
En ocasiones, es posible que ocurran más peticiones de
E/S hacia un dispositivo de las que es posible atender
Las peticiones pendientes típicamente se pondrán en una
cola a la espera de ser atendidas
Por ejemplo, peticiones de lectura o escritura de un sector
de disco
El sistema operativo debe planificar estas peticiones con
el objetivo de obtener el mejor rendimiento posible
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 50
25
Planificación de disco FCFS
Es la forma más sencilla de planificar
FCFS es aceptable con carga ligera
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 51
Sortest Seek Time First
Problemas:
Posible inanición de solicitudes
Se discrimina a las pistas externas
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 52
26
SCAN (algoritmo del ascensor)
Una variante del SCAN es el C-SCAN el cual proporciona
un tiempo de espera más uniforme
En la actualidad, es la propia controladora de disco
hardware la que optimiza las solicitudes de disco (p.e.
NCQ en Serial ATA o TCQ en SCSI)
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 53
Posibles errores en la gestión de discos
El sistema operativo debe estar preparado para tratar los
errores que se puedan producir en la E/S de disco
De programación (p.e. sector no existente)
Transitorios (polvo en las cabezas)
Permanentes (daños físicos)
De búsqueda (pido leer el cilindro 6 y la cabeza se va al 7)
Del controlador
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 54
27
Ejemplo: Relojes
Se emplean en un sistema con múltiples objetivos, por
ejemplo:
Mantener la fecha y la hora
Apoyar al S.O. para impedir que un proceso se adueñe del
procesador interrumpiendo periodicamente
Etc.
Hardware asociado al reloj:
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 55
Tipos de relojes
Reloj programable (timer):
Modos de funcionamiento:
Modo “un pulso”
Modo de onda cuadrada
Reloj en tiempo real (RTC)
Almacena el valor del tiempo actual
El hardware del reloj genera interrupciones regularmente
El resto lo hace el manejador
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 56
28
Funciones asociadas del S.O.
Evitar que los procesos monopolicen la CPU
Contabilidad del uso del procesador
El reloj interrumpe cada cierto tiempo. En ese momento el
S.O. toma el control y planifica si es necesario
El S.O. actualiza contadores cada vez que ocurre una
interrupción
Avisar de eventos solicitados por el resto de los procesos
Monitorización del sistema (perfiles de ejecución y
estadísticas)
Mantener actualizadas la fecha y la hora
Llamadas soportadas por los dispositivos de tipo reloj:
PonAlarma, PonerTiempo, ObtenerTiempo, Tick
© 1999-2006 S2P, OGP & IGT
Entrada y Salida 57
29