Основные состояния процесса.

Создание и основные состояния процесса.

Процесс порождается с помощью системного вызова fork или CreateProcess, при котором происходит проверка на наличие свободной памяти, доступной для размещения нового процесса: если требуемая память доступна, то создается дочерний процесс (потомок), представляющий собой точную копию вызывающего процесса; при этом в таблице процессов для нового процесса строится соответствующая структура; новая структура создается также в таблице пользователя, и все ее переменные инициализируются нулями; создаваемому процессу присваивается новый уникальный идентификатор, а идентификатор родительского процесса запоминается в блоке управления процессом.

В UNIX-системах каждому процессу присваивается идентификатор процесса PID - Process Identifier.

Основные события, приводящие к созданию процесса (вызов fork или CreateProcess):

· загрузка системы;

· работающий процесс подает системный вызов на создание процесса;

· запрос пользователя на создание процесса.

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

· Выполнение – состояние, когда процесс занимает процессор, т. е. состояние активности процесса.

· Готовность – состояние, когда процесс временно приостановлен, чтобы позволить выполняться другому процессу; приостановленный процесс состоит из собственного адресного пространства, называемого образом памяти(core image), и компонентов таблицы процессов – в числе компонентов и его регистры.

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

· Первые два состояния идентичны, поскольку процесс может быть запущен, но во втором состоянии процессор недоступен. В третьем состоянии запустить процесс невозможно.

Возможные переходы между состояниями можно показать следующим образом:

1 – процесс блокируется, ожидая входных данных

2 – планировщик процессов ОС выбирает другой процесс

3 – планировщик процессов выбрал определенный процесс для выполнения

4 – поступили входные данные.

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