Диаграмма состояния процесса

Необходимо различать системные управляющие процессы, представляющие работу супервизора операционной системы и занимающиеся распределением и управлением ресурсов от:

1. системных обрабатывающих процессов, которые не входят в ядро операционной системы

2. процессов пользователя.

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

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

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

1. выполнения- все затребованные процессом ресурсы выделены. В этом состоянии в каждый момент времени может находиться только один процесс, если речь идет об однопроцессорной вычислительной системе;

2. готовности к выполнению — выделены все необходимые ресурсы, за исключением процессора. Как только будет выделен процессор, тогда процесс перейдет в состояние выполнения;

3. блокирования или ожидания — затребованные ресурсы не могут быть предоставлены, или не завершена операция ввода/вывода.

В обычных ОС, как правило, процесс появляется после запуска какой-либо программы. ОС создает для нового процесса дескриптор процесса и процесс начинает выполняться. Поэтому пассивного состояния не существует. В ОС реального времени (ОСРВ) ситуация иная. Обычно при проектировании системы реального времени уже заранее бывает известен состав программ (задач), которые должны будут выполняться. Известны и многие их параметры, которые необходимо учитывать при распределении ресурсов (например, объем памяти, приоритет, средняя длительность выполнения, открываемые файлы, используемые устройства и т. п.). Поэтому для них заранее заводят дескрипторы задач с тем, чтобы впоследствии не тратить драгоценное время на организацию дескриптора и поиск для него необходимых ресурсов. Таким образом, в ОСРВ многие процессы (задачи) могут находиться в состоянии бездействия

За время своего существования процесс может неоднократно совершать переходы из одного состояния в другое.

Диаграмма состояния процесса - student2.ru Диаграмма состояния процесса - student2.ru

Процесс из состояния бездействия может перейти в состояние готовности в следующих случаях:

1. по команде оператора

2. при выборе из очереди планировщиком (характерно для ОС работающих в пакетном режиме)

3. по вызову из другой задачи

4. по прерыванию от внешнего устройства

5. при наступлении запланированного времени запуска программы

Способы 4 и 5 характерны для ОС реального времени

Выход из состояния выполнения происходит когда:

1. процесс завершается. Супервизор прерываний получает сообщение от процесса и либо уничтожает его, либо переводит в пассивное состояние.

2. Процесс переводится супервизором в состояние готовности в связи с появлением более приоритетной задачи или в связи с окончанием выделенного кванта времени.

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

Т.о. состояние процесса меняется при возникновении событий. Одним из основных видов событий - это прерывание.

Наши рекомендации