Методическая разработка к теоретическому занятию "Структура операционных систем. Виды ядра операционных систем. Микроядерная архитектура"

Разделы: Информатика, Конкурс «Презентация к уроку»


Презентация к уроку

Загрузить презентацию (443 кБ)


ФОРМА: Теоретическое занятие.

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

ЗАДАЧИ:

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

УЧАСТНИКИ ЗАНЯТИЯ: студенты групп 2 курса специальности 09.02.07 Информационные системы и программирование.

ПРОДОЛЖИТЕЛЬНОСТЬ: 4 академических часа.

ОБОРУДОВАНИЕ: Экран и мультимедийный проектор, персональный компьютер (ноутбук).

ПОДГОТОВКА: Разработка презентации. Теста для контроля знаний.

Ход занятия

1 этап - Мотивационно-целевой (организация начала учебного занятия, определение темы, определение цели и задач, опрос по предыдущей теме).

2 этап - Операционно-деятельностный (на данном этапе перехожим к демонстрации презентации по теме из приложения к данным методическим рекомендациям).

3 этап - Рефлексивно-оценочный (оценивание студентов, ответы на вопросы студентов по пройденной теме и информирование о предстоящем тестировании из Приложения к данным методическим рекомендациям).

1 ЭТАП - МОТИВАЦИОННО-ЦЕЛЕВОЙ

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

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

- Но для начала повторим вопросы по прошлой теме (вопросы формируются преподавателем индивидуально в соответствии с рабочей программой).

2 ЭТАП - ОПЕРАЦИОННО-ДЕЯТЕЛЬНОСТНЫЙ

Определение архитектуры ОС

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

Структура операционной системы

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

Ядро = ключевой, основной компонент операционной системы, именно в нем реализуется большая часть функциональности ОС, включает модули, выполняющие основные функции ОС:

  • управление процессами;
  • управление памятью;
  • управление вводом-выводом и файловая система;
  • интерфейс прикладного программирования API (Application Program Interface) для поддержки обращений к ядру из приложений.

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

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

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

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

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

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

Привилегированный и пользовательский режим

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

Поэтому аппаратура компьютера поддерживает как минимум два режима:

  • пользовательский режим (usermode) - для работы приложений;
  • привилегированный режим, он же - режим ядра (kernelmode) - для работы ОС или ее частей.

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

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

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

Рассмотрим три вида ядер - монолитные ядра, классическая структура и микроядра.

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

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

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

  • планирование процессов;
  • управление файловой системой;
  • сетевое взаимодействие;
  • драйверы устройств;
  • управление памятью.

Монолитный подход - простейший

  • нет определенной структуры;
  • нет уровней;
  • нет разделения на модули.

Определенной структуры данные операционной системы не имеют. Это большой набор сервисных функций.

Преимущества:

  • Производительность - в виду того, что количество переключений из контекста режима пользователя в режим ядра сведено к минимуму;

Недостатки:

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

Многослойный подход = Архитектура ОС, основанная на привилегированном ядре и приложениях пользовательского режима, по существу, является классической.

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

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

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

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

Трехслойная структура вычислительной системы

Многослойный подход применим и к структуре ядра как сложного многофункционального комплекса.

Многослойная структура ядра ОС

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

Машино-зависимые модули - программные модули, в которых отображается специфика аппаратной платформы компьютера. В идеале этот слой полностью экранирует вышележащие слои от особенностей аппаратуры, т.е. позволяет делать модули вышележащих слоев машинно-независимыми (пригодными для всех типов платформ, поддерживаемых данной ОС). Примером может служить слой HAL (Hardware Abstraction Layer) в Windows NT/2000. На уровне HAL работа с устройством определенного типа (накопитель, видеоплата, мышь и т.п.) всегда описывается при помощи одного и того же заранее определенного набора функций. В случае, если устройство имеет иной набор функций (например, устаревший 3d-ускоритель может не поддерживать многих современных функций), драйвер обязан эмулировать стандартные функции с тем, чтобы ОС могла не заботиться о том, какое конкретно устройство установлено.

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

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

Интерфейс системных вызовов. Взаимодействует непосредственно с приложениями и системными утилитами, образуя прикладной программный интерфейс ОС (API).

РЕЗЮМЕ по простейшей структурной организации ОС:

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

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

МИКРОЯДРО

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

Многие сервисы становятся пользовательскими процессами:

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

Данный подход популяризован ядром MACH («МАК»). На основе MACH сделаны, среди прочих, Mac OSX (комп.Apple), GNUHurd.

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

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

Концепция МИКРОЯДЕРНОЙ архитектуры

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

См. продолжение статьи