Категории: ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника |
Свойства и классификация ресурсовУпорядоченность ресурсов по некоторым классификационным признакам нужна в ОС для определения тождественных действий в отношении ресурсов данного класса – действий по учету и распределению ресурсов, устранению конфликтов в их использовании и т.п. Одним из важнейших свойств ресурса является «реальность существования». В этом смысле ресурсы разделяют на физические и виртуальные (мнимые). Под физическим понимают ресурс, который реально существует и при распределении его между пользователями обладает всеми присущими ему физическими характеристиками. Виртуальный ресурс схож многими своими характеристиками с некоторым физическим, но по многим свойствам и отличен. По сути – это некоторая модель физического ресурса. Виртуальный ресурс не существует в том виде, в котором он проявляет себя пользователю. Свойство виртуализации ресурсов — одной из важнейших при построении систем управления ресурсами. По значимости — это одна из важнейших концепций при построении современных ОС. Построение каждого виртуального ресурса проводится на базе некоторого физического. Имея всего один физический ресурс, можно построить на его основе несколько виртуальных. Это дает возможность существенно экономичнее использовать соответствующий физический ресурс, а также увеличивать гибкость политики распределения ресурсов, исключая в большинстве случаев конфликтные ситуации. В зависимости от того, допускает ли физический ресурс виртуализацию, то есть построение на его основе виртуального ресурса, ресурсы можно разделить на эластичные и жесткие. Жесткий – физический ресурс, который по своим внутренним свойствам не допускает виртуализации. В соответствии с признаком «степень активности» различают активные и пассивные ресурсы. Активный ресурс способен выполнять действия по отношению к другим ресурсам (или в отношении самого себя). ЦП – пример активного ресурса. Область памяти – пример пассивного. Очевидно, что логика распределения активных ресурсов должна отличаться от логики распределения пассивных. Динамика ресурсов в отношении процессов позволяет выделить ресурсы постоянные, существующие до порождения процесса и на всем протяжении его существования и ресурсы временные, появляющиеся динамически в течение времени существования рассматриваемого процесса. Создание и уничтожение может производиться как самим процессом, так и другими процессами – системными или пользовательскими. По «степени важности» можно выделить ресурсы главные и второстепенные. Главные – без которых данный процесс принципиально не может выполняться (ЦП, память). Второстепенные ресурсы допускают некоторое альтернативное развитие процесса при их отсутствии. Например процесс временно может обходиться без записи результатов на диск в случае неисправности последнего. Действия над ресурсами При централизованном распределении ресурсов соответствующими механизмами ОС в отношении каждого ресурса предполагается, что процесс-пользователь выполняет три типа действий: запрос, использование, освобождение. При выполнении действия запрос в ответ на требование процесса-пользователя система выделяет ресурс, либо отказывает в распределении. Отказ может быть вызван тем, что распределяемый ресурс находится в состоянии «Занят» либо обусловлен какой-то другой причиной. Если ресурс после выполнения действия запрос распределен процессу, то процесс может использовать его. Выполняется действие использование. Действие освобождение выполняется по требованию процесса и сводится к переводу ресурса в состояние «Свободен». Природа ресурса и (или) используемое правило распределения ресурса обусловлены параллельной или последовательной схемой использования распределяемого между несколькими процессами ресурса. Последовательная схема предполагает, что в отношении некоторого ресурса, который называют последовательно используемым, допустимо строго последовательное во времени выполнение цепочек действий «запрос-исполнение-освобождение» каждым процессом-потребителем этого ресурса. Для параллельных процессов такие цепочки действий являются критическими областями и должны выполняться так, чтобы удовлетворять правилу взаимного исключения, более подробно о котором ниже. Поэтому последовательно используемый ресурс, разделяемый несколькими параллельными процессами, чаще называют критическим ресурсом. В рассмотренном классе потребляемых ресурсов буфер, хранящий принятые, но еще не востребованные сообщения, является примером критического ресурса для процесса-производителя и процесса-потребителя соответственно. Параллельная схема предполагает параллельное, т. е. одновременное, использование одного ресурса, который поэтому называют параллельно используемым более чем одним процессом. Такое использование не должно вносить каких-либо ошибок в логику развития каждого из процессов. Аналогично рассмотренному случаю, ресурс может быть параллельно используемым благодаря своей природе либо специальной организации действий при работе с ним. Массив данных, находящийся в некоторой области оперативной памяти и допускающий только чтение данных из него, – пример параллельно используемого ресурса. Управление процессами Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами. Процесс (или задача) – абстракция, описывающая выполняющуюся программу. Для операционной системы процесс представляет собой единицу работы, заявку на потребление системных ресурсов. Подсистема управления процессами планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами, а также занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает взаимодействие между процессами. Состояние процессов В многозадачной (многопроцессной) системе процесс может находиться в одном из трех основных состояний: - ВЫПОЛНЕНИЕ – активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором; - ОЖИДАНИЕ – пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса; - ГОТОВНОСТЬ – также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса. В ходе жизненного цикла каждый процесс переходит из одного состояния в другое в соответствии с алгоритмом планирования процессов, реализуемым в данной операционной системе. Типичный граф состояний процесса показан на рисунке 4.1.
В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ – несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов. Жизненный цикл процесса начинается с состояния ГОТОВНОСТЬ, когда процесс готов к выполнению и ждет своей очереди. При активизации процесс переходит в состояние ВЫПОЛНЕНИЕ и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ОЖИДАНИЯ какого-нибудь события, либо будет насильно «вытеснен» из процессора, например, вследствие исчерпания отведенного данному процессу кванта процессорного времени. В последнем случае процесс возвращается в состояние ГОТОВНОСТЬ. В это же состояние процесс переходит из состояния ОЖИДАНИЕ, после того, как ожидаемое событие произойдет. Таким образом, на протяжении существования процесса его выполнение может быть многократно прервано и продолжено. Для того, чтобы возобновить выполнение процесса, необходимо восстановить состояние его операционной среды (состояние операционной среды отображается состоянием регистров, режимом работы процессора, указателями на открытые файлы и т.д.). Эта информация называется контекстом процесса. Кроме этого, операционной системе для реализации планирования процессов требуется дополнительная информация: идентификатор процесса, состояние процесса, данные о степени привилегированности процесса и другая информация. В некоторых ОС (например, в UNIX) информацию такого рода называют дескриптором процесса. Дескриптор процесса по сравнению с контекстом содержит более оперативную информацию, которая должна быть легко доступна подсистеме планирования процессов. Контекст процесса содержит менее актуальную информацию и используется операционной системой только после того, как принято решение о возобновлении прерванного процесса. 4.2.2 Алгоритмы планирования процессов Планирование процессов включает в себя решение следующих задач: - определение момента времени для смены выполняемого процесса; - выбор процесса на выполнение из очереди готовых процессов; - переключение контекстов «старого» и «нового» процессов. Существует множество различных алгоритмов планирования процессов, по разному решающих вышеперечисленные задачи, преследующих различные цели и обеспечивающих различное качество мультипрограммирования. Среди этого множества алгоритмов можно выделить две группы наиболее часто встречающихся алгоритмов: - алгоритмы, основанные на квантовании (см. рис. 4.1); - алгоритмы, основанные на приоритетах (см. рис. 4.2). В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит, если: - процесс завершился и покинул систему; - произошла ошибка; - процесс перешел в состояние ОЖИДАНИЕ; - исчерпан квант процессорного времени, отведенный данному процессу. Процесс, который исчерпал свой квант, переводится в состояние ГОТОВНОСТЬ и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый процесс из очереди готовых. Таким образом, ни один процесс не занимает процессор надолго, поэтому квантование широко используется в системах разделения времени. Очередь готовых процессов может быть организована: циклически, по правилу FIFO или LIFO. Вторая группа алгоритмов использует понятие «приоритет» процесса. Приоритет – это численное значение, характеризующее степень привилегированности процесса при использовании ресурсов ВС. Чем выше привилегии процесса (выше приоритет), тем меньше времени он будет проводить в очередях. Приоритет может назначаться директивно администратором системы в зависимости от важности работы, либо вычисляться самой ОС по определенным правилам, он может оставаться фиксированным на протяжении всей жизни процесса либо изменяться во времени в соответствии с некоторым законом. Существует две разновидности приоритетных алгоритмов: алгоритмы, использующие относительные приоритеты, и алгоритмы, использующие абсолютные приоритеты. В обоих случаях выбор процесса на выполнение из очереди готовых осуществляется одинаково: выбирается процесс, имеющий наивысший приоритет. По разному решается проблема определения момента смены активного процесса. В системах с относительными приоритетами активный процесс выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние ОЖИДАНИЕ. В системах с абсолютными приоритетами выполнение активного процесса может быть прервано если в очереди готовых процессов появился процесс, приоритет которого выше приоритета активного процесса. В этом случае прерванный процесс переходит в состояние ГОТОВНОСТЬ (см. рис. 4.а и 4.б).
Во многих операционных системах алгоритмы планирования построены с использованием как квантования, так и приоритетов. Например, в основе планирования лежит квантование, но величина кванта и/или порядок выбора процесса из очереди готовых определяется приоритетами процессов. |
||||||
|
Последнее изменение этой страницы: 2016-07-23 lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда... |