Многоуровневые очереди
Многоуровневые очереди (multilevel Queue)
Приоритетное планирование
Алгоритмы SJF и гарантированного планирования – это частые случаи приоритетного планирования. При таком планирования пользователю присваивается приоритет, опираясь на который планировщик предоставляет процессор процессу с наивысшим приоритетом (0). Если приоритет одинаков, то алгоритм – FCFS.
Принципы назначения приоритетов опираются и на внутренние критерии ВС и на внешние. Внутренние критерии: ограничения по времени использования процессора, требования к памяти, число устройств ввода/вывода и т.д. Внешние критерии: важность процесса. Приоритетное планирование м/б и вытесняющим и невытесняющим.
Чаще всего наиболее просто реализуются алгоритмы со статическими приоритетами. Наиболее гибкие алгоритмы с динамическими приоритетами.
Главная проблема приоритетного планирования в том, что при некорректной реализации низкоприоритетные процессы могут вообще не запускаться. Решение этой проблемы возможно следующим образом – время от времени увеличивать приоритет процессов, находящихся в состоянии «готовность», а когда процесс побывал в состоянии «исполнение» ему восстанавливается первоначальный приоритет.
Если процессы легко реализовать по группам, то для каждой группы готовых процессов организуется своя очередь. У каждой очереди свой приоритет и внутри очереди свой приоритет. Приоритет очереди системных процессов самый высокий.
Данный подход означает, что самый низкий процесс не поставится в очередь пока не выполнятся системные процессы.
0,RR |
Развитие алгоритма многоуровневых очередей является добавление к нему механизма обратной связи, пусть 4 очереди:
0 очередь, приоритет 0. RR – квант 8 |
1 очередь, 1 приоритет (ниже) RR- rdfyn 16 |
2 очередь, RR – квант 32 |
3 очередь, приоритет 3, FCFS |
Планирование между очередями осуществляется на основе вытесняющего алгоритма планирования, процессы в очереди не могут выполнятся до тех пор, пока в выше лежащих очередях есть процесс с большим приоритетом.
Только что родившийся процесс поступает в очередь 0. если его величина (время использования процесса) < 8, то он перестает выполнятся. если CPU > 16, то он переходит во 2.
Миграция процессов может осуществляться и в обратном направлении. Пр. в случае ожидания ввода с клавиатуры.
Многоуровневые очереди с обратной связью – наиболее универсальное решение.
Какие параметры необходимо учитывать при реализации планирования?
1. нужно знать количество очередей для процессов, находящихся в сост. готовности
2. задать алгоритм планирования процессов в общем
3. задать алгоритмы планирования внутри очереди
4. правило помещение вновь рожденных процессов в очереди
5. правило перевода процессов из очереди в очередь.
4. Кооперация процессов и основные аспекты в её логической реализации.
Необходимо чтобы процессы взаимодействовали друг с другом.