Ресурсы. Их свойства и классификация

 

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

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

 

Ресурсы

 

1)По реальности существования Физический Дорогой 6)По функцииизбыточности
Виртуальный Дешевый
2)По возможности расширения св-в Эластичный Прост 7)По структуре
Жесткий Составной
3)По степени обстоятельств Активный Воспроизводительный 8)По восстанав-ливаемости
Пассивный Потребительный
4)По времени существования Постоянный Последовательно исп-емый 9)По характеру использования
Временный Параллельно используемый
5)По степени возможности Главный Мягкий 10)По форме реализации
Второстепенный Твердый

 

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

2)Физический ресурс, который допускает виртуализацию, т.е. моделирование своих свойств, называется эластичным. Жестким ресурсом называют физический ресурс, который по своим внутренним свойствам не допускает виртуализацию.

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

4)Если ресурс существует с момента порождения процесса и доступен для исполнения на всем интервале существования процесса, то он постоянен для данного процесса. Временный ресурс может появляться, создаваться или уничтожаться динамически на интервале существования процесса, причем создание или уничтожение такого процесса может производиться как самим процессом, так и другими системными или пользовательскими процессами.

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

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

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

8)В отношении каждого ресурса процесс-пользователь выполняет 3 типа действий: «запрос», «использование», «освобождение». При выполнении действия «запрос» оперативная система либо выделяет ресурс, либо отказывает в выделении, если ресурс занят, отсутствует и т. д. Если после выполнения действия «запрос» ресурс выделен процессу и приведен в состояние «занят», то процесс может выполнить действия «исполнение». Действие «освобождение» выполняется по требованию процесса после завершения его исполнения и сводится к переводу ресурсов в состоянии «свободен».

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

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

10)Твердыми ресурсами называются аппаратные компоненты ЭВМ, а также человеческие ресурсы (т.е. оператор – твердый ресурс). Все остальные ресурсы называются мягкими, и среди них условно выделяют два типа: программные и информационные.

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

 

Концепция виртуализации.

 

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

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

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

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

Концепция прерывания.

На рисунке обозначается: t0–начальный момент времени; t0 - t1 – время реакции; t1 – t2 –сохранение состояния; t2 – t3 – прерывающая программа; t3 – t4 – восстановление состояния; A-прерываемая программа; B-запрос на прерывание; C-прорывающая программа. При обработке прерывания обычно выполняется следующая последовательность действий: 1)восприятие запроса на прерывание в течении времени реакции t0 - t1 . В общем случае величина этого времени случайна из-за следующих причин: а) в момент начала времени реакции была выключена система прерываний; б) в момент t0 данное прерывание было замаскировано (маска – это кодовое слово, запрещающее обработку прерываний только от определенного устройства); в) в момент t0 возникло несколько, которые стали последовательно обрабатываться в соответствии с их приоритетом; г) в момент t0 текущая команда прерываемой команды не закончилась.

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

3)Передача управления прерывающей программе путем занесения в регистр адреса команд адреса первой исполняемой команды этой программы.

4)Обработка прерывания, то есть выполнение обрабатывающей программы (t2 – t3 этап на рисунке).

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

В большинстве ЭВМ этапы с первого по третий реализуются аппаратными средствами, а четвертый и пятый этапы – средствами ОС. В зависимости от источника запроса выделяют следующие основные классы прерываний:

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

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

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

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