Sie sind auf Seite 1von 15

En informtica, un ncleo o kernel (de la raz germnica Kern, ncleo, hueso) es un software que constituye la parte ms importante del

sistema operativo.[1] Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma 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, 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 al programador.

Funciones generalmente ejercidas por un ncleoLos ncleos tienen como funciones bsicas garantizar la carga y la ejecucin de los procesos, las entradas/salidas y proponer una 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.

2.1.- CONCEPTO DE PROCESO. Un proceso no es mas que un programa en ejecucin, e incluye los valores actuales del contador de programa, los registros y las variables. Conceptualmente cada unos de estos procesos tiene su propia CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro. Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecucin en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.

Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Otra informacin que permite al sistema operativo su planificacin. Esta definicin vara ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o ms hilos, la memoria de trabajo (compartida por todos los hilos) y la informacin de planificacin. Cada hilo consta de instrucciones y estado de ejecucin. Los procesos son creados y destruidos por el sistema operativo, as como tambin este se debe hacer cargo de la comunicacin entre procesos, pero lo hace a peticin de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcacin (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria. En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para s mismo y en que dichos hilos comparten toda la memoria reservada para el proceso. En este modelo: todo software ejecutable de la computadora, lo que a menudo incluye al sistema operativo, esta organizado en una serie del proceso secuenciales, o simplemente procesos. la idea clava aqu es que un proceso es una actividad de algn tipo: tiene programa, entrada, salida y un estado. Se puede compartir un procesador entre varios procesos, usando algn algoritmo de planificacin para determinar cuando debe de trabajar en un proceso para atender a uno distinto. Jerarquas de procesos

Los sistemas operativos que manejan el concepto de proceso deben contar con algn mecanismo para crear todos los procesos necesarios. en los sistemas muy sencillos, o en los diseados para ejecutar solo una aplicacin. En otros sistemas operativos existen llamadas al sistema para crear un proceso, cargar su memoria y ponerlo en ejecutar. Sea cual sea la naturaleza exacta de la llamada al sistema. Los procesos necesitan poder crear otros procesos. En MINIX, los procesos se crean con la llamada al sistema FORK (bifurcar), que crea una copia idntica del proceso invocador. El proceso hijo tambin puede ejecutar FORK, as que es posible tener un rbol de proceso.

Publicado por rickytamayo en 21:24 Sin comentarios:

2.2.- ESTADOS Y TRANSICIONES DE LOS PROCESOS.


El principal trabajo del procesador es ejecutar las instrucciones de mquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo. En un entorno de multiprogramacin, el procesador intercalar la ejecucin de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignacin de recursos a cada proceso. Aunque cada proceso se una entidad independiente, con su propio contador de programa y estado interno, los procesos a menudo necesitan interactuar con otros procesos. Un proceso podra generar ciertas salidas que otro proceso utilizan como entradas, en el comando de Shell. Cuando un proceso se bloquea, lo que hace porque le es imposible continuar lgicamente, casi siempre porque esta separando entradas que todava no estn disponibles, tambin puede ser que un programa que conceptualmente esta listo y en condiciones de ejecutarse sea detenido porque el sistema operativo ha decidido asignar la CPU a otro proceso durante un tiempo. Estas dos condiciones son totalmente distintas, en el primer caso, la suspensin es inherente al problema (no es posible procesar la lnea de comandos del usuarios antes de que este la teclee). En el segundo caso, se trata de un tecnicismo del sistema (no hay suficiente: CPU para darle a cada proceso su propio procesador privado).

1.- Ejecutndose (usando realmente la CPU en este instante).

2.- Listo (se puede ejecutar, pero se suspendi temporalmente para dejar que otro proceso se ejecute).

3.- Bloqueo (no puede ejecutarse en tanto no ocurra algn evento externo).

Puede haber cuanto transiciones entre estos tres estados, como se muestra.

La transaccin 1 ocurre cuando un proceso descubre que no puede continuar. En algunos sistemas el proceso debe ejecutar una llamada al sistema, block, para pasar al estado bloqueado. En otros sistemas, incluido MINIX, cuando un proceso lee de un conducto o de un archivo especial, (p.ej., una terminal) y no hay entradas disponibles, se bloquea automticamente. Las transiciones 2 y 3 son causadas por el planificador de procesos, un parte del sistema operativo , sin que el proceso se entere siquiera de ellas.

La transicin 2 ocurre cuando el planificador decide que el proceso en ejecucin ya se ejecuto durante suficiente tiempo y es ahora de dejar que otros procesos tengan algo de tiempo de CPU.

La transaccin 3 ocurre cuando todos los dems procesos han disfrutado de una porcin justa y es hora de que el primer proceso reciba otra vez la CPU para ejecutarse.

La transaccin 4 ocurre cuando acontece el suceso externo que un proceso estaba esperando (como la llegada de entrada). Sin ningn otro proceso se esta ejecutando en ese instante, se dispara de inmediato la transaccin 3 y el proceso comienza a ejecutarse.

En caso contrario, el proceso tal vez tenga que esperar en el estado listo durante cierto tiempo hasta que la CPU este disponible. Usando el modelo de procesos, es mucho mas fcil visualizar lo que esta sucediendo dentro del sistema. [1]

[1] Andrew s. tanenbaum & Alvert s. woodhull (1998). Sistemas operativos Diseo e implementacin. (2da. Ed) Publicado por rickytamayo en 21:22 Sin comentarios:

2.3 PROCESOS LIGEROS (HILOS O HEBRAS)


El concepto de proceso engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia a la ejecucin. Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros. Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecucin (una traza) a travs de uno o ms programas. Esta ejecucin se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado (en ejecucin, listo, etc) y una prioridad de expedicin u origen. La unidad planificada y expedida por el sistema operativo es el proceso. En la mayora de los sistemas operativos, estas dos caractersticas son, de hecho, la esencia de un proceso. Sin embargo, son independientes, y pueden ser tratadas como tales por el sistema operativo. Esta distincin ha conducido en los sistemas operativos actuales a desarrollar la construccin conocida como thread, cuyas traducciones ms frecuentes son hilo, hebra y proceso ligero. Si se tiene esta divisin de caractersticas, la unidad de asignacin de la CPU se conoce como hilo, mientras que a la unidad que posee recursos se le llama proceso. Dentro de un proceso puede haber uno o ms hilos de control cada uno con: Un estado de ejecucin (en ejecucin, listo, bloqueado). Un contexto de procesador, que se salva cuando no est ejecutndose. Una pila de ejecucin. Algn almacenamiento esttico para variables locales. Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos. Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: se tarda menos tiempo en crear un nuevo hilo de un proceso que ya existe, en terminarlo,

y en hacer un cambio de contexto entre hilos de un mismo proceso. Al someter a un mismo proceso a varios flujos de ejecucin se mantiene una nica copia en memoria del cdigo, y no varias. Un ejemplo de aplicacin que podra hacer uso de los hilos es un servidor de ficheros de una red de rea local. Cada vez que llega una solicitud de una operacin sobre un fichero, se puede generar un nuevo hilo para su gestin. El servidor gestiona multitud de solicitudes, por tanto, se pueden crear y destruir muchos hilos en poco tiempo para dar servicio a estas peticiones. Si el servidor es un multiprocesador, se pueden ejecutar varios hilos de un mismo proceso simultneamente y en diferentes procesadores.[1]

Un proceso ligero (thread o hebra) es un programa en ejecucin que comparte la imagen de la memoria y otras informaciones con otros procesos ligeros.

Figura 1 Procesos ligeros

Es una unidad bsica de utilizacin de la CPU consistente en un juego de registros y un espacio de pila. Comparte el cdigo, los datos y los recursos con sus hebras pares

Una tarea (o proceso pesado) est formada ahora por una o ms hebras

Una hebra slo puede pertenecer a una tarea

Figura 2 Tareas con una y varias hebras

CARACTERISTICAS

Se comparten recursos. La comparticin de la memoria permite a las hebras pares comunicarse sin usar ningn mecanismo de comunicacin inter-proceso del SO.

La conmutacin de contexto es ms rpida gracias al extenso compartir de recursos

No hay proteccin entre las hebras. Una hebra puede escribir en la pila de otra hebra del mismo proceso

Estado de los procesos ligeros

Un proceso ligero puede estar ejecutando, listo o bloqueado.

Figura 3 Estados de los Procesos ligeros

Paralelismo Los procesos ligeros permiten paralelizar una aplicacin.[2]

Figura 4 Paralelismo

[1] Milenkovic M. (1994). Sistemas Operativos. Conceptos y Diseo, 2 Edicin, McGraw-Hill.

Stallings, W. (1993).Computer Organization and Architecture, 3 Edicin. New York: Macmillan. [2] HILOS (THREAD) (n.d.). Extrado el 24 de octubre de 2008 desde http://xue.unalmed.edu.co/~gsanchez/downloads/hilos.pdf Publicado por rickytamayo en 21:03 Sin comentarios:

2.4 CONCURRENCIA Y SECUENCIABILIDAD.


La concurrencia comprende un gran nmero de cuestiones de diseo, incluyendo la comunicacin entre procesos, comparicin y competencia por los recursos, sincronizacin de la ejecucin de varios procesos y asignacin del tiempo de procesador a los procesos y es fundamental para que existan diseos como Multiprogramacin, Multiproceso y Proceso distribuido Los procesos son concurrentes si existen simultneamente. Cuando dos o ms procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o ms procesos sean concurrentes, es necesario que tengan alguna relacin entre ellos La concurrencia puede presentarse en tres contextos diferentes: Varias aplicaciones: La multiprogramacin se cre para permitir que el tiempo de procesador de la mquina fuese compartido dinmicamente entre varios trabajos o aplicaciones activas. Aplicaciones estructuradas: Como ampliacin de los principios del diseo modular y la programacin estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes. Estructura del sistema operativo: Las mismas ventajas de estructuracin son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos estn implementados como un conjunto de procesos. Existen tres modelos de computadora en los que se pueden ejecutar procesos concurrentes: Multiprogramacin con un nico procesador. El sistema operativo se encarga de ir repartiendo el tiempo del procesador entre los distintos procesos, intercalando la

ejecucin de los mismos para dar as una apariencia de ejecucin simultnea. Multiprocesador. Es una maquina formada por un conjunto de procesadores que comparten memoria principal. En este tipo de arquitecturas, los procesos concurrentes no slo pueden intercalar su ejecucin sino tambin superponerla. Multicomputadora. Es una maquina de memoria distribuida, que est formada por una serie de computadoras. En este tipo de arquitecturas tambin es posible la ejecucin simultnea de los procesos sobre los diferentes procesadores. En general, la concurrencia ser aparente siempre que el nmero de procesos sea mayor que el de procesadores disponibles, es decir, cuando haya ms de un proceso por procesador. La concurrencia ser real cuando haya un proceso por procesador. Aunque puede parecer que la intercalacin y la superposicin de la ejecucin de procesos presentan formas de ejecucin distintas, se ver que ambas pueden contemplase como ejemplos de procesos concurrentes Existen diversas razones que motivan la ejecucin de procesos concurrentes en un sistema: Facilita la programacin de aplicaciones al permitir que stas se estructuren como un conjunto de procesos que cooperan entre s para alcanzar un objetivo comn. Acelera los clculos. Si se quiere que una tarea se ejecute con mayor rapidez, lo que se puede hacer es dividirla en procesos, cada uno de los cuales se ejecuta en paralelo con los dems. Posibilita el uso interactivo a mltiples usuarios que trabajan de forma simultnea. Permite un mejor aprovechamiento de los recursos, en especial de la CPU, ya que pueden aprovechar las fases de entrada-salida de unos procesos para realizar las fases de procesamiento de otros. As como existen las razones que motivan la ejecucin de procesos concurrentes, tambin existen sus contras: Inanicin e interrupcin de procesos Ocurrencia de bloqueos Que dos o ms procesos requieran el mismo recurso (No apropiativo) Tipos de procesos concurrentes. Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como: Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperacin de

otros procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultnea en un sistema. Procesos son cooperantes: Son aquellos que estn diseados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos. En ambos tipos de procesos (independientes y cooperantes), puede producirse una serie de interacciones entre ellos y pueden ser de dos tipos: Interacciones motivadas porque los procesos comparten o compiten por el acceso a recursos fsicos o lgicos. Por ejemplo, dos procesos independientes compiten por el acceso a disco o para modificar una base de datos. Interaccin motivada porque los procesos se comunican y sincronizan entre s para alcanzar un objetivo comn, Por ejemplo, un compilador que tiene varios procesos que trabajan conjuntamente para obtener un solo archivo de salida.

Elementos a gestionar y disear a causa de la concurrencia. Se pueden enumerar los siguientes: 1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo hace por medio de PBCs (Bloque de Control de Procesos)2. El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo. Entre estos recursos se incluyen:

Tiempo de procesador: Es funcin de la planificacin. Memoria: La mayora de los sistemas operativos emplean esquemas de memoria virtual. Archivos: Dispositivos de E/S:

3. El sistema operativo debe proteger los datos y los recursos fsicos de cada proceso contra injerencias no intencionadas de otros procesos. 4. Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se realiza la ejecucin con respecto a otros procesos concurrentes

2.5 Niveles, Objetivos y Criterios de Planificacion

En epocas pasadas de los sistemas de procesamiento por lotes, con una entrada en forma de imagenes de tarjetas en una cinta magnetica, el algoritmo de planificacion era sencillo: solo habia que ejecutar el siguiente trabajo en la cinta. En los sistemas de multiusuario de tiempo compartido, que se combinaban con un fondo de trabajos procesados en lote, el algoritmo era mas complejo. En forma invariable, existian varios usuarios en espera de servicio y podian existir tambien otros trabajos para ser procesados en lote. Incluso en los sistemas puros de tiempo compartido existen con frecuencia los trabajos colaterales, como el sistema de correo electronico, que a menudo se ejecuta todo el tiempo para enviar o recibir correo o noticias. Cuando mas de un proceso es ejecutable, el Sistema Operativo debe decidir cual de ellos debera ejecutarse primero. Hay que tener una planificacion de los procesos que quieren ejecutarse en el sistema.La planificacion es una funcion primordial del Sistema Operativo. La mayoria de los recursos, si no es que todos, se planifican antes de que se utilicen. La asignacion de procesadores fisicos a los procesos hace posible que estos realicen su trabajo, y tal asignacion es un problema complejo manejado por el Sistema Operativo. Concepto de Planificacion La planificacion hace referencia a un conjunto de politicas y mecanismos incorporados al sistema operativo que gobiernan el orden en que se ejecutan los trabajos que deben ser cumplimentados por el sistema informatico. Objetivo de la Planificacion El objetivo principal de la planificacion es optimizar el rendimiento del sistema y proporcionar un buen servicio a todos los procesos que se encuentren en el. En general, la planificacion trata de

cubrir los siguientes objetivos: Justicia. La planificacion debe ser lo mas justa posible con todos los procesos, sin favorecer a unos y perjudicar a otros. Maxima capacidad de ejecucion. Debe dar un servicio eficiente para que todos los trabajos se realicen lo mas rapidamente posible. Esto se puede lograr disminuyendo el numero de cambios de proceso. Maximo numero de usuarios interactivos. En los sistemas de tiempo compartido se tratara de que puedan estar trabajando el mayor numero de usuarios al mismo tiempo. Predecibilidad. La planificacion debe realizarse de tal forma que en todo momento pueda saberse como sera su ejecucion. Minimizacion de la sobrecarga. La computadora debe tener poca sobrecarga ya que esta afecta directamente al rendimiento final del sistema: a menor sobrecarga mayor velocidad de proceso. Equilibrio en el uso de recursos. Para obtener un mayor rendimiento en el uso de los recursos y que estos esten ocupados equitativamente el mayor tiempo posible. Seguridad de las prioridades. Si un proceso tiene mayor prioridad que otro, este debe ejecutarse mas rapidamente. Evitar la postergacion indefinida. Esto se logra aumentando la prioridad de un proceso mientras espere por un recurso. La prioridad llegara a ser tan alta que al proceso le sera asignado el recurso que pidio. Criterios de planificacion Para realizar los objetivos de la planificacion, un mecanismo de planificacion debe considerar lo siguiente: La limitacion de un proceso a las operaciones de Entrada / Salida: cuando un proceso consigue la cpu, ?la utiliza solo brevemente antes de generar una peticion de Entrada / Salida? La limitacion de un proceso a la cpu: cuando un proceso obtiene la cpu, ?tiende a usarla hasta que expira su tiempo? Si un proceso es por lote (batch) o interactivo: los usuarios interactivos deben recibir inmediato servicio para garantizar buenos tiempos de respuesta. ?Que urgencia tiene una respuesta rapida?: por ejemplo, un proceso de tiempo real de un sistema de control que supervise una refineria de combustible requiere una respuesta rapida, mas rapida que la respuesta requerida por un proceso en lotes (batch) que debera entregarse al dia siguiente. La prioridad de un proceso: a mayor prioridad mejor tratamiento. Frecuentemente un proceso genera fallos (carencias) de pagina: o o Probablemente los procesos que generan pocos fallos de pagina hayan acumulado sus conjuntos de trabajo en el almacenamiento principal. Los procesos que experimentan gran cantidad de fallos de pagina aun no han establecido sus conjuntos de trabajo.

o o

Un criterio indica favorecer a los procesos que han establecido sus conjuntos de trabajo. Otro criterio indica favorecer a los procesos con una tasa alta de fallos de pagina ya que rapidamente generaran una peticion de Entrada / Salida.

Frecuentemente un proceso ha sido apropiado por otro de mas alta prioridad, lo cual significa lo siguiente: o o A menudo los procesos apropiados deben recibir un tratamiento menos favorable. Cada vez que el Sistema Operativo asume la sobrecarga para hacer ejecutar este proceso, el corto tiempo de ejecucion antes de la apropiacion no justifica la sobrecarga de hacer ejecutar al proceso en primer lugar.

Cuanto tiempo de ejecucion real ha recibido el proceso?: un criterio considera que debe ser favorecido un proceso que ha recibido muy poco tiempo de cpu.

Cuanto tiempo adicional va a necesitar el proceso para terminar?: los tiempos promedio de espera pueden reducirse priorizando los procesos que requieren de un tiempo de ejecucion minimo para su terminacion, pero pocas veces es posible conocer la cantidad de tiempo adicional que cada proceso necesita para terminar.

2.6 Tcnicas Administracin del Planificador


Cuando ms de un proceso es ejecutable, el Sistema Operativo debe decidir cual de ellos debe ejecutarse en primer termino. Esa parte del sistema operativo que debe de llevar a cabo esa decisin se llama planificador y el algoritmo que utiliza se llama algoritmo de planificacin.

El planificador intenta conseguir con su administracin de procesos lo siguiente:

Equidad: Garantizar que cada proceso obtenga su proporcin justa de la CPU. Es decir, que ningn proceso llegue a apoderarse por completo de la CPU.

Eficiencia: Mantener ocupada la CPU al 100 %, esto con el fin de evitar los tiempos ociosos que pueda tener el CPU.

Rendimiento: Maximizar el nmero de tareas procesadas por hora, es decir, que el CPU pueda atender todos y cada una de las peticiones que le fueron hechas.

Para garantizar que ningn proceso se ejecute un tiempo excesivo, casi todas las computadoras tienen un cronmetro electrnico o un reloj incluido, que provoca una interrupcin en forma peridica. En cada interrupcin del reloj, el sistema operativo logra ejecutarse y decidir si el proceso que se ejecuta en ese momento tiene permiso de continuar o si tiene el tiempo suficiente en la CPU por el momento, para despus suspenderlo para que otro proceso utilice la CPU. (Stephen Degler (2003). Administracin de sistemas Linux.).

Das könnte Ihnen auch gefallen