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