Gestion de Entradas y Salidas

Preview:

Citation preview

Gestión de E/S

IntroducciónIntroducción

El corazón de una computadora lo constituye la CPU

Pero no serviría de nada sin: -Dispositivos de almacenamiento secundario (discos, cintas, etc.). -Dispositivos periféricos, que le permitan interactuar con el usuario:

Generalmente están fuera de la computadora y se conectan a ella mediante cables.

Son los teclados, ratones, micrófonos, cámaras y cualquier otro dispositivo de E/S que se le ocurra conectar a una computadora.

Dispositivos de E/SDispositivos de E/S

Los dispositivos que tienen que hacer E/S con los computadores se clasifican en 3 categorías:

1) Dispositivos legibles por el humano: teclado, pantalla, impresora, mouse

2) Dispositivos legibles por la máquina: discos, unid. De cinta, controlador, etc.

3) Dispositivos de comunicaciones: módem, Tarjeta de Red, etc.

......

Otra manera de ver los tipos de dispositivos de E/S es:

– – Dispositivos de bloquesDispositivos de bloques• Almacenan la información en bloques de tamaño fijo• Cada bloque tiene su propia dirección (nº de bloque)• Es posible leer/escribir cada bloque independientemente

• Ejemplo: discos.

– – Dispositivos de caracteresDispositivos de caracteres• Aceptan o envían flujos de caracteres• No son direccionables

• Ejemplo: impresoras.

El problemaEl problema

a) Los procesos hacen un uso extensivo de E/S

b) Cada dispositivo de E/S tiene su propia idiosincrasia

c) Los dispositivos necesitan ayuda del núcleo

d) Diferentes velocidadesCPU ejecuta operaciones a 1 GHz o más (nanosegundos)

RAM: acceso de nanosegundos.Dispositivos de E/S: acceso de milisegundos o más.

Esta diferencia y el deseo de aplicaciones interactivas hace que la E/S sea el cuello de botella.Los sistemas operativos se esfuerzan para optimizar la E/S.

......

SCSI bus

fast eth

disco duro

ethernet

impresora laser

modem

ratón

teclado

0,00 0,01 0,10 1,00 10,00 100,00 1000,00 10000,00 100000,00

Velocidades de datos de dispositivos

Funciones del SO para la gestión de dispositivosFunciones del SO para la gestión de dispositivos

– Enviar comandos a los dispositivos.

– Capturar interrupciones.

– Tratar errores.

– Proporcionar un interfaz entre los dispositivos y el resto del sistema operativo:

• Simple.• Fácil de utilizar.• Idéntico para todos los dispositivos.

A pesar de la inmensa variedad de dispositivos de entrada/salida, tan solo se requieren unos cuantos conceptos para entender como están conectados y como se pueden controlar mediante programas.

Puerto: Es el punto físico de conexión de un dispositivo al sistema.

Bus: Conjunto de cables que son compartidos por un conjunto de ports para transmitir información. El manejo de este bus esta definido de forma estricta mediante un protocolo.

Controlador: Conjunto de circuitos que operan sobre un bus, un puerto o un dispositivo.

Estructura de un PC

Präsentation

Conexión entre periféricos y CPU

Inicialmente el procesador controlaba directamente los dispositivos de E/S.

Para aislar al procesador de los detalles específicos del dispositivo se realiza una conexión indirecta a través de:

Controladoras

Canales

Controladoras

Las unidades de E/S suelen constar de un componente mecánico (el propio del dispositivo) y uno electrónico (controladora ó adaptador de dispositivo).

La CPU se conecta a través de esta controladora al dispositivo.

Una controladora puede servir para varios dispositivos del mismo tipo.

La interfaz entre la controladora y el dispositivo es estándar como:

IDE (Integrated Device Electronics), SCSI( Small Computer System Interface), USB (Universal Serial Bus) y otros.

Funciones:

Almacenar el estado del dispositivo. Controlar el dispositivo. Convertir el flujo de bits en una serie de bloques de bytes y realizar la corrección

de errores necesaria.

Canales

Otra forma de conexión es a través de canales de E/S, que consiste en unProcesador especifico para operaciones de E/S.

La evolución de estos procesadores han llevado a que tengan su propia memoria,Se habla ahora de procesadores de E/S (Ej: Familia IOP de Intel).

El canal pretende tratar el dispositivo como abstracto ó virtual.

Se maneja mediante ordenes especializadas. Una vez terminada la acción elCanal devuelve el estado del dispositivo a la vez que interrumpe el procesador Central.

Los canales pueden ser:

Selectores:

Permiten manejar varios dispositivos pero solo uno en cada momento,Generalmente es usado con dispositivos rápidos.

Multiplexores:

Trabajan con varios dispositivos pudiendo transferir datos de todos simultáneamente.Esta relacionado con dispositivos lentos como el teclado o la impresora.

Control de E/S

¿Cómo conoce el HW y el SO que una operación de E/S ha acabado?

Existen tres técnicas para realizar la E/S:

1. E/S programada

2. E/S dirigida por interrupciones

3. E/S por acceso directo a la memoria (DMA)

E/S programada:

Inicialmente el procesador controlaba directamente los dispositivos periféricos.

Luego se añade una controladora del dispositivo de E/S. La CPU utiliza E/S programada.

El dispositivo E/S realiza la acción (no la CPU) colocando los bits necesarios en sus registros de status.

La CPU chequea los bits de status continuamente. Este comportamiento se conoce como sondeo (polling) ó espera activa (la CPU esta ocupada hasta que acaba La operación de E/S).

No hay interrupciones.

E/S dirigida por interrupciones:

Son un mecanismo asistido por HW para Sincronizar el procesador con los procesos Asincronos.

La CPU es interrumpida cuando el dispositivo E/S está listo para intercambiar datos.

La CPU está libre entre la solicitud de datos e interrupción.

No hay necesidad de esperar.

Consume mucha CPU ya que cada byte leído/escrito pasa por la CPU desde/hacia la memoria.

Una interrupción ó petición IRQ (Interrupt Request) es una señal que seorigina en un dispositivo HW para indicar al procesador que algo requiere su asistencia.

E/S con acceso directo a memoria (DMA):

Transfiere un bloque de datos directamente hacia/desde la memoria sin usar CPU

Se envía una interrupción cuando los datos fueron transferidos

La CPU sólo participa al inicio y al final de la acción

DMA (Direct Memory Access):

Para evitar que la CPU sea la encargada de transferir datos entre la memoria y el periférico se usa el DMA.

La técnica de Acceso Directo a Memoria (DMA) requiere un módulo adicional conectado al bus del sistema: El controlador de DMA que es capaz de hacer las funciones asignadas a la CPU y asumir el control del sistema

El controlador de DMA contiene:

◆ Registro de Datos

◆ Registro de Direcciones

◆ Registro contador de palabras

◆ Unidad de control del DMA

Estos registros permiten al controlador de DMA transferir datos desde (o hacia) una zona contigua de memoria:

El registro de dirección

◆ Almacena la dirección de la siguiente palabra a transmitir

◆ Se incrementa de forma automática después de cada transferencia

El registro contador de palabras

◆ Almacena el número de palabras que quedan por enviar

◆ Se decrementa automáticamente después de cada transferencia

La unidad de control del DMA

◆ Comprueba si el contenido del registro contador es 0

◆ Cuando alcanza este valor para la transferencia, envía una señal de interrupción a la CPU para indicarle que la transferencia a finalizado

Cuando la CPU desea leer o escribir un bloque de datos emite una orden al controlador de DMA enviándole la siguiente información:

◆ Si la operación es de lectura o escritura

◆ La dirección del periférico

◆ La posición de comienzo de memoria de donde hay que leer o donde hay que escribir

◆ El número de palabras que se tienen que leer o escribir

A partir de este momento la CPU continúa realizando otra tarea. La CPU ha delegado esta operación de E/S en el controlador de DMA y es este módulo quien se encargará de ella.

El controlador de DMA transfiere directamente, palabra a palabra, el bloque completo de datos entre el periférico y la memoria, sin pasar par la CPU.

Cuando la transferencia finaliza el controlador de DMA envía una señal de interrupción a la CPU.

De esta forma la CPU únicamente participa al comienzo y al final de la transferencia

El controlador de DMA necesita tener el control del bus para poder transferir datos hacia (o desde) la memoria:

◆ Por ráfagas

◆ Por robo de ciclos

◆ DMA transparente

◆ Por demanda

◆ Dato a dato

Cuando el controlador de DMA está preparado para transmitir o recibir datos, activa la línea de petición de DMA a la CPU.

La CPU espera en el siguiente punto de ruptura del DMA, renuncia al control de los buses de datos y direcciones y activa la línea de reconocimiento de DMA

ASPECTOS DE DISEÑO DEL SISTEMA OPERATIVOASPECTOS DE DISEÑO DEL SISTEMA OPERATIVO

OBJETIVOS del diseño de la E/S:

1) Eficiencia:1) Eficiencia:

Reducir al máximo el tiempo de las operaciones de E/S, y evitar cuello de botella. Solución principal: Paralelización de las operaciones de E/S con las operaciones de la CPU (multiproceso)

......

2) Generalidad:2) Generalidad:

Uniformidad en el trato de dispositivos distintos:a) en la interfaz entre el proceso y los dispositivos b) en la gestión entre el Sistema Operativo y los dispositivos.

Solución principal: Enfoque Modular y jerárquico en el diseño de funciones de E/S.

Modularidad. Distribuir las funciones en capas organizadas jerárquicamente (niveles).

Los niveles coinciden con los requisitos de tiempos de respuesta requeridos. Niveles bajos atienden a eventos rápidos (hardware), mientras los niveles altos atienden a eventos o solicitudes menos críticas (comunicación con el usuario).

......

Hay tres configuraciones principales, que corresponden a:

1. Comunicación con un dispositivo periférico local

2. Dispositivo de comunicaciones

3. Dispositivo de almacenamiento secundario

Procesos deUsuario

E/S lógica

E/S condispositivos

Planificacióny Control

Hardware

1) Comunicación con un dispositivo periférico local,

Los niveles son:

Trata al dispositivo como un recurso lógico, sinpreocuparse de los detalles de control del dispositivoparticular. Se ocupa de la gestión de funciones generales de E/S pedidas por los procesos de usuario, proporciona identificadores y operaciones de: lectura, escritura, apertura y cierre.

Convierte las operaciones pedidas y datos en secuencias de instrucciones de E/S, comandos para el canal y ordenes al controlador.

Este nivel maneja la planificación, encolado y control de las operaciones de E/S; además del manejo de interrupciones. Se encarga de realizar la comunicación con el hardware.

Procesos deUsuario

Arquitectura deComunicaciones

E/S condispositivos

Planificacióny Control

Hardware

2) Dispositivo de comunicaciones

Es muy parecida a la anterior. La diferencia principal es que el nivel de E/S lógica se reemplaza por una arquitectura de comunicaciones, que a su vez puede constar de varios niveles.

Ej. OSI, arquitectura de interconexión de sistemasabiertos (7 niveles)

Procesos deUsuario

Gestión de directorios

Sistema deArchivos

OrganizaciónFísica

E/S condispositivos

Planificacióny Control

Hardware

3) Sistema de Almacenamiento secundario

Traducción de nombres de los archivos a identificadores que referencian al file. Operaciones que tienen que ver con la gestión de directorios: Añadir, Borrar, Reorganizar

Estructura lógica de los archivos. Operaciones especificadas por el usuario: Abrir, Cerrar, Leer, Escribir. Gestión de derechos de acceso

Conversión de “direcciones” lógicas a direcciones físicas del almacenamiento secundario. Asignación de espacio en el almacenamiento secundario (disco) y principal (buffers)

Almacenamiento Intermedio de E/SAlmacenamiento Intermedio de E/S

Para evitar carga a veces es conveniente llevar a cabo las transferencias de Entrada por adelantado a las peticiones y realizar transferencias de Salida un tiempo después de hacer la petición.

Esta técnica se conoce con el nombre de almacenamiento intermedio (buffering).

Buffer sencilloBuffer sencillo

Cuando un proceso de usuario realiza una petición de E/S, el SO le asigna a la operación un buffer en la parte del sistema de la MP.

Este método proporciona una mayor velocidad en comparación con la ausencia de almacenamiento intermedio en el sistema

......

Buffer dobleBuffer doble

Se puede realizar una mejora del buffer sencillo asignando dos (2) buffers del sistema a cada operación.

DE esta forma, un proceso puede transferir datos hacia (o desde) un buffer mientras que el SO vacía (o rellena) el otro.

Buffer circularBuffer circular

El esquema del buffer doble debería solucionar el flujo de datos entre un dispositivo de E/S y un proceso.

Si preocupa el rendimiento de un proceso determinado, sería deseable que las operaciones de E/S fueran capaces de ir al ritmo del proceso.

El buffer doble es inapropiado para ráfagas rápidas de E/S. Pero ello se mitiga usando más de 2 buffers.

......