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

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

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

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

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

    3. содержимое регистров процессора

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

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

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

Состав и строение информации в структуре процесса зависит от конкретной ОС. Во многих ОС информация характеризующая процесс может храниться в нескольких связанных структурах данных. Также структуры данных могут иметь различные наименования, содержать дополнительную информацию или только её часть. Важно, что для любого процесса находящегося в вычислительной системе вся его информация для работы доступна ОС. Будем считать, что вся информация хранится в одной структуре данных, называемой блоком управления процессом (PCB – Process Control Block). Любая операция производимая или выполняемая ОС над процессом вызываем определенные изменения в PCB. Информация для хранения которой предназначен PCB разделен на две части: 1. регистровый контекст (к нему относится содержимое всех регистров процессора, в том числе значения программного счетчика) 2. системный контекст процесса (к нему относится вся остальная информация). Использования значения описанных выше контекстов достаточно для управления поведения процесса в ОС при совершении над ним операций, но недостаточно для полного описания процесса. Поэтому вводим понятие 3. пользовательского контекста (к нему относятся код и данные находящиеся в его адресном пространстве). Совокупность описанных выше трёх контекстов процессов, объединяет понятие контекст процесса, таким образом процесс в любой момент времени полностью характеризуется своим контекстом.

Одноразовые операции.

Жизненный путь любого процесса в компьютере начинается в компьютере начинается с его рождения. Любая ОС поддерживающая концепцию процессов должна обладать средстами для их создания. В очень простых системах (например в системах спроектированных для работы только одного приложения) все процессы могут быть порождены на этапе старта системы. Более сложные ОС создают процессы динамически, по мере необходимости. Инициатором рождения нового процесса после старта ОС может выступить либо процесс пользователя совершивший специальный системный вызов, либо сама ОС. Процесс инициировавший создание нового процесса принято называть процессом родителем. А вновь созданный процесс процессом ребенком. Процессы дети могут порождать новых детей и т. д. В общем случае внутри системы организуется набор генеалогических деревьев процессов — генеалогический лес. Все пользовательские процессы вместе с некоторыми процессами ОС принадлежат к одному и тому же дереву леса. При рождении процесса система заводит новый PCB и начинает его заполнение. Новый процесс получает свой собственный уникальный идентификационный номер. Для хранения данного номера процесса в ОС отводится определнное кол-во бит. Кол-во одновременно присутствующих в ОС процессах должно быть ограничено.

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

я о выделенных ресурсах заносится в PCB. Далее необходимо занести в адресное пространство процесса ребенка программный код, значения данных, установить программный счетчик — это осуществляется одним из двух способов: 1. процесс ребенок становится дубликатом процесса родителя по регистровому и пользовательскому контекстам, при этом должен существовать способ определения родителя из двух процессов двойников. 2. существование программ, т. е. исполняемых файлов для работы которых организуется более одного процесса. После того как процесс был наделен содержанием в PCB дописывается оставшаяся информация и состояние нового процесса изменяется на состояние готовности. После рождения процесса ребенка процесс родитель может продолжать своё выполнение с ним или может ожидать завершения работы некоторых или всех своих процессов детей.

После того как процесс завершит свою работу ОС переведет его в состояние закончил исполнение и освобождает все ассоциированные с ним ресурсы. При этом производятся соответствующие записи в PCB. Далее блок не удаляется а остаётся в системе на некоторое время для того, чтобы в дальнейшем процесс родитель смог при запросе у ОС получить сведения о причине завершения процесса ребенка или (и) статистическую информацию о его работе. Данная информация сохраняется в PCB законченного процесса ребенка, до запроса процесса родителя или до конца его деятельности. После этого вся информация о процессе ребенке удаляется из системы. К примеру в ОС unix процессы находящиеся в состоянии: закончил исполнение называются процессы-зомби.