Операционные системы. Макушкина Л.А - 15 стр.

UptoLike

15
Таблица 12
Время
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
p
0
Г Г Г Г Г Г Г Г Г Г Г Г Г Г И И И И И И
p
1
Г Г Г И И
p
2
Г И И И И И И И
p
3
И И И И И
Иным будет предоставление процессора процессам в случае вытесняющего
приоритетного планирования (см. таблица 13). Первым, как и в предыдущем
случае, начнет исполняться процесс p
3
, а по его окончании процесс p
1
. Однако в
момент времени t = 6 он будет вытеснен процессом p
2
и продолжит свое
выполнение только в момент времени t = 13. Последним, как и раньше, будет
исполняться процесс p
0
.
Таблица 13
Время
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
p
0
Г Г Г Г Г Г Г Г Г Г Г Г Г Г И И И И И И
p
1
Г Г Г И Г Г Г Г Г Г Г И
p
2
И И И И И И И
p
3
И И И И И
В рассмотренном выше примере приоритеты процессов с течением времени не
изменялись. Такие приоритеты принято называть статическими. Механизмы
статической приоритетности легко реализовать, и они сопряжены с относительно
небольшими издержками на выбор наиболее приоритетного процесса. Однако
статические приоритеты не реагируют на изменения ситуации в вычислительной
системе, которые могут сделать желательной корректировку порядка исполнения
процессов. Более гибкими являются динамические приоритеты процессов,
изменяющие свои значения по ходу исполнения процессов. Начальное значение
динамического приоритета, присвоенное процессу, действует в течение лишь
короткого периода времени, после чего ему назначается новое, более подходящее
значение. Изменение динамического приоритета процесса является единственной
операцией над процессами, которую мы до сих пор не рассмотрели. Как правило,
изменение приоритета процессов проводится согласованно с совершением каких-
либо других операций: при рождении нового процесса, при разблокировке или
блокировании процесса, по истечении определенного кванта времени или по
завершении процесса. Примерами алгоритмов с динамическими приоритетами
являются алгоритм SJF и алгоритм гарантированного планирования. Схемы с
динамической приоритетностью гораздо сложнее в реализации и связаны с
большими издержками по сравнению со статическими схемами. Однако их
использование предполагает, что эти издержки оправдываются улучшением
работы системы.
Главная проблема приоритетного планирования заключается в том, что при
ненадлежащем выборе механизма назначения и изменения приоритетов
низкоприоритетные процессы могут не запускаться неопределенно долгое время.
Обычно случается одно из двух. Или они все же дожидаются своей очереди на
исполнение (в девять часов утра в воскресенье, когда все приличные
программисты ложатся спать). Или вычислительную систему приходится
                                                     Таблица 12
  Вре мя  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
    p0   Г Г Г Г Г Г Г Г Г Г Г Г Г Г И И И И И И
    p1       Г Г Г И И
    p2               Г И И И И И И И
    p3   И И И И И
   Иным будет предоставление процессора процессам в случае вытесняющего
приоритетного планирования (см. таблица 13). Первым, как и в предыдущем
случае, начнет исполняться процесс p3, а по его окончании – процесс p1. Однако в
момент времени t = 6 он будет вытеснен процессом p2 и продолжит свое
выполнение только в момент времени t = 13. Последним, как и раньше, будет
исполняться процесс p0.
                                                     Таблица 13
 Вре мя  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
   p0   Г Г Г Г Г Г Г Г Г Г Г Г Г Г И И И И И И
   p1       Г Г Г И Г Г Г Г Г Г Г И
   p2               И И И И И И И
   p3   И И И И И
   В рассмотренном выше примере приоритеты процессов с течением времени не
изменялись. Такие приоритеты принято называть статическими. Механизмы
статической приоритетности легко реализовать, и они сопряжены с относительно
небольшими издержками на выбор наиболее приоритетного процесса. Однако
статические приоритеты не реагируют на изменения ситуации в вычислительной
системе, которые могут сделать желательной корректировку порядка исполнения
процессов. Более гибкими являются динамические приоритеты процессов,
изменяющие свои значения по ходу исполнения процессов. Начальное значение
динамического приоритета, присвоенное процессу, действует в течение лишь
короткого периода времени, после чего ему назначается новое, более подходящее
значение. Изменение динамического приоритета процесса является единственной
операцией над процессами, которую мы до сих пор не рассмотрели. Как правило,
изменение приоритета процессов проводится согласованно с совершением каких-
либо других операций: при рождении нового процесса, при разблокировке или
блокировании процесса, по истечении определенного кванта времени или по
завершении процесса. Примерами алгоритмов с динамическими приоритетами
являются алгоритм SJF и алгоритм гарантированного планирования. Схемы с
динамической приоритетностью гораздо сложнее в реализации и связаны с
большими издержками по сравнению со статическими схемами. Однако их
использование предполагает, что эти издержки оправдываются улучшением
работы системы.
   Главная проблема приоритетного планирования заключается в том, что при
ненадлежащем выборе механизма назначения и изменения приоритетов
низкоприоритетные процессы могут не запускаться неопределенно долгое время.
Обычно случается одно из двух. Или они все же дожидаются своей очереди на
исполнение (в девять часов утра в воскресенье, когда все приличные
программисты ложатся спать). Или вычислительную систему приходится
                                      15