Книга: Архитектура операционной системы UNIX

8.1.1 Алгоритм

8.1.1 Алгоритм

Сразу после переключения контекста ядро запускает алгоритм планирования выполнения процессов (Рисунок 8.1), выбирая на выполнение процесс с наивысшим приоритетом среди процессов, находящихся в состояниях "резервирования" и "готовности к выполнению, будучи загруженным в память". Рассматривать процессы, не загруженные в память, не имеет смысла, поскольку не будучи загружен, процесс не может выполняться. Если наивысший приоритет имеют сразу несколько процессов, ядро, используя принцип кольцевого списка (карусели), выбирает среди них тот процесс, который находится в состоянии "готовности к выполнению" дольше остальных. Если ни один из процессов не может быть выбран для выполнения, ЦП простаивает до момента получения следующего прерывания, которое произойдет не позже чем через один таймерный тик; после обработки этого прерывания ядро снова запустит алгоритм планирования.

алгоритм schedule_process
входная информация: отсутствует
выходная информация: отсутствует
{
 выполнять пока (для запуска не будет выбран один из процессов) {
  for (каждого процесса в очереди готовых к выполнению)
   выбрать процесс с наивысшим приоритетом из загруженных в память;
  if (ни один из процессов не может быть избран для выполнения)
   приостановить машину;
 /* машина выходит из состояния простоя по прерыванию */
 }
 удалить выбранный процесс из очереди готовых к выполнению;
 переключиться на контекст выбранного процесса, возобновить его выполнение;
}

Рисунок 8.1. Алгоритм планирования выполнения процессов

Оглавление книги

Похожие страницы

Генерация: 0.173. Запросов К БД/Cache: 5 / 0
поделиться
Вверх Вниз