Sistemas operativos: una visión aplicada Capítulo 7 Entrada/salida Contenido • Introducción • • • • • • Caracterización de los dispositivos de E/S Arquitectura del sistema de E/S Interfaz de aplicaciones Almacenamiento secundario El terminal La red Sistemas operativos: una visión aplicada 1 © J. Carretero, F. García, P. de Miguel, F. Pérez 1 Estructura de una computadora Dispositivos de salida (impresora, monitor, ...) Unidad principal (UCP, registros, memoria RAM, entrada/salida ( discos internos, red, ...)) Dispositivos de entrada (teclado, ratón, lápiz óptico, ...) Sistemas operativos: una visión aplicada 2 Dispositivos de entrada/salida (discos, cintas, modem, ...) © J. Carretero, F. García, P. de Miguel, F. Pérez Clasificación de dispositivos • Todos estos dispositivos de E/S se pueden agrupar en tres grandes grupos: – Periféricos. Se llama así a los dispositivos que permiten la comunicación entre los usuarios y la computadora. Dentro de este grupo se incluyen todos los dispositivos que sirven para proporcionar interfaz con el usuario, tanto para entrada (ratón, teclado, etc.) como para salida (impresoras, pantalla, etc.). – Dispositivos de almacenamiento. Se usan para proporcionar almacenamiento no volátil de datos y memoria. Su función primordial es abastecer de datos y almacenamiento a los programas que se ejecutan en la UCP. Según su capacidad e inmediatez se pueden dividir en almacenamiento secundario (discos y disquetes) y terciario (cintas y sistemas de archivo). – Dispositivos de comunicaciones. Permiten conectar a la computadora con otras computadoras a través de una red. Los dos tipos de dispositivos más importantes de esta clase son los MODEM y las tarjetas de interfaz a la red. Sistemas operativos: una visión aplicada 3 © J. Carretero, F. García, P. de Miguel, F. Pérez 2 Velocidad de los dispositivos • El gran problema de todos estos dispositivos de E/S es que son muy lentos. – La UCP procesa instrucciones a más de 1 GHz y la memoria RAM tiene un tiempo de acceso de nanosegundos – Los dispositivos de E/S más rápidos tienen una velocidad de acceso del orden de milisegundos. – Esta diferencia en la velocidad de acceso, y el hecho de que las aplicaciones son cada vez más interactivas y necesitan más E/S, hace que los sistemas de E/S sean el cuello de botella más importante de los sistemas de computación y que todos los sistemas operativos dediquen un gran esfuerzo a desarrollar y optimizar todos los mecanismos de E/S. • La figura siguiente muestra la jerarquía del sistema de E/S en función de su velocidad de transferencia Sistemas operativos: una visión aplicada 4 © J. Carretero, F. García, P. de Miguel, F. Pérez Funciones del sistema de E/S • Parte del sistema operativo que se ocupa de facilitar el manejo de los dispositivos de E/S ofreciendo una visión lógica simplificada de los mismos que pueda ser usada por otros componentes del sistema operativo (como el sistema de archivos) o incluso por el usuario. • El sistema operativo debe controlar el funcionamiento de todos los dispositivos de E/S para alcanzar los siguientes objetivos: – Facilitar el manejo de los dispositivos periféricos. Para ello debe ofrecer una interfaz entre los dispositivos y el resto del sistema que sea sencilla y fácil de utilizar. – Optimizar la E/S del sistema, proporcionando mecanismos de incremento de prestaciones dónde sea necesario. – Proporcionar dispositivos virtuales que permitan conectar cualquier tipo de dispositivo físico sin que sea necesario remodelar el sistema de E/S del sistema operativo. – Permitir la conexión de dispositivos nuevos de E/S, solventando de forma automática su instalación usando mecanismos del tipo plug&play. Sistemas operativos: una visión aplicada 5 © J. Carretero, F. García, P. de Miguel, F. Pérez 3 Contenido • Introducción • Caracterización de los dispositivos de E/S • • • • • • • • • Arquitectura del sistema de E/S Interfaz de aplicaciones Almacenamiento secundario Almacenamiento terciario El reloj El terminal La red Servicios de entrada/salida Puntos a recordar Sistemas operativos: una visión aplicada 6 © J. Carretero, F. García, P. de Miguel, F. Pérez Conexión de dispositivos del sistema de E/S • En el modelo de un periférico se distinguen dos elementos: – Periféricos o dispositivos de E/S. Elementos que se conectan a la unidad central de proceso a través de las unidades de entrada/salida. • Son el componente mecánico que se conecta al computador. – Controladores de dispositivos o unidades de E/S. Se encargan de hacer la transferencia de información entre la memoria principal y los periféricos. • Son el componente electrónico a través del cual se conecta el dispositivo de E/S. • Tienen una conexión al bus de la computadora y otra para el dispositivo (generalmente mediante cables internos o externos). Sistemas operativos: una visión aplicada 7 © J. Carretero, F. García, P. de Miguel, F. Pérez 4 Controladores • Los controladores son muy variados, casi tanto como los dispositivos de E/S. – Muchos de ellos, como los de disco, pueden controlar múltiples dispositivos. – Otros, como los de canales de E/S, incluyen su propia UCP y bus para controlar la E/S por programa y evitar interrupciones en la UCP de la computadora. • En los últimos años ha existido un esfuerzo importante de estandarización de los dispositivos, lo que permite usar un mismo controlador para dispositivos de distintos fabricantes (ejemplo: SCSI, Small Computer System Interface, o IDE, Integrated Drive Electronics). • El controlador es el componente más importante desde el punto de vista del sistema operativo, ya que constituye la interfaz del dispositivo con el bus de la computadora y es el componente que se ve desde la UCP. – Su programación se lleva a cabo mediante una interfaz de muy bajo nivel que proporciona acceso a una serie de registros del controlador. – Las características del controlador son muy importantes, ya que definen el aspecto del periférico para el sistema operativo. – Fundamental: Dirección de E/S, Unidad de transferencia e Interacción computadora-controlador. Sistemas operativos: una visión aplicada 8 © J. Carretero, F. García, P. de Miguel, F. Pérez Conexión de dispositivos a una computadora CPU Memoria Controlador gráfic o Bus del sistema Controlador de disco Bus de expansión estado c ontrol datos … Sistemas operativos: una visión aplicada 9 © J. Carretero, F. García, P. de Miguel, F. Pérez 5 Direcciones de E/S de controladores Sistemas operativos: una visión aplicada 10 © J. Carretero, F. García, P. de Miguel, F. Pérez Dispositivos de Bloque y de Carácter • Dispositivos de bloque: – Acceso a nivel de bloque, secuencial o aleatorio – Mandatos: leer, escribir, buscar, … – E/S directa o a través del servidor de ficheros – Acceso posible a través de ficheros proyectados en memoria – Ejemplo: discos y cintas • Dispositivos de carácter: – Acceso a nivel de un carácter, secuencial o aleatorio – Mandatos: get, put, …. – Bibliotecas para optimizar y dar forma a este tipo de accesos: edición de líneas, ventanas virtuales, …. – Ejemplo: terminales e impresoras Sistemas operativos: una visión aplicada 11 © J. Carretero, F. García, P. de Miguel, F. Pérez 6 E/S programada • La transferencia de información entre un periférico y el procesador se realiza mediante la ejecución de una instrucción de E/S. • El procesador es el responsable de extraer o enviar datos entre la memoria y el controlador de dispositivo -> el procesador tiene que esperar mientras se realiza la transferencia. • Muestreo periódico de los dispositivos -> Determina el estado del dispositivo: – Listo, ocupado, error – Ciclo de espera activa para esperar al dispositivo de E/S • Ventaja: no hay gasto de tiempo de gestión de interrupción. • Desventaja: Consume mucha CPU para dispositivos poco usados • Aplicación: – Hardware sin interrupciones – Programas de control de canales de E/S Sistemas operativos: una visión aplicada 12 © J. Carretero, F. García, P. de Miguel, F. Pérez E/S por Interrupciones • El procesador envía la orden de E/S al controlador de dispositivo y no espera, se dedica a otras tareas hasta que llega una interrupción del dispositivo que indica que se ha realizado la operación solicitada. • Líneas de petición de interrupción de la CPU activadas por los dispositivos • El gestor de interrupciones recibe y maneja la interrupción: – Enmascarables para ignorar o retrasar interrupciones – El vector de interrupción tiene las direcciones de memoria de los manejadores de interrupción – Se procesan según distintas políticas: • Prioridad, FIFO, etc. • Algunas no se pueden enmascarar (NMI). Ejemplo: reset. • Los mecanismos de interrupción se usan también para excepciones. Ejemplo: instrucción errónea. Sistemas operativos: una visión aplicada 13 © J. Carretero, F. García, P. de Miguel, F. Pérez 7 Rutina de tratamiento de interrupción • • Las rutinas de interrupción suelen tener dos partes: – una genérica y otra particular para el dispositivo. La parte genérica hace los siguiente: Captura de la interrupción. Salvaguarda de estado del procesador. Activación de la rutina de manejo de la interrupción. Indicar al planificador que debe poner lista para ejecutar la rutina particular. Desactivación de la interrupción. Restauración del estado del procesador. Cesión de control (RETI). Sistemas operativos: una visión aplicada 14 © J. Carretero, F. García, P. de Miguel, F. Pérez Interrupciones que usan algunos controladores Sistemas operativos: una visión aplicada 15 © J. Carretero, F. García, P. de Miguel, F. Pérez 8 E/S Bloqueante y No-bloqueante • Bloqueante: procesos suspendidos hasta que la E/S termina – Fácil de usar y comprender – Insuficiente para algunos requisitos – Ejemplo: read, write, ... de POSIX • No bloqueante: la llamada de E/S vuelve inmediatamente – Interfaz de usuario más complejo y espacio para copia de datos – Se puede implementar con threads – Vuelve rápidamente con el estado de la operación – Variación: operaciones asíncronas -> los procesos ejecutan mientras la E/S se lleva a cabo • Difícil de usar por operaciones pendientes • El sistema de E/S señala el fin de operación pendiente • Interfaz para comprobar estado y esperar (aiowait) Sistemas operativos: una visión aplicada 16 © J. Carretero, F. García, P. de Miguel, F. Pérez Acceso Directo a Memoria (DMA) • Se usa para evitar la E/S programada de grandes bloques de datos • Necesita un controlador con DMA • Evita el uso de la CPU transfiriendo los datos directamente entre los dispositivos de E/S y la memoria – del usuario – del núcleo • Básico para aprovechar la CPU en un sistema multiprogramado, ya que libera tiempo de la CPU que se puede usar para ejecutar otros programas. Sistemas operativos: una visión aplicada 17 © J. Carretero, F. García, P. de Miguel, F. Pérez 9 Sistema de DMA Memoria Petición DMA (contador, direc ción, datos) Ac eptación DMA Interrupc ión Operación (L/E) Disco Contador Bus del sistema Contador Registro de datos Direcc ión Lógic a de control Controlador UCP Sistemas operativos: una visión aplicada 18 © J. Carretero, F. García, P. de Miguel, F. Pérez Pasos operación de DMA 1.- Programación de la operación de E/S. Se indica al controlador la operación, los datos a transferir y la dirección de memoria sobre la que se efectuará la operación. 2.- El controlador contesta aceptando la petición de E/S. 3.- El controlador le ordena al dispositivo que lea (para operación lectura) una cierta cantidad de datos desde una posición determinada del dispositivo a su memoria interna. 4.- Cuando los datos están listos, el controlador los copia a la posición de memoria que tiene en sus registros, incrementa dicha de memoria y decrementa el contador de datos pendientes de transferir. 5.- Los pasos 3 y 4 se repiten hasta que no quedan más datos por leer. 6.- Cuando el registro de contador esta a cero, el controlador interrumpe a la UCP para indicar que la operación de DMA ha terminado. Sistemas operativos: una visión aplicada 19 © J. Carretero, F. García, P. de Miguel, F. Pérez 10 Contenido • • • • • • Introducción Caracterización de los dispositivos de E/S Arquitectura del sistema de E/S Interfaz de aplicaciones Almacenamiento secundario Almacenamiento terciario • El reloj • • • El terminal La red Servicios de entrada/salida Sistemas operativos: una visión aplicada 20 © J. Carretero, F. García, P. de Miguel, F. Pérez El reloj • Varias acepciones: – Reloj del procesador – Reloj del sistema (que mantiene fecha y hora) – Temporizador que activa periódicamente al S.O. • S.O. vinculado con las dos últimas acepciones • ¿Reloj es un dispositivo de E/S? – Sí, ya que implica registros de E/S e interrupciones – Pero, generalmente, S.O. le da tratamiento específico Sistemas operativos: una visión aplicada 21 © J. Carretero, F. García, P. de Miguel, F. Pérez 11 Hardware del reloj • Circuito temporizador que genera señal periódica (tick) – Conectado a línea de interrupción de alta prioridad – Frecuencia programable (actúa como divisor de frecuencias) – Modo operación programable (único disparo, onda cuadrada) – Generalmente circuito con múltiples temporizadores • No todos conectados a línea de interrupción (p.ej. al altavoz) • Reloj alimentado por batería que mantiene hora y fecha – Consultado por S.O. en su arranque – También denominado reloj CMOS Sistemas operativos: una visión aplicada 22 © J. Carretero, F. García, P. de Miguel, F. Pérez Software del reloj • Labor principal de S.O. con reloj: manejo de sus interrupciones – También iniciación y gestión de llamadas relacionadas • Compromiso al fijar frecuencia de interrupción: – Demasiado alta: Excesiva sobrecarga por tratamiento de int. – Demasiado baja: Limitada precisión en medida del tiempo – Ejemplo típico: 100 Hz (1 interrupción cada 10 ms) • Se debe minimizar trabajo realizado por rutina de interrupción – Ya que mientras no se atiende int de disp. de menos prioridad • Solución típica: Dividir trabajo asociado a int. de reloj – Operaciones más urgentes realizadas por rutina de interr. – Resto: tratamiento posterior fuera de la rutina (int. software) Sistemas operativos: una visión aplicada 23 © J. Carretero, F. García, P. de Miguel, F. Pérez 12 Funciones del manejador del reloj • • • • Mantenimiento de fecha y hora Gestión de temporizadores Contabilidad y estadísticas Soporte para la planificación de procesos Sistemas operativos: una visión aplicada 24 © J. Carretero, F. García, P. de Miguel, F. Pérez Contenido • • • • • • • Introducción Caracterización de los dispositivos de E/S Arquitectura del sistema de E/S Interfaz de aplicaciones Almacenamiento secundario Almacenamiento terciario El reloj • El terminal • • La red Servicios de entrada/salida Sistemas operativos: una visión aplicada 25 © J. Carretero, F. García, P. de Miguel, F. Pérez 13 El terminal • Teclado + pantalla • Dependiendo de forma de conexión: – Terminales serie – Terminales proyectados en memoria • Dependiendo de tipo de información manejada: – Terminales en modo alfanumérico – Terminales en modo gráfico • Exposición se centra en terminales en modo texto Sistemas operativos: una visión aplicada 26 © J. Carretero, F. García, P. de Miguel, F. Pérez Modo de operación del terminal • Similar en todos los tipos de terminales – Diferencia: ¿Qué se hace por HW y qué por SW? • Relativa independencia entre la entrada y la salida • Entrada – Código de tecla → Carácter ASCII – Se tiene en cuenta teclas modificadoras (Control, Alt, ...) • Salida – Pantalla: matriz de pixels con memoria de vídeo asociada – Controlador de vídeo lee esta memoria y refresca pantalla – Escritura en pantalla requiere escritura en memoria de vídeo • Carácter ASCII → Patrón de pixels correspondiente – Secuencias de escape: • Permiten operaciones especiales (p.ej. borrar la pantalla) Sistemas operativos: una visión aplicada 27 © J. Carretero, F. García, P. de Miguel, F. Pérez 14 Hardware del terminal proyectado en memoria • Terminal formado por 2 dispositivos independientes • Teclado genera interrupción al pulsar tecla – S.O. lee código de tecla de registro de controlador de teclado – Conversión a ASCII y manejo de teclas modif. por SW • Memoria de vídeo directamente accesible al procesador • Escritura en regs. de controlador para mover cursor, scroll, etc. • 2 modos de operación: – Alfanumérico: • Memoria de vídeo contiene códigos ASCII • Controlador de vídeo genera patrones de pixels – Gráfico: • Memoria de vídeo contiene matriz de pixels • SW debe transformar de código ASCII a patrón de pixels • Secuencias de escape gestionadas por SW Sistemas operativos: una visión aplicada 28 © J. Carretero, F. García, P. de Miguel, F. Pérez Esquema del terminal proyectado en memoria Procesador Memoria de vídeo Contr. de vídeo Controlador de teclado Memoria Sistemas operativos: una visión aplicada 29 © J. Carretero, F. García, P. de Miguel, F. Pérez 15 Hardware del terminal serie • Terminal: dispositivo único conectado por línea serie (UART) – Incluye un procesador interno • S.O. debe programar parámetros de UART • Entrada mediante interrupciones – UART notifica llegada de carácter ASCII – Conversión a ASCII y manejo de teclas modif. en terminal • Salida implica envío de carácter al terminal a través de UART – Uso de interrup. para indicar que el carácter ya se ha enviado – Terminal obtiene el patrón y lo visualiza en pantalla – Terminal maneja secuencias de escape Sistemas operativos: una visión aplicada 30 © J. Carretero, F. García, P. de Miguel, F. Pérez Esquema del terminal serie Procesador UART Memoria Sistemas operativos: una visión aplicada 31 © J. Carretero, F. García, P. de Miguel, F. Pérez 16 Contenido • • • • • • • • Introducción Caracterización de los dispositivos de E/S Arquitectura del sistema de E/S Interfaz de aplicaciones Almacenamiento secundario Almacenamiento terciario El reloj El terminal • La red • Servicios de entrada/salida Sistemas operativos: una visión aplicada 32 © J. Carretero, F. García, P. de Miguel, F. Pérez La red • Dada su creciente importancia, soporte de S.O. cada vez mejor • Algunos SS.OO. le dan tratamiento diferente a otros dispositivos – En Linux no hay archivos en /dev para la red • Software de red organizado en tres niveles: – Nivel de interfaz a las aplicaciones • Típicamente, sockets (Winsock en Windows) • Puede considerarse como nivel de sesión OSI – Nivel de protocolos • Capas que implementan transporte y red TCP/IP • Incluye funciones de encaminamiento – Nivel de dispositivo de red • Manejadores de dispositivos de red Sistemas operativos: una visión aplicada 33 © J. Carretero, F. García, P. de Miguel, F. Pérez 17 Niveles del software de red Interfaz a las aplicaciones Nivel de transporte Nivel de red Ethernet Sistemas operativos: una visión aplicada SLIP 34 .......... © J. Carretero, F. García, P. de Miguel, F. Pérez Niveles del software de red • Niveles trabajan de forma independiente – Uso de interfaces estándar entre niveles • Mensaje desciende como resultado de llamada de aplicación – Se va añadiendo información de control • Mensaje asciende como resultado de interrupción de recepción – Se va eliminando información de control • Para implementación eficiente, minimizar copia de información Sistemas operativos: una visión aplicada 35 © J. Carretero, F. García, P. de Miguel, F. Pérez 18