Облегченные потоки ядра ( LWKT ) - это термин из области компьютерных наук, в частности от DragonFlyBSD . LWKT отличаются от обычных потоков ядра тем, что они могут вытеснять обычные потоки ядра . По словам Мэтта Диллона , создателя DragonFlyBSD:
Планировщик LWKT отвечает за фактическое выполнение потока. Он использует схему фиксированного приоритета, но фиксированные приоритеты различают основные подсистемы , а не пользовательские процессы. Например, потоки аппаратных прерываний имеют наивысший приоритет, за ними следуют программные прерывания, потоки только ядра и, наконец, пользовательские потоки. Пользовательский поток либо выполняется с приоритетом пользовательского ядра (когда он фактически выполняется в ядре, например, запускает системный вызов от имени пользовательского пространства), либо пользовательский поток выполняется с приоритетом пользователя.
DragonFly вытесняет, просто делает это очень осторожно и только при определенных обстоятельствах. Например, поток прерывания LWKT может вытеснить большинство других потоков. Это имитирует то, что FreeBSD-4.x уже сделала со своим механизмом spl / run-interrupt-in-context-of-current-process. Что DragonFly делает * НЕ *, так это позволяет потоку ядра без прерывания вытеснять другой поток ядра без прерывания.
Операционная система z / OS для мэйнфреймов поддерживает аналогичный механизм, называемый SRB (Service Request Block).
SRB представляют собой запросы на выполнение подпрограммы системного обслуживания. SRB обычно создаются, когда одно адресное пространство обнаруживает событие, которое влияет на другое адресное пространство; они предоставляют один из нескольких механизмов для асинхронной связи между адресным пространством для программ, работающих в z / OS.
SRB похож на блок управления процессом (PCB) в том, что он определяет единицу работы для системы. В отличие от печатной платы, SRB не может «владеть» областями хранения. В многопроцессорной среде процедура SRB после планирования может быть отправлена на другой процессор и может выполняться одновременно с программой планирования. Программа планирования может продолжать выполнять другую обработку параллельно с подпрограммой SRB. Только программы, работающие в режиме ядра, могут создавать SRB.
Операционная система Windows знает аналогичный легкий механизм потоков, называемый «волокнами». Волокна планируются прикладной программой. Порт сервера транзакций CICS на платформу Windows использует волокна, что в некоторой степени аналогично использованию «анклавов» в z / OS.
В UNIX «потоки ядра» имеют два потока, один - основной поток, другой - пользовательский.
Смотрите также
Источники
- Сообщение Мэтта Диллона о планировщике LWKT
- Кернер, Шон Майкл (10 января 2006 г.), «Новый выпуск DragonFly для пользователей BSD» , InternetNews , получено 20 ноября 2011 г.
- Бьянкуцци, Федерико (2004-07-08), "Behind DragonFly BSD" , O'Reilly Media , получено 2011-11-20
- Лоли-Куэру, Юджиния (13 марта 2004 г.), "Интервью с Мэтью Диллоном из DragonFly BSD" , OSNews
- Лучани, Роберт ( 24 мая 2009 г. ), M: N threading в DragonflyBSD (PDF) , BSDCon, заархивировано из оригинала (pdf) 23 декабря 2010 г.
- Эндрюс, Джереми (2007-08-06), "Интервью: Matthew Dillon" , KernelTrap , архивируются с оригинала на 2011-05-15 , извлекаться 2011-11-20
- Vervloesem, Коен (2010-04-21), "DragonFly BSD 2.6: к свободной кластеризации операционной системы" , LWN.net , извлекаются 2011-11-19
- Кернер, Шон Майкл (25 июля 2006 г.), «DragonFly BSD 1.6 перерезает шнур» , InternetNews , получено 20 ноября 2011 г.
- Townsend, Трент (2006-01-18), "Краткий обзор DragonFly BSD 1.4" , OSnews , извлекаться 2011-11-16
- Interjú Мэтью Dillionnal стрекоза BSD alapítójával , 2003-10-10 , извлекаются 2011-11-20