Диаграмма состояния процесса
Необходимо различать системные управляющие процессы, представляющие работу супервизора операционной системы и занимающиеся распределением и управлением ресурсов от:
1. системных обрабатывающих процессов, которые не входят в ядро операционной системы
2. процессов пользователя.
Для системных управляющих процессов в большинстве операционных систем ресурсы распределяются изначально и однозначно. Эти процессы управляют ресурсами системы, за использование которых существует конкуренция между всеми остальными процессами. Поэтому исполнение системных управляющих программ не принято называть процессами.
Если обобщать и рассматривать не только обычные ОС общего назначения, но и, например, ОС реального времени, то можно сказать, что процесс может находиться в активном и пассивном (не активном) состоянии. В активном состоянии процесс участвует в конкурсе за ресурсы, а в пассивном– он только известен системе, но в конкуренции не участвует.
В свою очередь активный процесс может находиться в одном из следующих состояний:
1. выполнения- все затребованные процессом ресурсы выделены. В этом состоянии в каждый момент времени может находиться только один процесс, если речь идет об однопроцессорной вычислительной системе;
2. готовности к выполнению — выделены все необходимые ресурсы, за исключением процессора. Как только будет выделен процессор, тогда процесс перейдет в состояние выполнения;
3. блокирования или ожидания — затребованные ресурсы не могут быть предоставлены, или не завершена операция ввода/вывода.
В обычных ОС, как правило, процесс появляется после запуска какой-либо программы. ОС создает для нового процесса дескриптор процесса и процесс начинает выполняться. Поэтому пассивного состояния не существует. В ОС реального времени (ОСРВ) ситуация иная. Обычно при проектировании системы реального времени уже заранее бывает известен состав программ (задач), которые должны будут выполняться. Известны и многие их параметры, которые необходимо учитывать при распределении ресурсов (например, объем памяти, приоритет, средняя длительность выполнения, открываемые файлы, используемые устройства и т. п.). Поэтому для них заранее заводят дескрипторы задач с тем, чтобы впоследствии не тратить драгоценное время на организацию дескриптора и поиск для него необходимых ресурсов. Таким образом, в ОСРВ многие процессы (задачи) могут находиться в состоянии бездействия
За время своего существования процесс может неоднократно совершать переходы из одного состояния в другое.
Процесс из состояния бездействия может перейти в состояние готовности в следующих случаях:
1. по команде оператора
2. при выборе из очереди планировщиком (характерно для ОС работающих в пакетном режиме)
3. по вызову из другой задачи
4. по прерыванию от внешнего устройства
5. при наступлении запланированного времени запуска программы
Способы 4 и 5 характерны для ОС реального времени
Выход из состояния выполнения происходит когда:
1. процесс завершается. Супервизор прерываний получает сообщение от процесса и либо уничтожает его, либо переводит в пассивное состояние.
2. Процесс переводится супервизором в состояние готовности в связи с появлением более приоритетной задачи или в связи с окончанием выделенного кванта времени.
3. Процесс блокируется либо в следствии операции ввода/вывода, либо в силу невозможности представить ему запрошенные ресурсы. При наступлении соответствующего события процесс разблокируется и переходит в состояние готовности.
Т.о. состояние процесса меняется при возникновении событий. Одним из основных видов событий - это прерывание.