Dispositivos de Entrada/Salida Sistemas Operativos Entrada/Salida Mario Medina ([email protected]) It is better to fail in originality than to succeed in imitation. Es mejor fracasar en ser original que tener éxito en la imitación. Herman Melville Dispositivos usados for personas • Terminales • Dispositivos de entrada de datos ◦ Mouse, trackball, etc. ◦ Teclados, tabletas ◦ Controladores de juegos Dispositivos de comunicación local • Discos, cintas • Sensores, controladores • Impresoras Dispositivos de comunicación remota • Modem • Controladores de redes Ethernet • Dispositivos inalámbricos Clasificación Velocidad de transferencia Complejidad del control Unidad básica de transferencia de datos (bytes ó bloques) Representación de los datos Manejo de errores Sistemas Operativos, 2007-1 Sistemas Operativos, 2007-1 1 Tipos de Entrada/Salida Entrada/Salida Controlada por Programa La CPU emite comando de transferencia de datos, y espera a que termine la operación. Gigabit Ethernet Graphics display Hard disk Entrada/Salida Controlada por Interrupciones La CPU emite comando de transferencia de datos, continúa su ejecución y es interrumpida por el dispositivo cuando éste está listo. Ethernet Optical disk Acceso Directo a Memoria (DMA) Un dispositivo de DMA controla la transferencia de datos entre Entrada/Salida y Memoria. CPU da comandos al DMA, el que sólo la interrumpe después de haber transferido un bloque de datos. Scanner Laser printer Floppy disk Canales de Entrada/Salida Entrada/Salida a cargo de un procesador especializado que ejecuta un programa de E/S escrito por la CPU en memoria principal. Canal interrumpe a la CPU sólo después de terminada una secuencia de instrucciones. Modem Mouse Keyboard 101 102 103 104 105 106 107 Data Rate (bps) 108 109 Procesador de Entrada/Salida Procesador independiente con memoria local está a cargo de Entrada/Salida. Figure 11.1 Typical I/O Device Data Rates CPU queda cada vez más liberada de tareas de Entrada/Salida. Sistemas Operativos, 2007-1 2 Acceso Directo a Memoria (DMA) Issue Read command to I/O module Read status of I/O module CPU Æ I/O Issue Read command to I/O module I/O Æ CPU Read status of I/O module CPU Æ I/O Do something else Interrupt I/O Æ CPU Not ready Check status Check status Error condition Ready No Error condition CPU Æ DMA Issue Read Do something block command to I/O module else Read status of DMA module I/O Æ CPU Read word from I/O Module I/O Æ CPU Write word into memory CPU Æ memory Write word into memory CPU Æ memory No Done? Yes Next instruction Done? Yes Next instruction (a) Programmed I/O DMA Æ CPU (c) Direct memory access Ready Read word from I/O Module Interrupt Next instruction (b) Interrupt-driven I/O Figure 1.19 Three Techniques for Input of a Block of Data Dispositivo transfiere datos desde y hacia la memoria a través del bus del sistema • CPU involucrada sólo al comienzo y término de la transferencia CPU entrega información necesaria para la transferencia • Lectura ó escritura • Dispositivo a accesar • Número de palabras a escribir • Dirección inicial en memoria DMA accesa bus del sistema • Cuando el procesador no lo está usando, ó • Roba ciclos del bus (Cycle Stealing ) ◦ CPU detenida por un ciclo del bus ◦ No es interrupción sino detención del pipeline Configuraciones de DMA • DMA conectado a bus común • DMA conectado a dispositivos de Entrada/Salida • DMA conectado a bus de E/S Sistemas Operativos, 2007-1 Data Count Data Lines Data Register Address Lines Address Register DMA Request DMA Acknowledge Interrupt Read Write Control Logic Figure 11.2 Typical DMA Block Diagram 3 Processor I/O DMA Memory I/O • • • Diseño de Sistemas de Entrada/Salida (a) Single-bus, detached DMA Objetivos Processor DMA Eficiencia • Dispositivos de E/S son el cuello de botella del sistema • Multiprogramación mantiene a la CPU ocupada • Transferencia de bloques de datos Generalidad • Tratar todos los dispositivos de manera uniforme • Capa de software intermedia de gestión de dispositivos (Drivers) • Presentar una interfaz común para familias de dispositivos Memory DMA I/O I/O I/O (b) Single-bus, Integrated DMA-I/O System bus Processor Memory DMA Organización por niveles I/O bus I/O I/O Nivel superior • Ofrece interfaz de alto nivel • Interactúa con el usuario • Tiempos de respuesta permitidos son mayores Nivel inferior • Interfaz de bajo nivel • Más cercano al hardware • Tiempos de respuesta más exigentes I/O (c) I/O bus Figure 11.3 Alternative DMA Configurations Sistemas Operativos, 2007-1 User Processes 4 User Processes Modelos de Entrada/Salida User Processes Directory Management Dispositivos periféricos locales Logical I/O Se comunica con procesos como flujos de bytes E/S Lógica Este nivel presenta al usuario una interfaz del dispositivo que le ofrece operaciones básicas como Abrir, Cerrar, Leer y/o Escribir, etc. E/S a nivel del Dispositivo Este nivel traduce las instrucciones del usuario en operaciones propias del canal y/o controlador. Este nivel también ofrece almacenamiento intermedio de datos (Buffering ) Planificación y Control Este nivel se encarga del control, planificación y encolamiento de las operaciones. Este nivel es el que interactúa con el dispositivo Dispositivos de Comunicaciones Communication Architecture File System Physical Organization Device I/O Device I/O Device I/O Scheduling & Control Scheduling & Control Scheduling & Control Hardware Hardware Hardware (a) Local peripheral device (b) Communications port (c) File system Similar al anterior, pero reemplaza nivel de E/S Lógica por una arquitectura de comunicación de datos (Ej., TCP/IP) Figure 11.4 A Model of I/O Organization Sistemas Operativos, 2007-1 5 Modelos de Entrada/Salida Almacenamiento Intermedio (Buffering) Sistema de Archivos Porqué es necesario? Agrega otro nivel de abstracción a la comunicación con los procesos Administración de directorios Maneja nombres simbólicos para los dispositivos y los archivos Agrega operaciones de manejo de directorios (Creación, eliminación, renombre) Sistema de Archivos Organiza datos en estructuras lógicas (Archivos) Maneja operaciones sobre archivos omo Abrir, Cerrar, Leer y/o Escribir, etc. Controla permisos de acceso a archivos Organización Fı́sica Traduce referencias lógicas a archivos en direcciones fı́sicas en los dispositivos de almacenamiento secundario Administra el Almacenamiento Intermedio Proceso quiere leer bloque de datos de 4 KB desde disco a memoria a partir de posición 0x10000 en página 10 de datos Proceso se bloquea esperando por E/S Qué pasa con página 10 de datos? • Debe recibir datos de la transferencia • No puede ser paginada a disco Sistema operativo provee almacenamiento intermedio • Transferencia se realiza en el espacio del sistema • Al terminar transferencia, sistema operativo mueve el bloque al espacio del usuario • Sea: ◦ T : Tiempo de E/S de un bloque ◦ C : Tiempo entre operaciones de E/S ◦ M : Tiempo para mover un bloque ◦ Sin buffering, TE/S = C + T ◦ Con buffering, TE/S = máx (C, T ) + M Almacenamiento intermedio doble Almacenamiento intermedio circular Sistemas Operativos, 2007-1 6 Operating System I/O Device User Process In (a) No buffering Operating System I/O Device In User Process Move (b) Single buffering Operating System I/O Device In User Process Move (c) Double buffering Operating System I/O Device In User Process Move • • (d) Circular buffering Figure 11.5 I/O Buffering Schemes (input) Sistemas Operativos, 2007-1 7