| ||||||
3.4.3. Активизация процессаПроцесс, вызывающий отсроченный процесс, активизирует его процедурой "Активизировать" с указание адреса блока управления процессом. Алгоритм "Активизировать процесс"
| ||||||
Общий вид алгоритма "Активизировать процесс", используемого при диспетчеризации.
| ||||||
При передаче управления от одного процесса к другому прежде всего надо сохранить информацию о состоянии активного процесса. Если процесс был заблокирован по причине кt, то информация о состоянии процесса может быть найдена в рабочей области прерываний по таймеру. После сохранения состояния предыдущего активного процесса диспетчер выбирает для активизации новый процесс. Чтобы задать квант времени, выделяемый процессу, диспетчер устанавливает интервальный таймер. Затем диспетчер использует команду LPS (Load Process Status) (загрузка состояния процесса) для загрузки информации о состоянии данного процесса и осуществляет передачу управления. Если процесса в состоянии готовности нет, то диспетчер переводит CPU в состояние простоя. Выбор следующего процесса для диспетчеризации осуществляется несколькими способами (например, используя дисциплину RR - "круговой алгоритм"). Диспетчер циклически просматривает все БУП-ы, выбирает следующий процесс из тех, что находятся в готовности. Каждому активизированному процессу предоставляет одинаковый квант времени. В ОС UNIX диспетчеризация организована по принципу динамического приоритета. | ||||||
|