Espacio de tecnologia, software libre y sus derivados. Una horda de monos entrenados escriben de vez en cuando por aqui algunas noticias, opiniones e incluso alguna que otra cosa fuera del tema. Maqueros, favor de abstenerse que no somos lo suficientemente guapos.

Piano daemon

Procesos, Hilos y Planificacion de tareas

El kernel de solaris es multihilos,esto significa
que los servicios del kernel y tareas son ejecutados como hilos del kernel
El Hilo de Kernel es la unidad principal de ejecucion administrada por
el kernel de Solaris. El Hilo de Kernel tienen un estado de ejecucion
y contexto que inclulle una prioridad global y una clase de Planificacion de Tarea;
Los Hilos de kernel son las unidades fundamentales a ser administradas, ejecutadas
e intercambiadas de contexto sobre y fuera de los procesadores.
Este mismo modelo a los procesos de nivel de usuario.
El proceso de usuario es un contenedor que define bastante de el contexto
de ejecucion para sus hilos. Los hilos permiten multiples flujos de ejecucion
dentro de un solo entorno de memoria virtual.


Los siguientes objetos forman la implementacion y el modelo de hilos sobre el kernel de Solaris.


* Hilos de Kernel(Kernel threads): Es el objeto que se obtiene planificacion y ejecucion sobre un procesador.
* Hilos de Usuario(User threads): El el hilo a nivel de usuario, mantenido por un proceso de usuario.
* Proceso: Forma ejecutable de un programa; El entorno de ejecucion para un programa de usuario.
* Proceso de peso ligero (Lightweight process (LWP)): El contexto de ejecucion visible del kernel, para un hilo de usuario.


Solaris ejecuta hilos de kernel para tareas relacionadas al kernel, tal como el manejo de interrupciones, administracion de paginas de memoria, drivers para dispositivos, etc.

Para la ejecucion de un proceso de usuario, los hilos de kernel tienen un LWP correspondiente LWP;
los hilos de kernel son planificados para ejecucion a favor de los procesos de usuario.
Dentro del kernel, multiples hilos de ejecucion comparten el entorno del kernel,
primariamente el spacio de direcciones del kernel.

Los procesos tambien contienen uno o mas hilos,los cuales comparten el entorno de memoria virtual
de los procesos, como tambien lo hacen otros componentes del contexto de proceso.

El LWP y su correspondiente hilo de kernel definen el entorno virtual de ejecuciont para un hilo dentro de un proceso de usuario. Cada hilo en un proceso de usuario es enlazado a un LWP
, y cada LWP tiene un hilo de kernel. El LWP permite a cada hilo dentro de un proceso, invocar llamadas al sistema
independientemente de otros hilos dentro del mismo proceso.
Cada vez que una llamada al sistema es realizada por un hilo,
sus registros son puestos sobre un stack dentro del LWP.

Una vez que la llamadas al sistema retornaron sus respuestas, estan ya estaran disponibles para LWP.

La siguiente figura muestra lo anteriormente expuesto:

LWPSOLARIS

Arturo Plauchu

May 21, 2009 @ 8:45 pm

Lo unico bueno que le falta son los mensajes entre procesos, lo que hace que la respuesta y sincronizacion de tareas sea mas organizada, eficiente y rapida. Solo cuenta con seƱales entre procesos (kill, slay, etc). El kernel de UNIX no pasa datos entre mensajes, dejando todo al manejador de prioridades por un cacho del procesador (scheduling priority). Bueno aunque esas son buenas tareas de microkernel.

Y si no gustar hacer como Abuelo toro sentado. Chingar hasta que aullido de lobo despierta a gran bufalo.

RSS feed para comentarios en esta entrada · TrackBack URI

Comenta