stringtranslate.com

Hilos de núcleo livianos

Light Weight Kernel Threads ( LWKT ) es un término de informática y de DragonFly BSD en particular. Los LWKT se diferencian de los subprocesos del kernel normales en que pueden adelantarse a los subprocesos del kernel normales . Según Matt Dillon , creador de DragonFlyBSD:

El programador LWKT es responsable de ejecutar un hilo. Utiliza un esquema de prioridad fija, pero las prioridades fijas diferencian los subsistemas principales , no los procesos de usuario. Por ejemplo, los subprocesos de interrupción de hardware tienen la mayor prioridad, seguidos de las interrupciones de software, los subprocesos exclusivos del kernel y, finalmente, los subprocesos de usuario. Un subproceso de usuario se ejecuta con prioridad de usuario-kernel (cuando realmente se está ejecutando en el kernel, por ejemplo, ejecutando una llamada al sistema en nombre del usuario), o un subproceso de usuario se ejecuta con prioridad de usuario.

DragonFly se adelanta, simplemente lo hace con mucho cuidado y sólo bajo circunstancias particulares. Un subproceso de interrupción LWKT puede adelantarse a la mayoría de los demás subprocesos, por ejemplo. Esto imita lo que FreeBSD-4.x ya hizo con su mecanismo spl/run-interrupt-in-context-of-current-process. Lo que DragonFly *NO* hace es permitir que un subproceso del núcleo sin interrupciones se adelante a otro subproceso del núcleo sin interrupciones.

El sistema operativo mainframe z/OS admite un mecanismo similar, llamado SRB (Bloque de solicitud de servicio).

Los SRB representan solicitudes para ejecutar una rutina de servicio del sistema. Los SRB normalmente se crean cuando un espacio de direcciones detecta un evento que afecta a un espacio de direcciones diferente; Proporcionan uno de varios mecanismos para la comunicación asíncrona entre espacios de direcciones para programas que se ejecutan en z/OS.

Un SRB es similar a un bloque de control de procesos (PCB), en el sentido de que identifica una unidad de trabajo para el sistema. A diferencia de una PCB, una SRB no puede "poseer" áreas de almacenamiento. En un entorno multiprocesador, la rutina SRB, después de programarse, puede enviarse a otro procesador y ejecutarse simultáneamente con el programa de programación. El programa de programación puede continuar realizando otros procesos en paralelo con la rutina SRB. Sólo los programas que se ejecutan en modo kernel pueden crear un SRB.

El sistema operativo Windows conoce un mecanismo de hilo ligero similar llamado "fibras". Las fibras están programadas mediante un programa de aplicación. El puerto de CICS Transaction Server a la plataforma Windows utiliza fibras, algo análogo al uso de "enclaves" en z/OS.

En UNIX, los "subprocesos del núcleo" tienen dos subprocesos, uno es el subproceso central y el otro es el subproceso del usuario.

Ver también

Fuentes