Tema 21 SO. Entrada y salida

Tema 21 – SO. Entrada y salida 28/03/2011 Tema 21 – SO. Entrada y salida Índice INTRODUCCIÓN________________________________________________________

0 downloads 133 Views 171KB Size

Recommend Stories


Tema 6: Periféricos y entrada-salida
Enunciados de problemas Tema 6: Periféricos y entrada-salida Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 2008-2009 T

Tema 6. El sistema de entrada-salida
Soluciones a los problemas impares Tema 6. El sistema de entrada-salida Arquitectura de Computadores I I. T. Informática de Sistemas Curso 2009-201

Técnicas de Entrada-Salida
Sistemas Electrónicos Digitales Universidad de Zaragoza Tema: 08 Técnicas de entrada/salida Teoría Dpto. de Ingeniería Electrónica y Comunicaciones

Story Transcript

Tema 21 – SO. Entrada y salida

28/03/2011

Tema 21 – SO. Entrada y salida Índice INTRODUCCIÓN_________________________________________________________1 El problema de la E/S en los sistemas informáticos___________________________2 SOPORTE HARDWARE DE LA E/S_________________________________________3 Estructura de un módulo E/S_____________________________________________3 El control de las operaciones E/S __________________________________________4 EL SOPORTE DEL SO A LAS OPERACIONES DE E/S DE LOS PROGRAMAS___6 Estructura de E/S del núcleo del SO_______________________________________7 Servicios del subsistema de E/S del SO_____________________________________8 Mejoras del rendimiento con el uso de buffers________________________________9

Introducción Una de las funciones del sistema operativo, al cual me referiré como SO, es gestionar los recursos del ordenador. Los dispositivos de entrada y salida son unos de los principales recursos de hardware. Los dispositivos de entrada y salida incluyen los dispositivos de comunicaciones con usuarios humanos, con otros ordenadores y las memorias de almacenamiento masivo y no volátil. El SO, entre otras funciones, es el encargado de proporcionar rutinas de E/S a los programas, planificar el acceso a los dispositivos de E/S por parte de los usuarios y recuperación ante los errores que puedan surgir. El diseño de los SO respecto a la E/S ha tenido dos objetivos: 

Mejorar el rendimiento: Tanto el general del sistema, como el particular de cada tipo de operación de E/S. La arquitectura hardware del ordenador y del SO han evolucionado conjuntamente en búsqueda de mejorar este rendimiento.



Generalizar las operaciones de E/S: Existe una gran variedad de dispositivos de E/S, que tienen características heterogéneas. Las rutinas intentan, en medida de lo posible, ocultar los detalles de los dispositivos y ofrecer operaciones E/S estándares para todos ellos.

Página 1 de 10

Tema 21 – SO. Entrada y salida

28/03/2011

El problema de la E/S en los sistemas informáticos Las operaciones de E/S provocan dos problemas principalmente: 

La lentitud de los dispositivos de E/S: El procesador es el elemento más rápido de un ordenador, cuatro o cinco veces más lento está la memoria principal. Los dispositivos de E/S pueden llegar a ser muchísimo más lentos. Este es uno de los principales cuellos de botella de los ordenadores, es por ello que la arquitectura a evolucionado para solucionarlo: DMA, interrupciones...



La asincronía de las operaciones: Los dispositivos de E/S no siguen el mismo reloj que la CPU y los tiempos de operación suelen ser impredecibles al SO: Por ejemplo: El momento de pulsación de una tecla. Se ha hecho necesario unas señales de dialogo (hanshacking) que permitan la comunicación entre la CPU y los dispositivos de E/S.

Las tareas básicas del subsistema de E/S (La parte de E/S del sistema y del SO) son: 1. Direccionamiento: Es necesario seleccionar el dispositivo de E/S con el que se realiza la transferencia. 2. Transferencia de datos entre el ordenador y el dispositivo de ES. Puede necesitar determinadas conversión del formato de datos, conversión en serie-paralelo, conversión digital – analógico... 3. Sincronización y control de transferencia: El SO tiene que saber si el dispositivo está preparado para enviar o recibir datos, si ha acabado sus tareas... Uno de los cambios más significativos a la hora de superar las limitaciones de las operaciones de la E/S ha sido la multiprogramación, que se desarrolló durante la década de los 60. En un sistema multiprogramado, el SO tiene varios procesos en memoria principal listos para ejecutarse. Cuando un proceso está en espera de algún suceso, típicamente que finalice una operación de E/S, el SO pone otro proceso en ejecución. Esta mejora no aumenta el rendimiento de un proceso en particular, pero si el rendimiento general del sistema. La multiprogramación se desarrollo gracias a las interrupciones.

Página 2 de 10

Tema 21 – SO. Entrada y salida

28/03/2011

Soporte hardware de la E/S Los dispositivos periféricos se conectan al computador a través de un módulo de E/S. (Módulo E/S, Controlador o Tarjeta de E/S...). El SO interactúa con los periféricos de E/S a través de estos módulos.

CPU Ejecuta una rutina del SO

Módulo E/S Bus del sistema

Conexión con los periféricos

PERIFÉRICO

Las funciones de los módulos de E/S son: 

Interpretar las ordenes que recibe del SO y transmitírsela al periférico.



Controlar la transferencia de datos entre el SO y el periférico. Realizando: o La conversión de formatos que sea necesaria. o Adaptando la diferencia de velocidad entre la CPU y el periférico (mediante buffers de almacenamiento).



Informar a la CPU del estado del periférico.

Un mismo módulo de E/S puede tener conectados diversos periféricos de ES. Estructura de un módulo E/S Un módulo de E/S tiene generalmente los siguientes elementos: 

Un conjunto de registros de control. Unos son registros de escritura, en los cuales el SO deja las órdenes al módulo, y otros registros de lectura, que informan al SO del estado del módulo.



Un buffer de entrada y de salida. Utilizados para almacenar la información que se envía o se recibe. Son necesarios porque la velocidad del sistema y del periférico son diferentes y porque el bus del sistema no está siempre disponible para el módulo E/S.



La USART (Receptor/Transmisor Univeral Síncrono/Asíncrono). Es el dispositivo encargado de adaptar el formato de señal utilizado dentro del ordenador al utilizado por el periférico y viceversa. Esta adaptación puede suponer el cambio de codificación, de velocidad, forma de transmisión...



La UC del módulo: Es la electrónica encargada de interpretar las órdenes del SO y emitir las señales de control necesarias al resto de componentes del módulo para que se ejecuten.

Página 3 de 10

Tema 21 – SO. Entrada y salida

28/03/2011

La comunicación entre el procesador y el módulo de E/S puede diseñarse de dos formas diferentes: 

Como E/S aislada: La ubicaciones de los módulos de E/S y de memoria utilizan espacios de direcciones distintos. Se necesitan instrucciones específicas de E/S. El bus del sistema tiene líneas de control específicas para distinguir entre operaciones de memoria de las de E/S.



Como E/S mapeada en memoria: La E/S y la memoria comparten el mismo espacio de direcciones. Es decir se direccionan los módulos de E/S como si fueran posiciones de memoria principal. No necesita instrucciones especiales, ni líneas adicionales para la E/S. Es una solución más sencilla y flexible que la E/S aislada.

El control de las operaciones E/S Las operaciones E/S se clasifican en cuatro tipos, según el tipo de control que realice el SO sobre ellas: 

E/S programada: El SO inicia la operación de E/S y espera de forma activa su finalización. Se malgasta mucho tiempo de procesador. Es una técnica de control obsoleta, utilizada en los primeros ordenadores.



E/S por interrupciones: El SO inicia la operación de E/S. Mientras ésta se realiza, la CPU ejecuta otro proceso. Cuando el módulo de E/S finaliza la operación de E/S, envía una señal de aviso al procesador. Esta señal se conoce como Interrrupción. Al recibir la interrupción, el procesador realiza un cambio de contexto para ejecutar la rutina del SO encargado de tratar las interrupciones. Esta rutina se denomina RSI –Rutina de servicio de interrupción-. También se tiene en cuenta en las interrupciones: 1. El número de líneas de interrupción puede ser menor que el de periféricos. En este caso, la rutina RSI primero realiza una encuesta entre los periféricos para localizar el que ha enviado la interrupción. 2. Prioridades en las interrupciones. Al tratar una interrupción el SO puede deshabilitar otras interrupciones, para que no le interrumpan otras menos importantes. Se establece unas prioridades en las interrupciones, de forma que una interrupción sólo puede ser interrumpida por otras de mayor prioridad, pues serán más importantes.



Acceso directo a memoria –DMA-: Cuando hay que transferir una gran cantidad de datos, un módulo DMA controla la transferencia de datos entre la memoria y el módulo de E/S. Gracias a lo cual, el SO evita tener que tratar una interrupción por cada bloque de datos enviado. El SO reserva un buffer de memoria para la transferencia, vacío en caso de recepción o con los datos a enviar. Le comunica al módulo DMA, donde comienza y cuan largo es el buffer. El DMA se encarga de transmitir todos los bloques de datos y de avisar al procesador, mediante una interrupción, cuando termina.

Página 4 de 10

Tema 21 – SO. Entrada y salida

28/03/2011

El DMA debe actuar como maestro del bus durante la transferencia DMA y ser capaz de: o Solicitar el uso del bus mediante las señales y la lógica de arbitraje necesarias. o Especificar la dirección de memoria sobre la que se realiza la transferencia. o Generar las señales de control del bus: tipo de operación (E/S), señales de sincronización de la transferencia. Si el DMA sólo toma el control del bus durante los intervalos de tiempo en los que la CPU no hace uso del mismo, se minimiza el impacto sobre el rendimiento del sistema. Se distinguen dos tipos de transferencias: o Transferencia DMA modo ráfaga (burst): El DMA solicita el control del bus del sistema. Cuando se le concede, no lo libera hasta haber finalizado la transferencia de todo los bloques de datos. La transferencia de datos se hace muy rápida, pero mientras transmite, el procesador no puede acceder a memoria, lo que puede reducir el rendimiento del sistema. o Transferencia DMA modo robo de ciclo: Cuando conceden el bus al DMA, este transmite un único bloque de datos, y luego lo libera. Luego el DMA vuelve a solicitarlo. Así, hasta que se haya transmitido todos los datos. Este sistema no interrumpe el trabajo del procesador, por los que no afecta al rendimiento del sistema, aunque los datos tardan más en transmitirse. Es la forma de transmisión más común. Actualmente, el DMA puede estar integrado con un módulo de E/S. 

Procesador de E/S: El módulo de E/S contiene un procesador independiente capaz de ejecutar instrucciones para operaciones de E/S. El SO ordena al módulo de E/S que programa de E/S ejecutar y que parámetros de entrada usar. La ejecución del programa de E/S se realiza de forma independiente al procesador principal. Hay procesadores de E/S que tienen su propia memoria para instrucciones y datos. Ejemplo: Las tarjetas gráficas aceleradoras.

Página 5 de 10

Tema 21 – SO. Entrada y salida

28/03/2011

El Soporte del SO a las operaciones de E/S de los programas Como he comentado anteriormente, los programas no acceden directamente a los dispositivos de E/S, sino que para ello utilizan rutinas de E/S que proporciona el SO. Con el uso de estas rutinas se busca reducir el esfuerzo de desarrollo de los programas. Las rutinas proporcionan una serie de funciones de E/S estándares y uniformes que oculten los detalles de implementación. De esta forma, un programa al crear un fichero no necesita saber los detalles técnicos del dispositivo de almacenamiento utilizado. La estructura de las funciones de E/S del SO tiene una estructura jerárquica y modular, es decir, sigue un diseño de capas como el protocolos TCP/IP pero más sencilla. Las funciones de E/S se organizan de acuerdo a su complejidad en tres capas: 

La capa de E/S lógica. Esta capa contiene las funciones que tratan al dispositivo como un recurso lógico. Proporciona a los programas rutinas simples como abrir, cerrar, leer, escribir... Trabaja con conceptos de ficheros, registros, tipos de datos… Transforma las operaciones lógicas de E/S en un conjunto ordenado de operaciones físicas de E/S. Realiza la traducción del direccionamiento virtual utilizado por los programas a direcciones físicas de los dispositivos involucrados en las operaciones de E/S.



La capa de E/S física. Ofrece operaciones de E/S de bajo nivel, dependientes del tipo de dispositivo y organización física de los datos. Trabaja con conceptos de bloques de datos, buffers intermedios, cachés de discos…



Manejador de dispositivo (driver). Realiza la planificación y coordinación de las operaciones físicas de E/S, así como el control de interrupciones. Interacciona directamente con el hardware.

SO

Procesos de usuario Rutinas de E/S del SO E/S lógica E/S Física Manejador de dispositivos

Hardware Las llamadas al SO para efectuar las operaciones de E/S son costosas, en términos de uso de CPU, a causa de las múltiples capas entre los procesos y el hardware.

Página 6 de 10

Tema 21 – SO. Entrada y salida

28/03/2011

Las operaciones conllevan los siguientes gastos: •

Cambio de contexto entre el proceso y el SO.



Copiar los datos entre los buffers del SO y la imagen del proceso.



Manejo de las señales e interrupciones necesarias para dar servicio al dispositivo.

Las llamadas a rutinas de E/S suelen provocar el bloqueo del proceso que las realiza, es decir, que deja de ejecutarse hasta que se resuelve la llamada. En ciertos casos, no es necesario que el proceso quede bloqueado. Existen rutinas de ES no bloqueantes, denominadas asincronas. Estructura de E/S del núcleo del SO La variedad de dispositivos de E/S es enorme y crece sin parar. Los fabricantes de los dispositivos proporcionan el software de control de más bajo nivel que se integra con el núcleo del SO. Este software se conoce como software manejador del dispositivo o, más comúnmente, drivers. Este software evita que el SO tenga que conocer los detalles de todos los dispositivos de E/S posibles. Los SOs tienen un estándar para el interfaz de los drivers. De esta forma se puede integrar fácilmente nuevos drivers con el SO. Un inconveniente es que cada SO tiene su propio estándar, por lo que los drivers son dependientes del SO. Núcleo del SO Subsistema de E/S del núcleo Driver de los dispositivos SCSI

Driver teclado

del

Módulo E/S de los dispositivos SCSI

Módulo E/S del teclado

Driver bus PCI

Software del

Módulo E/S del bus PCI

...

... Hardware

Dispositivos SCSI

Teclado

Bus PCI

...

El SO mentiene la información soble los dispositivos de E/S y sus características en una serie de estructuras de datos en memoria. Los SO modernos, basados en UNIX (ejemplo Linux) o WINNT (ejemplo win xp) utilizan la orientación a objetos a la hora de crear estas estructuras.

Página 7 de 10

Tema 21 – SO. Entrada y salida

28/03/2011

Servicios del subsistema de E/S del SO Los servicios más comunes que ofrece el SO son: ♦ Planificación de la operaciones de E/S: El orden con que las aplicaciones emiten las llamadas al sistema no suele ser el mejor orden posible. Esto es especialmente importante en los discos duros, principal dispositivo de memoria secundaria. Conviene reordenar las peticiones de E/S sobre el disco de forma que se minimicen los movimientos físicos del brazo. Se busca minimizar el tiempo de búsqueda – seektime- que es el tiempo que tarda el brazo en moverse hasta el ciclindro donde está el dato. Los algoritmos utilizados para planificar estas operaciones son: o La primera petición en llegar, es la primera en atenderse –FIFO-: No reordena las peticiones, es una solución ineficiente. o SSTF –Shortest SeekTime First-: Selecciona la petición en espera con menor tiempo de latencia según la posición del brazo en ese momento. Es un algoritmo que sencillo y eficiente, pero tiene el inconveniente de ser injusto. Si una petición accede a un cilindro alejado de los ciclindros más accedidos, puede tener que esperar mucho a ser atendido. o SCAN: Consiste en crear una cola FIFO por cada cilindro del disco duro. En la colas se almacenan las peticiones. El blazo del disco recorre continuamente el disco de extremo a extremo, atendiendo las peticiones a cada ciclindro. Es más complejo que el SSTF, pero es más justo. Si el brazo atiende las peticiones cuando viaja en cualquiera de los sentidos, entonces perjudica a las peticiones que van dirigidas a los extremos del disco. ♦ Uso de bufferes: Ver siguiente apartado ♦ Reserva de dispositivos: En el caso de dispositivos que no permitan que varios procesos acceden a él de forma intercalada, el SO puede asignar el dispositivo a un proceso en particular, de forma que el resto de dispositivos tengan que esperar para iniciar la comunicación. (Ejemplo, una impresora matricial) ♦ Manejo de errores: Las rutinas del SO realizan un manejo de los errores en el acceso a los dispositivos, de forma que si, por ejemplo, falla el acceso a un CD, el SO puede ordenar un segundo intento de acceso. ♦ Traducción de nombres: Los programas no direccionan directamente los dispositivos de E/S sino que utilizan nombres simbólicos, por ejemplo el uso de abstracciones como la de fichero. El SO debe controlar la correspondencia que transforma la cadena de caracteres del nombre abstracto en un dispositivo hardware y su módulo de E/S, y después en direcciones físicas de los registros del modulo de E/S.

Página 8 de 10

Tema 21 – SO. Entrada y salida

28/03/2011

Mejoras del rendimiento con el uso de buffers El SO reserva una parte de la memoria principal para almacenar temporalmente los datos que se están transmitiendo. Con dos objetivos: 

El almacenamiento intermedio de E/S. Las operaciones de E/S conllevan que se transmitan datos desde posiciones de la memoria de un proceso al periférico, en caso de escritura, y a la inversa, en caso de la lectura. Con la técnica de almacenamiento intermedio, los datos transmitidos se almacenan primero en un buffer en memoria principal perteneciente al SO. La utilización de un buffer intermedio tiene las siguientes ventajas: 1. Permite eliminar el problema de la diferencia de velocidad entre el emisor y el receptor de los datos transmitidos. 2. Mientras se espera que finalice la operación de E/S, se puede descargar la imagen del proceso a memoria secundaria, en caso de haber memoria virtual. Si no hubiera un buffer intermedio no se podría pues no se podría leer o guardar los datos. 3. Permite hacer ‘lectura adelantada’: Mientras un proceso está tratando los datos leídos, el SO va leyendo otro bloque de datos del periférico antes que proceso lo solicite. Los procesos que hacen una lectura secuencial de los datos mejoran el rendimiento con esta técnica. La estructura del buffer intermedio puede ser:





Buffer sencillo: Sólo hay un buffer, para cada operación de E/S. No permite lectura adelantada.



Buffer doble: Mejora al buffer sencillo. Mientras el proceso accede a uno de los buffers, el SO puede utilizar el otro.



Buffer circular: Se utiliza para dispositivos con funcionamiento a ráfagas. En el caso de lectura, el dispositivo almacena la ráfaga de datos en el buffer, mientras el SO va accediendo a ellos poco a poco. En el caso de escrituras, se almacena poco a poco los datos generados por el proceso y los envía en una rápida ráfaga al periférico. Consume mucho espacio de memoria.

Caché de disco: Es una variante del buffer de lectura adelantada, destinado a mejorar las operaciones de E/S sobre discos duros. El SO mantiene en memoria principal un buffer que actúa de caché sobre el disco, con la finalidad de aprovechar la superior velocidad de la memoria principal sobre la memoria secundaria. En un sistema con caché de disco, cuando un proceso realiza una operación de E/S sobre el disco, el SO primero comprueba si el dato está en la caché y, si lo está, efectúa la operación en la caché. Si no lo está, accede al disco duro y trae el bloque de disco accedido a la memoria caché.

Página 9 de 10

Tema 21 – SO. Entrada y salida

28/03/2011

La mejora de rendimiento se basa en le principio de localidad espacial y temporal de las referencias de memoria de los programas. El rendimiento obtenido por la caché es directamente proporcional al tamaño de la caché y a la política de reemplazo utilizada. Las dos políticas de reemplazo más utilizadas son: ◊

LRU. Se selecciona el bloque que lleva más tiempo sin usarse.



LFU. Se selecciona el bloque con menos frecuencia de acceso.

Ninguna de las dos políticas es inherentemente mejor que la otra.

Página 10 de 10

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.