Архитектура ОС

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

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

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

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

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

Реальные ОС, как правило, сочетают в себе комбинацию различных архитектурных подходов.

13. Ядро многозадачных ОС.

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

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

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

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

Та часть ОС, которая работает в режиме ядра, так и называется ядром. Процессы пользователей работают в режиме процесса. Большая (количественно) часть модулей ОС также работает в режиме процесса.

На ядро, как правило, возлагаются такие основные функции:

· обработка прерываний;

· создание и уничтожение процессов;

· переключение процессов из одного состояния в другое;

· синхронизация и взаимодействие процессов;

· поддержка операций ввода-вывода;

· поддержка файловой системы;

· учет работы системы и использования ресурсов пользователями;

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

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

Рис 2. Виды состояний процесса

· Активное состояние - процесс имеет все необходимые для выполнения ресурсы, в том числе и ресурс центрального процессора. Активный процесс выполняется.

· Готовое состояние - процесс имеет все необходимые для выполнения ресурсы, кроме ресурса процессора.

· Заблокированное (ожидающее) состояние - процессу не хватает еще какого-либо ресурса (ресурсов).

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: