componente del nucleo
1.6.1.- El controlador de interrupciones de primer nivel: El FLIH
Es la parte del sistema operativo responsable de proporcionar la respuesta adecuada a las señales procedentes tanto del exterior de la CPU (interrupciones de un controlador) como de dentro del procesador (excepciones y llamadas al sistema). La misión del FLIH es doble: a) determinar el origen de lasinterrupciones y b) iniciar el servicio de las mismas.
En principio, una señal es una indicación por la que se altera la secuencia de ejecución. Hay varios tipos de interrupción, que se clasifican en función de su origen:
EXTERNAS: Se producen fuera del procesador
INTERNAS: Se producen dentro del procesador
Si se precisa más:
Las interrupciones EXTERNAS, las denominamos: INTERRUPCIONES
Lasinterrupciones INTERNAS, pueden ser:
EXTRACÓDIGOS: Operaciones que manipulan elementos internos del procesador
TRAPS o EXCEPCIONES
figura 10
La misión del FLIH, está en el núcleo, para dar una respuesta a cualquier tipo de señal que se produce en el sistema.
Al producirse una señal, la atrapa el Hardware de interrupciones, que como mínimo, salva el contenido del PC en el PCB del proceso.Además, puede que también salve el resto del entorno volátil (también en el PCB). También direcciona al FLIH, es decir, pone en el PC la dirección del FLIH.
Por lo tanto, podemos decir, que el FLIH es un elemento software, es un proceso.
Ya hemos dicho que el FLIH es Software, pues se trata de un sencillo programa definido sobre un área de memoria dedicada a él, un área de memoria específica; esdecir, el FLIH siempre está en la misma parte de la memoria.
El FLIH hace lo siguiente:
1. Determina el origen de la interrupción
2. Averigua qué interrupción se ha producido.
3. Direcciona la rutina que trata esa interrupción
Si el FLIH es un programa, necesita parte del entorno volátil: PC, ACC,... Por ello, debe salvarse el entorno volátil del proceso interrumpido. El entorno volátil delproceso interrumpido, puede ser salvado ya sea por:
1. el Hardware de interrupciones o
2. Si no lo salva el Hardware de interrupciones, será lo primero que haga el FLIH, antes incluso de determinar el origen de la interrupción
NOTA: Hay sistemas que definen unos registros máquina para uso exclusivo por parte del Sistema Operativo, para evitar tener que estar salvando y restaurando el contenido delentorno volátil.
Formas de determinar el origen de una interrupción
1. MEDIANTE SOFTWARE:
A través de una cadena de saltos o IFs (o con una CASE). El FLIH, tiene un único punto de entrada.
Ventaja: Es muy sencillo
Desventaja: Rendimiento muy pobre (Cuantas más interrupciones, peor
rendimiento)
Posible solución: Poner al principio de la cadena de saltos las comprobaciones de lasInterrupciones más frecuentes.
2. MEDIANTE HARDWARE:
A través del uso de un comparador simultáneo, incluido en el Hardware de interrupciones.
El origen de la interrupción, no lo va a detectar el FLIH, lo va a detectar el Hardware de interrupciones.
El FLIH, tiene N puntos de entrada, siendo N el número de interrupciones que reconoce el sistema.
Ventaja: Es casi simultáneo, mucho más rápido que lasecuencia de IFs
Desventaja: Costo Elevado: Un comparador para muchas interrupciones es muy caro
3. COMBINANDO SOFTWARE Y HARDWARE:
El comparador distingue los TIPOS de interrupción.
Las interrupciones se agrupan por tipos.
El Hardware de interrupciones trabaja bajo el siguiente proceso:
1º Salva el contenido del entorno volátil
2º Mediante un comparador simultáneo, determina el tipo al quepertenece la interrupción producida
3º Se direcciona al FLIH, donde una pequeña cadena de saltos determina la interrupción en concreto que se ha producido
Si N es el número de tipos de interrupciones, el FLIH tiene N puntos de entrada.
Cuando el FLIH está atendiendo una interrupción, pueden producirse otras. ¿Qué hacemos con esas otras interrupciones que se producen?
Inhibir (ignorar) el...
Regístrate para leer el documento completo.