double arrow

PCB и контекст процесса

Набор операций

Операции над процессами и связанные с ними понятия

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

Процесс не может сам перейти из одного состояния в другое. Изменением состояния процессов занимается операционная система, совершая операции над ними. Количество таких операций в модели пока совпадает с количеством стрелок на диаграмме состояний. Удобно объединить их в три пары:

1) Создание процесса – завершение процесса;

2) Приостановка процесса (перевод из состояния «исполнение» в состояние «готовность») – запуск процесса (перевод из состояния «готовность» в состояние «исполнение»);

3) Блокирование процесса (перевод из состояния «исполнение» в состояние «ожидание») – разблокирование процесса (перевод из состояния «ожидание» в состояние «готовность»);

В дальнейшем в модели появится еще одна операция, не имеющая парной - изменение приоритета процесса.

Операции создания и завершения процесса являются одноразовыми, так как применяются к процессу не более одного раза (некоторые системные процессы никогда не завершаются при работе КС). Все остальные операции, связанные с изменением состояния процессов, будь то запуск или блокировка, как правило, являются многоразовыми. Рассмотрим подробнее, как операционная система выполняет операции над процессами.

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

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

б) программный счетчик процесса или, другими словами, адрес команды, которая должна быть выполнена для него следующей;

в) содержимое регистров процессора;

г) данные, необходимые для планирования использования процессора и управления памятью (приоритет процесса, размер и расположение адресного пространства и т.д.);

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

е) информацию об устройствах ввода-вывода, связанных с процессом (например, какие устройства закреплены за процессом, таблицу открытых файлов).

Конкретный ее состав и строение зависят от конкретной операционной системы. Во многих операционных системах информация, характеризующая процесс, хранится не в одной, а в нескольких связанных структурах данных. Эти структуры могут иметь различные наименования, содержать дополнительную информацию или, наоборот, лишь часть описанной информации. Однако для любого процесса, находящегося в КС, вся информация, необходимая для совершения операций над ним, доступна операционной системе. Будем считать, что она хранится в одной структуре данных и называется PCB (Process Control Block) или блоком управления процессом. Блок управления процессом является моделью процесса для операционной системы. Любая операция, производимая операционной системой над процессом, вызывает определенные изменения в PCB. В рамках принятой модели состояний процессов содержимое PCB между операциями остается постоянным.

Контекст процесса – это информация о процессе. В любой момент времени процесс полностью характеризуется своим контекстом.

Контекст состоит из трех частей:

- регистрового контекста;

- системного контекста;

- пользовательского контекста.

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


Сейчас читают про: