Двухуровневое планирование
Двухуровневое планирование — это термин в области информатики, описывающий метод более эффективного планирования процессов , включающий замену процессов .
Рассмотрим такую проблему: система содержит 50 запущенных процессов с одинаковым приоритетом. системы Однако память может одновременно хранить только 10 процессов. всегда будет 40 выгруженных процессов Таким образом, в виртуальной памяти на жестком диске . Время, необходимое для замены и замены в процессе, составляет 50 мс соответственно.
При простом циклическом планировании каждый раз, когда происходит переключение контекста , необходимо заменять процесс (поскольку заменяются только 10 процессов, которые использовались реже всего). Случайный выбор процессов уменьшит вероятность до 80% (40/50). Если это произойдет, то, очевидно, процесс также необходимо заменить. Замена и замена требует больших затрат, и планировщик потратит большую часть времени на ненужные замены.
Именно здесь на сцену выходит двухуровневое планирование. Он использует два разных планировщика, один планировщик нижнего уровня , который может выбирать для запуска только те процессы, которые находятся в памяти. Этот планировщик может быть планировщиком циклического перебора. Другой планировщик — это планировщик более высокого уровня , единственная задача которого — загружать и выгружать процессы из памяти. Он выполняет планирование гораздо реже, чем планировщик нижнего уровня, поскольку замена занимает очень много времени.
Таким образом, планировщик более высокого уровня выбирает среди тех процессов в памяти, которые выполнялись в течение длительного времени, и вытесняет их. Они заменяются процессами на диске, которые давно не запускались. То, как именно он выбирает процессы, зависит от реализации планировщика более высокого уровня. Необходимо найти компромисс, включающий следующие переменные:
- Время отклика : процесс не следует отключать слишком долго. Тогда какому-то другому процессу (или пользователю) придется ждать неоправданно долго. Если эта переменная не учитывается, может возникнуть нехватка ресурсов , и процесс может вообще не завершиться.
- Размер процесса. Более крупные процессы должны подвергаться меньшему количеству свопов, чем более мелкие, поскольку для их замены требуется больше времени. Поскольку они больше, меньше процессов могут совместно использовать память с процессом.
- Приоритет: чем выше приоритет процесса, тем дольше он должен оставаться в памяти, чтобы завершиться быстрее.
Ссылки
[ редактировать ]- Таненбаум , Альберт Вудхалл , Операционные системы: проектирование и реализация , стр.92