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

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

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

Ресурсы системы физически ограничены конкретным составом ее технических средств и подлежат распределению между исполняемыми программами и управлению в соответствии с их функциональностью.

Ресурсами могут быть: аппаратные, программные и информационны е. Для системы они являют объекты, которые могут разделяться и распределяться, и доступом к которым необходимо соответствующим образом управлять. Ресурса на программном уровне реализации представляет собой структуру с набором атрибутов, характеризующих способы доступа к этой структуре и ее физическое представление в системе. Ресурсом являются и такие объекты, как например, сообщения и синхросигналы.

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

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

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

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

выполнения - все затребованные процессом ресурсы выделены;

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

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

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

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

В общем случае дескриптор процесса содержит следующую информацию:

· идентификатор процесса (PID, process identificator);

· тип (или класс) процесса, который определяет правила предоставления ресурсов;

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

· переменную состояния процесса;

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

· о ресурсах, которыми процесс владеет и/или имеет право пользоваться (указатели на открытые файлы, информация о незавершенных операциях ввода/вывода и т. п.);

· адреса для взаимодействия с другими процессами;

· параметры времени запуска (момент времени, когда процесс должен активизироваться, и периодичность этой процедуры) и др.

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

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

· по команде оператора/пользователя (имеет место в тех диалоговых операционных системах, где программа может иметь статус задачи);

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

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

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

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

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

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

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

· ОС переводит процесс в состояние готовности к исполнению в связи с появлением более приоритетной задачи или в связи с окончанием выделенного ему кванта времени;

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

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


Граф переходов состояний процесса

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

Основная литература

Учебник / Учебное пособие Раздел Страницы
Таненбаум Э. Современные операционные системы. 3-е изд. - СПб.: Питер, 2010. - 1120 е.: ил. 1.1, 1.2,1.3.1-1.3.4, 1.5.1-1.5.4, 1.6.1, 1.6.5, 2.1.1-2.1.6 21-38,39-48, 63-70, 78-82, 87-89, 112-120

Дополнительная литература

Учебник / Учебное пособие Раздел Страницы
1. Джеффри Рихтер. Windows для профессионалов (программирование в Win32 API для Windows NT 3.5 и Windows95)/Пер. с англ. - М.: Издательский отдел «Русская Редакция» 1995. - 720 с.: ил. Глава 2, Главы 4, 6 7-40, 75-97, 135-156,
2. Робачевский А.М. Операционная система UNIX, СПб.: BHV – Санкт-Петербург, 1997. - 528 с., ил. Глава 1, 3 38-42, 187-191, 206-234

Тема 2. Структура и механизмы ОС

Лекция №2. Структура и механизмы ОС

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

· Многоуровневая структура ОС.

· Ядро и вспомогательные модули ОС.

· Режимы ядра и пользовательский для исполнения программ.

· Системные вызовы. API

· Аппаратная зависимость и переносимость ОС.

· Монолитные системы.

· Микроядерная архитектура.

· Виртуальные машины. Экзоядра.

· Планирование и диспетчеризация процессов;

· Алгоритмы планирования;

· Справедливое планирование. Циклическое планирование. Приоритетное планирование. «Короткое – вперед». Гарантированное планирование;

· Особенности подхода к планированию процессов для ОС пакетной обработки, разделения времени, реального времени, мультимедийных систем.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: