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


Слоеные системы (Layered systems)



Продолжая структуризацию, можно разбить всю КС на ряд более мелких уровней с хорошо определенными связями между ними, так чтобы объекты уровня N могли вызывать только объекты из уровня N-1. Нижним уровнем в таких системах обычно является hardware, верхним уровнем интерфейс пользователя. Чем ниже уровень, тем более привилегированные команды и действия может выполнять модуль, находящийся на этом уровне. Впервые такой подход был применен при создании системы THE (Technishe Hogeschool Eindhoven) Дейкстрой и его студентами в 1968 г. Эта система имела следующие уровни (рис.1.2):

Рисунок 1.2 - Структура слоеной системы THE.

 

Классическое ядро может состоять из следующих слоев:

- интерфейс системных вызовов к функциям API;

- менеджеры ресурсов, осуществляющие учет и планирование (процессы, ввод-вывод, память, файловая система);

- базовые механизмы ядра (например, переключение контекстов, перемещение страниц и др.);

- машинно-зависимый слой (например, в Windows NT/2000 слой HAL-Hardware Abstraction Level);

- аппаратная поддержка ОС (средства поддержки привилегированного режима, система прерываний, переключение контекстов, трансляция адресов, защита памяти).

Каждый слой взаимодействует лишь с ниже лежащими, за некоторым исключением.

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

 

Виртуальные машины

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

Рисунок 1.3 - Вариант виртуальной машины.

 

Первой реальной ОС такого рода была система CP/CMS или VM/370 для семейства машин IBM/370. 32-битные Windows также реализуют виртуальную машину.

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

 

Микроядерная архитектура

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

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

Рисунок 1.4 - Микроядерная архитектура операционной системы

 

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

Например, Windows NT содержит элементы монолитных систем.

 

Смешанные системы

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

Примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Так устроены 4.4BSD и MkLinux, основанные на микроядре Mach. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляется монолитным ядром. Данный подход возник в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра.

Наиболее тесно элементы микроядерной архитектуры и элементы монолитного ядра переплетены в ядре Windows NT. Хотя Windows NT часто называют микроядерной ОС, это не совсем так. Микроядро NT слишком сложно и велико (более 1 Мб), чтобы носить приставку микро. Компоненты ядра Windows NT располагаются в вытесняемой памяти и взаимодействуют друг с другом путем передачи сообщений, как и положено в микроядерных ОС. В тоже время все компоненты ядра работают в одном адресном пространстве и активно используют общие структуры данных, что свойственно ОС с монолитным ядром. Кроме того, в Windows NT существует разделение между режимом ядра и режимом пользователя еще одна черта монолитного ядра. Причина всего этого проста. По мнению Microsoft, причина проста: чисто микроядерный дизайн коммерчески непрактичен, так как слишком неэффективен.

Таким образом, Windows NT можно с полным правом назвать гибридной ОС.

 

Классификация ОС

Существует несколько схем классификации ОС. Ниже приведена классификация по некоторым признакам с точки зрения пользователя:

1) Реализация многозадачности

По числу одновременно выполняемых задач ОС могут быть разделены на два класса:

а) многозадачные (Unix, OS/2, Windows).

б) однозадачные (например, MS-DOS)

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

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

2) Поддержка многопользовательского режима.

По числу одновременно работающих пользователей ОС делят на:

а) однопользовательские (MS-DOS, Windows 3.x);

б) многопользовательские (Windows NT, Unix).

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

3) Многопроцессорная обработка

Многопроцессорные системы состоят из двух или более центральных процессоров, осуществляющих параллельное выполнение команд. Поддержка мультипроцессирования является важным свойством ОС и приводит к усложнению всех алгоритмов управления ресурсами. Многопроцессорная обработка реализована в таких ОС, как Linux, Solaris, Windows NT и др.

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

4) Системы реального времени.

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

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

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

 

Контрольные вопросы

1) Приведите структуру компьютерной системы

2) Приведите основные части программного обеспечения

3) Дайте определение операционной системе и приведите ее состав

4) Дайте определение управляющей программе и приведите ее состав

5) Для чего предназначены системные обрабатывающие программы и приведите их состав

6) Для чего предназначены пакеты прикладных программ и технического обслуживания

7) Приведите структуру однопроцессорной компьютерной системы

8) Для чего предназначен процессор, опишите его основные элементы

9) Для чего предназначена внутренняя память, опишите ее основных частей

10) Для чего предназначены устройства ввода, вывода, внешняя память

11) Приведите основные функции ОС

12) Опишите концепцию монолитного ядра

13) Опишите концепцию слоеных систем

14) Опишите концепцию виртуальной машины

15) Опишите концепцию микроядерной архитектуры

16) Приведите примеры смешанных систем

 

 


Поделиться:



Последнее изменение этой страницы: 2017-04-12; Просмотров: 1482; Нарушение авторского права страницы


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