Remkomplekty.ru

IT Новости из мира ПК
82 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Типы архитектуры ос

Типы архитектур ядер операционных систем;

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

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

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

Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы.

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

Таким образом, монолитное ядро — это такая схема операционной системы, при которой все её компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путём непосредственного вызова процедур. Для монолитной операционной системы ядро совпадает со всей системой.

Примеры: Традиционные ядра UNIX(такие как BSD), Linux; ядро MS-DOS.

Модульное ядро — современная, усовершенствованная модификация архитектуры монолитных ядер операционных систем компьютеров.

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

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

Примером может служить VFS — «виртуальная файловая система», совместно используемая многими модулями файловых систем в ядре Linux.

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

Достоинства: Устойчивость к сбоям оборудования, ошибкам в компонентах системы.

Недостатки: Передача данных между процессами требует накладных расходов.

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

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

Примеры: Symbian OS; Mach, используемый в GNU/Hurd и Mac OS X; Windows CE; QNX; AIX; Minix ; ChorusOS ; AmigaOS; MorphOS.

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

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

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

Гибридные ядра это модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра.

Смешанное ядро, в принципе, должно объединять преимущества монолитного ядра и микроядра: казалось бы, микроядро и монолитное ядро — крайности, а смешанное — золотая середина. В них возможно добавлять драйвера устройств двумя способами: и внутрь ядра, и в пользовательское пространство. Но на практике концепция смешанного ядра часто подчёркивает не только достоинства, но и недостатки обоих типов ядер (тот же NT со смешанным ядром не может видеть жесткие диски большого объёма в обход BIOS (источник?), в то время как GNU/Linux с его монолитным ядром обеспечивает такую возможность, поскольку возможность видеть жесткие диски в обход BIOS встроена в его ядро).

Примеры: Windows NT, DragonFlyBSD.

Файловая система

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

В широком смысле понятие «файловая система» включает:

— совокупность всех файлов на диске;

— наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, таблицы распределения свободного и занятого пространства на диске;

— комплекс системных программных средств, реализующих управление файлами, в частности: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.

Классификация архитектур ОС

3. Микроядерная (или архитектура «клиент-сервер»)

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

В состав монолитной ОС:

• Основная программа, которая может вызывать требуемую служебную процедуру.

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

• Набор вспомогательных процедур, содействующих работе служебных процедур.

• При использовании этой технологии каждая процедура(программа) может свободно вызвать любую другую процедуру(программу), если та выполняет для неё какое-нибудь полезное действие.

Достоинства монолитного ядра:

· упрощённая разработка модулей;

· богатство предоставляемых возможностей и функций;

· поддержка большого количества разнообразного оборудования.

Недостатки монолитного ядра:

· поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы;

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

Уровневая архитектура

Прикладное ПО имеет возможность получить доступ к аппаратуре не только через ядро системы и её сервисы, но и напрямую.

Читать еще:  Инфо о железе

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

· Интерфейс уровня с остальными уровнями становится громоздким. Поэтому заменить уровень новым или нарастить его функциональность становится сложной задачей;

· Если потребуется ввести новые функции в уровень, то необходимо вносить изменения и в соседние уровни для возможности обращения к этим функциям;

· Проблема безопасности, т. к. между уровнями много точек обмена.

12. Классификация архитектур ОС. Микроядерная и гибридные архитектуры. Достоинства и недостатки

Классификация архитектур ОС

3. Микроядерная (или архитектура «клиент-сервер»)

Микроядерная архитектура (или архитектура «клиент-сервер»)

все компоненты операционной системы разделяются на:

• Программы-серверы – поставщики услуг (выполняющие определенные действия по запросам других программ)

• Программы-клиенты – потребители услуг (программы клиенты, обращающиеся к серверам для выполнения определенных действий).

• Одна и та же программа может быть одновременно сервером по отношению к одному виду услуг и клиентом по отношению к другому виду услуг.

  • Серверы постоянно находится в состоянии ожидания клиентских запросов.
  1. В случае необходимости, клиенты посылают серверам запросы (например, запрос на чтение файла, запрос на выделение памяти, запрос на вывод результатов на экран)
  2. Получив запрос от клиента, сервер выполняет его, при этом он сам может обратиться за услугами к другим серверам.
  3. После выполнения запроса сервер отсылает клиенту сообщение о завершении задания и результаты работы.
  4. Клиенты и серверы никогда не общаются напрямую, а через микроядро.
  5. При этом микроядро само является сервером по отношению к запросам, связанным с управлением аппаратурой и клиентом при обращении к аппаратуре.

Достоинства: устойчивость к сбоям оборудования, ошибкам в компонентах системы, расширяемость, переносимость и совместимость.

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

Гибридные архитектуры

Гибридные ядра — это модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра.

  • Гибридное ядро ОС кроме функций посредника (микроядра)выполняет следующие дополнительные функции как в монолитных ОС:

• низкоуровневое управление памятью;

• взаимодействие между процессами (программами);

Достоинства: возможно добавлять драйвера устройств двумя способами: и внутрь ядра, и в пользовательское пространство.

· производительность микроядерной операционной системы заметно ниже производительности многоуровневых и монолитных операционных систем из- за частых переключений из режима ядра в режим пользователя;

· поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы;

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

13. Понятие ресурса. Назначение основных таблиц ОС по управлению ресурсами.

Ресурс – средство вычислительной системы, которое может быть выделено процессу на определенный интервал времени.

Ресурсы могут быть:

§ делимыми, когда несколько процессов используют их одновременно (в один и тот же момент времени) или параллельно (попеременно в течение некоторого интервала времени) – пример – файл;

§ неделимыми, используемыми программой единолично – пример – выделяемая процессу память.

ОС управляет следующими основными ресурсами;

  • — процессором (процессорами, ядрами);
  • — программами (процессами);
  • — памятью (физическая и виртуальная);
  • — устройствами ввода-вывода;
  • — файлами;
  • — таймерами;
  • — и др.

Что хранится в таблицах памяти?

Эти таблицы включают следующую информацию:

1) объем основной (физической) памяти, отведенной процессу;

2) объем вторичной или виртуальной памяти, отведенной процессу;

3) все атрибуты защиты блоков основной и виртуальной памяти;

4) всю информацию, необходимую для управления виртуальной памятью.

Что хранится в таблицах ввода – вывода?

1. Используются для управления устройствами ввода-вывода.

2. В каждый момент времени устройство ввода-вывода может быть либо свободным, либо отданным в распоряжение какому-либо процессу.

3. Если выполняется операция ввода-вывода, то должна быть информация о состоянии этой операции.

Что хранится в таблицах файлов?

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

14. Понятие процессора. Модель процессора. Переход процессора из одного состояния в другое по диаграмме процесса.

Процесс – это система действий, реализующая выполнение программы в компьютерной системе («Процесс – это домик в котором живет программа»).

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

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

3. Выполняющийся. Процесс, выполняющийся процессором в данный момент.

4. Блокированный. Процесс, который ожидает некоторого события.

5. Завершающийся. Процесс, удаленный из множества запущенных процессов.

Ядро операционной системы, его виды и его архитектура

Ядро́ (kernel) — центральная часть ОС, обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память, внешнее аппаратное обеспечение, внешнее устройство ввода и вывода информации. Также обычно ядро предоставляет сервисы файловой системы и сетевых протоколов.

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

Виды архитектур ядер операционных систем:

Монолитное ядро ОС
Представляет богатый набор оборудования. Все компоненты монолитного ядра находятся в одном адресном пространстве. Эта схема ОС, когда все части ее ядра — это составные части одной программы. Монолитное ядро — самый старый способ организации ОС.
Достоинства: высокая скорость работы, простая разработка модулей.
Недостатки: Ошибка работы одного из компонентов ядра нарушает работу всей системы.
Модульное ядро ОС
Это современная модификация монолитных ядер ОС, но в отличие от них модульное ядро не требует полной перекомпиляции ядра при изменения аппаратного обеспечения компьютера. Более того модульные ядра имеют механизм погрузки модулей ядра. Погрузка бывает статической- с перезагрузкой ОС, и динамической — без перезагрузки ОС.
Микроядро ОС
Представляет только основные функции управления процессами и минимальный набор для работы с оборудованием.
Достоинства: устойчивость к сбоям и ошибкам оборудования и компонентов системы, высокая степень ядерной модульности, что упрощает добавление в ядро новых компонентов и процесс отладки ядра.
Недостатки: Передача информации требует больших расходов и большого количества времени.
Экзоядро ОС
Такое ядро ОС, которое предоставляет лишь функции взаимодействия процессов, безопасное выделение и распределение ресурсов. Доступ к устройствам на уровне контроллеров позволяет решать задачи, которые нехарактерны для универсальной ОС.
Наноядро ОС
Такое ядро выполняет только единственную задачу- обработку аппаратных прерываний, образуемых устройствами ПК. После обработки наноядро посылает данные о результатах обработки далее идущему в цепи программному обеспечения при помощи той же системы прерываний.
Гибридное ядро ОС
Модификация микроядер, позволяющая для ускорения работы впускать несущественные части в пространство ядра. На архитектуре гибкого ядра построены последние операционные системы от Windows, в том числе и Windows 7-10.

Читать еще:  Оперативно технологическая связь на железнодорожном транспорте

Ядро операционной системы

  • определениеядро операционной системы
  • архитектура и типы ядер операционной системы
  • ядро операционной системы WINDOWS

Ядро операционной системы определение

Ядро (kernel) это центральная и главная часть операционной системы которая обеспечивает архитектуру связи с приложениями, организует и регулирует доступ к ресурсам компьютера. Дополнительно, но не как правило предоставляет доступ к сетевым протоколам и к файловой системе. На картинке ниже я покажу как схематично работает ядро операционной системы и другие структуры внутри ОС

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

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

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

Монолитное ядро

монолитное ядро операционной системы представляет богатый выбор абстракций. все части или лучше сказать элементы находятся в одном адресном пространстве и представляют собой единый «Монолит». Все элементы которые были представлены выше на картинке спокойно взаимодействуют между собой и сообщаются. Это самое старое воплощение ядра в ОС.

Недостаток:

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

Преимущества:

Из положительного момента — быстрая разработка и внедрение новых модулей а также скорость работы такого ядра. всё таки унификация всех элементов берет своё

Примеры ОС построенных на таких ядрах :LINUX, Unix, ms-dos

Модульное ядро

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

Микроядро

Микроядро работает по принципу всё что сложнее элементарных функций — выноситься за пределы его работы. Наибольшая часть работы выполняется с помощью сервисов или по другому пользовательских процессов.

драйверы и модули, всё находиться в серверных процессах. Чтобы было понятно взгляните на картинку

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

Недостатки: увеличенное потребление ресурсов.

Из самых популярных операционных систем которое используют это
ядро операционной системы это MAC OS X.

Экзоядро

Экзоядро представляет всего лишь самые базовые функция взаимодействия между процессами, выгрузка и загрузка памяти и других ресурсов. То есть устроенно это ядро таким образом — ядро операционной системы не взаимодействует с программным обеспечением напрямую, а только через специальные библиотеки которые предоставляют API. Является оптимальным решениям для некоторого вида приложений которые должны очень быстро работать.

Ядро операционной системы WINDOWS

Вы спросите а к какому типу архитектуры тогда относиться операционная система windows?

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

Архитектура ос

Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы:

— базовые функции ОС (управление процессами, памятью, устройствами ввода/вывода;

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

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

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

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

— системные обрабатывающие программы – текстовые и графические редакторы, компиляторы, компоновщики, отладчики;

— программы дополнительных услуг – специальный вариант пользовательского интерфейса, калькулятор, игры;

— библиотеки процедур – библиотека математических функций, функций ввода/вывода и т. д.

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

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

Монолитное ядро представляет собой набор процедур, каждая из которых может вызвать каждую. Все процедуры работают в привилегированном режиме. Таким образом, монолитное ядро — это такая схема организации операционной системы, при которой все ее компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова процедур. Для монолитной операционной системы ядро совпадает со всей системой. Монолитное ядро — старейший способ организации операционных систем. Примером систем с монолитным ядром является большинство ранних версий Unix-систем и Novell

Рис. 1.1. Монолитная структура ОС

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

1. Главная программа, которая вызывает требуемые сервисные процедуры.

2. Набор сервисных процедур, реализующих системные вызовы.

3. Набор утилит, обслуживающих сервисные процедуры.

В этой модели для каждого системного вызова имеется одна сервисная процедура. Утилиты выполняют функции, которые нужны нескольким сервисным процедурам. Это деление процедур на три слоя показано на рисунке 1.2.

Читать еще:  Отключить аппаратное ускорение обработки изображения excel

Рис.1 .2. Простая структуризация монолитной ОС

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

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

Многослойная модель ядра

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

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

— машинно-зависимые компоненты ОС; в идеале этот слой полностью экранирует вышележащие слои ядра от особенностей аппаратуры (пример – слой HAL ОС Windows NT);

— базовые механизмы ядра, этот слой выполняет наиболее примитивные операции ядра, реализует решения о распределении ресурсов, принятые на более высоком уровне;

— менеджеры ресурсов; слой состоит из мощных функциональных модулей, реализующих стратегические задачи по управлению основными ресурсами ОС;

— интерфейс системных вызовов является самым верхним слоем ядра и взаимодействует непосредственно с приложениями и системными утилитами, образуя прикладной программный интерфейс ОС.

Примеры многоуровневых ОС

Многоуровневый подход был использован при реализации следующих ОС:

Рис. 1.4. Структура ОС UNIX

Рис. 1.5. Ядро ОС UNIX

Пример реализации многоуровневой Windows

Рис. 1.6. СтруктураWindows 2000

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

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

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

Поддержка этого механизма является одной из главных задач микроядра.

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

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

Одна из проблем, возникающих при разработке микроядерной ОС – какие функции включать в микроядро, а какие выносить в пользовательское пространство. В идеальном случае микроядро может состоять только из средств передачи сообщений и аппаратно-зависимых модулей (так называемая модель экзоядра). Для повышения производительности ОС в состав микроядра могут входить и другие часто используемые функции. В результате реализации ОС образуют некоторый спектр, на одном краю этого спектра находится операционные системы Workplace OS, 4.4BSD и MkLinux, разработанные на основе микроядра Mach и придерживающиеся чистой микроядерной доктрины. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляется монолитным ядром. Этот подход возник в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра.

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

В настоящее время именно операционные системы, построенные с использованием модели клиент-сервер и концепции микроядра, в наибольшей степени удовлетворяют требованиям, предъявляемым к современным ОС.

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×