Мегаобучалка Главная | О нас | Обратная связь  


Классификация ресурсов




Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

I. По реальности существования

Физический ресурс– это ресурс, который реально существует и при распределении его между пользователями обладает всеми присущими ему физическими характеристиками. Пример: все аппаратные ресурсы.

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

II. По возможности расширения свойств

Этот признак характеризует ресурс с точки зрения возможности построения на его основе некоторого виртуального ресурса.

Эластичный ресурс– это физический ресурс, который допускает виртуализацию (воспроизведение или расширение своих свойств). Пример: оперативная память, свойства которой реализуются в виртуальной памяти.

Жесткий ресурс – физический ресурс, который по своим внутренним свойствам не допускает виртуализации. Пример: процессор.



III. По степени активности

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

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

IV. По времени существования

Постоянный ресурс – это ресурс, который существует в системе на протяжении всего времени существования некоторого процесса. Пример: звуковая карта во время воспроизведения аудиофайла.

Временный ресурс – это ресурс, который может появляться или уничтожаться в системе в течение времени существования некоторого процесса. Пример: диск-оригинал при копировании дисков, он может не использоваться в процессе, т. к. копирование выполняется через буфер, которым могут выступать жесткий диск или оперативная память.

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

V. По степени важности

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

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

VI. По функциональной избыточности

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

VII. По структуре

Простой ресурс – это ресурс, который не содержит составных элементов и рассматривается при распределении как единое целое. Этот ресурс может быть либо занят, либо свободен. Пример: дисковод.

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

 VIII. По восстанавливаемости

Воспроизводимый ресурс – это ресурс, при распределении которого допускается многократное выполнение действий в следующей последовательности: ЗАПРОС – ИСПОЛЬЗОВАНИЕ – ОСВОБОЖДЕНИЕ. Пример: оперативная память.

Потребляемый ресурс – это ресурс, отношении которого выполняются действия в последовательности: ОСВОБОЖДЕНИЕ – ЗАПРОС – ИСПОЛЬЗОВАНИЕ. Пример: диск при записи на него данных.

IX. По характеру использования

Последовательно используемый – это ресурс, в отношении которого каждым процессом-потребителем допустимо строго последовательное во времени выполнение цепочек действий «ЗАПРОС – ИСПОЛЬЗОВАНИЕ - ОСВОБОЖДЕНИЕ». Пример: диск во время записи на него файлов.

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

Процессы

Понятие «вычислительный процесс» (или просто – процесс) является одним из основных при рассмотрении операционных систем. Под процессом обычно понимается последовательность операций при выполнении программы или ее части в совокупности с используемыми данными. В общем случае процесс и программа представляют собой разные понятия. Програм­ма– это план действий, а процесс – это само действие, поэтому понятие процесса включает программный код, данные, содержимое стека, содержимое адресного и других регистров процессора. Таким образом, для одной программы могут быть созданы не­сколько процессов в том случае, если с помощью одной программы в центральном процессоре вычислительной машины выполняется несколько несовпадающих последовательностей команд. Например, 2 студента запускают программу извлечения квадратного корня. Один хочет вычислить корень из 4, а второй – из 1. С точки зрения студентов, запущена одна и та же программа; с точки зрения компьютерной системы, ей приходится заниматься 2-мя различными вычислительными процессам, т. К. разные исходные данные приводят к разным наборам вычислений.

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

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

Состояния процесса

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

Рис 6 – Простейшая диаграмма состояний процесса

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

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

Рис. 7. Более подробная диаграмма состояний процесса

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

· операционная система прекращает его деятельность;

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

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

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

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

Рис. 8. Диаграмма состояний процесса, принятая в курсе

Теперь для появления в вычислительной системе процесс должен пройти через состояние рождение. При рождении процесс получает в свое распоряжение адресное пространство, в которое загружается программный код процесса; ему выделяются стек и системные ресурсы; устанавливается начальное значение программного счетчика этого про­цесса и т. д. Родившийся процесс переводится в состояние готовность. При завершении своей деятельности процесс из состояния исполнение попадает в состояние закончил исполнение.

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

Итак, выделим 5 состояний процесса:

1. Рождение.

2. Готовность.

3. Ожидание.

4. Исполнение.

5. Закончил исполнение.

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

Родившийся процесс переводится в состояние готовность.

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

· операционная система прекращает его деятельность;

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

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

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

При завершении своей деятельности процесс из состояния исполнение попадает в состояние закончил исполнение.

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

Изменяя состояния процессов, ОС выполняет следующие операции:

1) создание процесса;

2) завершение процесса;

3) приостановка процесса (перевод из состояния исполнение в состояние готовность);

4) запуск процесса (перевод из состояния готовность в состояние исполнение);

5) блокирование процесса (перевод из состояния исполнение в состоя­ние ожидание);

6) разблокирование процесса (перевод из состояния ожидание в состояние готовность);

7) изменение приоритета процесса.

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

Планирование процессов

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

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

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

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

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

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

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

В случаях 1 и 2 процесс, находившийся в состоянии исполнение, не может дальше исполняться, и операционная система вынуждена осуществлять планирование, выбирая новый процесс для выполнения.

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

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

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

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

Пакетную;

Интерактивную;

Реального времени.

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

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

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

Задачи алгоритма планирования

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

Все системы

1) Равнодоступность — предоставление каждому процессу справедливой доли времени центрального процессора (несправедливо предоставлять одному процессу больше времени центрального процессора, чем другому, эквивалентному ему процессу).

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

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

Пакетные системы

1) Производительность — выполнение максимального количества заданий в час.

2) Оборотное время — минимизация времени между представлением задачи и ее завершением.

3) Использование центрального процессора — поддержка постоянной загруженности процессора.

Интерактивные системы

1) Время отклика — быстрый ответ на запросы.

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




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



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (489)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.037 сек.)
Поможем в написании
> Курсовые, контрольные, дипломные и другие работы со скидкой до 25%
3 569 лучших специалисов, готовы оказать помощь 24/7