Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Машинно-зависимые свойства операционных систем.doc
Скачиваний:
9
Добавлен:
01.07.2025
Размер:
743 Кб
Скачать
☆

Контекст и дескриптор процесса

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

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

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

1) Индентификатор процесса PI process identification;

2) тип или класс процесса, который определяет для супервизора некоторые правила предоставления ресурсов;

3) приоритет процесса, в соответствии с которым супервизор предоставляет ресурсы;

4) опред. в каком состоянии находится процесс;

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

6) информацию о ресурсах, которыми процесс владеет или имеет право пользоваться (указатели на открытые файлы, информация о незавершенных процессах ввода/вывода);

7) место или его адрес для организации общения с другими процессами;

8) параметры времени запуска.

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

Единственным исключением является состояние выполнения для однопроцессорной системы. Для описания состояния ожидания может быть не один список, а столько, сколько разных видов ресурсов может выделить состояние ожидания. Например, состояние ожидания завершения операции ввода/вывода может быть столько, сколько устройств ввода/вывода имеется в системе. В некоторых ОС количество описателей определено жестко и заранее.

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

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

Программный код только тогда начнет выполняться, когда для него операционной системой будет создан процесс. Создать процесс - это значит:

  1. создать информационные структуры, описывающие данный процесс, то есть его дескриптор и контекст;

  2. включить дескриптор нового процесса в очередь готовых процессов;

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