
ОС / 4. ОС - Управление процессами - 1
.pdf
21
Явление «инверсии приоритетов»
Высокоприоритетный процесс A ждет некоторого события (сообщения, сигнала и т.п.), которое должен выдать низкоприоритетный процесс C.
Но процесс C постоянно вытеснен процессом среднего приоритета B.
В результате постоянно работает B,хотя его приоритет ниже, чем у A.
Операционные системы. Управление процессами - 1

22
Динамический приоритет процесса
P = (базовый) + (относительный) + (бонус)
Базовый уровень – стандартный для всех процессов либо для данного класса процессов.
Относительный приоритет – задает отличие данного процесса от базового (в большую или в меньшую сторону). Устанавливается при запуске, может быть изменен в ходе работы.
Приоритетный бонус – вычисляется системой. Зависит от степени предыдущего использования процессора, от времени ожидания, от наличия диалога с пользователем.
Цели введения динамических приоритетов:
стремление избежать полного простоя низкоприоритетных процессов (и в частности, избежать инверсии приоритетов);
повышение средней производительности системы;
сокращение времени реакции на действия пользователя.
Не могут изменяться динамически приоритеты процессов реального времени.
Операционные системы. Управление процессами - 1

23
Абсолютные и относительные приоритеты
В системе с абсолютными приоритетами текущий процесс прерывается, как только активизируется процесс с более высоким приоритетом.
В системе с относительными приоритетами текущий процесс дорабатывает до конца своего кванта времени, после чего выполняется перепланировка.
Операционные системы. Управление процессами - 1

24
Размеры квантов времени
Для систем серверного типа размер кванта составляет около 100 – 300 мс.
Большой размер кванта позволяет увеличить производительность системы за счет уменьшения потерь времени на переключение процессов.
Для рабочих станций (где имеется интерактивное взаимодействие с пользователем) типичный размер кванта 20 – 60 мс.
Маленькие кванты позволяют уменьшить время реакции системы на действия пользователя.
Операционные системы. Управление процессами - 1

25
Другие дисциплины планирования
Преимущество – коротким задачам: в первую очередь выбираются те процессы, которые часто не использовали выделенный квант до конца.
Гарантированное планирование: выбирается тот процесс, который за время существования получил меньшую долю процессорного времени, чем другие.
Лотерейное планирование: процесс выбирается случайным образом, но у более важных процессов вероятность выбора больше.
Справедливое планирование: учитывается, что процессы каждого пользователя должны получать равные доли процессорного времени.
Операционные системы. Управление процессами - 1

26
Процессы и нити
Традиционное понятие «процесс» во многих современных системах распадается на два.
Собственно процесс:
создается при запуске исполняемого файла;
владеет выделенной ему памятью и ресурсами (открытыми файлами и т.п.).
Нить (thread) или "легковесный процесс":
описывает последовательность выполнения команд;
первая нить запускается при создании процесса;
дополнительные нити внутри процесса могут создаваться для описания параллельных ветвей работы;
все нити пользуются памятью и ресурсами своего процесса;
нити всех процессов (а не сами процессы) участвуют в конкуренции за процессорное время, переходят из состояния в состояние, могут блокироваться, вытесняться, обладать приоритетом и т.п.;
каждая нить имеет собственный стек (это необходимо для корректного переключения нитей).
Соответственно, большая часть сказанного ранее о диспетчеризации относится к нитям, а не к процессам.
Операционные системы. Управление процессами - 1

27
Изоляция и взаимодействие процессов
Изоляция процессов в многозадачной системе: возможность и необходимость для каждого процесса работать так, как если бы он был единственным на данной машине.
Цели изоляции:
Исключается несанкционированное вмешательство одного процесса в работу другого;
облегчается проектирование и отладка процессов.
Взаимодействие процессов: возможно только с помощью строго определенных средств операционной системы, гарантирующих надежность и безопасность работы. Основные виды взаимодействия:
синхронизация процессов в заданных точках;
обмен данными между процессами.
Операционные системы. Управление процессами - 1

28
Проблема взаимного исключения процессов
Если два процесса одновременно работают с общим для них ресурсом S, и хотя бы один из них пытается при этом изменить S, то результат работы может быть некорректным.
Соответствующая часть программы процесса, выполняющая работу с общим ресурсом, называется критической секцией процесса по отношению к ресурсу S.
Операционные системы. Управление процессами - 1

29
Пример некорректного выполнения совместной работы с ресурсом
Два процесса изменяют общую переменную N=10, хранящуюся в файле.
Процесс A:
. . . . .
R := N;
R := R + 1; N := R;
. . . . .
Процесс B:
. . . . .
R := N;
R := R - 1; N := R;
. . . . .
Возможные варианты выполнения при возможности переключения процессов в любой момент:
R:=N; R:=R+1; N:=R; R:=N; R:=R-1; N:=R; |
N=10 |
R:=N; R:=N; R:=R-1; N:=R; R:=R+1; N:=R; |
N=11 |
R:=N; R:=N; R:=R+1; N:=R; R:=R-1; N:=R; |
N=9 |
Операционные системы. Управление процессами - 1

30
Определение критической секции
Критической секцией (КС) процесса по отношению к некоторому ресурсу называется такой участок программы процесса, при прохождении которого необходимо, чтобы никакой другой процесс не находился в своей критической секции по отношению к тому же ресурсу.
Процесс A:
. . . . .
R := N;
R := R + 1; N := R;
. . . . .
КС процесса B по отношению к N
КС процесса A по отношению к N
Процесс B:
. . . . .
R := N;
R := R - 1; N := R;
. . . . .
Операционные системы. Управление процессами - 1