Автор работы: Пользователь скрыл имя, 01 Июля 2013 в 17:54, курсовая работа
Цель работы состоит в рассмотрении различных типов архитектур ядер операционных систем и выявлении различий.
Поставленная цель позволила сформулировать задачи:
1) ознакомиться с основными видами архитектур ядер операционной системы;
2) рассмотреть понятие, касающиеся операционной системы;
3) выявить преимущества и недостатки ядер.
Объект исследования – ядра операционных систем.
ВВЕДЕНИЕ 3
1 ОБЩИЕ СВЕДЕНИЯ О ЯДРЕ ОПЕРАЦИОННОЙ СИСТЕМЫ 4
2 ТИПЫ АРХИТЕКТУР ЯДЕР ОПЕРАЦИОННЫХ СИСТЕМ, ИХ ПРЕИМУЩЕСТВА И НЕДОСТАТКИ 7
2.1 Монолитное и модульное ядра 7
2.2 Микро и экзо ядра 10
2.3 Гибридное и Наноядра 14
3 ЯДРА, ИСПОЛЬЗУЕМЫЕ РАЗЛИЧНЫМИ ОПЕРАЦИОННЫМИ СИСТЕМАМИ 17
3.1 Монолитное и модульное ядра 17
3.2 Микро и экзо ядра 17
3.3 Гибридное и Наноядра 19
ЗАКЛЮЧЕНИЕ 21
ЛИТЕРАТУРА 22
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ
БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
«АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Филиал АлтГУ в г. Славгороде
Кафедра гуманитарных и естественнонаучных дисциплин
Курсовая работа
По предмету: «Операционные системы»
на тему: «Типы архитектур ядер операционных систем, их преимущества и недостатки. Ядра, используемые различными операционными системами»
Выполнил студент
* курса, группы*
**********
__________________
(подпись)
Научный руководитель
К. ф-м. н., доцент
******
_________________
(подпись)
Работа защищена
_________20__г.
Оценка__________
Славгород 2012
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 3
1 ОБЩИЕ СВЕДЕНИЯ О ЯДРЕ ОПЕРАЦИОННОЙ СИСТЕМЫ 4
2
ТИПЫ АРХИТЕКТУР ЯДЕР
2.1 Монолитное и модульное ядра 7
2.2 Микро и экзо ядра 10
2.3 Гибридное и Наноядра 14
3 ЯДРА, ИСПОЛЬЗУЕМЫЕ РАЗЛИЧНЫМИ ОПЕРАЦИОННЫМИ СИСТЕМАМИ 17
3.1 Монолитное и модульное ядра 17
3.2 Микро и экзо ядра 17
3.3 Гибридное и Наноядра 19
ЗАКЛЮЧЕНИЕ 21
ЛИТЕРАТУРА 22
Темой данной работы является изучение различных архитектур типов ядер операционных систем, а так же их преимущества и недостатки.
Все операции, связанные
с процессами, выполняются под
управлением той части
Цель работы состоит в рассмотрении различных типов архитектур ядер операционных систем и выявлении различий.
Поставленная цель позволила сформулировать задачи:
1) ознакомиться с основными видами архитектур ядер операционной системы;
2) рассмотреть понятие,
касающиеся операционной
3) выявить преимущества и недостатки ядер.
Объект исследования – ядра операционных систем.
Предмет исследования – преимущества и недостатки различных ядер операционных систем.
Ядро операционной системы
— центральная часть
Как основополагающий элемент
ОС, ядро представляет собой наиболее
низкий уровень абстракции для доступа
приложений к ресурсам системы, необходимым
для их работы. Как правило, ядро
предоставляет такой доступ исполняемым
процессам соответствующих
Описанная задача может различаться в зависимости от типа архитектуры ядра и способа её реализации.
Ядро операционной системы - часть операционной системы:
Все операции, связанные
с процессами, выполняются под
управлением той части
Одной из самых важных функций, реализованных в ядре, является обработка прерываний. В больших многоабонентских системах в процессор поступает постоянный поток прерываний. Быстрая реакция на эти прерывания играет весьма важную роль с точки зрения полноты использования ресурсов системы и обеспечения приемлемых значений времени ответа для пользователей, работающих в диалоговом режиме [2, c. 311-315].
Когда ядро обрабатывает текущее
прерывание, оно запрещает другие
прерывания и разрешает их снова
только после завершения обработки
текущего прерывания. При постоянном
потоке прерываний может сложиться
такая ситуация, что ядро будет
блокировать прерывания в течение
значительной части времени, т. е. не
будет иметь возможности
Ядро операционной системы, как правило, содержит программы для реализации следующих функций:
Типы архитектур ядер операционных систем:
Ядро не участвует в конкуренции за ресурсы и системной задачей не является. Все необходимые ему ресурсы выделяются отдельно от других задач, фиксировано (часть оперативной памяти). Процессор предоставляется ядру вне конкуренции по прерываниям [3 c.312-317].
2.1 Монолитное и модульное ядра
Монолитное ядро — классическая и, на сегодняшний день, наиболее распространённая архитектура ядер операционных систем. Монолитные ядра предоставляют богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве. Монолитное ядро предоставляет богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве.
Старые монолитные ядра требовали перекомпиляции при любом изменении состава оборудования. Большинство современных ядер позволяют во время работы подгружать модули, выполняющие части функции ядра.
Во многих операционных системах
с монолитным ядром сборка ядра,
то есть его компиляция, осуществляется
отдельно для каждого компьютера,
на который устанавливается
В монолитном ядре выделяются
вкрапления сервисных процедур, соответствующих
системным вызовам. Сервисные процедуры
выполняются в
Если в ОС с таким ядром вылетит какой-либо процесс, то он может быть автоматически перезапущен, а с цельным ядром в случае вылетания процесса, входящего в состав ядра, надо перезапускать всё ядро.
В частности, монолитное ядро более производительно, чем микроядро, поскольку состоит не из множества разрозненных процессов, «общающихся» между собой, а работает как один большой процесс.
Монолитным ядром является
еще и Linux. Оно оптимизировано для
более высокой
Достоинства: Скорость работы, упрощённая разработка модулей.
Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы.
В этом случае компоненты операционной системы являются не самостоятельными модулями, а составными частями одной большой программы. Такая структура операционной системы называется монолитным ядром (monolithic kernel). Монолитное ядро представляет собой набор процедур, каждая из которых может вызвать каждую. Все процедуры работают в привилегированном режиме.
Таким образом, монолитное ядро — это такая схема операционной системы, при которой все ее компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова процедур [7].
Модульное ядро — современная,
усовершенствованная
В отличие от «классических» монолитных ядер, считающихся ныне устаревшими, модульные ядра, как правило, не требуют полной перекомпиляции ядра при изменении состава аппаратного обеспечения компьютера. Вместо этого модульные ядра предоставляют тот или иной механизм подгрузки модулей ядра, поддерживающих то или иное аппаратное обеспечение (например, драйверов). При этом подгрузка модулей может быть как динамической (выполняемой «на лету», без перезагрузки ОС, в работающей системе), так и статической (выполняемой при перезагрузке ОС после переконфигурирования системы на загрузку тех или иных модулей).
Все модули ядра работают в адресном пространстве ядра и могут пользоваться всеми функциями, предоставляемыми ядром. Поэтому модульные ядра продолжают оставаться монолитными.
Модульные ядра удобнее для разработки, чем традиционные монолитные ядра, не поддерживающие динамическую загрузку модулей, так как от разработчика не требуется многократная полная перекомпиляция ядра при работе над какой-либо его подсистемой или драйвером. Выявление, локализация, отладка и устранение ошибок при тестировании также облегчаются [8].
Модульные ядра предоставляют
особый программный интерфейс (API) для
связывания модулей с ядром, для
обеспечения динамической подгрузки
и выгрузки модулей. В свою очередь,
не любая программа может быть
сделана модулем ядра: на модули
ядра накладываются определённые ограничения
в части используемых функций (например,
они не могут пользоваться функциями
стандартной библиотеки С/С++ и должны
использовать специальные аналоги,
являющиеся функциями API ядра). Кроме
того, модули ядра обязаны экспортировать
определённые функции, нужные ядру для
правильного подключения и
Не все части ядра могут быть сделаны модулями. Некоторые части ядра всегда обязаны присутствовать в оперативной памяти и должны быть жёстко «вшиты» в ядро. Также не все модули допускают динамическую подгрузку (без перезагрузки ОС). Степень модульности ядер (количество и разнообразие кода, которое может быть вынесено в отдельные модули ядра и допускает динамическую подгрузку) различна в различных архитектурах модульных ядер. Ядро «Linux» в настоящее время имеет более модульную архитектуру, чем ядра *BSD (FreeBSD, NetBSD, OpenBSD) [9].
Преимущества модульного ядра:
2.2 Микро и экзо ядра
Микроядро — это минимальная реализация функций ядра операционной системы.
Микроядро архитектурно является практически полной противоположностью монолитному ядру, в том числе и в улучшенном, модульном варианте. Принципиальная разница между ними заключается в том, что в случае микроядерной архитектуры функции, возлагаемые на ядро операционной системы, разделяются между несколькими независимыми модулями, которые выполняются в отдельных адресных пространствах и по сути ничем, кроме функций, не отличаются от обычных прикладных программ. «Идеальное» микроядро в такой системе выполняет лишь одну функцию: обеспечивает обмен информацией между различными программами, в том числе между модулями, образующими «большое ядро» ОС и выполняющими в совокупности те же функции, что одно монолитное ядро [10].