Микроядерные операционные среды

Автор работы: Пользователь скрыл имя, 07 Апреля 2014 в 22:18, реферат

Краткое описание

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

Вложенные файлы: 1 файл

Федеральное государственное бюджетное образовательное учреждение.docx

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

 

 

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«РОССИЙСКАЯ АКАДЕМИЯ НАРОДНОГО ХОЗЯЙСТВА и

ГОСУДАРСТВЕННОЙ СЛУЖБЫ

при Президенте Российской Федерации»

 

ЭКОНОМИЧЕСКИЙ ФАКУЛЬТЕТ

ОТДЕЛЕНИЕ БИЗНЕС-ИНФОРМАТИКИ

направление 080700.6__ -Бизнес – информатика

 

 

 

 

 

 

РЕФЕРАТ

 

ПО ДИСЦИПЛИНЕ Операционные среды, системы и оболочки

 

НА ТЕМУ Микроядерные операционные среды

 

 

 

 

 

 

 

 

Студента  1 курса

 

группы №  1.2

 

Фамилия  Стрельникова

Имя Анастасия

Отчество  Игоревна

_____________________ Подпись студента

 

 

 

 

Преподаватель _ ____________________________

                                                                 (Ф.И.О.)

 

Оценка ______________

 

Подпись преподавателя ____________ 

 

 

 

МОСКВА

2012

 

 

 

 

 

 Введение.

Микроядро.

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

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

  1. − управление виртуальной памятью;
  2. − задания и потоки;
  3. − межпроцессные коммуникации (IPC Inter-Process-Communication);
  4. − управление поддержкой ввода-вывода и прерываниями;
  5. − сервисы набора хоста (Host − главный компьютер, сейчас ПК с IP-адресом) и процессора.

 

Переход к микроядерной архитектуре.

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

Рис.1

Схема смены режимов при выполнении системного вызова в ОС с микроядерной  архитектурой выглядит, как показано на рис. 1.8. Из рисунка ясно, что выполнение  системного вызова сопровождается четырьмя переключениями режимов (4 t), в то  время как в классической архитектуре – двумя. Следовательно, производительность ОС  с микроядерной архитектурой при прочих равных условиях будет ниже, чем у ОС с  классическим ядром.

 

Обработка системного вызова в микроядерной архитектуре .

Признаны следующие достоинства микроядерной архитектуры :

  1. единообразные интерфейсы;
  2. простота расширяемости;
  3. высокая гибкость;
  4. возможность переносимости;
  5. высокая надежность;
  6. поддержка распределенных систем;
  7. поддержка объектно-ориентированных ОС.

По многим источникам вопрос масштабов потери производительности в микроядерных ОС является спорным. Многое зависит от размеров и функциональных возможностей микроядра. Избирательное увеличение функциональности микроядра приводит к снижению количества переключений между режимами системы, а также переключений адресных пространств процессов. Может быть, это покажется парадоксальным, но есть и такой подход к микроядерной ОС, как уменьшение микроядра. Для возможности представления о размерах микроядер операционных систем в ряде источников приводятся такие данные: типичное микроядро первого поколения – 300 Кбайт кода и 140 интерфейсов системных вызовов; микроядро ОС L4 (второе поколение) – 12 Кбайт кода и 7 интерфейсов системных вызовов.

В современных операционных системах различают следующие виды ядер:

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

2. Микроядро (МЯ) предоставляет только элементарные  функции управления  процессами и минимальный набор абстракций для работы с оборудованием. Большая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами. В микроядерной операционной системе можно, не прерывая ее работы, загружать и выгружать новые драйверы, файловые системы и т. д. Микроядерными являются ядра ОС Minix и GNU Hurd и ядро систем семейства BSD. Классическим примером микроядерной системы является Symbian OS. Это пример распространенной и отработанной микроядерной (a начиная c версии Symbian OS v8.1, и наноядерной) операционной системы. 3. Экзоядро (ЭЯ) предоставляет лишь набор сервисов для взаимодействия между приложениями, а также необходимый минимум функций, связанных с защитой: выделение и высвобождение ресурсов, контроль прав доступа и т. д. ЭЯ не занимается предоставлением абстракций для физических ресурсов – эти функции выносятся в библиотеку пользовательского уровня (так называемую libOS). В отличие от микроядра ОС, базирующиеся на ЭЯ, обеспечивают большую эффективность за счет отсутствия необходимости в переключении между процессами при каждом обращении к оборудованию.

4. Монолитное  ядро (МнЯ) предоставляет широкий набор абстракций оборудования. Все части ядра работают в одном адресном пространстве. МнЯ требуют перекомпиляции при изменении состава оборудования. Компоненты операционной системы являются не самостоятельными модулями, а составными частями одной программы. МнЯ более производительно, чем микроядро, поскольку работает как один большой процесс. МнЯ является большинство Unix- систем и Linux. Монолитность ядер усложняет отладку, понимание кода ядра, добавление новых функций и возможностей, удаление ненужного, унаследованного от предыдущих версий кода. "Разбухание" кода монолитных ядер также повышает требования к объѐму оперативной памяти.

5. Модульное ядро (Мод. Я) – современная, усовершенствованная модификация архитектуры МЯ. В отличие от "классических" МЯ, модульные ядра не требуют полной перекомпиляции ядра при изменении состава аппаратного обеспечения компьютера. Вместо этого они предоставляют тот или иной механизм подгрузки модулей, поддерживающих то или иное аппаратное обеспечение (например, драйверов). Подгрузка модулей может быть как динамической, так и статической (при перезагрузке ОС после переконфигурирования системы). Мод. Я удобнее для разработки, чем традиционные монолитные ядра. Они предоставляют программный интерфейс (API) для связывания модулей с ядром, для обеспечения динамической подгрузки и выгрузки модулей. Не все части ядра могут быть сделаны модулями. Некоторые части ядра всегда обязаны присутствовать в оперативной памяти и должны быть жѐстко "вшиты" в ядро.

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

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

История.

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

Следующей микроядерной операционной системой была Windows NT компании Microsoft, в которой ключевым преимуществом использования микроядра должна была стать не только модульность, но и переносимость. (Заметим, что отсутствует единодушное мнение по поводу того, следует ли на самом деле относить NT к микроядерным ОС.) ОС NT была построена таким образом, чтобы ее можно было применять в одно- и мультипроцессорных системах, основанных на процессорах Intel, Mips и Alpha (и тех, которые придут вслед за ними). Поскольку в среде NT должны были выполняться программы, написанные для DOS, Windows, OS/2 и систем, совместимых со стандартами Posix, компания Microsoft использовала присущую микроядерному подходу модульность для создания общей структуры NT, не повторяющей ни одну из существующих операционных систем. Каждая операционная система эмулируется в виде отдельного модуля или подсистемы.

Позднее микроядерные архитектуры операционных систем были объявлены компаниями Novell/USL, Open Software Foundation (OSF), IBM, Apple и другими. Одним из основных конкурентов NT в области микроядерных ОС является Mach 3.0, которую как IBM, так и OSF взялись довести до коммерческого вида. Другим конкурентом является микроядро Chorus 3.0 компании Chorus  Systems. Некоторое микроядро будет использоваться в SpringOS фирмы Sun, объектно-ориентированном преемнике ОС Solaris. Очевидна тенденция к переходу от монолитных к микроядерным системам. Кстати, это совсем не новость для компаний QNX Software Systems и Unisys, которые уже в течение нескольких лет выпускают пользующиеся успехом микроядерные операционные системы. ОС QNX пользуется спросом на рынке систем реального времени, а CTOS фирмы Unisys популярна в области банкового дела. В обеих системах успешно использована модульность, присущая микроядерным ОС.

 

   

 

 

 

 

  Основная часть.

 

Функции микроядра.

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

 

Переносимость, расширяемость и надежность

Поскольку вся машинно-зависимая часть ОС изолирована в микроядре, для переноса системы на новый процессор требуется меньше изменений и эти изменения логически сгруппированы. При имеющемся разнообразии на рынке процессоров способность операционной системы работать на разных процессорах является единственной возможностью убедить пользователей покупать новые машины. Расширяемость также является необходимым свойством современных операционных систем. В отличие от аппаратных средств, которые устаревают за несколько лет, операционные системы могут с пользой использоваться в течение десятилетий. В жизни каждой операционной системы настает момент, когда в нее требуется внести функции, не заложенные в исходную конструкцию. Микроядерная организация операционных систем позволяет добиться возможности управляемых и надежно работающих расширений на основе ограниченного набора четко определенных интерфейсов микроядра. В действительности, правильнее говорить не только о расширяемости, но и о масштабируемости микроядерных ОС с возможностью получения варианта операционной системы, в наилучшей степени соответствующей особенностям аппаратной платформы и прикладной области. Микроядерная организация ОС позволяет легко добиться и этого качества. Одной из проблем традиционно организованных операционных систем является наличие множества интерфейсов прикладного программирования (API - Application Programming Interface), не все из которых хорошо документированы. В результате невозможно гарантировать правильность программ, использующих несколько API, и даже правильность работы самой операционной системы. Микроядро, обладающее небольшим набором API (микроядро OSF обеспечивает около 200 системных вызовов, а крохотное микроядро QNS - всего лишь 14), увеличивает шансы получения качественных программ. Конечно, этот компактный интерфейс облегчает жизнь только системных программистов; прикладной программист по прежнему должен бороться с сотнями вызовов.

Информация о работе Микроядерные операционные среды