Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Основные аспекты операционных систем.



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

Принцип модульности.

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

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

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

Принцип особого режима работы.

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

- режим ядра операционной системы (привилегированный режим) или режим «супервизор»;

- пользовательский режим.

Необходимо отметить, что наличие двух режимов работы (супервизор/пользователь) присутствовало в архитектуре вычислительных систем третьего поколения (вычислительные машины серии ЕС, 70-е – 80-е годы прошлого столетия). Современные процессоры поддерживают несколько режимов (еще говорят «уровни привилегий»), причем между количеством уровней привилегий, реализуемых аппаратно и количеством уровней, поддерживаемых операционной системой нет прямого соответствия. Например, операционные системы Windows 95, 98 поддерживали полностью возможности аппаратуры (процессора Intel) и соответственно реализовывали 4 уровня привилегий, а, начиная, с NT линейка Windows поддерживает 2 уровня.

Многослойная структура операционной системы.

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

Для вычислительной системы (а в нашем изложении под вычислительной системой понимаем ЭВМ с установленной на ней операционной системой) глобально можно выделить три очевидных слоя (снизу вверх):

- аппаратура;

- ядро операционной системы;

- библиотеки, утилиты, системные обрабатывающие программы.

В ядре операционной системы, в свою очередь, можно выделить несколько слоев

1. Средства аппаратной поддержки операционной системы. Сюда можно отнести следующие средства аппаратуры:

- поддержка привилегированного режима;

- аппаратная поддержка системы прерываний;

- переключение контекстов, конкурирующих за ресурсы системы, задач;

- защита памяти.

2. Компоненты операционной системы, организующие низкоуровневый интерфейс с аппаратурой. Программные модули этого слоя отражают специфику аппаратуры (машинно-зависимые компоненты).

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

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

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

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

Принцип мобильности.

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

Для большей степени переносимости (мобильности) операционные системы должны разрабатываться при помощи одного инструментального средства, включающего в себя высокоуровневые и низкоуровневые средства. Таким инструментальным средством в последние годы стал язык системного программирования С++. Этот язык осуществляет доступ к аппаратуре и в то же время поддерживает объектно-ориентированную парадигму. Современные операционные системы разрабатываются как объектно-ориентированные.

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

-Различия в разрядности машины.

- Различия в организации местной памяти (внутренних регистров). В разных процессорах внутренние регистры могут, например, быть общими (универсальными) либо выполнять специализированные функции.

-Различия в организации подсистемы ввода вывода.

- Различия в организации адресации.

- Различия в организации системы прерываний.

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

Монолитные и микроядерные операционные системы.

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

Для микроядерных операционных систем характерно следующее.

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

- В режиме супервизор остается работать лишь небольшая часть операционной системы (микроядро).

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

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

Микроядерная архитектура имеет очевидные преимущества, но не лишена недостатков, основным из которых является снижение производительности. Можно отметить следующие преимущества – мобильность, расширяемость, надежность.

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

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

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

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

- приложение – микроядро;

- микроядро – сервер;

- сервер – микроядро;

-микроядро – приложение.

 

Вопросы для самопроверки

1.Перечислите основные функции операционных систем.

2.Определите понятие «операционная среда».

3.Что определяет  интерфейс прикладного программирования.

4.Что такое естественные и дополнительные программные среды.

5. В чем заключается идея модульности.

6. Поясните сущность объектной модели современных операционных систем.

7. Назначение (причины существования) особого режима операционной системы.

8. Что понимают под мобильностью операционной системы.

9. Различия в архитектуре монолитных и микроядерных операционных систем.

 

ГЛОССАРИЙ

1. ОБЪЕКТНАЯ МОДЕЛЬ – Модель, в соответствии с которой работа программной системы описывается взаимодействием объектов различных типов.2. СТЕК – Область основной памяти, используемая для хранения данных.3. УТИЛИТА – Системная программа Тема № 2. Концепция прерывания. Взаимодействие с аппаратным обеспечением.

План:

1.1. Функции и классификация прерываний. 

1.2. Механизмы прерываний.


Поделиться:



Последнее изменение этой страницы: 2019-03-22; Просмотров: 453; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.023 с.)
Главная | Случайная страница | Обратная связь