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

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

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

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

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

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

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

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

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

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

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


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



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