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

4.1.2. Состояния процесса

В период своего существования процесс проходит через ряд дискретных состояний. Возможные переходы процесса из одного состояния в другое показаны на рис.4.2.

Рис. 4.2. Изменение состояний процесса

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

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

Если процесс устанавливается на центральный процессор (ЦП), т.е. он использует его для выполнения своих команд, то он находится в состоянии исполняемый.

Если процесс не может быть продолжен в связи с ожиданием некоторого события, то он находится в заблокированном состоянии. Примерами таких событий являются запросы на дополнительные ресурсы, отсутствие сегмента или страницы, операции ввода-вывода, инициированные процессом, включая получение сигнала от терминала о конце передачи. Чтобы заблокированный процесс не занимал оперативную память, его можно откачать во внешнюю память. Некоторые системы откачивают готовые к исполнению процессы и тем самым переводят их в заблокированное состояние.

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

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

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

Следует отметить, что единственная смена состояния, инициируемая самим процессом, - это блокирование, остальные смены состояния инициируются объектами, внешними по отношению к данному процессу.

4.1.3. Блок управления процессом

Для того, чтобы управлять процессом, операционная система должна знать атрибуты процесса. Набор атрибутов, характеризующих поведение процесса, объединен в блок управления процессом (PCB - Process Control Block). По сути дела, блок управления процессом является центральным пунктом, в котором операционная система может сосредоточить информацию о процессе. Эта информация в общем случае может быть разделена на три категории:

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

- информация о состоянии процессора;

- информация для управления процессом.

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

Информация о состоянии процессора представляет собой данные, заносимые в регистры процессора. К таким регистрам относятся следующие:

- регистры, доступные пользователю, управляемые программами и предназначенные для временного хранения данных; их количество колеблется от 8 до 32;

- счетчик команд (PC - Program Counter), содержащий адрес команды, следующей за выполняемой;

- специализированные регистры, предназначенные д­ля некоторой синтетической информации, называемые словом состояния процессора или словом состояния программы (PSW - Program Status Word );

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

Информация для управления процессом включает в себя :

- текущее состояние процесса;

- приоритет процесса;

- указатели выделенных процессу ресурсов;

- указатели памяти процесса (включая таблицу страниц и(или) таблицу сегментов в зависимости от используемого метода управления памятью).

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