Состояния процессов

В многозадачной (многопроцессной) системе процесс может находиться в одном из пяти основных состояний (рис.2.2.):

- ВЫПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором. В однопроцессорной системе только один процесс может находиться в этом состоянии;

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

- блокированный – пассивное состояние процесса. Процесс не может выполняться до тех пор, пока не произойдет некоторое событие, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса;

- новый - только что созданный процесс, который еще не помещен ОС в пул выполняемых процессов;

- завершающийся - процесс, удаленный ОС из пула выполняемых процессов.

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

Только что созданный поток находится в состоянии готовности, он готов к выполнению и стоит в очереди к процессору. Когда в результате планирования подсистема управления потоками принимает решение об активизации данного потока, он переходит в состояние выполнения и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ожидания какого-нибудь события, либо будет принудительно «вытеснен» из процессора, например вследствие исчерпания отведенного данному потоку кванта процессорного времени. В последнем случае поток возвращается в состояние готовности. В это же состояние поток переходит из состояния ожидания, после того как ожидаемое событие произойдет.

 

Рис. 2.2. Граф состояний потока в многозадачной среде

 

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

 

Рис. 2.3. Диаграмма переходов с учетом приостановленных процессов.