Light Weight Kernel Threads ( LWKT ) es un término de ciencias de la computación y de DragonFlyBSD en particular. Los LWKT se diferencian de los subprocesos normales del kernel en que pueden adelantarse a los subprocesos normales del kernel . Según Matt Dillon , creador de DragonFlyBSD:
El programador LWKT es responsable de ejecutar realmente un hilo. Utiliza un esquema de prioridad fija, pero las prioridades fijas diferencian los subsistemas principales , no los procesos del usuario. Por ejemplo, los subprocesos de interrupción de hardware tienen la prioridad más alta, seguidos por las interrupciones de software, los subprocesos de solo kernel y, finalmente, los subprocesos de usuario. Un hilo de usuario se ejecuta con la prioridad del kernel del usuario (cuando en realidad se está ejecutando en el kernel, por ejemplo, ejecutando una llamada al sistema en nombre del área de usuario), o un hilo del usuario se ejecuta con la prioridad del usuario.
DragonFly se adelanta, simplemente lo hace con mucho cuidado y solo en 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 kernel sin interrupciones se apropie de otro subproceso del kernel sin interrupciones.
El sistema operativo mainframe z / OS admite un mecanismo similar, denominado SRB (Bloque de solicitud de servicio).
Los SRB representan solicitudes para ejecutar una rutina de servicio del sistema. Los SRB se crean normalmente 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 proceso (PCB), ya 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 de multiprocesador, la rutina SRB, después de ser programada, puede distribuirse en otro procesador y puede ejecutarse al mismo tiempo que el programa de programación. El programa de planificación puede continuar realizando otros procesos en paralelo con la rutina SRB. Solo 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 se programan mediante un programa de aplicación. El puerto del servidor de transacciones CICS 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 principal y el otro es el subproceso del usuario.
Ver también
Fuentes
- Publicación de Matt Dillon sobre el programador LWKT
- Kerner, Sean Michael (10 de enero de 2006), "New DragonFly Released For BSD Users" , InternetNews , consultado el 20 de noviembre de 2011
- Biancuzzi, Federico (08/07/2004), "Behind DragonFly BSD" , O'Reilly Media , consultado el 20/11/2011
- Loli-Queru, Eugenia (2004-03-13), "Entrevista con Matthew Dillon de DragonFly BSD" , OSNews
- Luciani, Robert ( 24 de mayo de 2009 ) , subprocesamiento M: N en DragonflyBSD (PDF) , BSDCon, archivado desde el original (PDF) el 23 de diciembre de 2010
- Andrews, Jeremy (2007-08-06), "Entrevista: Mateo Dillon" , KernelTrap , Archivado desde el original en 2011-05-15 , recuperada 2011-11-20
- Vervloesem, Koen (2010-04-21), "DragonFly BSD 2.6: hacia un sistema operativo de agrupamiento libre" , LWN.net , recuperada 2011-11-19
- Kerner, Sean Michael (25 de julio de 2006), "DragonFly BSD 1.6 Cuts the Cord" , InternetNews , consultado el 20 de noviembre de 2011
- Townsend, Trent (18 de enero de 2006), "A Quick Review of DragonFly BSD 1.4" , OSNews , consultado el 16 de noviembre de 2011
- Interjú Matthew Dillionnal a DragonFly BSD alapítójával , 2003-10-10 , consultado 2011-11-20