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

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

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

11

Вытеснение процесса

Происходит одно из следующих событий:

истекает квант времени работающего процесса;

активизируется (т.е. либо запускается, либо пробуждается) процесс с более высоким приоритетом (если в системе используются абсолютные приоритеты);

текущий процесс сам вызывает функцию, разрешающую его вытеснение (Yield).

Вызывается системная подпрограмма «Планировщик процессов» (Scheduler).

Планировщик выбирает для выполнения один из процессов, находящихся в состоянии «Готовность», либо повторно выбирает текущий процесс.

Если выбран другой процесс, то выполняется переключение процессов, то есть:

планировщик переводит текущий (работающий) процесс в состояние «Готовность»;

планировщик переводит выбранный процесс в состояние «Работа».

Операционные системы. Управление процессами - 1

12

Вытесняющая и невытесняющая диспетчеризация

Невытесняющая диспетчеризация: процесс может выйти из состояния «Работа» только в трех случаях:

при вызове блокирующей системной функции (процесс переходит в состояние «Сон»);

при вызове системной функции Yield (процесс вытесняется в состояние «Готовность»);

при завершении процесса.

Вытесняющая диспетчеризация: добавляются еще два случая вытеснения:

по истечению кванта времени;

по активизации более приоритетного процесса.

Операционные системы. Управление процессами - 1

13

Особенности невытесняющей диспетчеризации

Основной недостаток: для эффективного распараллеливания процессов необходимо, чтобы программа каждого процесса достаточно часто вызывала блокирующие функции или Yield. То есть, работа системы зависит от качества прикладных программ.

Достоинство: более простая и экономная по ресурсам реализация, чем для вытесняющей диспетчеризации.

Области применения:

простые системы для слабых процессоров;

встроенные контроллеры, где набор запускаемых программ известен заранее и разрабатывается вместе с системой.

Операционные системы. Управление процессами - 1

14

Понятие реентерабельной функции

Функция называется реентерабельной (повторно-входимой), если возможен корректный вызов этой функции до того, как завершилось выполнение первого вызова.

Основные причины нереентерабельности:

для хранения параметров и локальных переменных функции при разных вызовах используются одни и те же ячейки памяти;

функция обращается к внешнему устройству и не завершается, пока не будет выполнена операция.

Операционные системы. Управление процессами - 1

15

Реентерабельность системных функций

При вытесняющей диспетчеризации: необходимо, чтобы все системные функции были реентерабельны, потому что переключение процессов может произойти, когда выполняется функция.

При невытесняющей диспетчеризации: достаточно, чтобы реентерабельны были блокирующие функции и функция Yield, т.к. переключение возможно только при их вызове.

Операционные системы. Управление процессами - 1

16

Дескриптор процесса

Дескриптор процесса – набор данных о процессе, которые могут понадобиться системе при различных состояниях процесса:

идентификатор процесса;

состояние процесса;

владелец процесса;

израсходованное общее и процессорное время;

приоритет;

ссылка на контекст процесса;

и др.

Массив дескрипторов всех имеющихся процессов образует таблицу процессов.

Операционные системы. Управление процессами - 1

17

Контекст процесса

Контекст процесса – набор данных, необходимых для возобновления работы процесса:

значения всех регистров (включая счетчик команд);

области памяти процесса (код программы, переменные, стеки);

список открытых файлов и их состояние;

значения системных переменных (текущий каталог, код последней ошибки и т.п.);

и др.

Смена текущего процесса есть переключение контекста:

сохраняется контекст прежнего текущего процесса;

загружается ранее сохраненный контекст нового текущего процесса.

Операционные системы. Управление процессами - 1

18

Простая круговая диспетчеризация

Все активные (не заблокированные) процессы поочередно получают квант процессорного времени для работы.

Операционные системы. Управление процессами - 1

19

Фоново-оперативная диспетчеризация

Процесс переднего плана:

как только активизируется, сразу получает процессор;

как правило, в качестве переднего плана выбирается процесс, требующий очень мало процессорного времени (например, печать).

Фоновый процесс:

вытесняется при активизации процесса переднего плана;

работает только тогда, когда процесс переднего плана спит.

Операционные системы. Управление процессами - 1

20

Приоритетная диспетчеризация

Каждому процессу назначается уровень приоритета.

Процессы с низким приоритетом могут работать только тогда, когда все процессы с более высоким приоритетом спят.

Операционные системы. Управление процессами - 1