sistemas de entrada y salida

36
SISTEMAS DE ENTRADA/SALIDA Generalidades de los Sistemas de E/S Hardware de E/S Subsistema de E/S Técnicas de E/S

Upload: israel-rey

Post on 21-Jan-2017

105 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Sistemas de entrada y salida

SISTEMAS DE ENTRADA/SALIDA

Generalidades de los Sistemas de E/SHardware de E/SSubsistema de E/STécnicas de E/S

Page 2: Sistemas de entrada y salida

SISTEMAS DE ENTRADA/SALIDA

• Analizar la estructura del subsistema de E/S de un sistema operativo.•Explorar los principios en que se basa el hardware de E/S y los aspectos relativos a su complejidad.

Page 3: Sistemas de entrada y salida

GENERALIDADES DE LOS SISTEMAS DE E/S

Para los diseñadores de SO, el control de los dispositivos conectados a la computadora es de primordial interés, debido a que cada dispositivo cambia sus funciones y velocidad por lo cual se requiere variedad de métodos para controlarlos.

Estos métodos de E/S forman el subsistema de E/S del kernel, el cual aisla al resto del kernel de la complejidad de la administración de los dispositivos de E/S.

La tecnología de E/S exhibe dos tendencias que están en conflicto:* Creciente estandarización de las interfases de SW y HW con los cual se ayuda a incorporar en las computadoras y SO generaciones mejoradas de dispositivos.

Page 4: Sistemas de entrada y salida

GENERALIDADES DE LOS SISTEMAS DE E/S

Nuevos dispositivos que son tan diferentes los anteriores que se son difíciles de incorporar en las computadoras y SO; por lo que se convierte en un reto esta incorporación a través de combinación de técnicas de HW y SW.

Los detalles y peculiaridades de los diferentes dispositivos se encapsulan en módulos de manejadores de dispositivos (interfaz uniforme de acceso a dispositivos con el subsistema de E/S). Para lo cual se estructura al kernel del sistema operativo para que use estos módulos.

Page 5: Sistemas de entrada y salida

OBJETIVOS DEL SISTEMA DE E/S

•Proporcionar una interfaz uniforme para el acceso a los dispositivos (independencia del dispositivo).•Proporcionar manejadores (drivers) para los dispositivos concretos•Tratar automáticamente los errores más típicos.•Para los dispositivos de almacenamiento, utilizar cachés.•Para los discos, planificar de forma óptima las peticiones.

Page 6: Sistemas de entrada y salida

HARDWARE DE E/SUn dispositivo se comunica con un sistema de cómputo enviando señales a través de un cable o incluso a través de aire. El dispositivo se comunica:•Con la máquina mediante un punto de conexión llamado puerto.•Si uno o más dispositivos utilizan un conjunto de cables, la conexión se denomina bus.

Page 7: Sistemas de entrada y salida

HARDWARE DE E/SUn controlador es un conjunto de componentes electrónicos que pueden operar un puerto, un bus o un dispositivo.

Los controladores pueden ser sencillos (controlador de puerto serial) o complejos (controlador de bus SCSI).

Los dispositivos de E/S que se conectan al ordenador se clasifican en:

BLOQUE: La información se almacena en bloques, esos bloques son de tamaño fijo. Donde cada bloque tiene una dirección que lo identifica. Se puede leer o escribir en un bloque independiente de los demás. Por ejemplo: disquete, CD, DVD, disco duro.

Page 8: Sistemas de entrada y salida

HARDWARE DE E/SCARÁCTER: La información que se generan o reciben son flujos de caracteres (no bloques). Accede a los datos en secuencia: o sea, para acceder a determinados datos, la lectura y escritura se debe hacer seguido de los datos anteriores. Por ejemplo: teclado, pantalla, cinta, ratones.A continuación un cuadro comparativo de diferentes dispositivos:

Page 9: Sistemas de entrada y salida

HARDWARE DE E/S¿Cómo puede el procesador entregar comandos y

datos a un controlador para realizar una transferencia de E/S?

• El controlador tienen uno o más registros para datos y señales de control.

• El procesador se comunica con el controlador leyendo y escribiendo patrones de bits en estos registros.

Hay dos formas de comunicación:

1) Mediante el uso de interrupciones especiales de E/S que especifican la transferencia de un byte o palabra a la dirección de un puerto de E/S.

2) El controlador de dispositivo puede soportar E/S con mapeo en memoria; en este caso los registros de control del dispositivo se mapean en el espacio de direcciones del procesador.

Page 10: Sistemas de entrada y salida

HARDWARE DE E/S Ubicación de puertos de E/S para dispositivos en

computadoras compatibles con PC

Page 11: Sistemas de entrada y salida

ESCRUTINIOEjemplo de interacción entre el anfitrión y el controlador

Suponemos que se usan 2 bits para coordinar la relación productor-consumidor entre el controlador y el anfitrión.

El controlador indica su estado mediante el bit busy en el registro status.

El controlador prende el bit busy cuando está ocupado trabajando y lo apaga cuando está listo para aceptar el siguiente comando.

El anfitrión señala sus deseos mediante el bit command-ready en el registro command.

El anfitrión prende el bit command-ready cuando está disponible un comando para que el controlador lo ejecute.

Page 12: Sistemas de entrada y salida

Siguiendo con el ejemplo:El anfitrión lee repetidamente el bit busy hasta que dicho bit se

apaga.

El anfitrión está en espera ocupada o en escrutinio: está en un ciclo, leyendo el registro status una y otra vez hasta que el bit busy se apaga. Para que funcione este método, controlador y el dispositivo deben de ser rápidos o se perderá los datos que se encuentran en el buffer del controlador.En Muchas arquitecturas de computadoras, son suficientes tres ciclos de instrucción a la CPU para escrutar un dispositivo: leer (read) un registro de dispositivo, realizar un operación de “y lógico”(logical--and) para extraer el bit de estado y proceder a una ramificación (branch) si no es cero. La operación básica de escrutinio es eficiente; pero se vuelve ineficiente cuando se intenta repetidamente y pocas veces encuentra un dispositivo listo para servicio, mientras que otras actividades útiles de procesamiento permanecen sin realizarse.

Page 13: Sistemas de entrada y salida

INTERRUPCIONES

Una interrupción es el mecanismo que le permite al controlador de hardware notificar a la CPU cuando un dispositivo esta listo para servicio.

El mecanismo básico de interrupción habilita a la CPU para responder a un evento asíncrono, el cual puede ser que el controlador de dispositivo quede listo para dar servicio

Page 14: Sistemas de entrada y salida

Características para el manejo de interrupciones:- Capacidad para diferir el manejo de interrupciones durante un procesamiento crítico.- Eficiente manejo de interrupciones para un buen desempeño del sistema (evitar hacer escrutinio).- Basado en prioridad.

Líneas de solicitud de interrupción CPU:* Interrupción no mascarable: eventos como errores de memoria no recuperables.* Inerrupción Mascarable: pueder ser apagada por la CPU antes de la ejecución de secuencias críticas que no deben ser interrumpidas.

Page 15: Sistemas de entrada y salida

Tabla de vectores del procesador Pentium de Intel

Page 16: Sistemas de entrada y salida

ACCESO DIRECTO A MEMORIA

• Evitar usar el proceso de E/S programada cuando se transfieren datos grandes para no sobrecargar la CPU.

• Transferir parte del trabajo a un procesador de propósito especial denominado controlador de acceso directo a memoria (DMA).

• Cuando la CPU escribe la dirección del bloque de comandos en el controlador de DMA, luego sigue con otro trabajo y el controlador de DMA opera directamente el bus de la memoria colocando direcciones para realizar transferencias sin ayuda de la CPU principal.

• Algunas arquitecturas utilizan direcciones de memoria física para DMA, pero otras efectúan un acceso directo a memoria virtual, utilizando direcciones virtuales que se traducirán a direcciones de memoria física.

Page 17: Sistemas de entrada y salida

Pasos en una transferencia DMA

Page 18: Sistemas de entrada y salida

INTERFAZ DE E/S DE LAS APLICACIONES Examinaremos técnicas de estructuración y las interfaces

para el sistema operativo que permiten tratar a los dispositivos de E/S en una forma estándar y uniforme.

Problemas complejos de ingeniería de software, esto implica una abstracción, encapsulado y desarrollo de capas de software.

Aspectos de variación: modo de transferencia de datos, método de acceso, plan de transferencia, compartimiento, velocidad de dispositivo, dirección de E/S

Page 19: Sistemas de entrada y salida

INTERFAZ DE E/S DE LAS APLICACIONES

Flujo de caracteres o bloque: Un dispositivo transfiere los bytes uno a uno, mientras que un dispositivo de bloque transfiere un bloque de bytes como una sola unidad. Acceso Secuencial o aleatorio: Un dispositivo secuencial transfiere los datos en un orden fijo determinado por el dispositivo, mientras que el usuario de un dispositivo de acceso aleatorio puede instruir al dispositivo para que se posicione en cualquiera de las ubicaciones disponibles de almacenamiento de bits. Síncrono o asíncrono: Un dispositivo síncrono realiza transferencias de datos con tiempos de respuesta predecibles. Un dispositivo asíncrono exhibe unos tiempos de respuesta irregulares o no predecibles.

Page 20: Sistemas de entrada y salida

INTERFAZ DE E/S DE LAS APLICACIONES

Compartible o dedicado: Un dispositivo compartible puede ser usado de forma concurrente por varios procesos o hebras; un dispositivo dedicado no puede ser compartido de esta forma.

Velocidad de operación: Las velocidades de los dispositivos van desde unos pocos bytes por segundo a unos cuantos gigabytes por segundo.

Lectura-escritura; sólo lectura o sólo escritura: Algunos dispositivos realizan tanto entrada como salida, pero otros sólo soportan una única dirección de transferencia de los datos..

Page 21: Sistemas de entrada y salida

RELOJES Y TEMPORIZADORES

•Proporciona: la hora, tiempo transcurrido y el valor de un temporizador para activar la operación X a la hora T (cronómetro).

•El hardware para medir el tiempo transcurrido y activar operaciones se denomina temporizador de intervalos programable y se lo usa para fijar una cantidad de tiempo y genere una interrupción, realice operaciones periódicas.

Page 22: Sistemas de entrada y salida

E/S CON BLOQUEO Y SIN BLOQUEO

• Con Bloqueo: se suspende la ejecución de dicha aplicación. La mayoría de SO la utilizan, puesto que es más fácil de entender y aplicar.

• Implementación multihilos. • Algunos procesos a nivel de usuario necesitan E/S

sin bloqueo, ya que no detiene la ejecución de la aplicación por mucho tiempo, regresando rápidamente con un valor de retorno que indica cuántos bytes fueron transferidos.

• Asíncrono: llamada que regresa inmediatamente, sin esperar a que se complete la operación E/S. (difícil de usar)

Page 23: Sistemas de entrada y salida

SUBSISTEMA DE E/S DEL KERNEL

* El subsistema de E/S kernel ofrece varios servicios y se apoya en el hardware y se apoya en la infraestructura de manejadores de dispositivo.

* Los servicios son la planificación de E/S, la Asignación de buffers, la asignación de caché, el spooling, la reservación de dispositivos y el manejo de errores.

Page 24: Sistemas de entrada y salida

SUBSISTEMA DE E/S DEL KERNEL

Page 25: Sistemas de entrada y salida

PLANIFICACIÓN DE E/S- Se debe determinar un orden adecuado para la

ejecución de las solicitudes.

- Mejora el desempeño global del sistema, así como compartir equitativamente el acceso a dispositivos entre los procesos y reducir el tiempo de espera promedio para la terminación de E/S.

- Los diseñadores de SO implementan la planificación manteniendo una cola de solicitudes para cada dispositivo, puede darle prioridad a las solicitudes sensibles a demoras (memeria virtual).

Page 26: Sistemas de entrada y salida

Empleo de buffersº buffer: área de memoria

que almacena datos mientras éstos se transfieren entre dos dispositivos o un dispositivo y una aplicación.

º Razones para el empleo de buffers:1. Hacer frente a la falta de correspondencia en velocidad entre el productor y el consumidor de un flujo de datos.

Page 27: Sistemas de entrada y salida

2. Lograr una adaptación entre dispositivos que tienen diferentes tamaños de transferencia de datos (fragmentación y reensamblaje de paquetes en la red).

3. Soportar semántica de copiado para E/S de aplicaciones.

Page 28: Sistemas de entrada y salida

Empleo de Cachés- Caché: Región de memoria rápida que contiene copias de

datos. El acceso a la caché es más eficiente que el acceso a la original.

- Diferencia entre buffer y caché es que el primero puede contener la única copia existente de un elemento de datos y una caché sólo contiene en almacenamiento más rápido una copia de un elemento que reside en alguna otra parte.

- El empleo de cachés y de buffers son dos funciones distintas, aunque en ocasiones se puede utilizar una región de memoria para ambos propósitos.

Page 29: Sistemas de entrada y salida

Spooling y reservación de dispositivos

•Spool: es un buffer que contien la salida para un dispositivo, como una impresora, que no puede aceptar flujos de datos entercalados.

•El spooling es una forma en que los SO pueden coordinar la salida concurrente.

•Reservación de un dispositivo.- proporciona acceso exclusivo a un dispositivo.

Page 30: Sistemas de entrada y salida

Manejo de ErroresLos dispositivos y las transferencias de E/S

pueden fallar en muchas formas, ya sea por razones transitorias o permanente.

Los SO pueden a menudo compensar eficazmente las fallas transitorias.

Una llamada al sistema de E/S devolverá 1 bit de información acerca del estado de la llamada, indicando ya sea un éxito o fracaso.

El hardware puede proporcionar una información de error con gran detalle, aunque los SO actuales no lo hacen tan detallado.

Page 31: Sistemas de entrada y salida

ESTRUCTURA DE DATOS DEL KERNELEl Kernel necesita mantener información de

estado acerca del uso de los componentes de E/S lo que realiza mediante tabla de archivos abiertos, conexiones de red, estado de dispositivos de carácter, etc…

Algunos SO utilizan métodos orientados a objetos y el paso de mensajes para llevar a cabo la E/S.

El subsistema de E/S coordina una extensa colección de servicios, que están disponibles para las aplicaciones y para otras partes del kernel.

Page 32: Sistemas de entrada y salida

Estructura del Kernel de E/S de UNIX

Page 33: Sistemas de entrada y salida

MANEJO DE LAS SOLICITUDES DE E/S

Considere que se esta leyendo un archivo desde el disco para un proceso:

Determine el dispositivo que pertenece a ese archivo.

Descifrar el nombre que representa a ese archivo.Si los datos no están en el buffer, realizar una E/S

física.Asignar espacio para recibir datos y planificar E/S. Realizar transferencia de datosDeterminar estado de solicitudRetornar el control al proceso.

Page 34: Sistemas de entrada y salida

Ciclo de vida de una solicitud de E/S

Page 35: Sistemas de entrada y salida

Desempeño

La actividad de E/S es un factor importante en el desempeño del sistema, por lo que pone de manifiesto cualquier deficiencia en los mecanismos de manejo de interrupciones en el kernel.

Demandas de la CPU para ejecutar código de manejadores de dispositivos ponen en manifiesto cualquier deficiencia en el manejo de interrupciones del Kernel.

Podemos aplicar varios principios para mejorar la eficiencia de E/S:

1. Reducir el número de conmutaciones de contexto.2. Reducir el número de datos de copiado.3. Reducir la frecuencia de las interrupciones.4. Incrementar la concurrencia.5. Utilizar DMA.6. Equilibrar el desempeño de la CPU, el subsistema de memoria, el bus y el sistema de E/S.

Page 36: Sistemas de entrada y salida

Progresión de la funcionalidad de dispositivos