Кто планирует планировщик?
Который является первой созданной задачей и как эта первая задача создается? Разве какой-либо ресурс или память не требуются для него? не похож на сценарий курицы и яйца?
Разве планировщик не является задачей? Это заставляет ЦП в конце каждого интервала времени проверять, какой задаче нужно дать ЦП?
Есть ли какие-либо хорошие ссылки, который заставляет человека думать и понять глубоко все эти понятия вместо того, чтобы вылиться некоторая теория, которая должна быть byhearted?
Планировщик запускается по
Короче говоря, он запускается любым событием, которое может потребовать переоценки набора задач для выполнения и/или приоритетов этих задач. Планировщик решает, какая задача (задачи) будет выполняться следующей, и передает управление следующей задаче.
Обычно это "планирование" планировщика вызывается кодом, связанным с аппаратным прерыванием, или кодом, связанным с системным вызовом.
Хотя можно считать, что планировщик - это настоящий поток, на практике его не нужно реализовывать таким образом... потому что он выполняется с более высоким приоритетом, чем любая другая задача. Сложные ОС могут на самом деле выделить специальный поток, который является планировщиком, и пометить его занятым, когда планировщик получает управление. Это делает его красивым, но фиктивный поток не планируется планировщиком
Можно иметь несколько планировщиков: планировщик с наивысшим приоритетом (например, тот, который мы только что описали) и другие планировщики, которые действительно являются потоками и выполняются как другие пользовательские задачи. Такие планировщики с более низким приоритетом обычно используются для управления действиями, которые происходят через гораздо более длительные промежутки времени, например, фоновые задания.