Criterios de clasificación de periféricos:
(1) Velocidad de transferencia en bytes/segundo:
(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 )
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ánicaE/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.CPUE/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/SInconveniente 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
§ 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.
|