Идея о том, что операционная система (ОС) прежде всего система, обеспечивающая удобный интерфейс пользователям, соответствует рассмотрению сверху вниз. Другой взгляд, снизу вверх, дает представление об ОС как о некотором механизме, управляющем всеми частями сложной системы. Современные вычислительные системы состоят из процессоров, памяти, таймеров, дисков, накопителей на магнитных лентах, сетевых коммуникационной аппаратуры, принтеров и других устройств. В соответствии со вторым подходом функцией ОС является распределение процессоров, памяти, устройств и данных между процессами, конкурирующими за эти ресурсы. ОС должна управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить максимальную эффективность ее функционирования. Критерием эффективности может быть, например, пропускная способность или реактивность системы.
Операционная система как средство распределения и управления
ресурсами
Идея о том, что операционная система (ОС) прежде всего система, обеспечивающая
удобный интерфейс пользователям, соответствует рассмотрению сверху вниз. Другой
взгляд, снизу вверх, дает представление об ОС как о некотором механизме, управляющем
всеми частями сложной системы. Современные вычислительные системы состоят из
процессоров, памяти, таймеров, дисков, накопителей на магнитных лентах, сетевых
коммуникационной аппаратуры, принтеров и других устройств. В соответствии со вторым
подходом функцией ОС является распределение процессоров, памяти, устройств и данных
между процессами, конкурирующими за эти ресурсы. ОС должна управлять всеми
ресурсами вычислительной машины таким образом, чтобы обеспечить максимальную
эффективность ее функционирования. Критерием эффективности может быть, например,
пропускная способность или реактивность системы.
Управление ресурсами включает решение двух общих, не зависящих от типа ресурса
задач:
планирование ресурса то есть определение, кому когда, а для делимых ресурсов и в
каком количестве, необходимо выделить данный ресурс;
отслеживание состояний ресурса то есть поддержание оперативной информации о
том, занят или не занят ресурс, а для делимых ресурсов какое количество ресурса уже
распределено, а какое свободно.
Для решения этих общих задач управления ресурсами разные ОС используют различные
алгоритмы, что в конечном счете и определяет их облик в целом, включая характеристики
производительности, область применения и даже пользовательский интерфейс. Так,
например, алгоритм управления времени, системой пакетной обработки или системой
реального времени.
Одной из важных задач операционной системы является управление имеющимися в ее
распоряжении ресурсами (основной памятью, устройствами вводавывода, процессором), а
также их распределение между разными активными процессами. При разработке стратегии
распределения ресурсов необходимо принимать во внимание следующие факторы.Равноправность. Обычно желательно, чтобы всем процессам, претендующим на какой
то определенный ресурс, предоставлялся к нему одинаковый доступ. В особенности это
касается заданий, принадлежащих к одному и тому же классу, т.е. заданий с аналогичными
требованиями к ресурсам.
Дифференциация отклика. С другой стороны, может понадобиться, чтобы операционная
система поразному относилась к заданиям различного класса, имеющим различные
запросы. Нужно попытаться сделать так, чтобы операционная система выполняла
распределение ресурсов в соответствии с целым набором требований. Операционная
система должна действовать в зависимости от обстоятельств. Например, если какойто
процесс ожидает доступа к устройству вводавывода, операционная система может
спланировать выполнение этого процесса так, чтобы как можно скорее освободить
устройство для дальнейшего использования другими процессами.
Эффективность. Операционная система должна повышать пропускную способность
системы, сводить к минимуму время ее отклика и, если она работает в системе разделения
времени, обслуживать максимально возможное количество пользователей. Эти требования
несколько противоречат друг другу; насущной проблемой исследования операционных
систем является поиск нужного соотношения в каждой конкретной ситуации.
Задача управления ресурсами и их распределения типична для исследований операционных
систем; здесь могут применяться математические результаты, полученные в этой области.
Кроме того, важно измерять активность системы, что позволяет следить за ее
производительностью и вносить коррективы в ее работу.
На рис. 2.11 показаны основные элементы операционной системы, участвующие в
планировании процессов и распределении ресурсов в многозадачной среде. Операционная
система поддерживает несколько очередей, каждая из которых является просто списком
процессов, ожидающих своей очереди на использование какогото ресурса. В
краткосрочную очередь заносятся процессы, которые (или, по крайней мере, основные
части которых) находятся в основной памяти и готовы к выполнению. Выбор очередного
процесса осуществляется краткосрочным планировщиком, или диспетчером. Общая
стратегия состоит в том, чтобы каждому находящемуся в очереди процессу давать доступ
по очереди; такой метод называют циклическим (roundrobin). Кроме того, процессам
можно присваивать различный приоритет.Передача управления процессу
Рис. 2.11. Ключевые элементы многозадачной операционной системы
В долгосрочной очереди находится список новых процессов, ожидающих возможности
использовать процессор. Операционная система переносит их из долгосрочной очереди в
краткосрочную. В этот момент процессу необходимо выделить определенную часть
основной памяти. Таким образом, операционная система должна следить за тем, чтобы не
перегрузить память или процессор, добавляя в систему слишком много процессов. К
одному и тому же устройству вводавывода могут обращаться несколько процессов,
поэтому для каждого устройства создается своя очередь. И здесь операционная система
должна решать, какому процессу предоставить освободившееся устройство вводавывода в
первую очередь.
Во время прерывания управление переходит к обработчику прерываний, который является
частью операционной системы. В силу своей функциональности процесс может обратиться
к некоторому сервису операционной системы, например к драйверу устройства ввода
вывода. При этом происходит вызов обработчика обращений к сервисам, который
становится точкой входа в операционную систему. Независимо от того, произошло ли
прерывание или обращение к сервису, после его обработки планировщик выберет из
краткосрочной очереди процесс для выполнения.
Далее в этом разделе приводится чисто функциональное описание; эти модули в различных
операционных системах имеют разные особенности и устройство.