Тема 2. Общие принципы управления ресурсами

1. ОС как средство управления ресурсами

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

К числу основных ресурсов, управляемых средствами операционной системы, можно следующие:

процессы;

память;

таймеры;

наборы данных;

иные (накопители на магнитных дисках и лентах, другие внешние накопители, принтеры, сетевые устройства и др.).

Процесс (задача) представляет собой базовое понятие для большинства современных операционных систем и часто определяется, как программа в стадии выполнения. Полагаем, необходимо четкое разграничение понятий «программа» и «процесс».

Программа – это статический объект, представляющий собой файл с кодами и данными.

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

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

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

В задачу управления любыми ресурсами входит четыре типа подзадач:

· планирование ресурса – определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;

· удовлетворение запроса на ресурс;

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

· разрешение конфликтов между запросами ресурсов.

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

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

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

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

Функции операционной системы обычно группируются либо в соответствии с типами ресурсов, которыми управляет операционная система, либо в соответствии со специфическими задачами, применимыми ко всем ресурсам. Иногда такие группы функций называют подсистемами.

Наиболее важными подсистемами являются подсистемы управления:

· процессами;

· памятью;

· файлами;

· внешними устройствами.

Функционирование этих подсистем управления будет рассмотрено в следующих лекциях.