Está en la página 1de 23

GESTION DE

DISPOSITIVOS
TEMA VI SISTEMAS OPERATIVOS – PARTE 2
Mecanismo de las Interrupciones
Cuando la unidad de control del ordenador ejecuta un programa car­gado en memoria, lo hace una
instrucción tras otra, secuencialmente. Su­pongamos que durante la ejecución del programa el operador
decide can­celarlo (por ejemplo, porque se da cuenta de que ha preparado mal los da­tos de entrada del
programa). Entonces, el operador debe teclear un men­saje en la consola para indicar al supervisor que
suspenda la ejecución del programa. Esto implica que el supervisor debe ejecutar una instrucción de leer
desde la consola para aceptar el mensaje te­cleado por el operador.
¿Cómo puede dar el supervisor esta instrucción si en este momento la unidad de control está ejecutando
el programa?
Esta es una situación típica que resuelve el mecanismo de interrupcio­nes. En nuestro ejemplo, el
operador, una vez tecleado su mensaje (mien­tras el programa sigue ejecutándose), pulsaría una tecla
especial de la con­sola (por ejemplo ESC). Al pulsar esta tecla se produce una in­terrupción, que consiste
en:
La unidad de control deja de ejecutar el programa.
La unidad de control pasa a ejecutar la rutina de control del super­visor.
Entonces, la rutina de control del supervisor analizará la causa de la interrupción (puede haber varias),
detectará que ha sido el operador, y dará una instrucción de leer el mensaje de la consola.
Para poder realizar las interrupciones el hardware está provisto de cierto
mecanismo que permita romper la secuencia normal de ejecución, que
llamaremos «bit de interrupción» y «máscara de interrupción», que
normalmente están a cero.
El «bit de interrupción» es un registro de un solo bit, que se pone a 1 (ON) cada
vez que surge una interrupción. El registro «máscara de interrupciones» consta
de varios bits, uno por cada tipo de interrupción que puede producirse.
Así, cuando ocurre una interrupción se pone en 1el bit correspondiente a esta
interrupción en la «máscara de interrupciones», además del «bit de
interrupciones».
Una instrucción típica es ejecutada por la unidad de control
en dos fases:
1. Fase «fetch»: extrae la instrucción de memoria e introduce
en los registros internos del procesador.
2. Fase «execute»: encamina los operandos, decodifica el
código de operación, ejecuta la instrucción y pone en el
contador de instrucciones la dirección de la siguiente.
Estas fases se completan con otra en la que la unidad de
control, después de la fase segunda («execute»), se examina el
«bit de interrupciones». Si está en OFF, ejecuta la instrucción
siguiente. Si está en ON, debe bifurcar a la ru­tina de control. Si
suponemos que ésta está cargada en memoria en la po­sición 100
por ejemplo, la unidad de control pondrá la dirección 100 en el
contador de ins­trucciones, para que la siguiente instrucción a
ejecutar sea la primera de la rutina de control.
Por otra parte, el programa cuya ejecución se ha interrumpido
deberá, ser reanudado una vez que la rutina de control haya
terminado de tratar la interrupción. Para ello, hay que guardar
en algún sitio de memoria (BCP) la dirección de la instrucción
siguiente a aque­lla en que se ha interrumpido.
TIPOS DE INTERRUPCIONES
En la «máscara de interrupciones» cada bit representa un tipo de in­terrupción.
Las interrupciones se pueden clasificar en las categorías si­guientes:
Interrupciones de entrada/salida. Cada bit de la «máscara de in­terrupciones»
representa un dispositivo de E/S. Se produce una interrup­ción de E/S cuando se
acaba una operación de E/S.
Interrupciones de programa. Se tiene un bit en la «máscara de interrupciones»
para este tipo. Cuando la unidad de control ejecuta una instrucción SVC, lo que
hacer es poner ON este bit de la «máscara de interrupciones» y el «bit de
interrupciones». Esto provoca automáticamen­te una interrupción, es decir, una
transferencia de control a la rutina del supervisor, el cual, tras analizar la
interrupción, proporcionará al progra­ma el servicio solicitado y le devolverá
control.
Interrupciones de error de programa. Cuando la unidad de con­trol detecta un
error en la ejecución de una instrucción, provoca una in­terrupción de este tipo.
En la «máscara de interrupciones» reservamos tres bits para estas
interrupciones, que indican:
— Código de operación inválido.
— Operando inválido.
— Overflow aritmético.
Interrupción del operador. Causadas por pulsar teclas de la con­sola con ciertas
funciones específicas. Reservaremos varios bits en la «más­cara de
interrupciones» que atenderán a cada una de las teclas configuradas para
interrumpir el proceso:
Máscara de Interrupciones

RUTINA DE CONTROL DEL SUPERVISOR


Su función principal es analizar las interrupciones y decidir qué rutina debe recibir el control.
(Cuando surge una interrupción, se pone en 1 (ON) el bit correspondiente en la «máscara de interrupciones» y el
«bit de interrupciones». Cuando la unidad de control, como consecuencia de una interrupción, empieza a ejecutar la
rutina de control del supervisor, lo primero que debe hacer esta rutina de control es averiguar la causa de la
interrupción. Esto lo hace explorando los bits de la «máscara de interrupciones» de izquierda a derecha, hasta
encontrar uno en 1 (ON).
Entrada y salida
Controladas por programas: 
Es la forma más sencilla en realizar operaciones de entradas y salidas.
Esto ocurre cuando el procesador y el dispositivo coinciden en el mismo
tiempo definido; el procesador interactúa directamente con el dispositivo
comprobando el estado o si tiene algún dato listo para así poder recibirlo.
El procesador es el que tiene la mayor importancia y determina la actividad y
el control sobre los procesos de entrada y salida y el programa indica en que
momento se ejecuta.
El microprocesador: Se encarga de decidir el estado de los dispositivos
indicando información del dispositivo como: datos listos para transmitir,
dispositivo ocupado, dispositivo no conectado o error, etc.
Entrada y salida Controlada Por interrupciones:
En este caso el procesador espera un tiempo indefinido hasta que el modulo que es el
encargado de proyectar la operación de entrada y salida este preparado para ejecutar la
operación.
Procesamiento de la interrupción:
a)   El dispositivo envía una señal de interrupción al procesador.
b) El procesador termina la instrucción que estaba ejecutando antes que comience a
responder a  la interrupción.
c) El procesador investiga si hay una interrupción, si encuentra dicha interrupción le
informa al dispositivo que la causo.
d) El procesador se prepara para transferir control a la interrupción y guarda
información necesaria para terminar con el proceso que se interrumpió.
e) El procesador carga en la computadora la dirección de inicio del programa de
servicio que se interrumpió.
f) Una vez completado con la interrupción, el procesador continúa con el ciclo
de instrucción siguiente. 
h) Cuando se termina con el servicio de la interrupción los registros vuelven a
restaurarse.
Entrada y salida sincrónica: cuando la operación de entrada y salida
finaliza, el control es retornado al proceso que la generó.
Entrada y salida asincrónica: retorna al programa usuario sin esperar
que la operación de entrada y salida finalice. Se necesita una llamada
al sistema que le permita al usuario esperar por la finalización de
entrada y salida, si es requerido.
Acceso Directo de la Memoria (DMA).
Transfiere directamente la información entre la memoria y los dispositivos de
entrada/salida o estos a la memoria sin la necesidad de un canal que
intercambie datos.
Características del acceso directo a memoria: - Una transferencia DMA consiste
principalmente en copiar un bloque de memoria de un dispositivo a otro.
En lugar de que la CPU inicie la transferencia, esta se lleva a cabo por el
controlador DMA.
Un ejemplo típico es mover un bloque de memoria desde una memoria externa
a una interna más rápida. Tal operación no ocupa al procesador y, por ende, éste
puede efectuar otras tareas.
 -Es útil en actividades de aplicaciones en tiempo real.
El DMA necesita:
-Registro contador: guarda la longitud de bloque a transferir.
-Bits: indica si la operación es de lectura o escritura.
-Bloque de control: controla el funcionamiento del sistema.
Tipos de Transferencia
Existen 3 tipos de transferencia para el máximo aprovechamiento del bus:
 
-Por ráfagas: el DMA toma el control del bus. Una vez que la CPU concede el bus
al DMA, este no lo libera hasta que finaliza su tarea completamente.
-Por robo de ciclo: el DMA toma el bus durante un ciclo enviando una palabra
cada vez. una vez que la CPU concede el bus al DMA, este lo vuelve a liberar al
finalizar de transferir cada palabra. Teniendo que solicitar de nuevo el permiso de
uso del bus a la CPU. Esta operación se repite hasta que el DMA finaliza la tarea.
-Transparente: se aprovechan los ciclos en que el procesador no usa el bus.
Procesadores de Entrada y Salida o
Canales
El canal es un procesador auxiliar dedicado a la operación de entrada y salida.
Esto tiene una lista de instrucciones con límites y operaciones de entrada y salida,
ya que son capaces de controlar las operaciones mediante las instrucciones.
Las instrucciones se almacenan en la memoria principal de la computadora.
El procesador de entrada y salida ejecuta estas instrucciones y controla la
transferencia de datos.
Un canal, a través de una o más unidades de control de periféricos, puede manejar uno o varios
periféricos. Sólo se justifica la dedicación a uno cuando se trata de un dispositivo muy veloz, que
transfiere miles de bytes por operación de entrada salida, como cierto tipo de discos.
Existe dos clases de canales: multiplexores y selectores, que se utilizan según la velocidad de los
periféricos.
Un canal selector controla varios dispositivos de alta velocidad y, en un instante dado, se dedica
a transferir datos a uno de esos dispositivos. Es decir, el canal de E/S selecciona un dispositivo y
efectúa la transferencia de datos. Cada dispositivo, o pequeño grupo de dispositivos, es
manejado por un controlador o módulo de E/S.
Un canal multiplexor puede manejar varios dispositivos de baja velocidad. En éste caso un
multiplexor de byte acepta o transmite tan rápido como es posible a varios dispositivos.
Buffer de entrada y salida.
Estos son espacios de memoria principal que se mantienen solo para almacenar
datos que envían de los dispositivos o destino a ellos.
Los buffers se clasifican en:
buffer simple, que su transferencia de entrada se hace desde el dispositivo hacia
el buffer que el sistema operativo guarda en la memoria principal a dicho
proceso.
Buffer doble, es cuando un proceso transfiere sus datos a un buffer mientras
que el sistema operativo vacía o llena el buffer secundario.
Relojes
El reloj es la parte de la CPU que proporciona una sucesion de pulsos electricos
(ciclos) a intervalos constantes.
Cada sucesion marca el instante que debe comenzar un paso de una instruccion.

Son Temporizadores
Mantienen la fecha y la hora
Sirve para controlar el tiempo que los procesos pueden estar ejecutandose

19
Hardware del reloj
2 tipos
◦ Se conectan a la red de potencia y generan una interrupción con cada ciclo
de red
◦ Programables: se construyen con 3 elementos

Oscilador de cuarzo
Contador
Registro de precarga
-6

◦ Para un reloj de 1MHz (1/10 Hz, 1 pulso por microsegundo) y registro de precarga de 16 bits, se
pueden generar interrupciones desde cada microsegundo hasta 65535 microsegundos

20
Actualizar fecha y hora (I)
En ordenadores antiguos no había reloj de tiempo real
La fecha se da al arrancar. Se traduce a un nº de pulsos desde el 1 de Enero de
1970.
Con cada pulso de reloj se incrementa un contador
Problema: se puede desbordar

21
Actualizar fecha y hora (II)
Solución:
◦ Utilizar un contador más grande (Ej: 64 bits)

◦ Se guarda en segundos con un contador auxiliar para contar el nº de pulsos del segundo
actual
64 bits

◦ Se guarda en segundos el instante de arranque del sistema y un contador para los pulsos
desde el momento de arranque.
32
2 = más de 136 años
Hora y fecha Nº de pulsos del
en segundos segundo actual

22
Controlar el tiempo de ejecución
Al cargar un proceso
◦ Se actualiza un contador con los pulsos del cuanto asignado a un proceso

Con cada interrupción de reloj


◦ Se decrementa este contador

Cuando llega a 0
◦ Se llama al planificador

23

También podría gustarte