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

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

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

Понятия вычислительного процесса и ресурса_______________________________ 31

лением и управлением ресурсов, от всех других процессов: задач пользователей и системных обрабатывающих процессов. Последние, хоть и относятся к операци­онной системе, но не входят в ядро операционной системы и требуют общих ре­сурсов для своей работы, которые получают от супервизора. Для системных управ­ляющих процессов, в отличие от обрабатывающих, в большинстве операционных систем ресурсы распределяются изначально и однозначно. Эти вычислительные процессы сами управляют ресурсами системы, в борьбе за которые конкурируют все остальные процессы. Поэтому исполнение системных управляющих программ не принято называть процессами, и термин «задача» следует употреблять только по отношению к процессам пользователей и к системным обрабатывающим про­цессам. Однако это справедливо не для всех операционных систем. Например, в так называемых «микроядерных» операционных системах (см. главу 9) большинство управляющих программных модулей самой операционной системы и даже драй­веры имеют статус высокоприоритетных процессов, для выполнения которых необходимо выделить соответствующие ресурсы. В качестве примера можно привести хорошо известную операционную систему реального времени QNX фирмы Quantum Software Systems. Аналогично и в UNIX-системах, которые хоть и не относятся к микроядерным, выполнение системных программных модулей тоже имеет статус системных процессов, получающих ресурсы для своего испол­нения.

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

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

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

32_____________________________________________ Глава 1. Основные понятия

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

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

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

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

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

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

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

Понятия вычислительного процесса и ресурса_______________________________ 33

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

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

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

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

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

- По прерыванию от внешнего инициативного устройства1 (сигнал о свершении
некоторого события может запускать соответствующую задачу).

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

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

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

Из состояния выполнения процесс может выйти по одной из следующих при­чин.

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

Диаграмма состояний процесса - student2.ru ' Устройство называется инициативным, если по сигналу запроса на прерывание от него должна за­пускаться некоторая задача.

34 Глава 1. Основные понятия

Диаграмма состояний процесса - student2.ru - Процесс переводится супервизором операционной системы в состояние готов­
ности к исполнению в связи с появлением более приоритетной задачи или в свя­
зи с окончанием выделенного ему кванта времени.

- Процесс блокируется (переводится в состояние ожидания) либо вследствие запроса операции ввода-вывода (которая должна быть выполнена прежде, чем он сможет продолжить исполнение), либо в силу невозможности предоставить ему ресурс, запрошенный в настоящий момент (причиной перевода в состоя­ние ожидания может быть отсутствие сегмента или страницы в случае органи­зации механизмов виртуальной памяти — см. раздел «Сегментная, страничная и сегментно-страничная организация памяти» в главе 3), либо по команде опе­ратора на приостанов задачи, либо по требованию через супервизор от другой задачи.

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

Таким образом, движущей силой, меняющей состояния процессов, являются со­бытия. Одним из основных видов событий являются уже рассмотренные нами прерывания.

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