Базовая архитектура операционной системы. Понятие ядра системы. Классификация операционных систем в зависимости от особенностей архитектуры ядра.

Intel и Интел-совместимые процессоры обеспечивают несколько режимов исполнения кода, а именно 4. Эти режимы можно представить в виде колец защиты, и по ним строится система разграничения доступа:

 

 


0 – любые команды процессора

1- Все команды, кроме некоторых

2- Еще ограничения

3- Лишь ограниченный набор команд (не дает изменить важные параметры системы)

 

На самом деле сейчас используются только два режима: 0 и 3.

Итак, ЯДРО – это код, исполняемый в режиме 0.

А пользовательские программы исполняются в режиме 3.

 

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

 

В классической архитектуре модули ОС делятся на 2 группы:

 

(Модуль– это программа или ее часть, которая имеет логическое обособление и свою функцию и может быть загружена/выгружена в память в процессе работы. Часто представлена в виде отдельного файла или динамически подгружаемой библиотеки).

 

- модули, выполняющие основные ф-и ОС – ЯДРО

* управление процессами

* памятью

* файлами

* устройствами ввода-вывода и тд

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

 

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

Это:

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

- либы процедур и функций (математических ф-й, либа ввода-вывода)

- проги, предоставляющие юзеру доп услуги (игры, калькулятор)

- системные обрабатывающие проги (текстовые и графические редакторы, компиляторы, компоновщики, отладчики);

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

 

Работа системы с привилегированным ядром замедляется за счет необходимости переключения туды-сюды при выполнении системных вызовов.

 

 

В некоторых ОС (например, в чисто серверной Novell NetWare) вся работа идет в режиме ядра. Но там нет прикладных процессов, соответственно, не нужна защита, и система работает быстро и хорошо.

 

По архитектуре ядра системы можно разделить на:

- 1) Монолитная архитектура ядра

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

 

Плюсы:

- максимальная производительность

- высокая скорость (все внутри одной программы)

Минусы:

- объемное ядро -> экспоненциальная зависимость – снижается надежность.

 

Эта архитектура (или ее элементы) используется во всех современных ОС.

 

-2) Слоистая архитектура ядра

Наиболее распространена. Предложена Дейкстра.

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

Плюсы:

- инкапсуляция, сокрытые реализации (слои можно независимо модифицировать, главное – не затрагивать АПИ)

- разработкатакой системы удобна и управляема

- выше ее надежность(объемность снижается)

- выше гибкость

Минусы

- снижается производительность(обращение прикладной программы идет последовательно по слоям)

 

Слои (снизу вверх)

- Машинно-зависимые компоненты (то, что выполняется непосредственно железом);

- Базовые механизмы ядра (самые примитивные операции: переключение контекстов, диспетчеризация прерываний, подкачка страниц);

- Менеджеры ресурсов (управляют основными ресурсами компа: файловой системой, процессами, вводом-выводом)

- Интерфейс системных вызовов – АПИ, обслуживает системные вызовы.

 

-3) Микроядерная архитектура:

Принцип – минимизировать ядро. Построена по принципу клиент-серверной организации.

· То, что отвечает за работу аппаратуры + базовые операции = ЯДРО

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

 

Плюсы:

- ядро превратилось в микроядро, это повышает надежность.

- гибкая структура, легко расширяется. Очень удобна для распределенных систем.

- надежная система (все серверы работают в своем адресном пространстве + крах одного сервера не затрагивает работу других)

- поддерживает распределенные вычисления

- хорошая переносимость(весь машинно зависимый код изолирован в микроядре)

 

Минусы:

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