То, кто планирует планировщик в ОС - не Является этим сценарий курицы и яйца?

Кто планирует планировщик?

Который является первой созданной задачей и как эта первая задача создается? Разве какой-либо ресурс или память не требуются для него? не похож на сценарий курицы и яйца?

Разве планировщик не является задачей? Это заставляет ЦП в конце каждого интервала времени проверять, какой задаче нужно дать ЦП?

Есть ли какие-либо хорошие ссылки, который заставляет человека думать и понять глубоко все эти понятия вместо того, чтобы вылиться некоторая теория, которая должна быть byhearted?

12
задан aks 12 February 2010 в 08:10
поделиться

1 ответ

Планировщик запускается по

  • внешнему событию, такому как прерывание, (работа диска, щелчок мыши, тиканье таймера)
  • или внутреннему событию (такому как завершение потока, сигнал потока о том, что ему нужно подождать чего-то, или сигнал потока о том, что он освободил ресурс, или ловушка, вызванная тем, что поток делает что-то незаконное, например, деление на ноль)

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

Обычно это "планирование" планировщика вызывается кодом, связанным с аппаратным прерыванием, или кодом, связанным с системным вызовом.

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

Можно иметь несколько планировщиков: планировщик с наивысшим приоритетом (например, тот, который мы только что описали) и другие планировщики, которые действительно являются потоками и выполняются как другие пользовательские задачи. Такие планировщики с более низким приоритетом обычно используются для управления действиями, которые происходят через гораздо более длительные промежутки времени, например, фоновые задания.

14
ответ дан 2 December 2019 в 21:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: