Процесс может находиться:
- в активном состоянии, может участвовать в конкуренции за использование
ресурсов вычислительной системы;
- в пассивном состоянии, известен системе, в конкуренции не участвует.
Активный процессможет находиться в одном из следующих состояний:
- выполнения, когда все затребованные ресурсы выделены. В состоянии
выполнения может находиться только один процесс (для однопроцессорной
системы);
- готовности к выполнению, когда ресурсы могут быть предоставлены и
процесс перейдет в состояние выполнения;
- блокирования или ожидания, когда затребованные ресурсы не могут быть
предоставлены или не завершена операция ввода/вывода.
За время существования процесс может неоднократно совершать переходы из
одного состояния в другое. Это обусловлено:
- обращениями к операционной системе с запросами ресурсов;
- выполнением системных функций;
- взаимодействием с другими процессами;
- появлением сигналов прерывания u1086 от таймера, каналов и устройств
ввода/вывода и других устройств.
Процесс из состояния бездействияв состояние готовностиможет перейти в
следующих случаях:
- по команде оператора (пользователя) в диалоговых ОС, где программа может
иметь статус задачи, а не просто быть исполняемым файлом и только на время
исполнения получит статус задачи (ОС на ПК);
- при выборе из очереди планировщиком;
- по вызову из другой задачи (посредством обращения к супервизору один
процесс может создавать, инициировать, приостановить, остановить или
уничтожить другой процесс);
- по прерыванию от внешнего «инициативного» устройства;
- при наступлении запланированного времени запуска программы.
Процесс, который может исполняться, как только ему будет предоставлен
процессор, находится в состоянии готовности, все ресурсы, за исключением процессора,
ему выделены.
Из состояния выполненияпроцесс может выйти по одной из следующих причин:
- процесс завешается, при этом он посредством обращения к супервизору
передает управление ОС и сообщает о своем завершении. Супервизор
уничтожает процесс или переводит его в список бездействующихпроцессов.
В состояние бездействияпроцесс может быть переведен принудительно по
команде оператора или путем обращения к супервизору другой задачи,
требующей остановить данный процесс;
- процесс переводится супервизором ОС в состояние готовности к исполнению
в связи с появлением более приоритетной задачи или в связи с окончанием
выделенного ему кванта времени;
- процесс блокируетсяиз-за невозможности предоставить ему ресурс или
вследствие запроса ввода/вывода, а также по команде оператора на
приостановку задачи.
Процесс деблокируется и переводится в состояние готовности к исполнению при
наступлении соответствующего события:
- завершение операции ввода/вывода;
- освобождение затребованного ресурса;
- загрузка в оперативную память страницы виртуальной памяти и т.д.
Предпосылками изменения состояния процесса являются u1089 события. Один из
основных видов событий – прерывания.