Автор работы: Пользователь скрыл имя, 29 Марта 2015 в 15:56, реферат
Сперва хотелось бы конечно определить понятие самого слова ядро и его место в операционной системе.
Ядро — центральная часть операционной системы, обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, оперативная память, внешнее оборудование. Обычно предоставляет сервисы файловой системы.
Оглавление
Ядро — центральная часть операционной системы, обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, оперативная память, внешнее оборудование. Обычно предоставляет сервисы файловой системы.
Как
основополагающий элемент ОС, ядро представляет
собой наиболее низкий уровень абстракции
для доступа приложений к ресурсам системы,
необходимым для его работы. Как правило,
ядро предоставляет такой доступ исполняемым
процессам соответствующих приложений
за счет использования механизмов межпроцессного взаи
Далее как пример можно рассмотреть место ядра в таких операционных системах, как WINDOWS и UNIX
Рис.1 Место ядра в операционной системе WINDOWS
Термин «Модульное ядро» не является официальным общепринятым термином; Модульным ядром обычно обозначают монолитные ядра с поддержкой архитектуры подгружаемых модулей ядра. Модульное ядро появилось в результате весьма значительного совершенствования монолитного ядра. Последнее было слишком негибким, поскольку не позволяло расширять функциональные возможности ОС и добавлять поддержку новых устройств без повторной трансляции и сборки всего ядра, а зачастую требовало внесения для этого существенных изменений в уже имеющиеся компоненты.
Модульное ядро, как видно из его названия, делится на отдельные загрузочные модули ядра, причём в оперативную память они могут загружаться как все вместе, так и по отдельности, что зависит от особенностей системы, от конфигурации аппаратных средств и настроек, установленных пользователем. Однако, как и в случае монолитного ядра, все модули ядра по-прежнему находятся в общем адресном пространстве и исполняются в режиме ядра, то есть не вытесняются другими задачами.
Не следует путать модульное монолитное ядро с микроядром. В последнем функции ядра не только распределены между несколькими загрузочными модулями, но и сами модули выполняются в отдельных процессах и (если система это обеспечивает) адресных пространствах.
Такие распространённые современные операционные системы, как Linux и NetBSD, являются бесспорно ОС с монолитным модульным ядром.
Также термин модульное ядро иногда адресуют и к различным «гибридным ядрам» от DragonFly BSD, MacOS X до Windows NT, что не является верным, т.к. большинство системных служб и драйверов данных систем реализуется в виде процессов пользовательского режима, то есть активно используется архитектура микроядра, и следовательно относятся, как минимум, к гибридным ядрам. Это связано с тем, что данные гибридные ядра поддерживают архитектуру загузочных модулей ядра, но здесь также есть важное отличие - подгружаемые модули ядра и прочие компоненты ядер Windows NT и MacOS X располагаются в вытесняемой памяти и взаимодействуют друг с другом путем передачи сообщений, как положено в микроядерных операционных системах.
Преимущества.
Без загружаемых модулей ядра, операционные системы должны были бы включать всю возможную функциональность в базовом ядре. Значительная часть кода не используется и лишь занимает память. Каждый раз, когда пользователю необходима новая функциональность, ещё не включенная в базовом ядре, требуется полная перекомпиляция базового ядра и перезагрузка. Использование подгружаемых модулей значительно упрощает изменение функциональности ядра и не требует ни полной перекомпиляции (модуль часто может быть собран отдельно от ядра или поставлен в предкомпилированном виде) ни перезагрузок.
Микроядро — это минимальная реализация функций ядра операционной системы.
Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов или системных вызовов, реализующих базовые сервисы операционной системы.
К ним относятся:
Все остальные сервисы ОС, в классических монолитных ядрах предоставляемые непосредственно ядром, в микроядерных архитектурах реализуются в адресном пространстве, отличном от пространства ядра, и называются сервисами. Примерами таких сервисов, выносимых в пространство пользователя в микроядерных архитектурах, являются сетевые сервисы, файловая система, драйверы.
Преимущества:
Основное достоинство микроядерной архитектуры — высокая степень модульности ядра операционной системы. Это существенно упрощает добавление в него новых компонентов. В микроядерной операционной системе можно, не прерывая её работы, загружать и выгружать новые драйверы, файловые системы и т. д. Существенно упрощается процесс отладки компонентов ядра, так как новая версия драйвера может загружаться без перезапуска всей операционной системы. Компоненты ядра операционной системы ничем принципиально не отличаются от пользовательских программ, поэтому для их отладки можно применять обычные средства. Микроядерная архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра.
И чтобы добавить в ОС с микроядром драйвер того или иного устройства, не надо перекомпилировать всё ядро, а надо лишь отдельно откомпилировать этот драйвер и запустить его в пользовательском пространстве.
Недостатки:
В то же время микроядерная архитектура операционной системы вносит дополнительные накладные расходы, связанные с обменом сообщениями, что отрицательно влияет на производительность. Для того чтобы микроядерная операционная система по скорости не уступала операционным системам на базе монолитного ядра, требуется очень аккуратно проектировать разбиение системы на компоненты, стараясь минимизировать взаимодействие между ними. Таким образом, основная сложность при создании микроядерных операционных систем — необходимость очень аккуратного проектирования.
Классическим примером микроядерной системы является Symbian OS. Это пример распространенной и отработанной микроядерной (a начиная c версии Symbian OS v8.1, и наноядерной) операционной системы.
Наноядро — архитектура ядра операционной системы компьютеров, в рамках которой крайне упрощённое и минималистичное ядро выполняет лишь одну задачу — обработку аппаратных прерываний, генерируемых устройствами компьютера. После обработки прерываний от аппаратуры наноядро, в свою очередь, посылает информацию о результатах обработки (например, полученные с клавиатуры символы) вышележащему программному обеспечению при помощи того же механизма прерываний. Также часто реализуют минимальную поддержку потоков: создание и переключение.
Информация о работе Анализ архитектур ядер операционных систем