Sie sind auf Seite 1von 10

NCLEO

En informtica, el ncleo (tambin conocido en espaol con el anglicismo kernel, de la raz germnica Kern) es la parte fundamental de un sistema operativo. Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma ms bsica, es el encargado de gestionar recursos, a travs de servicios de

llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, el ncleo tambin se encarga de decidir qu programa podr hacer uso de un dispositivo de hardware y durante cunto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los ncleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso para el programador.

Funciones generalmente ejercidas por un ncleo


Los ncleos tienen como funciones bsicas garantizar la carga y la ejecucin de los procesos, las entradas/salidas y proponer un interfaz entre el espacio ncleo y los programas del espacio del usuario.

Aparte de las funcionalidades bsicas, el conjunto de las funciones de los puntos siguientes (incluidos los pilotos materiales, las funciones de redes y sistemas de ficheros o los servicios) necesariamente no son proporcionados por un ncleo de sistema de explotacin. Pueden establecerse estas funciones del sistema de explotacin tanto en el espacio usuario como en el propio ncleo. Su implantacin en el ncleo se hace en el nico objetivo de mejorar los resultados. En efecto, segn la concepcin del ncleo, la misma funcin llamada desde el espacio usuario o el espacio ncleo tiene un coste temporal obviamente diferente. Si esta llamada de funcin es frecuente, puede resultar til integrar estas funciones al ncleo para mejorar los resultados.

Tipos de ncleo
No necesariamente se necesita un ncleo para usar una computadora. Los programas pueden cargarse y ejecutarse directamente en una computadora vaca, siempre que sus autores quieran desarrollarlos sin usar ninguna abstraccin del hardware ni ninguna ayuda del sistema operativo. sta era la forma normal de usar muchas de las primeras computadoras: para usar distintos programas se tena que reiniciar y reconfigurar la computadora cada vez. Con el tiempo, se empez a dejar en memoria (an entre distintas ejecuciones) pequeos programas auxiliares, como el cargador y el depurador, o se cargaban desde memoria de slo lectura. A medida que se fueron desarrollando, se convirtieron en los fundamentos de lo que llegaran a ser los primeros ncleos de sistema operativo. Hay cuatro grandes tipos de ncleos: Los ncleos monolticos facilitan abstracciones subyacente realmente potentes y variadas. del hardware

Los microncleos (en ingls microkernel) proporcionan un pequeo conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad. Los ncleos hbridos (microncleos modificados) son muy parecidos a los microncleos puros, excepto porque incluyen cdigo adicional en el espacio de ncleo para que se ejecute ms rpidamente. Los exoncleos no facilitan ninguna abstraccin, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso

directo

casi

directo

al

hardware.

Interrupciones (FLIH - First Level Interruption Handler) 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 Formas de determinar el origen de una interrupcin: 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. 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

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. 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 Despachador(Scheduler Schedulling) Colas de Schedulling: Los procesos que estn en estado de espera se quedan en una lista llamada lista o cola de ready. Los procesos que hacen uso de E/S se guardan en una cola de E/S. Hay una cola de E/S por cada dispositivo. Schedullers: Componente del sistema operativo responsable de decidir quien hara uso de la CPU. Algoritmos de Schedulling: FCFS (First Come First Served) Cuando un proceso llega a la cola de ready su PCB es agregado al final de la lista. El uso de la CPU es otorgado al primero de la lista y una vez que un proceso comienza a ejecutar no deja de hacerlo hasta que se termina. El tiempo medio de espera para este algoritmo suele ser bastante alto. SJF (Shortest Job First) Una vez que un proceso ejecuta no deja de hacerlo hasta que voluntariamente cambia de estado (no hay interrupcin por tiempo). Asocia a cada proceso el tiempo de CPU que habr de usar en su prxima vuelta y va a decidir por el ms pequeo. Si hubiera mas de uno utiliza FCFS para desempatar. El mayor problema de este algoritmo radica en el clculo de tiempo de uso de CPU. Este se puede aproximar a: Tn+1= .tn+(1- )Tn 0< <1> Prximo uso de CPU Tiempo usado en la vuelta n El problema de este algoritmo es que el tiempo de espera para los procesos largos puede ser demasiado largo. Constantemente se estn entregando los procesos mas cortos y el ms grande nunca ser ejecutado. El FJS se puede subdividir en 2 tipos de algoritmos: PREEMPTIVO o NO PREEMPTIVO Preemptivo significa que si mientras un proceso se esta ejecutando, entra a la cola de ready un proceso mas corto, el proceso en la cola de ready se apropia de la CPU y comienza su ejecucin. Priority Schedulling Asocia a cada proceso una prioridad. Luego selecciona el proceso con mas prioridad para desempatar. En caso de que hubieran dos o mas procesos con la misma prioridad, se usa FCFS para desempatar. Hay dos tipo de prioridad en los procesos: la prioridad externa definidas a travs del sistema operativo y la

prioridad interna definida por el tiempo de uso de la CPU, el control de E/S, etc. Este algoritmo tambin se puede ejecutar de dos maneras: preemptivo y no preemptivo. El algoritmo soluciona el problema del looping pero el problema es que los procesos con prioridad muy baja tienen chance de no ejecutarse nunca. Para solucionar este problema de espera infinita el envejecimiento de un proceso eleva su prioridad. Round Robin Este es un algoritmo basado en FCFS. Trata la cola de ready como una lista circular. Introduce el concepto de "Quantum" o "Time slice" : mayor tiempo de cpu que podr hacer uso un proceso en cada vuelta. Si el valor del Quantum fuese muy grande, el algoritmo funcionara como un FCFS. Si el Quantum fuera muy chico se produce un overhead por context switch (significa que el Quantum se setea en un tiempo menor al que demora el context switch). Este algoritmo es fuertemente dependiente del Quantum o Time Slice. El Quantum debe ser mayor que el 80% de los tiempos de CPU que hagan uso los procesos, pero no el proceso entero sino por cada burst. MQS (Multilevel Queue Schedulling) Este algoritmo parte la cola de ready en un numero de colas n. Luego existe un criterio para clasificar en que cola ser colocado un proceso cuando que queda en estado de ready. Cada cola puede manejar su propio algoritmo de schedulling MFQS (Multilevel Feed Back Queue Schedulling) Define los siguientes parmetros: Numero de colas Algoritmo de schedulling usado en cada cola Mtodo para decidir a que cola entrara un proceso cuando entre a estado de ready Mtodo para decidir cuando un proceso ser enviado a una cola de menor prioridad. Mltiple CPU Para que mas de una CPU no tomen el mismo proceso de la cola de ready se utilizan mecanismos de sincronizacin. Otro mecanismo seria partir la cola en n colas (n CPUs), pero si se hiciera esto podra llegar a suceder que los procesos de una CPU fueran todos cortos y los de otra fueran largos por lo cual habra una CPU que quedara libre y otra ejecutando. Otra forma sera que una CPU decidiera cual CPU va a ejecutar cual proceso. Esto puede llevar a que la CPU que esta seleccionando quede un poco mas cargada porque en algn momento estar ejecutando el algoritmo de seleccin y un proceso asignado a ella.

Primitivas de comunicacin(IPC). Primitivas de comunicacin

Algunos kernel tienen operaciones especficas ajustadas a la invocacin remota. Amoeba, por ejemplo, tiene DoOperation/GetRequest-SendReply. Es ms eficiente que el simple Send-Receive (y ms fiable y legible). Amoeba y otros sistemas tienen tambin comunicacin con grupos o radiado (parcial) (broadcast). Es importante para tolerancia de fallos, mejora de rendimiento y reconfigurabilidad. Diversas variantes: como mensajes, como mltiples RPCs, con un slo valor devuelto, con varios valores devueltos (todos juntos o pidiendo uno a uno), etc. En la prctica, mecanismos de comunicacin de alto nivel tales como RPC/RMI, radiado y notificacin de sucesos (parecido a los manejadores de interrupciones), se implementan en middleware y no en el kernel. Normalmente, sobre un nivel TCP/IP, por razones de transportabilidad, (aunque resulta ``caro"). La IPC ofrece un mecanismo que permite a los procesos cumunicarse y sincronizar sus acciones. La mejor forma de proveer la comunicacin entre procesos es mediante un sistema de mensajes. La funcin de un sistema de mensaje es permitir a los procesos comunicarse entre s sin tener que recurrir a variables compartidas. Un recurso IPC ofrece por los menos 2 operaciones: enviar (mensaje) (send) y recibir (mesanje) (receive). Sea P y Q dos procesos que requieren comunicarse debern enviarse mensajes; para ello debe existir un enlace de comunicacin entre ellos. Este enlace puede implementarse de diversas maneras. Los mtodos para implementar lgicamente un enlace y las operaciones de enviar / recibir son: Comunicacin directa o indirecta Uso de buffer automtico o explcito Envo por copia o envo por referencia Mensajes de tamao fijo o variables Comunicacin directa: Aqu cada proceso que desee comunicarse debe nombrar explcitamente el destinatario o el remitente de la comunicacin. Este esquema se define las primitivas de la sig. manera: Enviar(P,mensaje): Enviar un mensaje al proceso P. Recibir(Q. Mensaje): Recibir un mensaje del proceso Q. Con las siguientes propiedades: Se establece automticamente el enlace entre cada par de procesos. Lo procesos slo necesitan conocer la identidad de otro para la comunicacin. Solo hay un enlace entre cada par de procesos. El enlace puede ser unidireccional o bidireccional.

Este esquema exhibe un simetra de direccionamiento; es decir, los procesos tanto emisor como receptor necesitan nombrar al otro para comunicarse. Otra variante de este esquema es utilizar asimetra de direccionamiento, con la sig. primitivas: Enviar(P,mensaje): enviar un mensaje al proceso P. Recibir(Id,mensaje) : recibir un mensaje de cualquier proceso con el que hubo comunicacin. Aqu slo el emisor nombra al destinatario; el destinatario no sta obligado a nombrar al emisor. Comunicacin indirecta: Aqu los mensajes se envan a, y se reciben de, buzones (tambin llamados PUERTOS). Un buzn puede considerarse en lo abstracto como un objeto en el que los procesos pueden colocar mensajes y del cual se pueden sacar mensajes. Cada buzn tiene una identificacin nica. Aqu dos proceso se pueden comunicarse slo si comparten un buzn. Las primitivas se definen como: Enviar (A,mensaje): enviar un mensaje al buzn A. Recibir (A,mensaje): recibir un mensaje del buzn A. Un enlace de comunicacin tiene las sig. propiedades: Se establece un enlace entre un par de procesos slo si tienen un buzn compartido. Un enlace puede estar asociado a ms de dos procesos. Entre cada par de procesos en comunicacin puede haber varios enlaces distintos, cada uno de los cuales corresponder a un buzn. Los enlaces pueden ser unidireccionales o bidereccionales. Hay varias formas de designar el dueo de y los usuarios de un buzn dado. Una posibilidad es permitir que un proceso declare variables de tipo buzn. El proceso que declara un buzn es el dueo de ese buzn. Cualquier otro proceso que conozca el nombre de dicho buzn podr usarlo. Por otro lado, un buzn propiedad del S.O tiene existencia propia; es independiente y no est unido a ningn proceso especfico. El S.O establece un mecanismo que permite a un proceso: Crear un buzn nuevo Enviar y recibir mensajes a travs del buzn Destruir un buzn. Comunicacin entre procesos ipc Los procesos en UNIX no comparten memoria, ni siquiera los padres con sus hijos. Por tanto, hay que establecer algn mecanismo en caso de que se quiera comunicar informacin entre procesos concurrentes. El sistema operativo UNIX define tres clases de herramientas de comunicacin entre procesos (IPC): los semforos, la memoria compartida y los mensajes.

El tipo de llamadas al sistema para estos IPCs es anlogo al de los semforos: existen sendas funciones shmget y msgget para crear o enlazarse a un segmento de memoria compartida o a una cola de mensajes, respectivamente. Para alterar propiedades de estos IPCs, incluyendo su borrado, estn las funciones shmctl y msgctl. Para enviar o recibir mensajes, se utilizan las funciones msgsnd y msgrcv. En este apartado se describirn brevemente algunas llamadas al sistema disponibles para el uso de las IPCs dentro de la programacin en C.

Das könnte Ihnen auch gefallen