Приоритеты и очереди процессов
В основе многих алгоритмов планирования лежит концепция приоритетного обслуживания.
Такое обслуживание предполагает наличие у процессов некоторой изначально известной характеристики – приоритета, на основании которой определяется порядок выполнения процессов.
Существует две разновидности приоритетного планирования:
· обслуживание с относительными приоритетами;
· обслуживание с абсолютными приоритетами.
В обоих случаях выбор процесса из очереди готовых процессов осуществляется одинаково − выбирается процесс, имеющий наивысший приоритет.
Но задача определения момента переключения активного процесса в заблокированное состояние (готов к исполнению, ожидание) решается по-разному.
В ОС с относительным приоритетом активный процесс выполняется до тех пор, пока он сам не покинет ресурс, перейдя в состояние ожидания (или произойдет ошибка или процесс завершит свою работу).
В системах с абсолютными приоритетами выполнение активного процесса прерывается по указанным в предыдущем случае причинам, кроме того, если в очереди появился процесс с более высоким приоритетом, то он переходит в состояние исполнения, вытесняя текущий поток в состояние готовности.
Приоритет – это некоторое число, характеризующее степень привилегированности процесса. Чем выше приоритет, тем меньше времени будет проводить поток в очередях.
Приоритет процесса назначается ОС при его создании. Потоки, входящие в состав процесса, также обладают приоритетами.
В большинстве ОС приоритет потоков связан с приоритетом процесса, в рамках которого он выполняется.
Во многих ОС предусматривается возможность изменения приоритетов в течение жизни процесса. ОС может изменять приоритеты процессов в зависимости от обстановки в системе или в зависимости от поведения процесса.
Такие приоритеты получили название динамических.
Существуют ОС, в которых приоритеты процессов не изменяются при функционировании ОС. Такие приоритеты называют фиксированными.
Для ВС, в которых процессы легко могут быть рассортированы по группам с одинаковыми значениями приоритетов, управление процессами реализуется с использованием многоуровневых очередей.
Для каждой группы процессов создается своя очередь из процессов, находящихся в состоянии «готовность». Каждой очереди присваивается фиксированный приоритет. В данном случае устанавливается следующий порядок исполнения процессов. Ни один из процессов, находящийся в текущей очереди, не может быть выбран для исполнения, пока в очереди с более высоким приоритетом есть хотя бы один готовый для исполнения процесс. Внутри каждой очереди могут применяться различные способы планирования процессов. Так, для фоновых задач, не требующих взаимодействия с пользователем, обычно используются невытесняющие алгоритмы планирования, а для интерактивных процессов – вытесняющие алгоритмы планирования.
Дальнейшим развитием алгоритмов планирования процессов является использование многоуровневых очередей с обратной связью. В этом случае процесс не закреплен за определенной очередью, а может мигрировать из очереди в очередь, в зависимости от своего поведения.
Так, например, вновь появившийся процесс поступает в очередь с наивысшим приоритетом и при выборе на исполнение получает в свое распоряжение квант времени процессора ΔТ, если продолжительность его работы меньше этого кванта, то процесс остается в этой очереди, а если больше, то он переводится в очередь со следующим значением приоритета, где для выполнения процессов отводится квант времени в два раза больше (2ΔТ) и так далее. Чем больше времени требует процесс для своего исполнения, тем в менее приоритетную очередь он попадает. Возможна миграция процессов в обратном направлении.
Многоуровневые очереди с обратной связью позволяют реализовать наиболее гибкий механизм управления исполнением процессов.
Вопросы для самопроверки по теме 3.3
1. Как определяется приоритет процесса?
2. Дайте определение динамического приоритета процесса.
3. Чем отличается многоуровневая очередь с обратной связью от многоуровневой очереди без обратной связи?
4. В чем отличие поведения процесса с относительным приоритетом от процесса с абсолютным приоритетом?
5. Какая из очередей обладает более высоким приоритетом − очередь, в которой для выполнения процесса предоставляется 10 условных единиц времени процессора, или очередь, где эта величина равна 30 условным единицам?