Архитектура современных операционных систем
41 1. при каждом прерывании от таймера планировщик добавляет едини- цу в поле CPU активного процесса. 2. каждую секунду для всех готовых процессов планировщик выпол- няет следующие вычисления: CPU=CPU/2 PRTY=CPU/2 + PUSER + [nice] Где PUSER – граничный приоритет, чем больше PRTY, тем ниже приори- тет процесса. Рис. 2.22. По этому же правилу происходи пересчет приоритета процесса, когда он переходит из системного в пользовательский. Обычно планировщик имеет мас- ку, в которой для каждого уровня приоритета отводиться по 1 биту. Он уста- навливается в 1, если в очереди готовых процессов есть процесс с данным уровнем приоритета и в 0, если таковых нет. Рассмотрим следующий пример: пусть имеется 3 готовых процесса A,B,C. Они запущены в указанном порядке, граничный приоритет PUSER=60, количество тиков таймера в секунду – 60. Планировщик выполняет планирова- ние по формулам: CPU=CPU/2; PRTY=CPU/2+PUSER. На рис. 2.23. приведены значения параметров CPU и PRTY для этих процессов за первые 5 секунд рабо- ты. Свопинг Ожидание дискового в/в Ожидание буферов Ожидание inode … Ожидание ввода TTY Ожидание вывода TTY Ожидание SIGCLD Пользов. уровень 0 Пользов. уровень 1 … Пользов. уровень 4 PRTY 0 1 m системные граничный приоритет PUSER пользовательские не прерывае- мые сигналами прерываемые сигналами
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy