11.01.2015 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!