русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2014-11-28; просмотров: 2359; Нарушение авторских прав


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

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


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

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



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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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



<== предыдущая лекция | следующая лекция ==>
Мультипрограммирование, многопользовательский режим работы и режим разделения времени | Реализация понятия последовательного процесса в операционных системах


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 5.293 сек.