Você está na página 1de 6

El Kernel.

Definicin: En cualquier Sistema Operativo por niveles, cada nivel se `extiende' con las dems primitivas de los niveles inferiores. Cada nivel es capaz de llevar a cabo las funciones implementadas en l mismo, ms las funciones implementadas en todos los niveles inferiores. VENTAJAS:

Tienen un diseo modular Existe la posibilidad de disearlos mediante lenguajes de alto nivel

( UNIX est hecho en C )

Las partes ligadas al Hardware, debern desarrollarse en ensamblador o lenguaje mquina, o microprogramarlo

En definitiva, llegamos a la conclusin de que estos Sistemas Operativos son:

Ms fiables Ms fciles de mantener Ms fciles de extender

NCLEO MNIMO DE UN SISTEMA OPERATIVO: (De propsito general)

En el ncleo, debe estar la parte ms usada por los procesos El ncleo, ser la parte que no estar programada en alto nivel, en definitiva, ser la parte que mayor rendimiento tenga La misin del Kernel, ser crear un entorno adecuado para que los procesos puedan desarrollarse y ejecutarse correctamente. El ncleo, tiene que hacer posible que existan procesos en el sistema

Como mnimo, en el ncleo tiene que haber: El GESTOR DE INTERRUPCIONES DE PRIMER NIVEL: FLIH (First Level Interruption Handler): `Algo' que gestione las interrupciones El DISPATCHER o PLANIFICADOR DE BAJO NIVEL o CONMUTADOR DE CONTEXTO: Elemento que decide quin se va a ejecutar en cada momento Mecanismo de comunicacin entre procesos El ncleo, est instalado sobre un Hardware, un Hardware mnimo. SOPORTE HARDWARE MNIMO:

Tiene que tener un Hardware de interrupciones que como mnimo salva el valor del PC Tiene que haber un Hardware de proteccin de memoria Tiene que haber instrucciones reservadas para uso por parte del Sistema Operativo Tiene que haber un reloj, es decir, un contador

Cuando hablamos de instrucciones reservadas, nos referimos al firmware, que est entre el Ncleo y el Hardware, es decir, son una serie de instrucciones dentro de un chip. 2.Componentes del ncleo. 2.1. EL CONTROLADOR DE INTERRUPCIONES DE PRIMER NIVEL: EL FLIH En principio, una seal es una indicacin por la que se altera la secuencia de ejecucin. Hay varios tipos de interrupcin, que se clasifican en funcin de su origen: ! EXTERNAS: Se producen fuera del procesador ! INTERNAS: Se producen dentro del procesador Si precisamos ms: Las interrupciones EXTERNAS, las denominamos:

INTERRUPCIONES

Las interrupciones INTERNAS, pueden ser:

EXTRACDIGOS: Operaciones que manipulan elementos internos del

procesador

TRAPS o EXCEPCIONES

La misin del FLIH, est en el ncleo, para dar una respuesta a cualquier tipo de seal que se produce en el sistema. Al producirse una seal, la atrapa el Hardware de interrupciones, que como mnimo, salva el contenido del PC en el PCB del proceso. Adems, puede que tambin salve el resto del entorno voltil (tambin en el PCB). Tambin direcciona al FLIH, es decir, pone en el PC la direccin 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 especfica; es decir, el FLIH siempre est en la misma parte de la memoria. El FLIH hace dos cosas: 1) Determina el origen de la interrupcin (Averigua qu interrupcin se ha producido) 2) Direcciona la rutina que trata esa interrupcin Si el FLIH es un programa, necesita parte del entorno voltil: PC, ACC, ... Por ello, debe salvarse el entorno voltil del proceso interrumpido. El entorno voltil del proceso interrumpido, se puede salvar en dos momentos:

Puede salvarlo el Hardware de interrupciones Si no lo salva el Hardware de interrupciones, ser lo primero que haga el FLIH, antes incluso de determinar el origen de la interrupcin NOTA: Hay sistemas que definen unos registros mquina para uso exclusivo por parte del Sistema Operativo, para evitar tener que estar salvando y restaurando el contenido del entorno voltil. 2.1.1. Formas de determinar el origen de una interrupcin: 2.1.1.1. MEDIANTE SOFTWARE: Mediante 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 ms interrupciones, peor rendimiento) Posible solucin:

Poner al principio de la cadena de saltos las comprobaciones de las

interrupciones ms frecuentes. 2.1.1.2. MEDIANTE HARDWARE: Mediante el uso de un comparador simultneo, incluido en el Hardware de interrupciones. El origen de la interrupcin, 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 nmero de interrupciones que reconoce el sistema. Ventaja: ! Es casi simultneo, mucho ms rpido que la secuencia de IFs Desventaja: ! Coste Elevado: Un comparador para muchas interrupciones es muy caro 2.1.1.3. COMBINANDO SOFTWARE Y HARDWARE: El comparador distingue los TIPOS de interrupcin. Las interrupciones se agrupan por tipos. EL Hardware de interrupciones: 1) Salva el contenido del entorno voltil 2) Mediante un comparador simultneo, determina el tipo al que pertenece la interrupcin producida 3) Se direcciona al FLIH, donde una pequea cadena de saltos determina la

interrupcin en concreto que se ha producido Si N es el nmero de tipos de interrupciones, el FLIH tiene N puntos de entrada. Cuando el FLIH est atendiendo una interrupcin, pueden producirse otras. Qu hacemos con esas otras interrupciones que se producen?

Inhibir (ignorar) el resto de interrupciones mientras se atiende una. Pero esto no puede hacerse siempre Las interrupciones ms prioritarias deben tratarse nada ms producirse

Posible solucin:

Definir niveles de prioridad entre las interrupciones, de forma que si

se est atendiendo una interrupcin, quedarn pendientes (o inhibidas) las de menor o igual prioridad. Problema:

Si se produce una interrupcin ms prioritaria que la que se est atendiendo, debe dejarse de atender la que se estaba atendiendo para atender la ms prioritaria. Por lo tanto, debe guardarse el entorno voltil de la interrupcin que estaba atendiendo. La interrupcin que pasa a ser atendida, tambin puede tener que dejarse, al llegar otra de mayor prioridad ... Por tanto, es necesario un lugar a para almacenar entornos voltiles, es decir, un PCB, por cada prioridad de interrupcin - 1.

2.1.2. Inicio del servicio de una interrupcin: Las interrupciones no pueden estar inhibidas mucho tiempo, es decir, el tiempo de tratamiento del FLIH debe ser corto. Problema:

Hay interrupciones cuyo tratamiento lleva mucho tiempo. En ese caso, el FLIH, slo inicia su tratamiento, y luego, lama a otra rutina ajena o externa a l, que realiza el resto del tratamiento.

Una interrupcin puede implicar cambio(s) de estado en algn(os) proceso(s). TIPOS DE INTERRUPCIONES:

Interrupciones que provocan cambios de estado del proceso en ejecucin Algunos extracdigos: Peticiones de E/S Seales de error para suspensin Interrupciones de reloj: Interrupciones por expiracin del temporizador Interrupciones que provocan cambios de estado en procesos que no estn en ejecucin Interrupciones de E/S

2.2. EL PLANIFICADOR DE BAJO NIVEL: EL DISPATCHER

Cundo se direcciona al dispatcher?

Por uniformidad, se direcciona siempre tras atender una interrupcin:

Siempre que se ejecute el FLIH, se ejecuta despus el dispatcher

Al quedar libre la CPU Cuando el proceso en ejecucin no sea el ms adecuado para estar ejecutndose

El proceso en ejecucin no es el ms adecuado para estar ejecutndose, cuando se trabajo con lo que se denomina `PRIORIDAD CON REQUISAMIENTO'. Prioridad con Requisamiento: Si se est ejecutando un proceso y llega otro de mayor prioridad a la lista READY, se requisa el procesador sl proceso en ejecucin, y se comienza a ejecutar el ms prioritario. NOTA: No siempre que se da una interrupcin se llamar al dispatcher, pero aunque no tenga nada que hacer, se le suele llamar. MISIN DEL DISPATCHER: La misin del dispatcher es, realizar operaciones de conmutacin de contexto. ORGANIGRAMA DEL FUNCIONAMIENTO DEL DISPATCHER: NOTAS:

La LISTA READY est ordenada por prioridad Para saber si hay proceso en curso, se consulta a la Tabla Central. Para saber si sigue habiendo proceso en curso, hay que mirar la prioridad del proceso RUNNING (PCB) y compararlo con la prioridad del proceso cuyo PCB est en la cabecera de la LISTA READY Cuando quitamos el procesador al proceso en curso, podemos anular el dato `Proceso en curso' o no anularlo, porque de todas formas se machacar posteriormente aunque no lo anulemos

TABLA CENTRAL: La tabla central, es, el medio de acceso a todas las estructuras del sistema, y el continente de informaciones generales del sistema. NUMERO - VERSIN FECHA .......... ESTRUCTURA DE PROCESOS LISTA_READY LISTA_BLOCKED ....

Você também pode gostar