Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОС / 4. ОС - Управление процессами - 1

.pdf
Скачиваний:
55
Добавлен:
01.06.2015
Размер:
1.1 Mб
Скачать

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