Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы_лекции.doc
Скачиваний:
47
Добавлен:
28.09.2019
Размер:
1.71 Mб
Скачать

Ресурс – это абстрактная структура, имеющая множество атрибутов, характеризующих способы доступа к ресурсу и его физическое представление в системе

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

Ресурс может быть выделен задаче операционной системой в трёх случаях:

  • ресурс свободен и в системе нет запросов на него от задач с более высоким приоритетом;

  • текущий запрос и ранее выданные запросы позволяют совместное использование ресурса;

  • ресурс используется задачей с более низким приоритетом и может быть временно у неё отобран.

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

Внешняя память тоже является разделяемым ресурсом, но её особенностью является разделение как дискового пространства, так и доступа к данным. Дисковое пространство может разделяться одновременно и попеременно, а доступ только попеременно.

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

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

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

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

Непривилегированные Привилегированные Реентабельные Повторно входимые

Рис. 1.6. Классификация программных модулей.

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

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

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

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