Пример традиционного планирования процессов в ОС Unix

Рассмотрим на примере, как это все работает. Предполагается, что есть три процесса, которые создаются одновременно с одним и тем же базовым приоритетом (в данном случае – это число 60). Таймер прерывает выполнение процесса 60 раз в секунду. Предполагается, что не один процессов не блокируется сам, и нет других процессов, готовых к выполнению. Для простоты пользовательская составляющая nicej игнорируется. Происходит пересчет времени и приоритетов.

Рассмотрим, как работает первый процесс. Он проработал 1 секунду (счетчик 0®60) – 60 раз его прерывали, по первой формуле получаем: 60/2=30, соответственно приоритет будет пересчитан по второй формуле, и полученное значение будет равно 75. После этого начинает работать второй процесс - третий процесс пока стоит. Когда проработает второй процесс, у него произойдет точно такой же пересчет, как и у первого, потому что они начинали с одинаковых позиций. У первого процесса время, которое он использовал, будет: 30/2=15, и приоритет: 60+15/2=67. У второго процесса приоритет соответственно 75, третий начал работать. Когда третий процесс дойдет до конца своего кванта времени – у него будет приоритет 75. У первого процесса приоритет составит 63.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: