3. Объясните понятие ресурса. Почему понятие ресурса является одним из фундаментальных при рассмотрении ОС? Какие виды и типы ресурсов вы знаете?

Предмет: Операционные системы.
Вопрос: №3

***

—————————————————————

Понятие ресурса, типы ресурсов:

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

kassifikaciya-resursov1

В первых системах программирования под понятием «ресурсы» понимали: процесс-сорное время, память, каналы ввода/вывода и периферийные устройства. Однако скоро понятие ресурса стало более универ-сальным и общим.

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

—————————————————————

Эволюция использования ресурсов:

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

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

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

—————————————————————

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

устройство печати данных).

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

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

—————————————————————

Ресурс может быть выделен задаче, в следующих случаях:

1.) ресурс свободен, и в системе нет запросов от задач более высокого приоритета к запрашиваемому ресурсу;

2.) текущий запрос и ранее выданные запро-сы допускают совместное использование ресурсов;

3.) ресурс используется задачей низшего приоритета и может быть временно отобран (разделяемый ресурс).

—————————————————————

Схема освобождения ресурса:

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

—————————————————————

Основные функции ядра ОС, распределение ресурсов:

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

1.) порождение процессов, уничтожение процессов (завершение) и реализация механизмов связи между процессами;

2.) обработка прерываний;

3.) реализация основных функций распреде-ления ресурсов.

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