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

Процесс может нахо­диться в активном и пассивном (не активном) состоянии. В активном состоянии процесс может участвовать в конкуренции за использование ресурсов вычисли­тельной системы, а в пассивном – он только известен системе, но в конкуренции не участвует (хотя его существование в системе и сопряжено с предоставлением ему оперативной и/или внешней памяти). В свою очередь, активный процесс мо­жет быть в одном из следующих состояний:

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

2) готовности к выполнению – ресурсы могут быть предоставлены, тогда про­цесс перейдет в состояние выполнения;

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

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

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

Рис. 5. Граф состояний процесса

 

За время своего существования процесс может неоднократно совершать перехо­ды из одного состояния в другое. Это обусловлено обращениями к операцион­ной системе с запросами ресурсов и выполнения системных функций, которые предоставляет операционная система, взаимодействием с другими процессами, появлением сигналов прерывания от таймера, каналов и устройств ввода/выво­да, а также других устройств. Возможные переходы процесса из одного состоя­ния в другое отображены в виде графа состояний на рис. 5. Рассмотрим эти пе­реходы из одного состояния в другое более подробно.

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

1) по команде оператора (пользователя). Имеет место в тех диалоговых опера­ционных системах, где программа может иметь статус задачи (и при этом яв­ляться пассивной), а не просто быть исполняемым файлом и только на время исполнения получать статус задачи (как это происходит в большинстве со­временных ОС для ПК);

2) при выборе из очереди планировщиком (характерно для операционных сис­тем, работающих в пакетном режиме);

3) по вызову из другой задачи (посредством обращения к супервизору один процесс может создать, инициировать, приостановить, остановить, уничто­жить другой процесс);

4) по прерыванию от внешнего инициативного устройства [устройство называется инициативным, если по сигналу запроса на прерывание от него должна запускаться некоторая задача] (сигнал о свершении некоторого события может запускать соответствующую задачу);

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

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

еще рефераты
Еще работы по информатике