Операционные системы

       

Операции над процессами


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

Кроме этого, операционной системе для реализации планирования процессов требуется дополнительная информация: идентификатор процесса, состояние процесса, данные о степени привилегированности процесса, место нахождения кодового сегмента и другая информация. В некоторых ОС (например, в ОС UNIX) информацию такого рода, используемую ОС для планирования процессов, называют дескриптором или блоком управления  процесса.

Дескриптор процесса по сравнению с контекстом содержит более оперативную информацию, которая должна быть легко доступна подсистеме планирования процессов. Контекст процесса содержит менее актуальную информацию и используется операционной системой только после того, как принято решение о возобновлении прерванного процесса.

Очереди процессов представляют собой дескрипторы отдельных процессов, объединенные в списки. Таким образом, каждый дескриптор, кроме всего прочего, содержит, по крайней мере, один указатель на другой дескриптор, соседствующий с ним в очереди. Такая организация очередей позволяет легко их переупорядочивать, включать и исключать процессы, переводить процессы из одного состояния в другое.

В этой связи подсистема управления процессом должна выполнять следующие операции над процессами:

1.     Создание.

2.     Уничтожение.

3.     Запуск.

4.     Блокировка.

5.     Приостановка.

6.     Возобновление.

7.     Изменение диспетчерского приоритета процесса (работа с очередями).




Создание состоит из многих этапов:

-         присвоения идентификатора процессу;

-         включения его в список активных процессов, известных системе;

-         формирования блока управления процессом;

-         выделения процессу начальных ресурсов.

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

Уничтожение процесса означает удаление его из системы. Ресурсы возвращаются системе, имя процесса удаляется из списка, блок управления процессом освобождается.

Блок управления процессом (Program Control Block – PCB) является центральным объектом в ОС, который определяет процесс и содержит всю необходимую информацию о процессе.

PCB содержит определенные сведения.

1.     Текущее состояние процесса (Program Status Word - PSW).(Всего 5 состояний).

2.     Уникальный идентификатор процесса.

3.     Приоритет.

4.     Указатели памяти процесса.

5.     Указатели выданных процессу ресурсов.

6.     Область сохранения регистров.

Когда ОС переключает ЦП с процесса на процесс, используется область сохранения регистров в PСB, чтобы запомнить информацию, необходимую для возобновления процесса, когда он снова получит ЦП.

Обработка прерываний состоит в следующем:

1.     При возникновении прерывания, управление передается в ОС.

2.     ОС запоминает состояние прерванного процесса (обычно в PCB прерванного процесса).

3.     ОС анализирует тип прерывания и передает управление соответствующему обработчику прерываний.

4.     После обработки прерывания ОС либо продолжает выполнять прерванный процесс, либо запускает готовый процесс с наивысшим приоритетом.


Содержание раздела