Remkomplekty.ru

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

Архитектура монолитного ядра

Архитектура операционных систем на основе монолитного ядра

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

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

1 — средства поддержки привилегированного режима;

2 — средства трансляции адресов;

3 — средства переключения процессов;

4 — система прерываний;

5 — системный таймер;

6 — средства защиты областей памяти.

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

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

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

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

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

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

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

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

Достоинство: быстрота вызова системных функций.

Недостаток: низкая надёжность и отказоустойчивость.

11. Особенности работы ядра в привилегированном режиме.

Для возможности работы ядра ОС в привилегированном режиме аппаратура компьютера должна поддерживать как минимум два режима работы – пользовательский режим (user mode) и привилегированный режим, который также называют режимом ядра (kernel mode), или режимом супервизора (supervisor mode). Подразумевается, что операционная система или некоторые ее части работают в привилегированном режиме, а приложения – в пользовательском режиме.

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

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

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

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

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

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

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

· Достоинства: Скорость работы, упрощённая разработка модулей

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

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

Некоторые старые монолитные ядра, в особенности систем класса UNIX/Linux, требовали перекомпиляции при любом изменении состава оборудования. Большинство современных ядер позволяют во время работы подгружать модули, выполняющие часть функций ядра. В этом случае компоненты операционной системы являются не самостоятельными модулями, а составными частями одной большой программы, называемой монолитным ядром (monolithic kernel), которое представляет собой набор процедур, каждая из которых может вызвать каждую. Все процедуры работают в привилегированном режиме

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

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

Читать еще:  Ошибка file boot bcd

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

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

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

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

· Сервисные процессы (в принятой в семействе UNIX терминологии — «демоны») активно используются в самых различных ОС для задач типа запуска программ по расписанию (UNIX и Windows NT), ведения журналов событий (UNIX и Windows NT), централизованной проверки паролей и хранения пароля текущего интерактивного пользователя в специально ограниченной области памяти (Windows NT). Тем не менее, не следует считать ОС микроядерными только из-за использований такой архитектуры.

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

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

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

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

136. Смешанное ядро — это модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра. Пример: ядра ОС Windows семейства NT.

Архитектура монолитного ядра

ДОСТОИНСТВА И НЕДОСТАТКИ МОНОЛИТНОГО И МИКРОЯДРА

Давыденко Георгий Николаевич

магистрант 1 курса, кафедра систем управления и компьютерных систем БГТУ «ВОЕНМЕХ» им. Д.Ф. Устинова, г. Санкт-Петербург

Гущин Артем Николаевич

научный руководитель, канд. технических наук, доцент, доцент кафедры систем управления и компьютерных систем БГТУ «ВОЕНМЕХ» им. Д.Ф. Устинова, г. Санкт-Петербург

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

  1. Монолитное ядро. Отличительной особенностью данной схемы операционной системы является то, что все части её ядра – это составные компоненты одной программы, работающие в одном адресном пространстве [4]. К основным преимуществам относят высокую скорость работы и простоту разработки модулей. Основным недостатком является то, что при нарушении работы одного из компонентов ядра, перестает работать вся система. При внесении изменений в аппаратное обеспечение, необходимо произвести полную перекомпиляцию всего ядра.
  2. Микроядро. Данная архитектура предоставляет минимальный набор для взаимодействия с оборудованием и основные функции для работы с процессами. К достоинствам можно отнести высокую степень модульности и возможность устойчивой работы, при возникновении ошибок или сбоев оборудования. Недостатком является то, что передача информации требует больших расходов ресурсов и времени [2].

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

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

В состав микроядра входят машинно-зависимые модули и модули, управляющие процессами, прерываниями, виртуальной памятью и т.д. Высокоуровневые функции ядра обычно оформляются в виде отдельных серверов, которые работают в режиме пользователя. Серверы выполняются в отдельных процессах, каждый в своей области памяти. Поэтому при нарушении работы одного сервера, он может быть перезапущен, не нарушив работы других серверов, а так как они все осуществляют работу в режиме пользователя, то повышается надежность работы всей операционной системы. Так же повышение надежности осуществляется благодаря меньшему объему исполняемой программы (меньшему числу машинных команд), так как уменьшается количество совершаемых ошибок. По мимо этого, данному типу архитектуры присуща расширяемость. При появлении необходимости внедрения нового модуля, объем работ существенно снижается. В отличии от монолитного ядра, нам необходимо будет написать модуль и установить связи с остальными компонентами ядра. При этом отсутствует надобность изменять все ядро. Так, например, не прерывая работы, можно загружать и выгружать новые драйвера. Но во всем имеются свои минусы и, к сожалению, такой принцип работы микроядерной архитектуры оказывает существенное влияние на производительность. Если мы работаем с монолитным ядром, выполнение системного вызова сопровождается всего двумя переключениями режимов – с режима пользователя в режим ядра и обратно [1]. Но при работе с микроядром осуществляется 4 переключения (рисунок 2).

Рисунок 2 — Смена режимов при выполнении системного вызова.

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

Читать еще:  Архитектура глобальной сети

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

Архитектуры операционных систем: монолитное ядро, многоуровневые системы, микроядро.

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

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

2 планирование задач 1 hardware

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

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

Характеристики ОС

Основные функции операционных систем (ОС)

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

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

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

Наиболее часто используемые ОС, такие как DOS, Windows, UNIX, также предоставляют пользовательский интерфейс: пользователь может набирать команды в системном приглашении. ОС интерпретирует эти инструкции с помощью прои, логично называемой командным интерпретатором, или процессором.

Процессы. Состояние процессов. ЖЦ процесса.

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

процесс исполняется ,процесс не исполняется

готовность и ожидание, исполнение

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций.

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

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

Введение

Архитектурные особенности ОС

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

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

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

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

Читать еще:  C2143 синтаксическая ошибка отсутствие перед

Монолитное ядро – старейший способ организации операционных систем . Примером систем с монолитным ядром является большинство Unix-систем.

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

Многоуровневые системы (Layered systems)

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

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

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

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

Первой реальной системой такого рода была система CP/CMS, или VM/370, как ее называют сейчас, для семейства машин IBM/370.

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

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

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

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

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

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

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

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

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

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

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

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