Подтвердить что ты не робот

Кто планирует планировщик в ОС - Разве это не сценарий с курицей и яйцом?

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

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

Не планировщик задачи? Получает ли процессор процессор в конце каждого временного среза, чтобы проверить, какая задача должна быть отдана процессору?

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

4b9b3361

Ответ 1

Планировщик запланирован на

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

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

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

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

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