Синхронизация и взаимодействие программных потоков в операционной среде реального времени. Дорогов А.Ю. - 10 стр.

UptoLike

Составители: 

10
нию, имеют одинаковый приоритет, то они устанавливаются в очередь. Та-
ким образом, можно считать, что для каждого уровня приоритета существу-
ет своя очередь (рис. 1.4). Перемещение потоков в очереди зависит от при-
нятой дисциплины диспетчеризации. Операционная система поддерживает
256 уровней приоритета. В системе различаются обычные и привилегиро-
ванные (корневые) потоки. Привилегированные потокиэто те, которые за-
пущены привилегированным пользователемобладающим правами адми-
нистратора (его имя root). То, что поток привилегированный, определяется
его идентификатором uid = 0, который при запуске наследуется от роди-
тельского потока. Привилегии явным образом не влияют на процедуру дис-
петчеризации, однако обычные потоки могут иметь значение приоритета от
1 до 63, а привилегированныелюбые значения вплоть до 256. По умолча-
нию дочерние потоки наследуют свой приоритет от родительского потока. В
системе существует поток, имеющий нулевой приоритет (idle-потокпустой
поток), он всегда готов к исполнению и заполняет паузу, когда системе де-
лать нечего.
1.5. Дисциплины диспетчеризации
В системе QNX Neutrino поддерживаются 3 дисциплины диспетчериза-
ции:
FIFO (обычная очередь);
циклическая (FIFO-очередь с установленными квантами времени
исполнения);
спорадическая (приоритет потока может изменяться во времени по
определенным правилам).
Эти дисциплины применимы к потокам, которые имеют один и тот же
приоритет. Если появляется поток с большим приоритетом, то он вытесняет
все другие потоки и занимает процессор.
Дисциплина FIFO. Диаграмма на рис. 1.5, а иллюстрирует дисциплину
диспетчеризации FIFO. Переключение потока может произойти, только ко-
гда поток самостоятельно передаст управление другому потоку (т. е. забло-
кируется), либо будет прерван более приоритетным потоком.
Циклическая дисциплина. Диаграмма на рис. 1.5, б иллюстрирует ме-
ханизм циклической диспетчеризации. Передача управления другому пото-
ку может произойти либо по инициативе активного потока, либо когда ис-
черпан отпущенный квант времени на исполнение (при этом поток будет
поставлен в конец очереди), либо когда он будет прерван более приоритет-
ным потоком.