0% нашли этот документ полезным (0 голосов)
78 просмотров8 страниц

Лекция №3. Микроядерная архитектура (модель клиент-сервер)

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

Загружено:

nik.zhgune
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате DOCX, PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
78 просмотров8 страниц

Лекция №3. Микроядерная архитектура (модель клиент-сервер)

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

Загружено:

nik.zhgune
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате DOCX, PDF, TXT или читать онлайн в Scribd
Вы находитесь на странице: 1/ 8

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

Микроядерная архитектура является альтернативой классическому


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

Рис. 1. Перенос основного объема функций ядра в пользовательское пространство

1
Набор функций микроядра обычно соответствует функциям слоя
базовых механизмов обычного ядра. Такие функции операционной системы
трудно, если не невозможно, выполнить в пространстве пользователя.
При этом в составе микроядра обычно остаются:
● машинно-зависимые модули;
● модули, выполняющие базовые (но не все!) функции ядра по
управлению процессами;
● обработка прерываний;
● модули управления виртуальной памятью;
● модули управления пересылкой сообщений и управлению
устройствами ввода-вывода;
● модули, связанные с загрузкой или чтением регистров устройств.
Все остальные более высокоуровневые функции ядра оформляются в
виде приложений, работающих в пользовательском режиме.
В общем случае многие менеджеры ресурсов, являющиеся
неотъемлемыми частями обычного ядра — файловая система, подсистемы
управления виртуальной памятью и процессами, менеджер безопасности и т.
п., — становятся «периферийными» модулями, работающими в
пользовательском режиме.
Схематично механизм обращения к функциям ОС, оформленным в
виде серверов, выглядит следующим образом (Рис. 2).

Рис. 2. Реализация системного вызова в микроядерной архитектуре

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

− высокой степенью переносимости, обусловлена тем, что весь


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

3
повреждения остальных серверов ОС. Другим потенциальным источником
повышения надежности ОС является уменьшенный объем кода микроядра по
сравнению с традиционным ядром – это снижает вероятность появления
ошибок программирования.
− Поддержкой распределенных приложений. Модель с микроядром
хорошо подходит для поддержки распределенных вычислений, так как
использует механизмы, аналогичные сетевым: взаимодействие клиентов и
серверов путем обмена сообщениями. Серверы микроядерной ОС могут
работать как на одном, так и на разных компьютерах. Переход к
распределенной обработке требует минимальных изменений в работе
операционной системы – просто локальный транспорт заменяется на сетевой.
Основным недостатком микроядерной архитектуры является
невысокая производительность. При классической организации ОС (Рис. 3,
а) выполнение системного вызова сопровождается двумя переключениями
режимов, а при микроядерной организации (Рис. 3, б) — четырьмя.

Рис. 3. Смена режимов при выполнении системного вызова

Таким образом, операционная система на основе микроядра при прочих


равных условиях всегда будет менее производительной, чем ОС с
классическим ядром. Именно по этой причине микроядерный подход не
получил такого широкого распространения, которое ему предрекали.
Классическим примером микроядерной ОС является QNX (Neytrino).
В настоящее время именно операционные системы, построенные с
использованием модели клиент-сервер и концепции микроядра, в
наибольшей степени удовлетворяют требованиям, предъявляемым к
современным ОС.
1.3.6 Архитектура Windows

4
Windows представляет собой операционную систему с гибридным
ядром (рис. 7). В состав микроядра входят машинно-зависимые модули.
Основные системные функции реализованы в режиме ядра (управление
процессами, памятью, устройствами, файловой системой и безопасностью).
Однако ряд важных системных компонентов реализованы в
пользовательском режиме. Например, процессы входа в систему,
аутентификации, диспетчера сеансов, а также подсистемы окружения.
Компоненты режима ядра
Диспетчер системных сервисов работает в режиме ядра, перехватывает
вызовы функций от Ntdll.dll, проверяет их параметры и вызывает
соответствующие функции из Ntoskrnl.exe.
Исполнительная система и ядро содержатся в Ntoskrnl.exe (NT
Operating System Kernel – ядро операционной системы NT).
Исполнительная система представляет собой совокупность
компонентов (называемых диспетчерами – manager), которые реализуют
основные задачи операционной системы:
диспетчер процессов (process manager) – управление процессами и
потоками;
диспетчер памяти (memory manager) – управление виртуальной
памятью и отображение её на физическую;
монитор контроля безопасности – управление безопасностью;
диспетчер ввода вывода (I/O manager), диспетчер кэша (cache Manager),
диспетчер Plug and Play (PnP Manager) – управление внешними устройствами
и файловыми системами;
диспетчер электропитания (power manager) – управление
электропитанием и энергопотреблением;
диспетчер объектов (object manager) – управление служебными
процедурами и структурами данных, которые необходимы остальным
компонентам.

5
Рисунок 7 – Архитектура Windows
Ядро (Kernel) содержит функции, обеспечивающие поддержку
компонентам исполнительной системы и осуществляющие планирование
потоков, механизмы синхронизации, обработку прерываний. Компонент
Windows USER и GDI отвечает за пользовательский графический интерфейс
(окна, элементы управления в окнах – меню, кнопки и т. п., рисование),
является частью подсистемы Windows и реализован в драйвере Win32k.sys.
Взаимодействие диспетчера ввода вывода с устройствами
обеспечивают драйверы (drivers) – программные модули, работающие в
режиме ядра, обладающие максимально полной информацией о конкретном
устройстве. Однако, и драйверы, и ядро не взаимодействуют с физическими

6
устройствами напрямую – посредником между программными компонентами
режима ядра и аппаратурой является HAL.
Слой HAL позволяет скрыть от всех программных компонентов
особенности аппаратной платформы (например, различия между
материнскими платами), на которой установлена операционная система.
Компоненты пользовательского режима
В пользовательском режиме работают следующие виды процессов:
системные процессы (system processes) – компоненты Windows,
отвечающие за решение критически важных системных задач (т. е. аварийное
завершение одного из этих процессов вызывает крах или нестабильную
работу всей системы), но выполняемые в пользовательском режиме.
Некоторые системные процессы:
Winlogon.exe – процесс входа в систему и выхода из неё;
Smss.exe (Session Manager – диспетчер сеансов) – процесс выполняет
важ- ные операции при инициализации системы (загрузка необходимых DLL,
запуск процессов Winlogon и Csrss и др.);
Lsass.exe – процесс проверяет правильность введенных имени
пользователя и пароля;
службы (services) – приложения, работающие в фоновом режиме и не
требующие взаимодействия с пользователем. Службы могут быть как частью
операционной системы (Windows Audio – служба для работы со звуком), так
и частью пользовательского приложения (служба СУБД SQL Server);
пользовательские приложения (user applications) ¬– прикладные
программы, запускаемые пользователем;
подсистемы окружения (environment subsystems) – компоненты,
предоставляющие доступ приложениям к некоторому подмножеству
системных функций. Windows поддерживает две подсистемы окружения:
Все перечисленные процессы пользовательского режима (кроме
подсистемы POSIX) для взаимодействия с модулями режима ядра

7
используют библиотеки Windows DLL (Dynamic Link Library – динамически
подключаемая библиотека).
Основные Windows DLL следующие:
Kernel32.dll – базовые функции, в том числе работа с процессами и
потоками, управление памятью и вводом выводом; Advapi32.dll – функции, в
основном связан- ные с управлением безопасностью и доступом к реестру;
User32.dll – функции, отвечающие за управление окнами и их элементами в
GUI приложениях (Graphical User Interface – графический интерфейс
пользователя); Gdi32.dll – функции графического пользовательского
интерфейса (Graphics Device Interface, GDI), обеспечивающие рисование на
дисплее и принтере графических примитивов и вывод текста.

Вам также может понравиться