- •Механизмы и политика
- •Ядро системы. Привилегированный режим и режим пользователя.
- •Системное программное обеспечение
- •2. Реализация архитектуры операционных систем
- •2.1 Монолитные системы
- •2.2 Многоуровневые системы
- •2.3 Системы с микроядром
- •2.4 Системы с гибридным ядром
- •2.3 Особенности архитектуры: unix и Linux
- •2.3.1 Базовая архитектура unix
- •2.5 Концепция виртуальных машин
- •2.3.2 Архитектура Linux
- •2.4 Особенности архитектуры: Windows xp
- •2.4.1 Компоненты режима ядра
- •Уровень абстрагирования от оборудования
- •2.4.2 Компоненты режима пользователя
- •Понятия файла и файловой системы
- •2. Архитектура файловой системы
- •Организация информации в файловой системе
- •1.1 Организация хранения информации на накопителях
- •1.3 Физическая организация и адресация файла
- •1.4 Физическая организация файловой системы fat
- •1.6 Физическая организация файловой системы ntfs
- •1.7 Физическая организация файловых систем ext2, ext3, ext4
2. Реализация архитектуры операционных систем
Большинство современных ОС представляют собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Какой-либо единой унифицированной архитектуры ОС не существует, но известны универсальные подходы к структурированию ОС. Принципиально важными универсальными подходами к разработке архитектуры ОС являются:
Модульная организация;
Функциональная избыточность;
Функциональная избирательность;
Параметрическая универсальность;
Концепция многоуровневой иерархической вычислительной системы, по которой ОС представляется многослойной структурой;
Разделение модулей на две группы по функциям: ядро – модули, выполняющие основные функции ОС, и модули, выполняющие вспомогательные функции ОС;
Разделение модулей ОС на две группы по размещению в памяти вычислительной системы: резидентные, постоянно находящиеся в оперативной памяти, и транзитные, загружаемые в оперативную память только на время выполнения своих функций;
Реализация двух режимов работы вычислительной системы: привилегированного режима (режима ядра – Kernel mode), или режима супервизора (supervisor mode), и пользовательского режима (user mode), или режима задачи (task mode);
Ограничение функций ядра (а следовательно, и количества модулей ядра) до минимального количества необходимых самых важных функций.
Существует несколько подходов к реализации архитектуры операционных систем. В реальных ОС обычно используют некоторую комбинацию этих подходов.
2.1 Монолитные системы
ОС, в которых все базовые функции сконцентрированы в ядре, называют монолитными системами. В случае реализации монолитного ядра ОС становится производительнее ( процессор не переключается между режимами во время взаимодействия между ее компонентами), но менее надежной (весь ее код выполняется в привилегированном режиме, и ошибка в каждом из компонентов является критичной).
Монолитность ядра не означает, что все его компоненты должны постоянно находиться в памяти. Современные ОС дают возможность динамично размещать в адресном пространстве ядра фрагменты кода (модули ядра). Реализация модулей ядра дает возможность так же достичь его расширяемости (для добавления новой функциональности достаточно разработать и загрузить в память соответствующий модуль).
2.2 Многоуровневые системы
Компоненты многоуровневых систем создают иерархию уровней, каждый из которых основывается на функции предшествующего уровня. Низший уровень непосредственно взаимодействует с аппаратным обеспечением, на высшем уровне реализуются системные вызовы.
В традиционных многоуровневых ОС передача управления с верхнего уровня на нижний реализуется как системный вызов. Верхний уровень должен иметь права на выполнение этого вызова, поверка этих прав выполняется с помощью аппаратного обеспечения. Примером такой системы является ОС Multics, разработанная в 60-е годы. Практическое применение именно этого подхода сегодня ограничено из-за низкой продуктивности.
Чисто программные ОС сейчас не существуют. Как правило, в современных системах всегда есть средства аппаратной поддержки ОС, которые прямо участвуют в организации вычислительных процессов. К ним относятся: система прерываний, средства поддержки привилегированного режима, средства поддержки виртуальной памяти, системный таймер, средства переключения контекстов процессов (информация о состоянии процесса в момент его приостановки), средства защиты памяти и др.
Уровни могут выделяться и в монолитном ядре; в этом случае они поддерживаются программно и дают возможность упростить реализацию системы. Уровни монолитного ядра:
Средства абстрагирования от оборудования, которые взаимодействуют с аппаратным обеспечением непосредственно, освобождая от реализации такого взаимодействия другие компоненты системы.
Базовые средства ядра, которые отвечают за самые фундаментальные, простейшие действия ядра, такие как запись блока данных на диск. С помощью этих средств выполняются указания верхних уровней, связанных с управлением ресурсами.
Средства управления ресурсами (или менеджер ресурсов), которые реализуют основные функции ОС (управление процессами, памятью, вводом-выводом и т.д.). На этом уровне принимаются важнейшие решения по управлению ресурсами, которые выполняются с использованием базовых средств ядра.
Интерфейс системных вызовов, который служит для реализации связи с системным и прикладным ПО.
Размежевание базовых средств ядра и менеджеров ресурсов соответствует отделению механизмов от политик в архитектуре системы. Базовые средства ядра определяют механизмы функционирования системы, менеджеры ресурсов реализуют политику.
Рис. 2.1 – Обработка системного вызова
Недостатки многоуровневых ОС: значительные изменения одного из уровней могут иметь трудно предвидимое влияние на смежные уровни; многочисленные взаимодействия между соседними уровнями усложняют обеспечение безопасности.
