3.4.4. Ведущие и разделяемые процессами планировщики-диспетчеры


Рис. 4. Разделение планировщика-диспетчера

S - планировщик;

Pri - процесс.

Планировщик-диспетчер может разделяться процессами, т.е. планировщик вызывается путем обращений i-го прцесса к данной системной программе S, что является косвенным результатом операции ядра ОС. Ядро и планировщик тогда потенциально содержатся в адресном пространстве всех процессов и выполняются в составе любого процесса.


Рис. 5. Централизация планировщика-диспетчера

Этот тип планировщика считается отдельным процессом, он может непрерывно проверять заявки системы на планирование или может активизироваться соответствующими сигналами.



Рис. 6. Схема взаимодействия планировщика-диспетчера со структурами
системных данных и примитивов ядра

Список процессов (см. ниже) построен на приоритетном базисе и содержит все процессы в состояниях от1 до 9 (для UNIX).

Планировщик вызывается примитивами ядра, при этом учитывается состояние дескрипторов процессов и структура процесса.

Список готовности процессов построен на приоритетном базисе и содержит все процессы в состояниях, соответствующих уровню их исполнения.


Рис. 7. Список готовности процессов

Планировщик работает со списком готовности процессов на основе дисциплины диспетчеризации с вытеснением. Эта дисциплина предполагаем, что планировщик гарантирует, что приоритет любого процесса, находящегося в состоянии "Развивающийся", больше или равен приоритету любого процесса, находящегося в состоянии "Готовый - Активный".

Пример планирования и диспетчеризации в системе разделения времени.

Предполагается наличие следующих структур:

Графическая интерпретация планирования и диспетчеризации представлена на рисунке 8.


Рис. 8. Временная диаграмма взаимодействия "Диспетчера" и задач

Примечание: для того, чтобы не загромождать диаграмму на ней приведена только часть используемых при планировании и диспетчировании структур.