Разделы:


Best links:

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

ImageImage

Рис. 7.5. Структура очереди процессов

Когда ЦП переключается с одного выполняющегося процесса на другой, монитор должен:

1. Запомнить машинное состояние выполняемого процесса в управляющем блоке процесса.

2. Модифицировать остальную часть блока управления процесса.

3. Взять ID следующего выполняемого процесса из указателя первого элемента.

4. Удалить процесс, только что переведенный в состояние выполнения, посредством установки указателя первого элемента равным fqp удаляемого элемента. Если текущая выполняемая программа должна быть в очереди процессов, находящихся в состоянии готовности, ее необходимо поместить в низ очереди и модифицировать указатель последнего элемента.

5. Изменить состояние процесса, только что выбранного из списка готовности, на состояние выполнения и восстановить машинное состояние данного процесса.

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

1. Сохранить ID этого процесса в ftp текущего последнего элемента (элемента, адресуемого указателем последнего элемента) и в указатель последнего элемента.

2. Сбросить fqp в элементе таблицы данного процесса.

3. Модифицировать управляющий блок этого процесса.

Очень часто, особенно при обработке данных в реальном времени, необходимо назначать различным процессам приоритеты, причем процессу, требующему самого быстрого обслуживания, назначается наивысший приоритет. Нескольким процессам можно назначить один и тот же приоритет и на каждом приоритетном уровне использовать стратегию FIFO.При этом в системе потребуется приоритетная таблица. Как показано на рис. 7.4, каждый элемент в этой таблице представляет собой приоритетный уровень и имеет два поля, одно из которых содержит указатель первого элемента приоритетного уровня, а другое — последнего. При изменении приоритета процесс необходимо удалить из его приоритетной цепочки и добавить в низ цепочки, имеющей его новый приоритет. Данное действие упрощается при наличии обратного указателя очереди (bqp), который ускоряет изменения приоритетов.

предыдущаяследующая