Lekkie wątki jądra

Light Weight Kernel Threads ( LWKT ) to termin z dziedziny informatyki , w szczególności z DragonFlyBSD . LWKT różnią się od normalnych wątków jądra tym, że mogą wyprzedzać normalne wątki jądra . Według Matta Dillona , ​​twórcy DragonFlyBSD:

Planista LWKT jest odpowiedzialny za faktyczne uruchomienie wątku. Wykorzystuje ustalony schemat priorytetów, ale ustalone priorytety różnicują główne podsystemy , a nie procesy użytkownika. Na przykład wątki przerwań sprzętowych mają najwyższy priorytet, następnie przerwania programowe, wątki tylko dla jądra, a na końcu wątki użytkownika. Wątek użytkownika albo działa z priorytetem użytkownika-jądra (kiedy faktycznie działa w jądrze, np. uruchamia wywołanie systemowe w imieniu obszaru użytkownika), albo wątek użytkownika działa z priorytetem użytkownika.

DragonFly wyprzedza, po prostu robi to bardzo ostrożnie i tylko w określonych okolicznościach. Wątek przerwania LWKT może wywłaszczać większość innych wątków. To naśladuje to, co już zrobił FreeBSD-4.x ze swoim mechanizmem spl/run-interrupt-in-context-of-current-process. To, czego DragonFly *NIE* robi, to pozwala nieprzerwanemu wątkowi jądra uprzedzić inny nieprzerwany wątek jądra.

mainframe z/OS obsługuje podobny mechanizm o nazwie SRB (Service Request Block).

SRB reprezentują żądania wykonania procedury obsługi systemowej. SRB są zwykle tworzone, gdy jedna przestrzeń adresowa wykryje zdarzenie, które wpływa na inną przestrzeń adresową; zapewniają jeden z kilku mechanizmów asynchronicznej komunikacji międzyadresowej dla programów działających w systemie z/OS.

SRB jest podobny do bloku sterowania procesem (PCB), ponieważ identyfikuje jednostkę pracy w systemie. W przeciwieństwie do PCB, SRB nie może „posiadać” obszarów magazynowych. W środowisku wieloprocesorowym procedura SRB, po zaplanowaniu, może zostać wysłana na inny procesor i może działać równolegle z programem szeregującym. Program szeregujący może kontynuować inne przetwarzanie równolegle z procedurą SRB. Tylko programy działające w trybie jądra mogą tworzyć SRB.

System operacyjny Windows zna podobny lekki mechanizm nici o nazwie „włókna”. Włókna są planowane przez program użytkowy. Port CICS Transaction Server na platformę Windows wykorzystuje światłowody, nieco analogicznie do wykorzystania „enklaw” w systemie z/OS.

W systemie UNIX „wątki jądra” mają dwa wątki, jeden to wątek główny, a drugi to wątek użytkownika.

Zobacz też

Źródła