Как запланирован планировщик?

1030
Gufran

Планировщик, являющийся системной программой, должен быть запланирован для выполнения, чтобы он мог активировать и планировать другие программы. Я читал о планировании процессов и алгоритмах, но не мог понять, как запланирован сам планировщик.
Это сам график? если да то как? а какой алгоритм? потому что он должен просыпаться чаще, чем любая другая программа, поэтому я думаю, что должен быть другой алгоритм.

Я имею в виду ОЧЕНЬ много подобных вопросов, но все они касаются только одного: как запланирован сам планировщик?

1
просто чтобы прояснить, вы на самом деле говорите только о многопоточном / процессном планировании, а не о планировщиках задач, таких как cron, at или планировщик задач windows, верно? Frank Thomas 10 лет назад 0
@ Франк, да, если говорить о многопоточном / процессном планировании. Gufran 10 лет назад 0

1 ответ на вопрос

4
David Foerster

Есть несколько подходов к этой проблеме.

Совместные Планировщики Многозадачности

Кооперативный планировщик вызывается каждый раз, когда программа вызывает его или передает ему управление. Он взаимодействует с операционной системой и другими запущенными программами. Программа, которая никогда не выдаст, например, «зависший» процесс, никогда не покинет работающее состояние на машине с одним ЦП.

Preemptive Многозадачный планировщик

Очень простой упреждающий планировщик периодически вызывается временным прерыванием ЦП. Программа не может предотвратить это (без привилегий системного уровня) и выйдет из рабочего состояния, потому что ЦП перемещает указатель команд во время прерываний.

Я предлагаю вам прочитать статью в Википедии о многозадачности .