В настоящей главе был описан
основной алгоритм диспетчеризации
процессов в системе UNIX. С каждым
процессом в системе связывается
приоритет планирования, значение
которого появляется в момент
перехода процесса в состояние
приостанова и периодически
корректируется программой
обработки прерываний по таймеру.
Приоритет, присваиваемый процессу
в момент перехода в состояние
приостанова, имеет значение,
зависящее от того, какой из
алгоритмов ядра исполнялся
процессом в этот момент. Значение
приоритета, присваиваемое процессу
во время выполнения программой
обработки прерываний по таймеру
(или в тот момент, когда процесс
возвращается из режима ядра в режим
задачи), зависит от того, сколько
времени процесс занимал ЦП: процесс
получает низкий приоритет, если он
обращался к ЦП, и высокий - в
противном случае. Системная
функция nice дает процессу
возможность влиять на собственный
приоритет путем добавления
параметра, участвующего в
пересчете приоритета. В главе были
также рассмотрены системные
функции, связанные с временем
выполнения системы и протекающих в
ней процессов: с установкой и
получением системного времени,
получением времени выполнения
процессов и установкой сигналов
"будильника". Кроме того,
описаны функции программы
обработки прерываний по таймеру,
которая следит за временем в
системе, управляет таблицей
ответных сигналов, собирает
статистику, а также подготавливает
запуск планировщика процессов,
программы подкачки и
"сборщика" страниц. Программа
подкачки и "сборщик" страниц
являются объектами рассмотрения в
следующей главе. Предыдущая
глава || Оглавление
|| Следующая глава
8.4 ВЫВОДЫ