Диспетчеризация процессов

Фактический и виртуальный процессор.

Управление процессором (ресурсами)

Процесс – это объект, которому выделен процессор, - это задача.

Фактический процессор (микропроцессор) – реально существующий процессор.

Виртуальный процессор – это процессор связанный с выполнением некоторого процесса.

 

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

Распределение процессора снижает скорость выполнения работы. Скорость каждого виртуального процессора меньше скорости реального процессора.

 

Состояния процессов.

1 состояние: исполнение, в нем находится только один процесс.

2 состояние: состояние готовности. Процессу выделены все ресурсы кроме фактического процессора.

3 состояние: заблокированное, процесс не готов к выполнению, он ждет какого-либо события.

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

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

 

Причины выхода процесса из состояния исполнения:

1) процесс завершился, он покидает виртуальный процессор.

2) процесс блокирует сам себя. Причина: запрос на ввод или вывод. Процесс перейдет из заблокированного состояния в состояние ожидания после завершения запрошенных действий.

3) процесс снимается с процессора управляющей программой и возвращается в состояние готовности.

 

Распределение и перераспределение фактического процессора и выделение виртуальных процессоров – это функция управления процессором.

Выбор работ – планирование, выполняется спец программой, которая называется планировщик (программа инициирования, инициатор). Он создает процесс для выбранной работы, переводит его в состояние готовности, выделяет ОП, внешнюю память, действия по завершению работы. Выделение фактического процессора готовому процессу – называется диспетчеризацией, выполняется спец программой – диспетчер (монитор). Диспетчеризация выполняется многократно. Планирование осуществляется один раз для каждой задачи, диспетчеризация – многократно.

 

Для исполнения диспетчер выбирает процесс, находящийся в состоянии готовности и имеющий наивысший приоритет.

Для определения приоритета используют следующие факторы:

1) время создания процесса

2) время появления работы, вызвавшей образование процесса

3) заказное время обслуживания

4) использованное время обслуживания

5) время, в течении которого процесс не обслуживался

6) объем и вид других ресурсов, необходимых процессу.

Общие стратегии диспетчеризации.

 

диспетчеризация с одной очередью:

 

предоставление всем пользователям одинаковых услуг. Процессы обслуживаются в порядке их появления, позволяя каждому процессу обслуживаться до конца (FIF0). Если позволить процессу переходить в заблокированное состояние, то стратегия будут называться FCFS (первый пришел, первый обслужен).

1.процесс обслуживается в порядке появления и каждому процессу позволено выполняться до конца (первый пришел, первый ушел - FIFO). Здесь процессы не блокируются.

2.если допускается блокирование процессов, то используется стратегия FCFS (первый пришел, первый обслужен). Очередь готовых к выполнению процессов необходимо поддерживать в порядке возрастания времени процесса. Перераспределение процессора не производится.

НЕДОСТАТОК: короткие процессы ждут столько же, сколько и длинные.

3.стратегия на основе минимизации общего среднего времени ожидания, приоритет основан на времени выполнения (стратегия – следующий с кратчайшим ожиданием заданием SJN). СтратегияНЕ перераспределяет процессор, она изменяет общее среднее время ожидания: для коротких процессов оно становится меньше, увеличивая время ожидания длинных процессов.

4.следующая с минимальным остановившимся временем SRT. Перераспределение процессора осуществляется с использованием интервалов времени, которые выделялись процессору. Оставшееся время – разность между запрошенным и полученным временем. В этой стратегии достигается минимально возможное общее время ожидания. НЕДОСТАТКИ 1-4:задержка выполнения длинных процессов (некоторые процессы могут теряться навсегда). Требования: гарантия завершения всех процессов.

5.наиболее популярна циклическая стратегия перераспределения процессора – RR. Каждому процессу по очереди выделяется фиксированный квант времени,вконце которого, если процесс не закончился или не заблокировался, он снимается с процессора, считается только что поступившим в систему, и ставится в конец очереди.

6.стратегия гарантирует выделение процессора длинным процессам путем увеличения приоритета с течением времени. Эта стратегия учитывает старение.

(+) – низкая стоимость реализации

(-) – короткие процессы ждут столько же сколько и длинные, - увеличивается среднее время ожидания.

Диспетчеризация с несколькими очередями

Используется информация пользователя и информация, получаемая в процессе выполнения. Существуют процессы интерактивные, пакетные, реального времени.

Для каждого вида процессов создается своя очередь. Существует связь очереди и процесса, она м.б. постоянной или меняться во времени.

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

Интерактивный д.б обслужен за приемлемый интервал времени.

Пакетный процесс не имеет жестких ограничений во времени.

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