Tema Sistema de Gestin de Entrada Salida Conceptos

  • Slides: 99
Download presentation
Tema: Sistema de Gestión de Entrada - Salida Conceptos Fundamentales de los Sistemas Operativos

Tema: Sistema de Gestión de Entrada - Salida Conceptos Fundamentales de los Sistemas Operativos Corresponde a: • Módulo 6 de Notas Sobre Sistemas Operativos (Manual del alumno Tomo 2) • Capítulo 11 de STALLINGS • Capítulos 12, 13 y 14 de SILBERSCHATZ Carlos NEETZEL cneetzel@sistemasoperativos. com. ar 1

2

2

Sistema de gestión de I/O Técnicas de I/O Software Operaciones de Los dispositivos y

Sistema de gestión de I/O Técnicas de I/O Software Operaciones de Los dispositivos y Hardware sus interfases I/O Scheduler Principio y Metas Drivers de Dispositivos Procesadores y canales de I/O 3

Sistema de Entrada y Salida Bus de Direcciones MC Los tres Bus de Datos

Sistema de Entrada y Salida Bus de Direcciones MC Los tres Bus de Datos se concideran El Bus del Sistema Bus de Control Salida Usuario Bus del Sistema Entrada MÓDULO DE E/S CPU Enlace Digital con el Periféricos Periférico Modelo genérico del Módulo de E/S - Modelo simplificado del Módulo de E/S 4

Razones del Sistema de Entrada y Salida 5

Razones del Sistema de Entrada y Salida 5

Dispositivos de Entrada y Salida Son periféricos con su respectiva unidad de control, conectados

Dispositivos de Entrada y Salida Son periféricos con su respectiva unidad de control, conectados a los controladores y a los puertos (Ports) o canales que ofician de interfase del bus del sistema y los periféricos 6

Gestión de Entrada y Salida • El tercer elemento clave de un sistema de

Gestión de Entrada y Salida • El tercer elemento clave de un sistema de computación es el conjunto de los módulos de Entrada y Salida (Input/output). 7

Gestión de Entrada y Salida 8

Gestión de Entrada y Salida 8

Funciones Principales v. Proveer una interfase con la CPU y la memoria central vía

Funciones Principales v. Proveer una interfase con la CPU y la memoria central vía el Bus del sistema. v. Proveer una interfase a uno o mas dispositivos periféricos por vínculos especialmente diseñados. 9

Sistema de Gestión de Entrada y Salida þ Se ocupa de la Organización, Administración

Sistema de Gestión de Entrada y Salida þ Se ocupa de la Organización, Administración y Operación de los dispositivos þ Debe ser eficiente, segura, confiable, abstracta, uniforme, etc. . Y además las actividades que realice serán concurrentes y autónomas con la CPU. 10

Funciones del Administrador de Entrada Salida (E/S) Mantener un registro de estado de los

Funciones del Administrador de Entrada Salida (E/S) Mantener un registro de estado de los dispositivos periféricos, controladores, canales y de los programas que controlan a estos dispositivos. Determinar una técnica de asignación mediante un procedimiento de vinculación (Binding). Controlar todos los dispositivos de E/S. Proveer una interfase entre los dispositivos y el resto de los Sistemas. Proveer un mecanismo de Protección y control de Acceso. 11

Funciones del Administrador de E/S: ESTADOS posibles: 12

Funciones del Administrador de E/S: ESTADOS posibles: 12

Función del Modulo de E/S üEs la Entidad del computador que tiene la responsabilidad

Función del Modulo de E/S üEs la Entidad del computador que tiene la responsabilidad de controlar uno o mas dispositivos externos e intercambiar los datos entre esos dispositivos y la memoria central y/o los registros de la CPU. üDebe tener una Interfase interna (a la CPU y Memoria Central) al computador y una externa (Dispositivos Externos) 13

Las Funciones Principales son: üComunicación con la CPU. üComunicación con el dispositivo. üControl y

Las Funciones Principales son: üComunicación con la CPU. üComunicación con el dispositivo. üControl y temporización üAmortiguación (Buffering) de datos üDetección de errores üManejo de Interrupciones en el Bajo nivel. 14

Operaciones de Hardware de Entrada y Salida Dos formas de realizarlas: • Operación Asincrónica

Operaciones de Hardware de Entrada y Salida Dos formas de realizarlas: • Operación Asincrónica ü Diferencia de Velocidades • Operación Sincrónica 15

Operación Asincrónica Los dispositivos funcionan independientemente de la CPU y NO utilizan el reloj

Operación Asincrónica Los dispositivos funcionan independientemente de la CPU y NO utilizan el reloj del procesador, sino el suyo propio. Esto constituye una operación asincrónica manejados por las señales de control que son generados por los dispositivos y sus interfases, conocidas como Señales de dialogo (Handshaking), que son intercambiadas entre el controlador- dispositivo y el procesador antes de comenzar y al finalizar cada operación de E/S 16

Diferencias de Velocidades Son las diferencias de velocidades que surgen del procesador o memoria

Diferencias de Velocidades Son las diferencias de velocidades que surgen del procesador o memoria con respecto a las operaciones de E/S. Para resolver estas diferencias se utiliza la técnica de Buffering que es la amortiguación de las velocidades de Buffer que se produce al realizar las transferencias de datos. 17

Dispositivos de Entrada y Salida Pueden dividirse en tres grandes grupos: Según Tanenbaum: §

Dispositivos de Entrada y Salida Pueden dividirse en tres grandes grupos: Según Tanenbaum: § Dispositivos orientados a bloques § Dispositivos Orientados a caracteres § Otros dispositivos Según Stallings: § Dispositivos Legibles por el Hombre § Dispositivos Legibles por la máquina § Dispositivos de comunicaciones 18

Entrada y Salida El Hardware y el Software de E/S Sistema Periférico Controlador DATA

Entrada y Salida El Hardware y el Software de E/S Sistema Periférico Controlador DATA BUS Partes Unidad Electrome- ADDRESS BUS Control Bus N T E R F A S E I INDEPENDIENTE sw NORMALIZADO PCI, SCSI, RS 232 de cánicas Control Bus sw OPERACIÓN: ASINCRONICA (HANDSHAKE) SINCRONICA (CON CLK CPU) 19

Entrada y Salida Estructura del Módulo de E/S 20

Entrada y Salida Estructura del Módulo de E/S 20

Controlador o adaptador o Interfase de E/S § Se ocupa de convertir el flujo

Controlador o adaptador o Interfase de E/S § Se ocupa de convertir el flujo de bits en bloques de Bytes o caracteres. § Es la interfase del sistema de E/S con el S. O. a nivel Software. 21

Controlador o adaptador o Interfase de E/S esta compuesto por: • Una interfase con

Controlador o adaptador o Interfase de E/S esta compuesto por: • Una interfase con el bus del sistema. • Un controlador propiamente dicho (Lógica Programada). • Una interfase con el Usuario (Uno o mas). 22

Controlador o adaptador o Interfase de E/S esta compuesto por: 23

Controlador o adaptador o Interfase de E/S esta compuesto por: 23

Interfase de E/S Las Direcciones de los puertos 24

Interfase de E/S Las Direcciones de los puertos 24

Interfase de E/S Las Direcciones de los puertos 25

Interfase de E/S Las Direcciones de los puertos 25

Interfase de E/S: Procesadores de E/S (IOP) 26

Interfase de E/S: Procesadores de E/S (IOP) 26

 • Externos • Internos 27

• Externos • Internos 27

Dispositivos Externos ]Proveen los medios para intercambiar datos entre el ambiente externo y el

Dispositivos Externos ]Proveen los medios para intercambiar datos entre el ambiente externo y el computador. Discos w Disco rígido w Magnéticos (Disquetes) w Ópticos (CD-Rom, WORM, ) Monitor o pantalla - Comunicación vía Terminales con mapeo de memoria - Comunicación vía estandard RS 232 28

Distintos dispositivos externos: Discos 29

Distintos dispositivos externos: Discos 29

Los Discos utilizan un modo de planificación para realizar el acceso a disco de

Los Discos utilizan un modo de planificación para realizar el acceso a disco de la manera mas eficaz posible dependiendo de lo que se necesite. Ø Planificador FCFS Ø Planificador SSTF Ø Planificador SCAN Ø Planificador C-SCAN Ø Planificador LOOK-UP Ø Planificador C-LOOK-UP Ø Planificador FSCAN Ø Planificador SCAN de n pasos 30

Planificación FCFS 31

Planificación FCFS 31

Planificación FCFS v. Es el planificador más sencillo. v. El primero en llegar es

Planificación FCFS v. Es el planificador más sencillo. v. El primero en llegar es el primero es el atendido. v. Fácil de programar. v. No es el más eficiente en cuanto al servicio promedio. v. Semejante a la estructura de una cola. v. Enorme problema acerca de la cantidad de movimiento del brazo. v. Ocasiona mucho Thrashing. 32

Planificación SSTF 33

Planificación SSTF 33

Planificación SSTF v. Atiende en forma conjunta todos los requerimientos cercanos a la actual

Planificación SSTF v. Atiende en forma conjunta todos los requerimientos cercanos a la actual posición de la cabeza, antes de servir a otra petición de ubicación lejana. v. Selecciona el del mínimo tiempo de búsqueda desde esa posición actual. v. Es una mejora del tiempo de servicio promedio de disco. v. Pueda ocasionar inanición de algún requerimiento. v. Se la considera una mejora del FCFS. v. Produce inanición 34

Planificación Scan Cola de Pedidos: 98, 183, 37, 122, 14, 124, 65, Posición de

Planificación Scan Cola de Pedidos: 98, 183, 37, 122, 14, 124, 65, Posición de arranque de las cabezas: 53 Cantidad de pistas recorridas por las cabezas: 236 pistas 200 Ÿ 150 Ÿ Ÿ Ÿ 100 50 0 53 - 0= 183 - 0= 53 183 236 Planificación SCAN w w w O tiempo 35

Planificación Scan v Funcionamiento: la cabeza lectora-grabadora comienza en un extremo del disco, moviéndose

Planificación Scan v Funcionamiento: la cabeza lectora-grabadora comienza en un extremo del disco, moviéndose hacia el otro extremo, v Sirve al los requerimientos a medida que van apareciendo, hasta alcanzar el extremo del disco, una vez realizado esta, invierte el sentido de la dirección y continua sirviendo. v Dificultades en rendimiento: se atenderá inmediatamente a la petición que esta delante de la cabeza, sin embargo si la petición se encontrara detrás de la cabeza deberá esperar a que la cabeza llegue al otro extremo, invierta su sentido y se dirija hacia ella para ser atendida. v Si bien produce espera, no genera postergación indefinida. 36

Planificación c-Scan Cola de Pedidos: 98, 183, 37, 122, 14, 124, 65, Posición de

Planificación c-Scan Cola de Pedidos: 98, 183, 37, 122, 14, 124, 65, Posición de arranque de las cabezas: 53 pistas Max. 200 Ÿ 150 Ÿ Ÿ Ÿ 100 50 53 a 200 = 147 0 a 37 184 37 = Planificación C -SCAN w w w 0 Min. tiempo 37

Planificación c-Scan v. Variante del SCAN, diseñada para proveer un tiempo de espera más

Planificación c-Scan v. Variante del SCAN, diseñada para proveer un tiempo de espera más uniforme. v. Se mueve la cabeza de un extremo al otro, sirviendo los requerimientos, pero cuando alcanza el otro extremo, retorna bruscamente al comienzo del disco, sin servir a ninguno en el viaje de vuelta. v. Trata al disco como si fuera circular, el último track es adyacente al primero. 38

Planificación LOOK – UP o Algoritmo del Ascensor Máximo Pedido Mínimo Pedido 39

Planificación LOOK – UP o Algoritmo del Ascensor Máximo Pedido Mínimo Pedido 39

Planificación LOOK – UP o Algoritmo del Ascensor v. Semejante al SCAN, pero cuando

Planificación LOOK – UP o Algoritmo del Ascensor v. Semejante al SCAN, pero cuando llegan hasta el último requerimiento y no hasta el final del disco. v. Normalmente la cabeza se mueve tan lejos como el último requerimiento en cada dirección. v. Tan pronto no haya requerimientos por adelante la cabeza se invierte. 40

Planificación C-LOOK - UP Máximo Pedido Mínimo Pedido 41

Planificación C-LOOK - UP Máximo Pedido Mínimo Pedido 41

Planificación C-LOOK - UP v. Atiende los pedidos en un solo sentido, desde el

Planificación C-LOOK - UP v. Atiende los pedidos en un solo sentido, desde el cilindro mas bajo hasta el mas alto v. Mediante el software especializado, si hay dos requerimientos sobre el mismo cilindro, el driver pide la información que está en el próximo sector que pasará por la cabeza sin mover el brazo. v. Si hay múltiples pedidos para distintos discos y uno de ellos esta leyendo o escribiendo los demás no pueden hacerlo. v. No varia el tiempo rotacional. 42

Para adoptar un planificador se debe tener en cuenta: § Cantidad de pedidos §

Para adoptar un planificador se debe tener en cuenta: § Cantidad de pedidos § Como están almacenados los archivos § Posición de los directorios y de los archivos. 43

Comparación 44

Comparación 44

FSCAN • Esta política emplea dos sub-colas. • Cuando comienza un rastreo, todas las

FSCAN • Esta política emplea dos sub-colas. • Cuando comienza un rastreo, todas las peticiones están en una de las colas y la otra permanece vacía. • Durante el recorrido, todas las peticiones se colocan en la cola que inicialmente estaba vacía. • De este modo, el servicio de nuevas peticiones se retrasará hasta que se haya procesado las viejas. 45

SCAN de n pasos • Este método divide la cola de peticiones del disco

SCAN de n pasos • Este método divide la cola de peticiones del disco en subcolas de longitud “n”, las sub-colas se procesan una a una mediante un SCAN. • Mientras se procesa una cola, se añadirán nuevas pedidos a las otras. • Si hay menos de “n” peticiones disponibles al final del rastreo, entonces todas serán procesadas en el siguiente recorrido. • Para valores grandes de “n”, el rendimiento se aproxima a un SCAN; con n = 1, equivale a una política FIFO. • Este algoritmo tiene la particularidad al igual que el FSCAN, de que si hay varios procesos que realizan una alta proporción de accesos a una pista, no monopolizar el dispositivo entero por medio de pedidos repetidas a dicha pista, como lo hacen los demás métodos. 46

Caché de Disco • Es un buffer para sectores de disco situado en la

Caché de Disco • Es un buffer para sectores de disco situado en la memoria central. • El caché contiene una copia de algunos sectores del disco, cuando se hace una petición de E/S se comprueba si el sector está en el caché, si es así la petición se efectúa a través de esta, y sino se lee el sector pedido del disco y se carga en dicho caché. • Esto resulta útil debido a la cercanía de referencias. 47

Dispositivos Internos ØLos dispositivos internos proveen la comunicación en el interior de la maquina,

Dispositivos Internos ØLos dispositivos internos proveen la comunicación en el interior de la maquina, controlando por medio de Clocks, el funcionamiento apropiado de la misma. § Tipo de Dispositivos: § Disco Ram § Cloks (Timers) 48

Dispositivos Internos Discos RAM: v. Usa una porción de la memoria preasignada para almacenar

Dispositivos Internos Discos RAM: v. Usa una porción de la memoria preasignada para almacenar los bloques. v. Existe de este modo una mayor velocidad. Clocks o Timers: Indispensables en sistemas de tiempo compartido, puede evitar la apropiación de la CPU por un proceso. Hardware del Clock: v. Existen dos tipos, los que están conectados con una línea de Alimentación que generan una interrupción con cada ciclo de tensión. v. El otro posee un oscilador de cristal de cuarzo, un contador y un registro de tenencia. v. Los clocks programable poseen dos tipos de operación: en Un Solo Disparo, y Modo de Onda 49 Cuadrado.

Técnicas de Entrada-Salida Hay 3 técnicas posibles para las operaciones: n E/S Programada n

Técnicas de Entrada-Salida Hay 3 técnicas posibles para las operaciones: n E/S Programada n E/S por interrupciones n E/S por DMA 50

E/S Programada § Los datos son intercambiados entre la CPU y el Modulo de

E/S Programada § Los datos son intercambiados entre la CPU y el Modulo de E/S. § Cuando la CPU emite un comando al modulo de E/S debe esperar que al operación de E/S se complete, provocando grandes tiempos de CPU ociosa. 51

E/S por interrupciones La CPU emite un comando de E/S y continua con la

E/S por interrupciones La CPU emite un comando de E/S y continua con la ejecución de otras instrucciones y es interrumpida por el modulo de E/S cuando este ha completado su trabajo. La CPU debe repetidamente interrogar por el status del modulo de E/S, por ello el nivel de performance del sistema es severamente degradado. Hay cuatro formas de identificar el dispositivo: • Múltiples líneas de interrupción • Interrogación por software (Polling) • Conexión Circular (Daisy Chain, por hardware vectorizado) • Arbitración del Bus (Vectorizado) 52

E/S por interrupciones Procesamiento de Interrupciones: n El dispositivo emite una señal de interrupción

E/S por interrupciones Procesamiento de Interrupciones: n El dispositivo emite una señal de interrupción al procesador. n El procesador termina con la instrucción que estaba ejecutando para atender a la solicitud. n El procesador verifica la ocurrencia de la interr. n Transfiere el control a la rutina que atiende la interr. n Se carga el contador del programa con la dirección de la instrucción de la interrupción. n El CP y el PSW han sido salvados en el stack. n El handler de la interrupción accede a procesar a la misma. n Una vez completado, (la interrupción) se desapila del stack su contenido y se recuperan los registros. n Recuperación del PSW y el CP, continua 53 ejecutándose el programa en interrupción.

E/S por interrupciones Existen cuatro técnicas para el diseño: n Múltiples líneas de interrupciones.

E/S por interrupciones Existen cuatro técnicas para el diseño: n Múltiples líneas de interrupciones. n Interrogación (pulling) por software. n Conexión circular. n Arbitración del bus (vectorizado). Ejemplos de estructuras de interrupciones: n Procesador de Interrupciones 8259 A w Anidado completamente w Rotacional w Enmascarado especial n Interfase de Periféricos Programable Intel 8255 A 54

E/S por DMA § El modulo de E/S y la Memoria Central intercambian datos

E/S por DMA § El modulo de E/S y la Memoria Central intercambian datos directamente sin involucrar a la CPU. § Requiere de un modulo especial en el bus del sistema, ya que simula a la CPU y toma el control del sistema. § Este permite que la CPU siga trabajando, y el módulo de DMA se encarga del manejo de la E/S, ahorrando grandes tiempo de CPU. 55

DMA (Direct Memory Access) • La unidad de DMA es capaz de imitar a

DMA (Direct Memory Access) • La unidad de DMA es capaz de imitar a la CPU, relevándola del control del sistema E/S para transferir los datos con la memoria por el bus del Sistema, haciéndose cargo la unidad y no la CPU. • El modulo DMA usa el bus solo cuando la CPU no lo necesita, o bien puede forzar a la CPU a que suspenda temporalmente su operación. • Lo cual se conoce como “Robo de Ciclo”. 56

DMA Robo de Ciclo • La unidad del DMA suspende al CPU antes de

DMA Robo de Ciclo • La unidad del DMA suspende al CPU antes de que se use el bus, y transfiere una palabra de memoria y devuelve el control a la CPU. • En la figura siguiente se puede ver que en cinco ciclos de maquina existen tres ciclos que la CPU no hace uso del bus. • La unidad DMA aprovecha estos ciclos y los utiliza para el uso de la memoria central. 57

DMA Configuración Simple Este método es barato, pero ineficiente, debido a que consume dos

DMA Configuración Simple Este método es barato, pero ineficiente, debido a que consume dos ciclos de reloj por cada palabra a transferir. 58

DMA Configuración Integrada En este caso la unidad del DMA forma parte de los

DMA Configuración Integrada En este caso la unidad del DMA forma parte de los dispositivos de E/S. Integrando ambas funciones. Por estar el DMA entre los dispositivos de E/S y el bus del sistema, solo consume un ciclo de reloj por cada palabra transferida. 59

DMA Configuración con Bus de I/O Este sistema permite reducir el número de interfases

DMA Configuración con Bus de I/O Este sistema permite reducir el número de interfases de E/S en el modulo del DMA. Posibilitando que esta configuración que sea fácilmente ampliable. 60

Software de Entrada-Salida ] La idea básica es reorganizar el software en capas, donde

Software de Entrada-Salida ] La idea básica es reorganizar el software en capas, donde la de mas abajo se ocupe de esconder las peculiaridades del hardware y las de más arriba se ocupen de presentar una interfase amigable con el usuario. ] Su función es establecer la vinculación entre los distintos módulos para realizar la transferencia de los datos en forma controlada ] El SO controla las Operaciones de E/S ya que: ] Las interfases del hardware requieren de un software complejo para controlarlo y usarlo. ] Los Dispositivos Periféricos son recursos compartidos. ] El SO provee una interfase consistente, uniforme, y flexible para todos los dispositivos. 61

La transferencia de datos puede resultar: v. Exitosa: La información transferida llega exitosa a

La transferencia de datos puede resultar: v. Exitosa: La información transferida llega exitosa a su destino. v. Falla parcial: la falla ocurre en la mitad de la transferencia y el bloque de destino tiene información errónea. v. Falla total: La falla ocurre lo suficientemente temprano durante la transferencia de modo que el bloque destino queda intacto. v. Interrupción de E/S: Se produce una interrupción voluntaria o no para que se complete o no la operación en curso. 62

Proceso de inicialización de E/S ]Es parte de la E/S. Es parte del proceso

Proceso de inicialización de E/S ]Es parte de la E/S. Es parte del proceso general de inicialización (Booteo o Cold Start) de la maquina que realiza el SO. ]Prepara una serie de tablas de Drivers. ]Y genera 4 pasos a seguir: ]Reset ]Selección del modo de Operación ]Inicialización ]Estado listo para operar, carga en el Reg. de Estado. RESET SELECCIÓN del MODO de OPERACIÓN ESTADO LISTO INICIALIZACIÓN PARA OPERAR (READY) Proceso de Inicialización de los módulos de E / S 63

Proceso de inicialización de E/S RESET: n Estado desconocido n Limpia los buffers de

Proceso de inicialización de E/S RESET: n Estado desconocido n Limpia los buffers de datos n Limpia los registros de Estado y Ordenes de cada controlador n Habilita el Registro de Ordenes para recibir la ORDEN DE MODO SELECCIÓN DEL MODO DE OPERACIÓN: n Transferencia de orden de modo de funcionamiento n Habilitación para la transmisión - Recepción mediante el Registro de Ordenes n Verificación de órdenes de rutinas de errores 64

Proceso de inicialización de E/S v INICIALIZACION Iniciar el Port, el Device Driver y

Proceso de inicialización de E/S v INICIALIZACION Iniciar el Port, el Device Driver y preparar tablas n. Especificar el modo de operación n. Especificar las características de dispositivo controlador n. Carga de programas y rutinas n. Construir en M. C. Las tablas (I/O Address en I/O Page) n. Vincular cargando los punteros en las tablas. v ESTADO DE LISTO PARA OPERAR n. Si todos las fases anteriores fueron exitosas, se carga el registro de estado en READY , se carga el S. O en M. C. , queda disponible el periférico para cualquier solicitud. n 65

Principios del Software de E/S PRIMITIVAS de E/S del SISTEMA OPERATIVO Primitivas de E/S:

Principios del Software de E/S PRIMITIVAS de E/S del SISTEMA OPERATIVO Primitivas de E/S: CHAR getc(); putc(). BLOCK read(); writwe(). USER control(); random(); seek(); FILE open(); close(); etc. MAPPING de OPERACIONES de E/S: MAPPING S OPERACIONES Y OPERACIONES de ALTO S de BAJO NIVEL C NIVEL (abstractas) A L L SW INDEPENDIENTE de Hardware + Device Driver la CONFIGURACIÓN del HW (ambiente de Ejecución) 66

Principios del Software de E/S MAPPING de NOMBRES de E/S: MAPPING NOMBRES ABSTRACTOS DISPOSITIVOS

Principios del Software de E/S MAPPING de NOMBRES de E/S: MAPPING NOMBRES ABSTRACTOS DISPOSITIVOS REALES + DEVICE DRIVERS 1. Cada S. O. tiene su forma de hacer el mapping: 2. Algunos requieren que el programador incorpore a los dispositivos cuando escribe su programa. 3. Otros requieren los servicios del SHELL para linkear el nombre de los dispositivos usados en el programa. 4. Otros hacen la vinculación dinámicamente a medida que los procesos en ejecución lo requieran. 67

Principios del Software de E/S 1 er Método: Programa del Usuario Address Name Compilador

Principios del Software de E/S 1 er Método: Programa del Usuario Address Name Compilador Mapea Argumen to Device Descriptor HIGH LEVEL I/O ROUTINE ARGUMENTO: ÍNDICE al Device Switch Table read(), putc(), etc. • Compromiso entre eficiencia y Binding. • Los programas del User no contienen llamadas directas al Driver del Dispositivo ni la dirección al dispositivo 2 do. Método: DEVICE DESCRIPTOR Se reconfigura para un nuevo dispositivo. DEVICE DRIVER Dirección real del Disposit. Modifica la DIRECCIÓN 68

Conceptos claves en el diseño de Software v. Independencia de los dispositivos: Los programas

Conceptos claves en el diseño de Software v. Independencia de los dispositivos: Los programas deberían poder utilizarse sin la dependencia de un periférico para su ejecución. v. Uniformidad de los nombres: deberían de ser una cadena o un entero, y no depender del dispositivo. v. Manipulación de errores: Deberían tratarse tan cerca del hardware como sea posible. Si un controlador encuentra un error debería corregirlo. v. Transferencia sincrónica o asincrónica v. Dispositivos compartibles o dedicados 69

Niveles del Software de E/S Proceso del Usuario (Pide una E/S) Fín de la

Niveles del Software de E/S Proceso del Usuario (Pide una E/S) Fín de la operación de E/S Pedidos de E/S (Solicitudes) Comunicaciones de E/S Funciones de E/S printf() BIBLIOTECA de Funciones de E/S: (read(), write(), SVC 10(), etc ) DEVICE DRIVER (Independiente del Dispositivo) Identificación. Separación Protección Blockes Asignación/Desasignación HANDLER del Armado de Registros lógicos Dispositivo Verificación de Condiciones (Flags) Manejo de Errores HANDLER de Interrupciones HARDWARE La idea básica es organizar el software como una serie de capas, donde la de mas abajo se ocupen de esconder las peculiaridades del HARDWARE a las de arriba, y las de mas arriba se ocupen de presentar una interfase agradable, limpia y regular para los usuarios PAI (Pedido de Atención de Interrupción) cuando se completó una E/S. Ejecuta la Operación de E/S solicitada por el Usuario 70

Una manera de solucionar en forma eficiente y coherente todos esto problemas es: §

Una manera de solucionar en forma eficiente y coherente todos esto problemas es: § Estructurar el software de E/S en los siguientes estratos: n n Software a nivel del usuario Software de sistema independiente de los dispositivos Drivers de dispositivos Manejadores de interrupción 71

Manejadores de interrupción v. Las interrupciones deben ocultarse. v La mejor manera de ocultarlas

Manejadores de interrupción v. Las interrupciones deben ocultarse. v La mejor manera de ocultarlas es tener todos los procesos que comienzan una E/S bloqueados hasta que termine y se haya producido una interrupción. v. Cuando ocurre una interrupción, el procedimiento de la interrupción hace lo que tenga que hacer para desbloquear el proceso que lo genero. v. Solamente debe generar un PAI (pedido de atención de interrupción) a la CPU, cuando se a completado la operación de E/S. 72

Drivers de Dispositivos v. Es un software formado por un conjunto de rutinas y

Drivers de Dispositivos v. Es un software formado por un conjunto de rutinas y tablas que, instalados, forman parte del SO v. Es un conjunto de programas que provee la interfase entre el SO y un determinado dispositivo periférico. v. Sirven para ejecutar y controlar todas las operaciones de E/S que se realizan sobre un periférico determinado. 73

Funciones principales v. Definir las característica Lógicas-Físicas del dispositivo que controla. v. Inicializar los

Funciones principales v. Definir las característica Lógicas-Físicas del dispositivo que controla. v. Inicializar los Registros y el modo de funcionamiento en el arranque (Booteo). v. Habilitar y deshabilitar el dispositivo para un dado proceso. v. Controlar los accesos según los permisos del usuario. v. Bloquear y desbloquear los datos durante la transferencia. 74

Tipos de Device Drivers v Existen dos tipos de device driver: v Block Device

Tipos de Device Drivers v Existen dos tipos de device driver: v Block Device Driver: Los orientados a Bloques controlan los periféricos con accesos basados en una dirección de datos compuestos por varios caracteres, o sea que, manipulan varios bytes en una misma operación. v Character Device Driver: controlan aquellos periféricos que transmiten o reciben un solo caracter por vez en cada operación. 75

Software de E/S independiente del Dispositivo v. La diferencia que hay entre drivers y

Software de E/S independiente del Dispositivo v. La diferencia que hay entre drivers y software de E/S es el sistema al que están subordinados. v. La función básica es hacer funciones de E/S que son comunes a todos los dispositivos y que proveen una interfase uniforme al software del nivel de usuario. v. Este se encarga de mapear los nombres de dispositivos simbólicas y transformarlos en los nombres correctos del driver, también se utiliza el Buffering. 76

Software de E/S del Espacio del Usuario Consiste en Bibliotecas Vinculadas Basado en dos

Software de E/S del Espacio del Usuario Consiste en Bibliotecas Vinculadas Basado en dos procesos diferentes: n n n Procedimientos que lo único que hacen es darle los parámetros y llamar a uno rutina del S. O. Sistema de SPOOLING (Sist. Multiprogramado) trata de simular un periférico en línea mientras que no hay disponibilidad en el mismo. Crea un proceso especial DEAMON (Servidor de impresión). Para imprimir el proceso genera primero un archivo con los datos que desea imprimir y lo pone en el directorio de spooling. El Deamon que es el único que puede imprimir, imprime los archivos que se encuentren el el directorio de spooling. 77

Software de Entrada v. La mayoría de los sistemas ofrecen 2 modos n Orientado

Software de Entrada v. La mayoría de los sistemas ofrecen 2 modos n Orientado a caracteres (RAW) n Orientado a la línea (COOKED) 78

Software de Salida § Se utiliza un Buffer de Salida asociado a cada terminal

Software de Salida § Se utiliza un Buffer de Salida asociado a cada terminal (Terminales RS-232 -C ) § Se toman los caracteres uno a uno del espacio del usuario (Terminal de Memoria Mapeada) 79

Estructura del Módulo de E/S Posee: • Canal o Procesador de E/S • Controlador

Estructura del Módulo de E/S Posee: • Canal o Procesador de E/S • Controlador de E/S o Controlador de Dispositivo 80

Canal o Procesador de E/S Es un Modulo de E/S que carga con la

Canal o Procesador de E/S Es un Modulo de E/S que carga con la mayoría de los detalles de procesamiento, presentando una interfase de alto nivel a la CPU. 81

Canal o Procesador de E/S §Esencialmente es una extensión del concepto del DMA, teniendo

Canal o Procesador de E/S §Esencialmente es una extensión del concepto del DMA, teniendo la capacidad de ejecutar instrucciones de E/S, lo que le da un control total sobre estas operaciones. §Las instrucciones de E/S son almacenadas en la memoria central y serán ejecutadas por un procesador de propósito especifico en el mismo canal de E/S. §Así, la CPU inicia una transferencia de E/S ordenando al Canal de E/S que ejecute un programa en la memoria. §Existen dos tipos comunes de canales de E/S, que son el Canal Selector y el Canal Multiplexor. 82

Canal de E/S: Canal Selector w Este canal de E/S controla varios dispositivos de

Canal de E/S: Canal Selector w Este canal de E/S controla varios dispositivos de alta velocidad, atendiendo uno a la vez, para la transferencia de datos, es decir, selecciona uno y realiza la transferencia. w El selector es implementado a través de un Decodificador. 83

Canal de E/S: Canal Multiplexor Este canal de E/S puede manejar diversos dispositivos al

Canal de E/S: Canal Multiplexor Este canal de E/S puede manejar diversos dispositivos al mismo tiempo. Para tal fin, el multiplexor transfiere una porción de datos de cada dispositivo en forma consecutiva, al concluir con todos los dispositivos, vuelve a transferir la porción siguiente de cada dispositivo, y así continua hasta transferir todos los datos de cada uno de los dispositivos. Estos multiplexores se clasifican en: Dispositivos de Baja Velocidad: Se usa un MUX de byte. Dispositivo de Alta Velocidad: Se usa un MUX de Bloques. 84

Controlador de E/S o Controlador de Dispositivo Es un modulo de E/S que es

Controlador de E/S o Controlador de Dispositivo Es un modulo de E/S que es bastante primitivo y requiere un control detallado. 85

Diseño de Sistemas Operativos En el diseño de SO para la administración de E/S,

Diseño de Sistemas Operativos En el diseño de SO para la administración de E/S, hay que tener bien claro cuales son los Objetivo de Diseño y la estructura lógica de las funciones de E/S. 86

Diseño de Sistemas Operativos Objetivo de Diseño Una serie de objetivos: dos de significativa

Diseño de Sistemas Operativos Objetivo de Diseño Una serie de objetivos: dos de significativa importancia en la administración de E/S, son: Generalidad: Manejo de forma uniforme, con el interés en la simplicidad y la exención de errores (objetivo difícil). Se recurre a un enfoque jerárquico y modular para el diseño de funciones de E/S. De este modo todos los niveles y procesos superiores al sistema operativo solo recurren a una serie de funciones generales (lectura, escritura, apertura, cierre, bloqueo, desbloqueo, etc). Eficiencia: Es un objetivo importante ya que las operaciones en dispositivos de E/S son mucho mas lentas que las realizadas por el procesador o la memoria. Si bien todavía no se puede solucionar la rapidez de estos dispositivos, se puede mejorar a través del uso de la multiprogramación (donde algunos procesos esperan las operaciones de E/S y otros son ejecutados). 87

Diseño de Sistemas Operativos Estructura Lógica de las funciones de E/S • La estructura

Diseño de Sistemas Operativos Estructura Lógica de las funciones de E/S • La estructura o modelo jerárquica: Las funciones del SO se separan de acuerdo a su complejidad, sus rangos característicos de tiempos y su nivel de abstracción. En esta jerarquía cada nivel realiza una parte satisfaciendo el conjunto a todas las funciones necesarias del SO. El orden van de niveles inferiores (HW) hasta niveles superiores (User) todo el problema se descompone en una serie de sub-problemas. Tres tipos de jerarquías según el tipo de dispositivo y de su aplicación: El Dispositivo Periférico Local, el Puerto de Comunicaciones y Sistemas de Archivo. 88

Diseño de Sistemas Operativo Interfase de Llamada Sistema de Archivo virtual Sistema de Archivo

Diseño de Sistemas Operativo Interfase de Llamada Sistema de Archivo virtual Sistema de Archivo Caché de Páginas en Memoria Controlador de Dispositivo (Alto Nivel) Caché de Bloques Gestor de pedidos al Disco Planificador de Disco Controlador del Dispositivo (Bajo Nivel) Arquitectura del Subsistema de E/S 89

Diseño de Sistemas Operativos Dispositivo Periférico Local Procesos de Usuario ↕ E/S Lógica ↕

Diseño de Sistemas Operativos Dispositivo Periférico Local Procesos de Usuario ↕ E/S Lógica ↕ E/S con Dispositivos • ↕ Planificación y Control ↕ Hardware Actividades que realiza el usuario con el dispositivo. Se ocupa de la gestión de funciones generales de E/S pedidas por los procesos de usuario, permitiendo manejar al dispositivo a través de identificadores y ordenes simple (Abrir, Cerrar, Leer, Escribir). Todas las operaciones pedidas o datos son transformadas en secuencias adecuadas de E/S, comandos para el canal y ordenes al controlador. Se llevan a cabo la planificación y encolado de las operaciones de E/S, así también como el control de las operaciones. Es el modulo que se interactúa en forma directa con el hardware y el conjunto de interrupciones. Dispositivos electrónicos que conforman los dispositivos de E/S. 90

Diseño de Sistemas Operativos Procesos de Usuario Puerto de Comunicaciones Actividades que realiza el

Diseño de Sistemas Operativos Procesos de Usuario Puerto de Comunicaciones Actividades que realiza el usuario con el dispositivo. ↕ Arquitectura de Comunicacione s ↕ E/S con Dispositivos • ↕ Planificación y Control Este modulo puede constar de varios niveles, como por ejemplo la Arquitectura OSI de comunicaciones, la cual consta de 7 niveles. Todas las operaciones pedidas o datos son transformadas en secuencias adecuadas de E/S, comandos para el canal y ordenes al controlador. Se llevan a cabo la planificación y encolado de las operaciones de E/S, así también como el control de las operaciones. Es el modulo que se interactúa en forma directa con el hardware y el conjunto de interrupciones. ↕ Hardware Dispositivos electrónicos que conforman los dispositivos de E/S. 91

Diseño de Sistemas Operativos Sistema de Archivos Procesos de Usuario ↕ Gestión de Directorios

Diseño de Sistemas Operativos Sistema de Archivos Procesos de Usuario ↕ Gestión de Directorios ↕ Sistemas de Archivos ↕ • Organización Física ↕ Continúa Actividades que realiza el usuario con el dispositivo. En este nivel se efectúa la traducción del nombre simbólico de archivos a identificadores que lo referencian, a través de un descriptor de archivo o índice en una tabla. Además, se efectúa también las operaciones del usuario que afectan al directorio de archivos, como Añadir, Cerrar, Leer, etc. Este nivel se encarga de la estructura lógica de los archivos y las operaciones sobre estos que pueden especificar los usuarios, además de los derechos a accesos. Aquí es donde las referencias se convierten en direcciones físicas de almacenamiento secundario, teniendo en cuenta la pista física y la estructura en sectores de archivos. En este nivel se contempla también la asignación de espacio de almacenamiento 92 secundario y de los buffer de almacenamiento.

Diseño de Sistemas Operativos Sistema de Archivos (Continuación) Continúa Viene de la Diapositiva anterior.

Diseño de Sistemas Operativos Sistema de Archivos (Continuación) Continúa Viene de la Diapositiva anterior. ↕ E/S con Dispositivos Todas las operaciones pedidas o datos son transformadas en secuencias adecuadas de E/S, comandos para el canal y ordenes al controlador. ↕ Planificació • n y Control Se llevan a cabo la planificación y encolado de las operaciones de E/S, así también como el control de las operaciones. Es el modulo que se interactúa en forma directa con el hardware y el conjunto de interrupciones. ↕ Hardware Dispositivos electrónicos que conforman los dispositivos de E/S. 93

Diseño de Sistemas Operativos Almacenamiento Intermedio (Buffering) • Es realizar la transferencia de entrada

Diseño de Sistemas Operativos Almacenamiento Intermedio (Buffering) • Es realizar la transferencia de entrada por adelantado a las peticiones y realizar las transferencias de salida un tiempo después de hacer la petición. • Se debe a que si se transfiere un bloque desde el área de un proceso de usuario hacia un modulo de E/S directamente, el proceso se bloqueará durante • la transferencia y no podrá ser removido de la CPU. • Ejemplo: el buffer sencillo, el buffer doble y el buffer circular 94

Buffer Sencillo Existe una porción de memoria que es para el uso exclusivo del

Buffer Sencillo Existe una porción de memoria que es para el uso exclusivo del dispositivo de E/S, en donde carga o lee la información. En el diagrama, se puede ver una carga anticipada en la memoria central El dispositivo que es mas lento que el • acceso a memoria, realiza una carga de información en el buffer (esta carga la realiza en algún momento cuando el procesador no utiliza los buses), después el proceso del usuario, cuando lo requiera, recurrirá a este buffer para la lectura de la información de E/S. Si se efectúa dos lecturas consecutivas del dispositivo de E/S, no da tiempo a la recarga del buffer, con lo cual, la segunda lectura se realiza directamente del dispositivo de E/S, y por ende esta es mas lenta. 95

Buffer Doble Esencialmente es lo mismo para las transferencias de salida, solo que se

Buffer Doble Esencialmente es lo mismo para las transferencias de salida, solo que se almacenaran los datos del proceso usuario en estos buffer, y luego en algún momento el dispositivo los leerá • Permite la carga anticipada mientras el proceso puede estar leyendo el otro buffer, así para dos lecturas consecutivas del dispositivos de E/S, aparentará para el proceso como accesos rápidos a dicho dispositivo 96

Buffer Circular Soportar una ráfaga de lectura o escritura en algún dispositivo de E/S,

Buffer Circular Soportar una ráfaga de lectura o escritura en algún dispositivo de E/S, dando la sensación para el usuario que este dispositivo es mas rápido. • Para el caso particular de la lectura de un dispositivo de E/S, se posee una serie de búferes, desde B 1 hasta Bn donde el dispositivo va cargando datos en cada uno de estos siguiendo un orden (por ejemplo desde B 1 hasta Bn); y el proceso usuario que hace uso de este dispositivo, efectúa una ráfaga de lecturas desde el ultimo buffer cargado por el dispositivo de E/S, y continua en orden inverso a la carga que efectúa dicho dispositivo. 97

98

98

99

99