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

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

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

2) потомок загружается новой программой из какого-либо файла

 

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

VAX/VMS допускает WIN NT – возможны оба варианта.

Порождение нового процесса как дубликата процесса родителя приводит к возможности существ-ия прог., для работы кот. организуется более одного процесса. Возможность замены пользовательского контекста процесса по ходу его работы приводит к тому, что в рамках одного и того же процесса может исполняться последовательно несколько различных программ. После того как процесс наделил содержанием и в РСВ допис-ся оставшаяся информация, состояние нового процесса изменяется на «готовность». Процесс-родитель может продолжать свою работу одновременно с потомком, а может ожидать завершения всех или некоторых своих потомков. После того как процесс завершил работу ОС переводит его в состояние «закончил исполнение» и освобождает все связанные с ним ресурсы, делая соответствующие записи в блоке управления процессами. При этом сам РСВ не учитывается, а остается в системе еще некоторое время. Это связано с тем, что процесс-родитель после завершения процесса-потомка, может запросить ОС о причинах смерти порожденного им чада, или статистическую информацию о его работе. Подобная информация сохраняется в РСВ отработавшего процесса до запроса процесса родителя или до конца его деятельности, после чего все следы завершившегося процесса окончательно исчезают из ОС. В Linux проц в состоянии закончил исполнение – процессы-зомби.