Создание процессов и потоков

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

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

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

Примерами описателей процесса являются блок управления задачей (ТСВ - Task Control Block) в ОS/360, управляющий блок процесса (РСВ — Process Control Block) в OS/2, дескриптор процесса в UNIX, объект-процесс (object-process) в Windows NT.

Создание описателя процесса знаменует собой появление в системе еще одного претендента на вычислительные ресурсы. Начиная с этого момента при распределении ресурсов ОС должна принимать во внимание потребности нового процесса.

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

Структура таблиц памяти, ввода – вывода, файлов будут рассмотрены подробнее в соответствующих лекциях, в рамках данной темы мы рассмотрим структуру управления процессами.

ОС должна знать, где находится процесс, а также каковы атрибуты нового процесса.

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