Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 8
Текст из файла (страница 8)
Для системных управляющих процессов, в отличие от обрабатывающих, в большинстве операционныхсистем ресурсы распределяются изначально и однозначно. Эти вычислительныепроцессы сами управляют ресурсами системы, в борьбе за которые конкурируютвсе остальные процессы. Поэтому исполнение системных управляющих программне принято называть процессами, и термин «задача» следует употреблять толькопо отношению к процессам пользователей и к системным обрабатывающим процессам. Однако это справедливо не для всех операционных систем.
Например, в такназываемых «микроядерных» операционных системах (см. главу 9) большинствоуправляющих программных модулей самой операционной системы и даже драйверы имеют статус высокоприоритетных процессов, для выполнения которыхнеобходимо выделить соответствующие ресурсы. В качестве примера можнопривести хорошо известную операционную систему реального времени QNXфирмы Quantum Software Systems. Аналогично и в UNIX-системах, которые хотьи не относятся к микроядерным, выполнение системных программных модулейтоже имеет статус системных процессов, получающих ресурсы для своего исполнения.Очевидно, что если некий вычислительный процесс (назовем его первым) в данный конкретный момент времени не исполняется, поскольку процессор занят исполнением какого-то другого процесса, то операционная система должна знать,что вычисления в первом процессе приостановлены.
Информация об этом заносится в специальную информационную структуру, сопровождающую каждый вычислительный процесс. Таких приостановленных процессов может быть несколько. Они могут образовывать очередь задач, которые возобновят свои вычисления,как только им будет предоставлен процессор. Некоторые процессы, при своем выполнении требующие ввода или вывода данных, на время выполнения этих запросов могут освобождать процессор.
Такие события тоже должны для операционнойсистемы помечаться соответствующим образом. Говорят, что процесс может находиться в одном из нескольких состояний. Информация о состоянии процесса содержится в упомянутой выше информационной структуре, доступной супервизору.Если обобщать и рассматривать не только традиционные системы общего назначения и привычные всем нам современные мультизадачные операционные системы для персональных компьютеров, но и операционные системы реального времени, то можно сказать, что процесс может находиться в активном и пассивном(не активном) состоянии. В активном состоянии процесс может конкурировать заресурсы вычислительной системы, а в пассивном состоянии он известен системе,но за ресурсы не конкурирует (хотя его существование в системе и сопряжено с предоставлением ему оперативной и/или внешней памяти).
В свою очередь, активный процесс может быть в одном из следующих состояний:Q выполнения — все затребованные процессом ресурсы выделены (в этом состоянии в каждый момент времени может находиться только один процесс, еслиречь идет об однопроцессорной вычислительной системе);32Глава 1. Основные понятияQготовности к выполнению — ресурсы могут быть предоставлены, тогда процессперейдет в состояние выполнения;Qблокирования, или ожидания, — затребованные ресурсы не могут быть предоставлены, или не завершена операция ввода-вывода.В большинстве операционных систем последнее состояние, в свою очередь, подразделяется на множество состояний ожидания, соответствующих определенному виду ресурса, из-за отсутствия которого процесс переходит в заблокированноесостояние.В обычных операционных системах, как правило, процесс появляется при запускекакой-нибудь программы.
Операционная система организует (порождает, иливыделяет) для нового процесса уже упомянутую выше информационную структуру — так называемый дескриптор процесса, и процесс (задача) начинает выполняться. Поэтому пассивного состояния в большинстве систем не существует. В операционных системах реального времени (ОСРВ) ситуация иная. Обычно припроектировании системы реального времени состав выполняемых ею программ(задач) известен заранее. Известны и многие их параметры, которые необходимоучитывать при распределении ресурсов (например, объем памяти, приоритет, средняя длительность выполнения, открываемые файлы, используемые устройства ипроч.).
Поэтому для них заранее заводят дескрипторы задач с тем, чтобы впоследствии не тратить драгоценное время на организацию дескриптора и поиски длянего необходимых ресурсов. Таким образом, в ОСРВ многие процессы (задачи)могут находиться в состоянии бездействия, что мы и отобразили на рис. 1.7, отделив это состояние от остальных состояний пунктиром.ЧБездействие(пассивноесостояние)Готовностьк выполнениюУОжидание(состояниеблокирования)Рис. 1.7. Граф состояний процессаЗа время своего существования процесс может неоднократно совершать переходыиз одного состояния в другое, обусловленные обращениями к операционной системе с запросами ресурсов и выполнения системных функций, которые предоставляет операционная система, взаимодействием с другими процессами, появле-33Понятия вычислительного процесса и ресурса1ем сигналов прерывания от таймера, каналов и устройств ввода-вывода, другихстройств.
Возможные переходы процесса из одного состояния в другое отображены на рисунке в виде графа состояний. Рассмотрим эти переходы из одного сотряния в другое более подробно.роцесс из состояния бездействия может перейти в состояние готовности в следущих случаях.По команде оператора (пользователя). Имеет место в тех диалоговых операционных системах, где программа может иметь статус задачи, даже оставаясь пассивной, а не просто быть исполняемым файлом и получать статус задачи только на время исполнения (как это имеет место в большинстве современныхоперационных систем, в том числе и для персональных компьютеров).Q При выборе из очереди планировщиком (характерно для операционных систем, работающих в пакетном режиме).При вызове из другой задачи (посредством обращения к супервизору один процесс может создать, инициировать, приостановить, остановить, уничтожитьдругой процесс).1По прерыванию от внешнего инициативного устройства (сигнал о свершениинекоторого события может запускать соответствующую задачу).При наступлении запланированного времени запуска программы.[оследние два способа запуска задачи, при которых процесс из состояния бездействия переходит в состояние готовности, наиболее характерны для операционныхистем реального времени.Процесс, который может исполняться, как только ему будет предоставлен процессор (а для диск-резидентных задач в некоторых системах и оперативная память),находится в состоянии готовности.
Считается, что такому процессу уже выделенывсе необходимые ресурсы за исключением процессора.Из состояния выполнения процесс может выйти по одной из следующих причин.• Процесс завершается, при этом он посредством обращения к супервизору передает управление операционной системе и сообщает о своем завершении. В результате этих действий супервизор либо переводит его в список бездействующих процессов (процесс переходит в пассивное состояние), либо уничтожает.Уничтожается, естественно, не сама программа, а именно задача, которая соответствовала исполнению этой программы.
В состояние бездействия процессможет быть переведен принудительно: по команде оператора или путем обращения к супервизору операционной системы из другой задачи с требованиемостановить данный процесс. Само собой, что действие по команде операторареализуется системным процессом, который «транслирует» эту команду в запрос к супервизору с требованием перевести указанный процесс в состояниебездействия.Устройство называется инициативным, если по сигналу запроса на прерывание от него должна запускаться некоторая задача.34Глава 1. Основные понятияО Процесс переводится супервизором операционной системы в состояние готовности к исполнению в связй-с появлением более приоритетной задачи или в связи с окончанием выделенного ему кванта времени.•Процесс блокируется (переводится в состояние ожидания) либо вследствиезапроса операции ввода-вывода (которая должна быть выполнена прежде, чемон сможет продолжить исполнение), либо в силу невозможности предоставитьему ресурс, запрошенный в настоящий момент (причиной перевода в состояние ожидания может быть отсутствие сегмента или страницы в случае организации механизмов виртуальной памяти — см.
раздел «Сегментная, страничнаяи сегментно-страничная организация памяти» в главе 3), либо по команде оператора на приостанов задачи, либо по требованию через супервизор от другойзадачи.При наступлении соответствующего события (завершилась операция ввода-вывода, освободился затребованный ресурс, в оперативную память загружена необходимая страница виртуальной памяти и т. д.) процесс деблокируется и переводится в состояние готовности к исполнению.Таким образом, движущей силой, меняющей состояния процессов, являются события.