Четверг, 19.09.2024
Kober
Меню сайта
Поиск
Категории раздела
Шпоры Орг ЭВМ [42]
Шпоры ОС [22]
Главная » Статьи » Шпоры ОС

10 Планирование и диспетчеризация процессов. Функции планировщика - диспетчера.

10 Планирование и диспетчеризация процессов. Функции планировщика - диспетчера. Процедуры "Приостановить процесс", "Возобновить процесс".

Функции планировщика-диспетчера

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

Приостановка процесса

В ходе своего выполнения системный процесс может установить, что требуемый ресурс занят или в данный момент процессу не требуется производить каких-либо действий. Тогда процесс может "сознательно" приостановить свое выполнение до момента активизации его другим процессом. При этой процедуре адрес блока управления процессом (БУП) записывается в стек, затем для активизации другого процесса вызывается системный планировщик. Результатом этого действия является то, что "приостановленный" процесс не помещается в очередь-на-выполнение, т.е. не активизируется.

Схемы очередей блоков управления процессами до а. и после б. "приостановки":


Алгоритм "Приостановить процесс":                          Алгоритм "Возобновитьь процесс":

НАЧАЛО

Анализ прерывания

procedure "ПРИОСТ"

IF1<приостанавлемй процесс не является системным и находится в ОП>

блокировать процесс по условию выгрузки из ОП

IF2<есть свободный блок запроса в очереди приостановок>

создать блок запроса в очереди приостановок

разблокировать процесс "откачки"

формровать код возврата по удачному завершению

передать управление диспетчеру

FI2

формирование кода возврата по перегрузке системы

передать управление диспетчеру

FI1

формировать код возврата по невозможности приостановки

передать управление диспетчеру

КОНЕЦ

НАЧАЛО

Анализ прерывания

procedure "ВОЗОБНОВИТЬ"

IF1<процесс не системный и был выгружен из ОП>

IF2<есть свободные блоки запросов в очереди возобновлений>

поместить блок запроса в очередь возобновлений

разблокировать процесс подкачек

блокировать процесс по условию загрузки в ОП

формировать код возврата по удачному завершению

переход к диспетчеру

FI2

формирование кода возврата по перегрузке системы

переход к диспетчеру

FI1

формировать код возврата по невозможности приостановки

переход к диспетчеру

КОНЕЦ

 

Категория: Шпоры ОС | Добавил: Kober (13.06.2013)
Просмотров: 905
Архив записей
Copyright MyCorp © 2024
Бесплатный хостинг uCoz