з

К предыдущей странице

л

К предыдущей главе

о

К следующей главе

и

К следующей странице


3.4.3. Активизация процесса

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

Алгоритм "Активизировать процесс"

  1. Процедура "Активизировать" помещает БУП в очередь-на-выполнение.
  2. Проверяет, совпадают ли адрес БУП с адресом текущего выполняющегося процесса.
  3. Если не совпадают, то процесс помещается в очередь-на-выполнение.
  4. Если совпадает, то БУП уже находится в конце очереди-на-выполнение.

Общий вид алгоритма "Активизировать процесс", используемого при диспетчеризации.

  • НАЧАЛО
  • procedure DISPATCH
  • обновить БУП активного процесса
  • выбрать следующий "Готовый" процесс для передачи ему управления
  • IF1< "Готовый" процесс найден>
               
  • пометить его как "активный"
  • выделить квант времени, установить командой SETTAME - интервальный таймер
  • передать управление выбранному процессу
  • FI1
  • перевести CPU с состояние простоя (режим "холостого хода")

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

После сохранения состояния предыдущего активного процесса диспетчер выбирает для активизации новый процесс.

Чтобы задать квант времени, выделяемый процессу, диспетчер устанавливает интервальный таймер. Затем диспетчер использует команду LPS (Load Process Status) (загрузка состояния процесса) для загрузки информации о состоянии данного процесса и осуществляет передачу управления.

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

В ОС UNIX диспетчеризация организована по принципу динамического приоритета.


з

К предыдущей странице

л

К предыдущей главе

о

К следующей главе

и

К следующей странице