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
- Post Matta Dillona na temat harmonogramu LWKT
- Kerner, Sean Michael (10.01.2006), „New DragonFly wydany dla użytkowników BSD” , InternetNews , pobrane 2011-11-20
- Biancuzzi, Federico (2004-07-08), "Behind DragonFly BSD" , O'Reilly Media , pobrane 2011-11-20
- Loli-Queru, Eugenia (13.03.2004), „Wywiad z Matthew Dillonem z DragonFly BSD” , OSNews
- Luciani, Robert (24.05.2009), gwintowanie M:N w DragonflyBSD (PDF) , BSDCon, zarchiwizowane z oryginału (PDF) w dniu 23.12.2010
- Andrews, Jeremy (2007-08-06), „Wywiad: Matthew Dillon” , KernelTrap , zarchiwizowane z oryginału w dniu 15.05.2011 , pobrane 2011-11-20
- Vervloesem, Koen (21.04.2010), „DragonFly BSD 2.6: w kierunku wolnego klastrowego systemu operacyjnego” , LWN.net , pobrane 2011-11-19
- Kerner, Sean Michael (2006-07-25), „DragonFly BSD 1.6 przecina przewód” , InternetNews , pobrane 2011-11-20
- Townsend, Trent (18.01.2006), „Szybki przegląd DragonFly BSD 1.4” , OSNews , pobrane 16.11.2011
- Interjú Matthew Dillionnal a DragonFly BSD alapítójával , 2003-10-10 , pobrane 2011-11-20