Системы, управляющие процессами, должны иметь возможность выполнять над ними ряд операций.
Создание процесса.
Создание процесса включает присвоение имени процессу; включение его имени в список имен процессов; определение начального приоритета процесса; формирование блока управления процессом РСВ; выделение процессу начальных ресурсов.
Процесс может породить новый процесс и в этом случае, первый будет называться родительским, а второй дочерним процессом, причем у одного родительского процесса может быть несколько дочерних, а у дочернего только один родительский. Таким образом, создается иерархическая структура процессов.
Например, иерархия процессов в UNIX может быть представлена следующим образом:
Р1 Р1 — родительский, порождает два процесса
Р2 и Р3 — дочерних. Дочерний процесс наследует
Р2 Р3 все свойства родительских. Любой процесс UNIX
порождается с помощью системного вызова fork.
Р4 Р5 Имеется процедура опознания родительского и
дочернего процесса.
ОС UNIX, являясь в своей основе средством управления процессами, сама по себе может рассматриваться как система параллельных взаимодействий процессов с древовидной структурой. Общий прародитель всех процессов в ОС UNIX — процесс init, находится в вершине генеалогического дерева, этот процесс постоянно присутствует в системе, все другие процессы порождаются по унифицированной схеме с помощью системного вызова fork().
Каждому созданному процессу UNIX назначает уникальный идентификатор процесса — PID , который идентифицирует процесс для ОС. Кроме того, каждый процесс имеет еще PPID (parent process), который предстваляет собой не что иное как PID его родителя.
Используя в UNIX команду ps можно видеть идентификаторы текущих процессов в системе.
Уничтожение процесса.
При уничтожении процесса, ресурсы ему выделенные передаются системе, имя из любых списков и таблиц удаляется, а блок управления процессом освобождается.
Приостановка процесса.
Приостановленный процесс может продолжить свое выполнение тогда, когда его активизирует какой-либо другой процесс.
Возобновление процесса.
Операция подготовки процесса к повторному запуску с той точки , в которой он был приостановлен, называется — возобновлением.
Изменение приоритета процесса.
Эта операция означает модификацию значения приоритета процесса в РСВ.
Кроме того, используются операции блокирования, пробуждения и запуска процесса.
С учетом введенных понятий приостановки и возобновления процесса картина смены состояний процесса, приведенная на рис.1 может быть несколько дополнена.
Приостановлен Приостановлен
готов ПстГ блокирован ПстБ
Нсоб
Пст — приостановка;
Взб — возобновление;
Нсоб — наступление события или окончание ввода-вывода.
Рис.2 Смена состояний процесса X с учетом операций приостановки и возобновления
Таким образом, к четырем ранее рассмотренным сменам состояния процесса добавляются следующие:
Пст(Х): Г ПстГ
Взб(Х): ПстГ Г
Пст(Х): Б ПстБ
Взб(Х): ПстБ Б
Нсоб(Х): ПстБ ПстГ
Например, диспетчер UNIX — это программа, которая позволяет процессам конкурировать между собой за время ЦП. Приостановка и возобновление процессов происходит много раз в секунду, поэтому создается эффект непрерывного протекания процесса. Схема разделения времени ЦП может быть представлена следующим образом