Совместное использование ресурсов и управление ими

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

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

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

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

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

На рис. 2.11 показаны основные элементы операционной системы, участ­вующие в планировании процессов и распределении ресурсов в многозадачной среде. Операционная система поддерживает несколько очередей, каждая из ко­торых является просто списком процессов, ожидающих своей очереди на исполь­зование какого-то ресурса. В краткосрочную очередь заносятся процессы, кото­рые (или, по крайней мере, основные части которых) находятся в основной па­мяти и готовы к выполнению. Выбор очередного процесса осуществляется краткосрочным планировщиком, или диспетчером. Общая стратегия состоит в том, чтобы каждому находящемуся в очереди процессу давать доступ по очере­ди; такой метод называют циклическим (round-robin). Кроме того, процессам можно присваивать различный приоритет.

 

Рис. 2.11. Ключевые элементы многозадачной операционной системы

 

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

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

Далее в этом разделе приводится чисто функциональное описание; эти модули в различных операционных системах имеют разные особенности и устройство.