Типы архитектур ядер операционных систем, их преимущества и недостатки. Ядра, используемые различными операционными системами

Автор работы: Пользователь скрыл имя, 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

Файлы: 1 файл

Курсовая (1 курс).docx

— 49.65 Кб (Скачать файл)

    

МИНИСТЕРСТВО ОБРАЗОВАНИЯ  И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ  БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ  УНИВЕРСИТЕТ»

 

 

Филиал АлтГУ в г. Славгороде

 Кафедра гуманитарных  и естественнонаучных дисциплин

Курсовая работа

По предмету: «Операционные  системы»

на тему: «Типы архитектур ядер операционных систем, их преимущества и недостатки. Ядра, используемые различными операционными системами»

 

Выполнил студент

* курса, группы*

**********

__________________

(подпись)

Научный руководитель

К. ф-м. н., доцент

******

_________________

(подпись)

Работа защищена

_________20__г.

Оценка__________

 

 

 

 

Славгород  2012

СОДЕРЖАНИЕ

ВВЕДЕНИЕ 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

 

ВВЕДЕНИЕ

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

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

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

Поставленная цель позволила  сформулировать задачи:

1) ознакомиться с основными  видами архитектур ядер операционной системы;

2) рассмотреть понятие,  касающиеся операционной системы;

3) выявить преимущества и недостатки ядер.

Объект исследования – ядра операционных систем.

Предмет исследования –  преимущества и недостатки различных  ядер операционных систем.

 

  1. ОБЩИЕ СВЕДЕНИЯ О ЯДРЕ ОПЕРАЦИОННОЙ СИСТЕМЫ

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

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

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

Ядро операционной системы - часть операционной системы:

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

Все операции, связанные  с процессами, выполняются под  управлением той части операционной системы, которая называется  ядром. Ядро представляет собой лишь небольшую  часть кода операционной системы  в целом, однако оно относится  к числу наиболее интенсивно используемых компонент системы. По этой причине  ядро обычно резидентно размещается  в основной памяти, в то время  как другие части операционной системы  перемещаются во внешнюю память и  обратно по мере необходимости [1, с.145-147].

Одной из самых важных функций, реализованных в ядре, является обработка  прерываний. В больших многоабонентских системах в процессор поступает  постоянный поток прерываний. Быстрая реакция на эти прерывания играет весьма важную роль с точки зрения полноты использования ресурсов системы и обеспечения приемлемых значений времени ответа для пользователей, работающих в диалоговом режиме [2, c. 311-315].

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

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

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

 

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

  • Монолитное ядро
  • Модульное ядро
  • Микроядро
  • Экзоядро
  • Наноядро
  • Гибридное ядро

Ядро не участвует в  конкуренции за ресурсы и системной  задачей не является. Все необходимые  ему ресурсы выделяются отдельно от других задач, фиксировано (часть  оперативной памяти). Процессор предоставляется  ядру вне конкуренции по прерываниям [3 c.312-317].

 

2 ТИПЫ АРХИТЕКТУР ЯДЕР ОПЕРАЦИОННЫХ СИСТЕМ, ИХ ПРЕИМУЩЕСТВА И НЕДОСТАТКИ

2.1 Монолитное и модульное ядра

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

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

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

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

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

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

Монолитным ядром является еще и Linux. Оно оптимизировано для  более высокой производительности с минимальными контекстными переключениями. Такая архитектура упрощает поддержку  кода ядра для разработчиков, но требует  перекомпиляции ядра при добавлении новых устройств. Следует отметить, что описанные здесь различия являются «классическими», на практике монолитные ядра могут поддерживать модульность (что зачастую и происходит), а микроядра могут требовать  перекомпиляции [6].

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

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

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

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

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

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

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

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

Модульные ядра предоставляют  особый программный интерфейс (API) для  связывания модулей с ядром, для  обеспечения динамической подгрузки  и выгрузки модулей. В свою очередь, не любая программа может быть сделана модулем ядра: на модули ядра накладываются определённые ограничения  в части используемых функций (например, они не могут пользоваться функциями  стандартной библиотеки С/С++ и должны использовать специальные аналоги, являющиеся функциями API ядра). Кроме  того, модули ядра обязаны экспортировать определённые функции, нужные ядру для  правильного подключения и распознавания  модуля, для его корректной инициализации  при загрузке и корректного завершения при выгрузке, для регистрации  модуля в таблице модулей ядра и для обращения из ядра к сервисам, предоставляемым модулем.

Не все части ядра могут  быть сделаны модулями. Некоторые  части ядра всегда обязаны присутствовать в оперативной памяти и должны быть жёстко «вшиты» в ядро. Также  не все модули допускают динамическую подгрузку (без перезагрузки ОС). Степень модульности ядер (количество и разнообразие кода, которое может быть вынесено в отдельные модули ядра и допускает динамическую подгрузку) различна в различных архитектурах модульных ядер. Ядро «Linux» в настоящее время имеет более модульную архитектуру, чем ядра *BSD (FreeBSD, NetBSD, OpenBSD) [9].

Преимущества модульного ядра:

  • Он загружает/выгружает модули по запросу, что позволяет экономить память;
  • Не требуется останавливать систему при добавлении нового драйвера.

2.2 Микро и экзо ядра

Микроядро — это минимальная  реализация функций ядра операционной системы.

Микроядро архитектурно является практически полной противоположностью монолитному ядру, в том числе  и в улучшенном, модульном варианте. Принципиальная разница между ними заключается в том, что в случае микроядерной архитектуры функции, возлагаемые на ядро операционной системы, разделяются между несколькими  независимыми модулями, которые выполняются  в отдельных адресных пространствах  и по сути ничем, кроме функций, не отличаются от обычных прикладных программ. «Идеальное» микроядро в такой  системе выполняет лишь одну функцию: обеспечивает обмен информацией  между различными программами, в  том числе между модулями, образующими  «большое ядро» ОС и выполняющими в совокупности те же функции, что одно монолитное ядро [10].

Информация о работе Типы архитектур ядер операционных систем, их преимущества и недостатки. Ядра, используемые различными операционными системами