Conceptos básicos de entrada/salida

por Pancho de Gracia / Febreiro'99


§

tipos

de

periféricos

-adaptados al usuario: comunican información al usuario

pantalla, impresora

-adaptados a la máquina: comunican información al sistema

unidad disco, unidad cinta

-de comunicación: comunican información a dispositivo remoto...

...adaptado a usuario

...adaptado a máquina

...otro ordenador

 

Criterios de clasificación de periféricos:

 

(1)Velocidad de transferencia en bytes/segundo:

 

 

instrumentos de medida 0.1-1000

pantalla 10-2000

impresora en línea 220-88000

línea de comunicación 30-200K

cinta magnética 15K-3M

disco magnético 30K-10M

memoria principal 1M-100M

 

(2)Aplicaciones función del periférico influye mucho sobre programas y estrategias del sistema operativo.

 

(3)Unidad de transferencia según modo de transferencia de datos:

......· orientados a bloques

............lectura/escritura periférico transmitiendo datos en bloques

............(bloques suelen ser de tamaño fijo)

............lectura/escritura de un bloque es independiente de los demás

............datos direccionados (referenciados) dando nº de bloque a transmitir

..................discos magnéticos, ópticos, magneto-ópticos

..................en los discos de DOS bloque = 512 bytes

......· orientados a caracteres

............lectura/escritura periférico transmitiendo datos en cadenas de caracteres

............las cadenas no responden a una estructura de bloques

............no se pueden usar direcciones

............no se pueden realizar operaciones de búsqueda

..................impresoras, modems, ratones

......· otros

............sin direcciones de bloques ni aceptan flujos de caracteres

..................relojes, pantallas mapeadas en memoria

 

(4)Complejidad del controlador de dispositivo

............SO debe uniformizar diferencias en complejidades de controladores

............mediante módulos e/s que gobiernan los distintos dispositivos

 

(5)Condiciones de error

............cada periférico recibe un tratamiento específico para sus errores

............así como la respuesta que se le da al usuario

 

§ Controlador de dispositivo = módulo del computador que controla 1/+ dispositivos

...............................interfaz interno: conexión con CPU y Memoria Princ.

...............................interfaz externo: conexión con el periférico

......funciones

............control y temporización

............comunicación con la CPU

............comunicación con el periférico

............almacenamiento temporal de datos

............detección de errores

 

......interfaz interno/comunicación ctrldr.E/S - CPU requiere:

............1)decodificación de la orden

..................(tipo de orden por bus ctrl, parámetros orden por bus datos)

............2)datos

..................(por bus de datos)

............3)información sobre el estado del ctrldr.E/S

..................("ocupado"/"preparado"/"error"/etc)

............4)reconocimiento de la dirección

..................(ctrldr conoce c/1 de las dccs q identifican a c/disp q controla)

 

......interfaz externo/comunicación ctrldr.E/S - dispositivo

............órdenes

............información estado dispositivo

............datos

............almacenamiento temporal de datos

..................(nec. x desfase velocidades interfaces int y ext)

............detección de errores y aviso a CPU

..................mecánicos/físicos transmitidos x propio dispositivo

..................en transmisión de bits (uso de códigos detectores)

 

§ ESTRUCTURA CTRLDR.E/S

DISPOSICIONES COMUNICACIÓN CPU-MEMO-CTRLDR.E/S

 

......1) 2 buses indeptes. bus sistema y bus E/S

.............(cuando computador tiene procesador de E/S o canal de E/S)

......2) único bus con líneas ctrl también comunes

............E/S localizada en memoria

......3) 1 bus común memo, E/S (con líneas ctrl indptes para c/1)

............E/S aislada

 

§ MECANISMOS BÁSICOS DE "E/S ELEMENTAL" ( CTRLDR DISP ¬ R/W® MEMO )

 

 

sin interrupciones

con interrrupciones

transferencia E/S® memo

a través de CPU

E/S controlada por programa

E/S con interrupciones

transferencia E/S® memo

directamente

 

Acceso directo a memoria

(DMA)

 

E/S programada

......CPU ejecuta programa de E/S, llevando todo peso de operación

......transferencia regs.ctrldr.disp ¬ ® pos.memo sp a través de regs.CPU

......CPU ociosa mientras actúa parte electromecánica

E/S por interrupciones

......CPU envía orden de E/S a ctrldr

......CPU sigue con otras tareas

......cuando ctrldr termina trabajo interrumpe CPU

......CPU gestiona la transferencia E/S y después continúa con lo que estaba

......transferencia regs.ctrldr.disp ¬ ® pos.memo sp a través de regs.CPU

E/S por DMA (acceso directo a memoria)

......transferencia regs.ctrldr.disp ¬ ® pos.memo directam.(no a través de regs.CPU)

......requiere un módulo adicional ctrldor DMA conectado a buses dcc, y datos

......CPU encarga labor E/S (descrip.compl.) y ctrldor DMA se encarga, CPU a lo suyo


§ E/S PROGRAMADA

......Órdenes de E/S (enviadas por CPU ® ctrldr.E/S)

............ -órdenes de control

....................activar periférico y decirle qué hacer

............ -órdenes de comprobación

....................verificar diferentes condiciones de estado asociadas a ctrldr

............ -órdenes de lectura

....................ctrldr lee dato de disp. y lo pone en reg.datos,RD® bus datos

............ -órdenes de escritura

....................ctrldr toma dato bus datos® periférico

.............computador no hace nada útil mientras está en bucle de espera*

.............(*RE reg estad: ctrldr no puede emitir/recibir datos porque está ocupado)

......Instrucciones E/S ejecutadas por la CPU

.............en E/S programada relación casi biunívoca instruccs q CPU recibe d memo - instruccs q CPU manda a ctrldr.E/S (instruccs fácilm convertidas a órdenes E/S)

...... · E/S localizada en memoria (único bus memo,E/S con líneas ctrl tb comunes)

......espacio de dccmto único, dividido entre dccs memo y dccs ctrldres

......1 sólo juego de instruccs para r/w sobre memo/ctrldres

......bus de dccs de 20 bits ® espacio dccmto = 220 dccs

......pero nºdccs posibles ¹ nº poss memo

......220 = nºdccs a dividir, unas para poss memo, otras ¹ s para dccs E/S

......· E/S aislada (1 bus común memo y E/S, con líneas ctrl indptes para c/1)

......la línea de control indica si la dcc se refiere a memo o a E/S

......espacio d dccmto "doble", 1 = dcc se ref a memo o E/S dep de l.ctrl

......2 juegos de instruccs para r/w sobre memo y sobre ctrldres

......bus de dccs de 20 bits ® espacio dccmto = 2 x 220 dccs*

......(nºdccs posibles ¹ nº poss memo)

......*220 dccs para direccionar memo y 220 dccs para direccionar E/S


Inconveniente de la E/S programada: el bucle de espera (esperar hasta que el dato esté disponible en el controlador de dispositivo.

......1) pérdida de tiempo en el bucle de espera

......2) imposibilidad de ejecutar programas que deben actuar periódicamente a causa del bucle de espera

......3) mientras CPU espera a que un periférico esté preparado para transmitir no puede atender a eventuales otros eventuales periféricos.

La idea básica del mecanismo de E/S por interrupciones consiste en eliminar el bucle de espera.

§ E/S POR INTERRUPCIONES

......· CPU envía orden a un controlador de dispositivo

......· CPU sigue con otras labores

......· cuando dispositivo está preparado, avisa a CPU mediante una interrupción

............. (periférico activa PI línea de petición de interrupción, línea especial del bus de control)

......· se guarda el contenido CP contador de programa (reg.CPU) que contiene dirección de la siguiente instrucción a ejecutar y cq otro registro de estado que sea necesario

......· CPU inhibe interrupciones y ejecuta el programa de servicio de la interrupción (CPU despacha operación E/S)

......· CPU avisa a dispositivo de que se atiende su demanda (CPU activa línea de reconocimiento de interrupción RI=1,y disp. desactiva PI=0)

......· CPU habilita interrupciones

......· CPU carga el programa que había interrumpido y continúa con él

 

......Es esencial garantizar que hasta que se accede al periférico la señal PI -hasta entonces permanece activa- no origina una segunda interrupción. Dos formas de lograrlo:

......1) Una vez CPU atiende petición de interrupción (PI=1), ignora la línea PI hasta completar 1ª instrucc. del programa de servicio de interrupción, que precisamente es "desactivar interrupción". Antes del retorno, penúltima instrucción del p.s.i. = "activar int.".

......2) CPU desactiva interrupciones automaticamente antes de ejecutar p.s.i. poniendo a 1 un bit de enmascaramiento de interrupciones en el registro de estado de la CPU antes de salvar contexto de programa interrumpido. Al regreso CPU pone automáticamente un 0 en el b.e.i.

 

(el planteamiento anterior es válido para un único periférico conectado a PI)

Clasificación de las interrupciones

Origen

a)Externa. Las provoca un periférico

b)Interna. Las provoca CPU (ej ¸ 0)

c)Simuladas. Son interrucpiones software

Nº de líneas de

interrupción

a)Sólo 1 línea de petic. de int. PI

b)Varias PI1, PI2, ... Pin

Programmable Interrupt Controller PIC ctrldr int

CPI-PI-PIC-PIs c/1 a 1 perif

amplía el número de líneas pet.int. de CPU

gestiona todo el sistema de int

Control de la CPU sobre la interr.

a)Enmascarables. Desactivables x CPU

b)No enmascarables. No desactivables x CPU

Identificación de

la fuente de la interrupción

a)Múltiples líneas PI1, PI2, ..., Pin

b)Encuesta. La int. se identifica x programa

c)Vectorizadas. La int. identifica al periférico

encuesta hw: ints.encadenadas, RI entra y

sale en c/disp. Prio. implícita. BD: vint

Gestión de la prioridad de la interrupción

a)Por Software. Prioridad determinada x 1 programa

b)Por Hardware. Prioridad determinada x 1 circuíto

Niveles de interrucpión

a)Nivel único. Interrupción no puede interrumpirse

b)Multinivel. Anidamiento de interrupciones

 

§ DMA: E/S POR ACCESO DIRECTO A MEMORIA

......transferencia regs.ctrldr.disp ¬ ® pos.memo directam.(no a través de regs.CPU)

......requiere un módulo adicional ctrldor DMA conectado a buses dcc, y datos

......CPU encarga labor E/S (descrip.compl.) y ctrldor DMA se encarga, CPU a lo suyo

 

· Por ráfagas (parada de CPU): ctrlDMA retiene buses hasta que acaba

· Por robo de ciclo: entre 2 instruccs de CPU, ctrlDMA toma buses durante 1 ciclo,

....................transfiere 1 palabra, y libera

· DMA transparente: ctrlDMA sólo actúa en moms de instrucc (la q se está ejecutando en CPU) que no usa buses

· Por demanda: periférico toma buses c/vez q tiene datos para transmitir, desp devuelve ctrl a CPU

· Dato a dato: se transfiere un dato, se devuelve ctrl a CPU, repetir

 

§ GESTIÓN DEL SISTEMA DE ENTRADA/SALIDA

 

Principios generales de diseño del Sistema Operativo

 

......1)progrs aplic de usuarios deben realizar ops e/s con independ. de dispositivo

......indep. de disp. ® 2)principio de generalidad en diseño de sist. e/s

......p.de g. consiste en q

..................................procesos vean iguales a todos los disps e/s

..................................SO gestiona disps y ops e/s de = forma

 

......estrategia: enfoque modular y jerárquico en diseño de f(x) de e/s

 

......3)principio de eficiencia: multiprogr, swapping pq e/s es cuello botella de Sos

 

......4)principio de proximidad en manejo de errores: error e/s debe subsanarse lo + cerca posible de disp. fisico (si puede, ctrldr; sinó el manejador de disp)

 

......5)forma de transferencia asíncrona/ctrlada x ints ó síncrona/x bloques

 

......6)disps. compartibles y no compartibles

 

Estructura lógica de la función de e/s

 

¯ solicitud de e/s

 

SOFTWARE DE E/S DEL USUARIO ª

SOFTWARE del SO INDEPTE. DE DISPOSITIVO ©

MANEJADORES DE DISPOSITIVOS ¨

MANEJADORES DE INTERRUPCIONES §

DISPOSITIVO FÍSICO nivel hardware

 

­ respuesta a la solicitud de e/s

 

§ manejadores de interrupciones

......colección de todas las rutinas del SO q responden a ints

......nivel en contacto directo con disp.físico

......peqs progrs q inician progrs de nivel inmediat. superior

¨ manejadores de dispositivos

......rutinas de interrup para 1 disp. periférico

......todo código relacionado con 1 disp está en su manejador

......manejador es el único código q sabe cómo es y funciona disp

......acepta órdenes de e/s de nivel sw indpte disp y verifica su cumplimiento

© software del SO indepte. de disp.

......1) realiza tareas e/s comunes a todos disps

......2) asocica nombres simbólicos a c/disp

......3) protección de disps

......4) proporciona tamaño de bloque a capas superiores

......5) uso de buffer: procesos r/w en cantids arbitrarias

......6) gestión de espacio libre

......7) asignación/liberación disps no compartibles

......8) informar de errores e/s

ª software a nivel de usuario

......comandos, funciones de librería (printf), spooling.

 

§ BUFFERS DE E/S

 

......buffer de e/s = espacio de Memo Princ reservado para almacenam. intermedio de datos procedentes/destinados de/a periféricos. Son "zonas de reserva" debidamente protegidas, aunque el proceso esté en pausa los datos deben estar garantizados.

 

[ flechas indicadas son: proceso lee dispositivo]

sin buffer

.............disp e/s ® SO: proceso [ ] espacio receptor de datos

.............cuando un proceso emite una petición de e/s, el SO lo coloca en un estado suspendido hasta que los datos estén disponibles

 

con buffer simple

.............disp e/s ® SO: buffer [ ] ® proceso [ ] espacio receptor de datos

.............cuando un procesoo emite una petición de e/s, el SO le asigna un buffer en la parte que reside en la memoria principal y que está destinada a la operación

 

con buffer doble

.............disp e/s ® SO: bff[ ] bff[ ] ® proceso [ ] espacio receptor de datos

.............un proceso transfiere datos a (o desde) un buffer mientras el SO vacía (o llena) otro.

 


Synapsis Home Page Más artículos de informática Más artículos en castellano