Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы операционных систем.doc
Скачиваний:
282
Добавлен:
01.05.2014
Размер:
2.22 Mб
Скачать

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

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

  • создание процессазавершение процесса;

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

  • блокирование процесса (перевод из состояния исполнение в состояние ожидание) – разблокирование процесса (перевод из состояния ожидание в состояние готовность).

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

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

Process Control Block и контекст процесса

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

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

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

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

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

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

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

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

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