Lenguaje de máquina

26
Adaptado por: Ing. Andrés Tovar Ing. Francisco Vargas Arquitectura de computadores ADMINISTRACIÓN E/S – LENGUAJE DE MÁQUINA

Transcript of Lenguaje de máquina

Page 1: Lenguaje de máquina

Adaptado por:

Ing. Andrés Tovar

Ing. Francisco Vargas

Arquitectura de computadores

ADMINISTRACIÓN E/S – LENGUAJE DE MÁQUINA

Page 2: Lenguaje de máquina

Administración E/S

La gestión I/O es una de las tareas principales del Sistema Operativo encuanto al control de todos los dispositivos.

Funciones:

Comunicación con los dispositivos, enviar y recibir comandos .

Detección de interrupciones .

Control de errores.

Proporcionar una interfaz entre los dispositivos y el resto del sistema .

Page 3: Lenguaje de máquina

Administración E/S

Dado que los programas no pueden ejecutar operaciones de E/Sdirectamente, el sistema operativo debe proveer medios para realizarlas .

El sistema de entradas y salidas consiste en:

Un sistema de buffer* - caching**

Una interface general de drivers de dispositivos

Drivers para dispositivos especfficos

* espacio de memoria para almacenamiento temporario de datos

** poner en memoria cache

Page 4: Lenguaje de máquina

Administración E/S

E/S programada: el procesador emite una orden por parte de un procesoal modulo de E/S, y este espera a que se termine dicha operación paraproseguir.

E/S dirigida por interrupciones: El procesador emite una orden por partede un proceso, se continua la ejecución de las instrucciones siguientes y esinterrumpido por el modulo de E/S cuando este ha completado su trabajo.

Acceso directo a DMA*: un modulo de DMA controla el intercambio dedatos entre al memoria principal y un modulo de E/S.

*(direct memory access) acceso directo a la memoria, canal decomunicaci6n entre la memoria y los dispositivos periféricos (sin pasar porla unidad de proceso central)

Page 5: Lenguaje de máquina

Administración E/S

A medida que los arios pasan y los Sistemas Operativos se han innovado,también las funciones de E/S se han visto beneficiadas.

1. El procesador controla directamente los dispositivos.

2. Se agrega un controlador o modulo de E/S.

3. Se emplean interrupciones en los módulos de E/S para un mejorfuncionamiento del procesador.

4. El modulo de E/S recibe el control directo de la memoria, a través deDMA.

5. El modulo de E/S es mejorado, procesadores independientes pararealizar E/S.

6. Se agrega una memoria local al modulo de E/S para formar parte de undispositivo independiente.

Page 6: Lenguaje de máquina

Categorías de dispositivos de Entrada / Salida

Dispositivos de bloque:

Son aquellos que almacenan la informaci6nen bloques de tamaño fijo y estos a su vezguardan su propia dirección.

Dispositivos de carácter:

Son todos aquellos que envían o reciben unflujo de caracteres, es decir, NO se sujetan auna estructura de bloques. No se puedenutilizar direcciones ni tienen operacionesde búsqueda.

Page 7: Lenguaje de máquina

Administración E/S

La mayor parte de los dispositivos de I/O poseen dos partes claramentediferenciadas:

Parte Eléctrica (device controller)

Parte Mecánica

El kernel debe tener un modulo quese encargue de comunicarse con lacontroladora. (device driver)

Page 8: Lenguaje de máquina

Administración E/S

Ejemplo de parte mecánica:

Page 9: Lenguaje de máquina

Administración E/S

Ejemplo de controladora:

Page 10: Lenguaje de máquina

Administración E/S

DMA (Acceso directo a memoria)

Después de que el controlador ha leído todo el bloque del dispositivo a subuffer y lo ha verificado:

Copia el primer byte o palabra a la memoria principal, en la direcciónespecificada por medio de la dirección de memoria de DMA.

Incrementa la dirección DMA y decremento el contador DMA en elnumero de bytes que acaba de transferir.

Este proceso se repite hasta que el contador llegue a ser cero, momento en elcual el controlador genera una interrupción.

Page 11: Lenguaje de máquina

Administración E/S

Principios de la gestión de E/S.

Problemática de los dispositivos de E/S.

Objetivos generales del software de E/S.

Principios hardware de E/S.

E/S controlada por programa.

E/S controlada por interrupciones.

Estructura del software de E/S.

Niveles del software de E/S.

Ejemplo de funcionamiento conjunto de los distintos niveles.

La técnica del "buffering".

La técnica del "spooling".

Page 12: Lenguaje de máquina

Problemática de los dispositivos de E/S

Aspectos en los que pueden diferir los dispositivos de E/S:

Diferencia de velocidad: de los periféricos frente a la CPU y entre lospropios dispositivos de E/S.

Unidad de transferencia: caracteres, palabras, bytes, bloques o registros.

Representación de los datos: usar distintos códigos para un mismoelemento de informaci6n en diferentes periféricos.

Operaciones permitidas: por ejemplo, existen periféricos que solo realizanentradas y otros que solo realizan salidas, etc.

Condiciones de error: las causas por las que no se puede completar conéxito una transferencia de datos depende del periférico que se utilice.

Page 13: Lenguaje de máquina

Objetivos generales del software de E/S

Independencia del periférico. Aspectos a considerar:

Un programa debe ser independiente del modelo del periférico de un tipodeterminado de periférico que le sea asignado.

Un programa sea independiente lo mas posible, del tipo de periféricoempleado.

Tratamiento uniforme de los periféricos. Consecuencias:

Independencia del código de los caracteres: el sistema de E/S es elresponsable de reconocer los distintos códigos que usan los periféricos ytraducirlos a una representación interna uniforme, denominada códigointerno de los caracteres, para los programas. Esta conversión se realizadespués de Ia entrada y antes de Ia salida.

Page 14: Lenguaje de máquina

Objetivos generales del software de E/S

Los programas deberán trabajar sobre periféricos virtuales (streams oficheros) y no sobre físicos: el SO es el que asocia los streams con losperiféricos reales, guardando en una lista de descriptores de streams dichacorrespondencia.

Tratamiento uniforme de los periféricos. Consecuencias:

El sistema de E/S se debe construir de forma que las características de losperiféricos estén ligadas a ellos, en vez de a las rutinas que los gestiona. Estose obtiene codificando dichas características en una tabla de descriptores deperiférico, de forma que los programas de gestión de los periféricos obtienende ellas la información necesaria. Entre otra: Identificación del periférico,instrucciones con las que actúa, punteros a las tablas para la traducción delos caracteres, estado actual (ocupado, libre o estropeado), proceso deusuario en curso.

Page 15: Lenguaje de máquina

Principios hardware de E/S

A. Tipos de dispositivos de E/S:

dispositivos de bloques: almacenan la información en bloques de tamañofijo .

dispositivos de caracteres: producen o aceptan flujos de caracteres sinninguna estructura de bloques.

B. Controladores de dispositivos:

Los controladores usan unos cuantos registros denominados puertos paracomunicarse con el procesador. A través de ellos se transfieren: comandos uordenes, que hacen que el controlador inicie determinadas operaciones sobreel dispositivo; parámetros que indican como debe funcionar el dispositivo; ydatos, ya sean de escritura o de lectura según el sentido de la operación.

Page 16: Lenguaje de máquina

Principios hardware de E/S

E/S controlada por programa:

La CPU esta ocupada mientras que se realiza la operaci6n de E/S, pues debecomprobar cuando termina dicha operación.

E/S controlada por interrupciones:

Permite que la CPU este ocupada en alguna otraactividad mientras que se realiza la operación deE/S, pues se enterara de que dicha operación seha completado cuando se produzca unainterrupción. Las interrupciones son unmecanismo que permite sincronizar la CPU conlos sucesos externos, y por lo tanto solapar unamultitud de operaciones de E/S.

Page 17: Lenguaje de máquina

Estructura del software de E/S

El software de E/S se organiza en niveles de forma que los niveles inferiores seencargan de ocultar las características del hardware a los niveles superiores,que, a su vez, se ocupan de presentar una interfaz simple y uniforme a losusuarios.

Objetivos:

Independencia del dispositivo: posibilidad de no tener que modificar losprogramas para cada tipo de dispositivo.

Manejo de errores: es mejor tratar los errores cuanto mas cerca delhardware.

Tipo de transferencias: hacer que las operaciones que son controladas porinterrupción parezcan al programa controladas por él.

Tipos de dispositivos: gestionar los dispositivos no compartibles.

Page 18: Lenguaje de máquina

Niveles del software de E/S

Page 19: Lenguaje de máquina

Niveles del software de E/S

Software de E/S a nivel de usuario: No forma

Parte del SO. Consiste en bibliotecas que se enlazan con los programas deusuario a través de las cuales se realizan las llamadas al SO .

Funciones:

Colocar los parámetros en el lugar adecuado para realizar la petición aniveles inferiores.

Interpretar la información que se recibe o se envía.

Informar del error en caso de que se haya producido al realizar la operaciónde E/S.

Page 20: Lenguaje de máquina

Niveles del software de E/S

Software de E/S independiente del dispositivo.

Pertenece al SO. Cuando el nivel anterior realiza una petición a este seorigina la ejecución de una rutina de este software de E/S.

Funciones:

Implementar las operaciones de E/S que son comunes a todos losdispositivos y presentar una interfaz uniforme a los programas de usuario.

Asignar nombres simbólicos a los dispositivos de E/S y establecer lacorrespondencia entre el nombre simbólico del dispositivo y el manejadorcorrespondiente.

Proteger los dispositivos por parte de los usuarios que no tienen permiso.

Page 21: Lenguaje de máquina

Niveles del software de E/S

Funciones:

Ocultar el hecho de que los diferentes tipos de disco tengan distintostamaños de sector, proporcionando un tamaño de bloque uniforme a losniveles superiores .

Gestionar el almacenamiento temporal de los datos en las operaciones deE/S .

Gestionar la asignación de espacio en dispositivos de bloques .

Gestionar los dispositivos no compatibles, atendiendo las peticiones deUtilización de dichos dispositivos y aceptándolas o rechazándolasdependiendo de la disponibilidad del dispositivo .

Realizar un tratamiento del error independiente del dispositivo.

Page 22: Lenguaje de máquina

Niveles del software de E/S

Software de E/S dependiente del dispositivo (manejador de dispositivo,gestor de periférico, Device Driver):

Esta Íntimamente relacionado con la estructura del dispositivo. Su funciónes recibir peticiones abstractas de las rutinas independientes de losdispositivos y comprobar que dichas peticiones se realizan. Pasos:

Traducir la petición de los términos abstractos a otros mas concretos.

Escribir en los puertos del controlador los comandos determinados.

Detectar cuando la operación ha finalizado: si es controlada porinterrupci6n, el manejador se bloquea hasta que la reciba, y si es controladapor programa el manejador no se bloquea.

Comprobar si ha habido errores, devolviendo al nivel superiorinformación del estado y del posible error.

Page 23: Lenguaje de máquina

Niveles del software de E/S

Software de E/S dependiente del dispositivo (manejador de dispositivo,gestor de periférico, Device Driver):

Si existe alguna petición pendiente, entonces se selecciona una y se sirve; sino hay entonces el manejador queda esperando que le llegue la siguiente.

Manejador de interrupciones (Rutinas de tratamiento de interrupciones):

Procedimientos encargados de esperar la llegada de una interrupción yrealizar las operaciones necesarias para desbloquear al manejador.

Page 24: Lenguaje de máquina

La técnica del "Buffering"

Si la transferencia es directa, por cada petición de E/S el proceso se bloqueamientras que se realiza la operación sobre el periférico. La técnica delbuffering pretende evitar estas perdidas de tiempo llevando a cabo lastransferencias de E/S antes de que el proceso realice las peticiones.Descripción:

El SO realiza las transferencias de entrada al buffer de entrada y elproceso de usuario toma los datos de dicho buffer .

Las transferencias de salida de un proceso de usuario se dirigen a unbuffer de salida, siendo el SO. el encargado de vaciarlo sobre el periférico.

Esta técnica no es útil si el proceso realiza sus E/S a una velocidadsuperior a la que pueden trabajar los periféricos de E/S. Es decir, se usaracuando el promedio de demandas de E/S de un proceso no es mayor que laque pueden atender los periféricos de E/S.

Page 25: Lenguaje de máquina

La técnica del “Spooling"

Cuando se usan dispositivos no compartibles puede ocurrir que duranteperiodos de mucha demanda varios procesos queden bloqueados esperandopor el use de los periféricos. La técnica del spooling pretende evitar estasperdidas de tiempo haciendo que la transferencia se efectúe sobre unsoporte intermedio y no directamente sobre el periférico. Descripción:

Cuando un proceso abre un stream asociado a un dispositivo nocompartible, la rutina de E/S le asigna un fichero anónimo en un soporteintermedio, de forma que se dirigen a el todas las salidas del stream.

Cuando se cierra el stream, el fichero se añade a una cola que contieneficheros similares creados por otros procesos.

El spooler (proceso independiente asociado al dispositivo no compartible)se encarga de transferir la informaci6n de los ficheros almacenados en esacola sobre el dispositivo físico.

Page 26: Lenguaje de máquina