Введение в архитектуру компьютеров

         

Многоуровневое планирование


В большинстве современных систем процессоры взаимодействуют посредством прерываний. В ЦП прерывание происходит, если истекает отведенный квант времени, или канал заканчивает работу, или выполняемая программа пытается осуществить ввод-вывод. Затем управление передается СУПЕРВИЗОРу, который после осуществления некоторых действий (разблокирование или порождение процесса, запуск канала и т. д.) передает процессор новому процессу из очереди. Следует отметить, что эту работу надо проделывать каждый раз при появлении прерываний, что требует больших затрат времени. Поэтому предлагается метод многоуровневого планирования, который сохраняет всю информацию о процессах, выполняет перевычисления приоритета и т. д., но делает это не очень часто.

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

Диспетчер вызывается после завершения обработки прерывания, он выбирает следующий готовый процесс для выполнения. Так как он вызывается

часто, то должен срабатывать очень быстро. Например, взять первый процесс из очереди и запустить, т. е. предоставить ему процессор.

Краткосрочный планировщик вставляет процесс в очередь. Здесь возможен анализ состояния процесса. Однако, так как процессы ставятся в очередь довольно часто, краткосрочный планировщик не должен вносить сложных изменений в состояние и приоритет процесса, оставляя подобные действия для долгосрочного планировщика. Долгосрочный планировщик может осуществлять глубокий анализ состояния процессов.

Если наперед известна частота появления вызовов на каждом уровне, то, пользуясь многоуровневым планированием, мы можем ввести ограничения на допустимый объем вычислений на каждом уровне, что во многом определяет алгоритмы планирования на каждом уровне.

Рассмотренные нами алгоритмы планирования представляют собой ряд приемов распределения процессорного времени между процессами. Однако многие из них могут быть с успехом применены и к распределению других ресурсов в операционных системах.

Какими бы ни были методы планирования, должны существовать способы доказательства эффективности этих методов или установления источников потери эффективности.



Содержание раздела