Gestión de E/S Contenidos Categorías de dispositivos de entrada ...
Gestión de E/S Contenidos Categorías de dispositivos de entrada ...
Gestión de E/S Contenidos Categorías de dispositivos de entrada ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Contenidos</strong><br />
<strong>Gestión</strong> <strong>de</strong> E/S<br />
• Dispositivos <strong>de</strong> E/S<br />
• Organización <strong>de</strong> las funciones <strong>de</strong> E/S<br />
• Almacenamiento intermedio <strong>de</strong> la E/S<br />
Sección Stallings: 11.1, 11.2, 11.4<br />
2<br />
<strong>Categorías</strong> <strong>de</strong> <strong>dispositivos</strong> <strong>de</strong><br />
<strong>entrada</strong>/salida<br />
• Dispositivos legibles por los humanos:<br />
– Apropiados para la comunicación con el usuario<br />
– Ejs: impresora, terminales <strong>de</strong> ví<strong>de</strong>o (pantalla, teclado),<br />
etc.<br />
• Dispositivos legibles por la máquina:<br />
– A<strong>de</strong>cuados para comunicarse con equipos electrónicos<br />
– Ejs: Discos, unida<strong>de</strong>s <strong>de</strong> cinta, sensores, controladores,<br />
etc.<br />
• Dispositivos <strong>de</strong> comunicaciones:<br />
– Apropiados para comunicarse con <strong>dispositivos</strong> lejanos<br />
– Ejs: adaptadores <strong>de</strong> líneas digitales, mó<strong>de</strong>m<br />
3<br />
Diferencias entre las clases <strong>de</strong><br />
<strong>dispositivos</strong> <strong>de</strong> E/S<br />
• Velocidad <strong>de</strong> los datos:<br />
– Pue<strong>de</strong> haber una diferencia <strong>de</strong> varios ór<strong>de</strong>nes<br />
<strong>de</strong> magnitud en las velocida<strong>de</strong>s <strong>de</strong> transmisión<br />
<strong>de</strong> datos.<br />
– (ver Figura 11.1.)<br />
4<br />
Diferencias entre las clases <strong>de</strong><br />
<strong>dispositivos</strong> <strong>de</strong> E/S<br />
• Aplicaciones:<br />
– El Sw. y políticas <strong>de</strong>l SO <strong>de</strong>pen<strong>de</strong>rán <strong>de</strong> la<br />
utilidad <strong>de</strong>l dispositivo:<br />
• Disco que almacena archivos necesita el soporte <strong>de</strong><br />
un Sw <strong>de</strong> gestión <strong>de</strong> archivos<br />
• Disco usado como almacén <strong>de</strong> páginas <strong>de</strong> un<br />
sistema <strong>de</strong> memoria virtual necesita el soporte <strong>de</strong><br />
un Sw y <strong>de</strong> un Hw especial<br />
• Un terminal usado por el administrador <strong>de</strong>l sistema<br />
pue<strong>de</strong> necesitar tener prioridad mayor y distinto<br />
nivel <strong>de</strong> privilegio<br />
5<br />
Diferencias entre las clases <strong>de</strong><br />
<strong>dispositivos</strong> <strong>de</strong> E/S<br />
• Complejidad <strong>de</strong>l control<br />
– Controlar disco mucho más complejo que impresora<br />
• Unidad <strong>de</strong> transferencia:<br />
– Los datos pue<strong>de</strong>n transmitirse como flujos <strong>de</strong> bytes para<br />
un terminal o en bloques mayores para un disco<br />
• Representación <strong>de</strong> los datos:<br />
– Distintos esquemas <strong>de</strong> codificación en <strong>dispositivos</strong><br />
diferentes (códigos <strong>de</strong> caracteres, convenios <strong>de</strong> paridad)<br />
• Condiciones <strong>de</strong> error:<br />
– Cada dispositivo respon<strong>de</strong> a los errores <strong>de</strong> diferente<br />
manera<br />
=> Difícil gestionar E/S uniformemente<br />
6<br />
1
Técnicas para realizar la E/S<br />
• E/S programada:<br />
– Procesador emite or<strong>de</strong>n <strong>de</strong> E/S (<strong>de</strong> parte <strong>de</strong>l<br />
proceso) a un módulo <strong>de</strong> E/S<br />
– Proceso espera a que termine la operación<br />
• E/S dirigida por interrupciones:<br />
– Procesador emite or<strong>de</strong>n <strong>de</strong> E/S<br />
– Continúa con la ejecución <strong>de</strong> las siguientes<br />
instrucciones (<strong>de</strong>l mismo proceso, si es<br />
posible, <strong>de</strong> otro si no)<br />
– El módulo <strong>de</strong> E/S lo interrumpe cuando<br />
completa su trabajo<br />
Técnicas para realizar la E/S<br />
• Acceso directo a la memoria (DMA):<br />
– Un módulo <strong>de</strong> DMA controla el intercambio<br />
<strong>de</strong> datos entre la memoria principal y el<br />
dispositivo <strong>de</strong> E/S<br />
– Procesador envía solicitid <strong>de</strong> transferencia <strong>de</strong><br />
bloque al DMA<br />
– El procesador se interrumpe sólo cuando se<br />
ha transferido el bloque entero<br />
– Es la más utilizada<br />
7<br />
8<br />
Evolución <strong>de</strong> las funciones <strong>de</strong><br />
la E/S<br />
• El procesador controla directamente los<br />
<strong>dispositivos</strong> periféricos<br />
• Se aña<strong>de</strong> un controlador o módulo <strong>de</strong> E/S:<br />
– El procesador utiliza E/S programada sin<br />
interrupciones<br />
– El procesador se aisla <strong>de</strong> los <strong>de</strong>talles<br />
específicos <strong>de</strong> las interfaces con <strong>dispositivos</strong><br />
externos<br />
Evolución <strong>de</strong> las funciones <strong>de</strong><br />
la E/S<br />
• Controlador o módulo <strong>de</strong> E/S +<br />
interrupciones:<br />
– El procesador no <strong>de</strong>sperdicia tiempo<br />
esperando a que se realice operación <strong>de</strong> E/S<br />
• Acceso directo a la memoria:<br />
– Se pue<strong>de</strong> mover un bloque <strong>de</strong> datos a la<br />
memoria sin que intervenga el procesador<br />
– El procesador sólo interviene al principio y<br />
al final <strong>de</strong> la transferencia<br />
9<br />
10<br />
Evolución <strong>de</strong> las funciones <strong>de</strong><br />
la E/S<br />
• El módulo <strong>de</strong> E/S es un procesador <strong>de</strong> E/S, con<br />
instrucciones propias para E/S:<br />
– La CPU or<strong>de</strong>na ejecutar un programa <strong>de</strong> E/S en la<br />
memoria principal<br />
– El procesador E/S lee y ejecuta instrucciones<br />
– El procesador pue<strong>de</strong> especificar secuencia <strong>de</strong><br />
instrucciones <strong>de</strong> E/S y <strong>de</strong>senten<strong>de</strong>rse hasta que<br />
termine<br />
• Procesador <strong>de</strong> E/S + memoria local:<br />
– Es un computador in<strong>de</strong>pendiente<br />
– El procesador se libera cada vez más <strong>de</strong> E/S<br />
=> aumenta rendimiento<br />
11<br />
Acceso directo a la memoria<br />
• Módulo DMA toma el control <strong>de</strong>l sistema<br />
<strong>de</strong>s<strong>de</strong> la CPU para transferir datos <strong>de</strong>s<strong>de</strong>/<br />
hacia la memoria a través <strong>de</strong>l bus <strong>de</strong>l<br />
sistema<br />
• Se utiliza el robo <strong>de</strong> ciclos para transferir<br />
datos a través <strong>de</strong>l bus <strong>de</strong>l sistema<br />
• El ciclo <strong>de</strong> instrucción se suspen<strong>de</strong> para<br />
dar paso a la transferencia <strong>de</strong> datos<br />
12<br />
2
DMA<br />
DMA<br />
Líneas <strong>de</strong> datos<br />
Líneas <strong>de</strong> direcciones<br />
Solicitud <strong>de</strong> DMA<br />
Reconocimiento <strong>de</strong> DMA<br />
Interrupción<br />
Lectura<br />
Escritura<br />
Cuenta<br />
<strong>de</strong> datos<br />
Registros<br />
<strong>de</strong> datos<br />
Registros<br />
<strong>de</strong> dirección<br />
Lógica<br />
<strong>de</strong> control<br />
Figura 11.2. Diagrama <strong>de</strong> bloques <strong>de</strong> un DMA típico.<br />
• Se solicita lectura/escritura<br />
(línea <strong>de</strong> lectura/escritura)<br />
• Se comunica la dirección <strong>de</strong>l dispositivo <strong>de</strong> E/S<br />
involucrado (línea <strong>de</strong> datos)<br />
• Se comunica la ubicación <strong>de</strong>l comienzo <strong>de</strong> lectura/<br />
escritura en la memoria (línea <strong>de</strong> datos), que se almacena<br />
en el registro <strong>de</strong> dirección <strong>de</strong>l módulo DMA<br />
• Se comunica nº <strong>de</strong> pals. a leer/escribir (línea <strong>de</strong> datos),<br />
que se almacena en el registro contador <strong>de</strong> datos<br />
• El procesador continúa con otro trabajo<br />
• Módulo DMA envía señal cuando completa transferencia<br />
13<br />
14<br />
Tiempo<br />
DMA<br />
Ciclo <strong>de</strong> instrucción<br />
Ciclo <strong>de</strong>l<br />
procesador<br />
Leer<br />
instrucción<br />
Ciclo <strong>de</strong>l<br />
procesador<br />
Descodificar<br />
instrucción<br />
Ciclo <strong>de</strong>l<br />
procesador<br />
Leer<br />
operando<br />
Puntos <strong>de</strong><br />
ruptura posible por DMA<br />
Ciclo <strong>de</strong>l<br />
procesador<br />
Ejecutar<br />
instrucción<br />
Ciclo <strong>de</strong>l<br />
procesador<br />
Almacenar<br />
resultado<br />
Ciclo <strong>de</strong>l<br />
procesador<br />
Interrupción<br />
<strong>de</strong>l proceso<br />
Puntos <strong>de</strong> ruptura<br />
posible por interrupción<br />
Figura 11.3. Puntos <strong>de</strong> ruptura por DMA y por interrupción en un ciclo <strong>de</strong> instrucción.<br />
• El robo <strong>de</strong> ciclos hace que la CPU ejecute más<br />
lentamente (procesador espera un ciclo)<br />
• Aún así, es más eficiente que E/S programada<br />
o por interrupciones (para varias palabras)<br />
• El número <strong>de</strong> ciclos <strong>de</strong> bus requeridos se<br />
pue<strong>de</strong> acortar mediante la integración <strong>de</strong> las<br />
funciones <strong>de</strong>l DMA y <strong>de</strong> la E/S.<br />
• Debe haber un camino entre el módulo <strong>de</strong><br />
DMA y el módulo <strong>de</strong> E/S que no pase por el<br />
bus <strong>de</strong>l sistema.<br />
15<br />
16<br />
DMA<br />
DMA<br />
Procesador DMA E/S E/S Memoria<br />
Procesador DMA DMA<br />
Memoria<br />
(a) DMA separada, bus sencillo<br />
E/S<br />
E/S<br />
E/S<br />
- Único bus<br />
- Estructura sencilla y barata<br />
- Transferencia entre Memoria y <strong>dispositivos</strong> <strong>de</strong> E/S a través <strong>de</strong>l<br />
módulo DMA, por lo que consume 2 ciclos <strong>de</strong> bus por cada<br />
palabra transferida (solicitud <strong>de</strong> transferencia + transferencia),<br />
como en la E/S programada<br />
17<br />
(b) DMA integrada, bus sencillo<br />
- El módulo DMA está conectado directamente a uno o más<br />
bloques <strong>de</strong> E/S, <strong>de</strong> modo que la transferencia <strong>de</strong> datos no<br />
Figura 11.4. Configuraciones posibles <strong>de</strong> DMA.<br />
emplea el bus <strong>de</strong>l sistema.<br />
- Intercambio <strong>de</strong> datos entre DMA y módulos <strong>de</strong> E/S fuera<br />
<strong>de</strong>l bus <strong>de</strong> sistema<br />
18<br />
3
DMA<br />
Canales <strong>de</strong> E/S<br />
Bus <strong>de</strong>l sistema<br />
Procesador<br />
DMA<br />
Bus <strong>de</strong> E/S<br />
Memoria<br />
- Extensión <strong>de</strong> DMA, don<strong>de</strong> cada canal tiene<br />
control absoluto <strong>de</strong> las operaciones <strong>de</strong> E/S<br />
E/S E/S E/S<br />
(c) Bus <strong>de</strong> E/S<br />
- Bus <strong>de</strong>l sistema + bus <strong>de</strong> E/S<br />
- Módulos <strong>de</strong> E/S conectados al DMA mediante un bus<br />
- Intercambio <strong>de</strong> Figura datos 11.4. entre Configuraciones DMA y módulos posibles <strong>de</strong> <strong>de</strong> DMA. E/S fuera <strong>de</strong>l bus<br />
<strong>de</strong> sistema<br />
- Configuración fácilmente ampliable<br />
- Instrucciones E/S:<br />
- almacenadas en memoria principal<br />
- ejecutadas completamente en un procesador<br />
<strong>de</strong> propósito específico situado en el propio<br />
canal<br />
19<br />
20<br />
Tipos <strong>de</strong> <strong>dispositivos</strong><br />
• Dispositivos orientados a bloque:<br />
– Información almacenada en bloques <strong>de</strong> tamaño fijo<br />
– Se transfiere 1 bloque cada vez<br />
– Ejs: discos y cintas<br />
• Dispositivos orientados a flujo:<br />
– Datos transferidos como serie <strong>de</strong> bytes<br />
– Ejs: terminales, impresoras, puertos <strong>de</strong><br />
comunicación, ratones y otros <strong>dispositivos</strong> que no<br />
son <strong>de</strong> almacenamiento secundario<br />
21<br />
Almacenamiento intermedio <strong>de</strong> la<br />
E/S<br />
• Procesos, E/S y SO:<br />
– Los procesos <strong>de</strong>ben esperar a que termine la<br />
operación <strong>de</strong> E/S para continuar<br />
– Algunas páginas <strong>de</strong>ben permanecer en la memoria<br />
principal durante la E/S (para que se carguen en ellas<br />
los datos), aunque el SO quiera intercambiar las<br />
páginas o suspen<strong>de</strong>r el proceso<br />
=> Memoria implicada en la operación E/S <strong>de</strong>be quedar<br />
en memoria principal <strong>de</strong>s<strong>de</strong> la solicitud<br />
=>Almacenamiento intermedio (buffering)<br />
Memoria intermedia sencilla, doble y circular<br />
22<br />
Memoria intermedia sencilla<br />
Memoria intermedia sencilla<br />
• SO asigna espacio en memoria principal, en la<br />
parte <strong>de</strong>l sistema, a una solicitud <strong>de</strong> E/S <strong>de</strong> un<br />
proceso <strong>de</strong> usuario<br />
• Dispositivos orientados a bloque:<br />
– Las transferencias <strong>de</strong> <strong>entrada</strong> se realizan en el espacio<br />
<strong>de</strong>l sistema<br />
– Cuando sea necesario/posible, el proceso mueve el<br />
bloque al espacio <strong>de</strong>l usuario y solicita otro bloque<br />
⇒ Lectura por a<strong>de</strong>lantado:<br />
⇒ Supone que el bloque se necesitará más a<strong>de</strong>lante<br />
⇒ Normalmente ocurre así (lectura secuencial)<br />
23<br />
Sistema operativo<br />
Proceso <strong>de</strong> usuario<br />
Entrar<br />
Dispositivo <strong>de</strong> E/S<br />
(a) Sin almacenamiento intermedio<br />
Sistema operativo<br />
Proceso <strong>de</strong> usuario<br />
Entrar<br />
Mover<br />
Dispositivo <strong>de</strong> E/S<br />
(b) Almacemiento intermedio sencillo<br />
Figura 11.6. Esquemas <strong>de</strong> almacenamiento intermedio <strong>de</strong> E/S (<strong>entrada</strong>).<br />
24<br />
4
Memoria intermedia sencilla<br />
• Ventajas y <strong>de</strong>sventajas:<br />
– Proceso <strong>de</strong> usr. pue<strong>de</strong> procesar bloque <strong>de</strong> datos<br />
mientras se lee el siguiente<br />
=> Mayor velocidad<br />
– La <strong>entrada</strong> tiene lugar en la memoria <strong>de</strong>l sistema<br />
y no en la <strong>de</strong> usuario<br />
=> SO pue<strong>de</strong> expulsar el proceso (intercambio),<br />
los datos se quedan en la memoria <strong>de</strong>l sistema<br />
– El SO <strong>de</strong>be guardar constancia <strong>de</strong> las<br />
asignaciones <strong>de</strong> memorias intermedias <strong>de</strong>l<br />
sistema a procesos <strong>de</strong> usuario<br />
Memoria intermedia sencilla<br />
• Dispositivos orientados a flujo:<br />
– Se aplica por líneas o por bytes<br />
• Líneas: <strong>entrada</strong>/salida a través <strong>de</strong> un terminal<br />
(líneas marcadas con un retorno <strong>de</strong> carro al final)<br />
• Bytes: sensores y controladores<br />
– Memoria intermedia guarda 1 línea (o 1 byte)<br />
– Proceso se suspen<strong>de</strong> si:<br />
• No pue<strong>de</strong> recibir 1 línea completa<br />
• No pue<strong>de</strong> escribir una 2ª línea (porque la 1ª<br />
todavía no ha salido <strong>de</strong>l buffer <strong>de</strong> memoria<br />
intermedia)<br />
=> Complica la lógica <strong>de</strong>l SO<br />
25<br />
26<br />
Memoria intermedia doble<br />
• Usa 2 almacenes intermedios <strong>de</strong>l sistema<br />
• Un proceso pue<strong>de</strong> transferir datos hacia/<br />
<strong>de</strong>s<strong>de</strong> una memoria intermedia mientras el<br />
SO vacía o rellena la otra<br />
• Mejora eficiencia, incrementa complejidad<br />
Dispositivo <strong>de</strong> E/S<br />
Entrar<br />
Sistema operativo<br />
Mover<br />
Proceso <strong>de</strong> usuario<br />
Memoria intermedia circular<br />
• Usa más <strong>de</strong> dos memorias intermedias<br />
• Memoria intermedia circular formada por<br />
memorias intermedias individuales<br />
• Se usa cuando operaciones <strong>de</strong> E/S <strong>de</strong>ben ir al<br />
ritmo <strong>de</strong>l proceso (productor/consumidor)<br />
Dispositivo <strong>de</strong> E/S<br />
Entrar<br />
Sistema operativo<br />
Mover<br />
Proceso <strong>de</strong> usuario<br />
(c) Almacenamiento intermedio doble<br />
(d) Almacenamiento intermedio circular<br />
Figura 11.6. Esquemas <strong>de</strong> almacenamiento intermedio <strong>de</strong> E/S (<strong>entrada</strong>).<br />
27<br />
Figura 11.6. Esquemas <strong>de</strong> almacenamiento intermedio <strong>de</strong> E/S (<strong>entrada</strong>).<br />
28<br />
RAID<br />
Diseño sobre múltiples discos<br />
(posibles organizaciones con varios discos)<br />
Figura 11.9A. Niveles RAID.<br />
29<br />
5