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

Для текущего момента времени каждый из процессов может:

  • • быть выполняемым процессом, для которого регистр 1, указатель команды, содержит адрес следующей команды, регистр W, указатель рабочей области данных, – его дескриптор;
  • • быть активным, т.е. быть готовым к выполнению и находиться в очереди соответствующего приоритета. Для организации таких очередей в диспетчере имеются пары регистров FptrO, BptrO, Fptrl, Bptrl, указывающие на начало и конец очереди высоко- и низкоприоритетных процессов соответственно. В качестве элементов очередей используются рабочие области процессов, которые помимо данных процесса содержат управляющую информацию, необходимую для сохранения и восстановления состояния процессов на этапе диспетчеризации;
  • • находиться в состоянии ожидания сигнала таймера, соответствующего его приоритету. Для этого организуется очередь процессов, в которой процессы отсортированы по ожидаемым моментам времени. Адрес первого процесса в очереди соответствующего приоритета содержится в служебных словах транспьютера TptrLoc0, TptrLoc 1, находящихся в младших адресах памяти. При поступлении сигнала от таймера диспетчеру передается дескриптор, и соответствующий процесс переводится в конец очереди активных процессов;
  • • находиться в состоянии ожидания ввода-вывода.

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

Выполнение высокоприоритетного процесса не прерывается до полного завершения или до моментов ожидания ввода-вывода, сигнала таймера или сигнала внешнего события, выдаваемого блоком событий Event. Если при выполнении процесса с низким приоритетом становится активным высокоприоритетный процесс, то:

  • низкоприоритетный процесс прерывается и его состояние сохраняется в области зарезервированных адресов памяти транспьютера;
  • • инициируется выполнение высокоприоритетного процесса и после его выполнения возобновляется прерванный низкоприоритетный процесс.
 
< Пред   СОДЕРЖАНИЕ     След >