Основные состояния процесса.
Создание и основные состояния процесса.
Процесс порождается с помощью системного вызова fork или CreateProcess, при котором происходит проверка на наличие свободной памяти, доступной для размещения нового процесса: если требуемая память доступна, то создается дочерний процесс (потомок), представляющий собой точную копию вызывающего процесса; при этом в таблице процессов для нового процесса строится соответствующая структура; новая структура создается также в таблице пользователя, и все ее переменные инициализируются нулями; создаваемому процессу присваивается новый уникальный идентификатор, а идентификатор родительского процесса запоминается в блоке управления процессом.
В UNIX-системах каждому процессу присваивается идентификатор процесса PID - Process Identifier.
Основные события, приводящие к созданию процесса (вызов fork или CreateProcess):
· загрузка системы;
· работающий процесс подает системный вызов на создание процесса;
· запрос пользователя на создание процесса.
Во всех случаях, активный текущий процесс посылает системный вызов на создание нового процесса.
· Выполнение – состояние, когда процесс занимает процессор, т. е. состояние активности процесса.
· Готовность – состояние, когда процесс временно приостановлен, чтобы позволить выполняться другому процессу; приостановленный процесс состоит из собственного адресного пространства, называемого образом памяти(core image), и компонентов таблицы процессов – в числе компонентов и его регистры.
· Ожидание – состояние, когда процесс заблокирован и не может быть запущен прежде, чем произойдет какое-то внешнее событие (например, операция ввода/вывода).
· Первые два состояния идентичны, поскольку процесс может быть запущен, но во втором состоянии процессор недоступен. В третьем состоянии запустить процесс невозможно.
Возможные переходы между состояниями можно показать следующим образом:
1 – процесс блокируется, ожидая входных данных
2 – планировщик процессов ОС выбирает другой процесс
3 – планировщик процессов выбрал определенный процесс для выполнения
4 – поступили входные данные.
Переходы 2 и 3 вызываются планировщиком процессов операционной системы, поэтому процессы не могут знать об этих переходах, таким образом, с точки зрения самих процессов есть два состояния: выполнение и ожидание.