Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 02.docx
Скачиваний:
41
Добавлен:
26.09.2019
Размер:
1.41 Mб
Скачать

Экзоядро

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

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

Наноядро

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

Ядро уже является в меньшей степени ядром, а в большей степени уровнем абстракции аппаратного обеспечения (HAL). Нано-ядро обеспечивает возможность совместного использования аппаратных ресурсов для нескольких операционных систем, которые выполняются на более высоком уровне (см. рисунок 4). Так как нано-ядро позволяет абстрагировать аппаратное обеспечение, то оно способно управлять приоритетами операционных систем, исполняемых на более высоком уровне, и благодаря этому, обеспечивать жесткую поддержку режима реального времени.

Архитектура ядра Windows nt 5.0

Название (кодовое название), варианты

номер версии

Windows 2000 (Cairo)

5.0.2195

Windows XP (Whistler)

5.1.2600

Windows Server 2003 (Whistler Server, Windows .NET Server)

5.2.3790

Windows Vista (Longhorn)

6.0.6000

Windows Server 2008 (Longhorn Server)

6.0.6001

Windows 7 (Blackcomb, Vienna)

6.1.7600

Windows Server 2008 R2

6.1.7600

Архитектура системы

Рис.1 Архитектура Windows NT и ее компонентов

На рис. 1 приведена общая архитектура Windows NT и ее компонентов. Элементы над разделительной линией представляют собой процессы пользовательского режима, а под ней располагаются процессы операционной системы, выполняемые ядром. Потоки пользовательского режима выполняются в защищенном адресном пространстве. Однако, во время их выполнения в режиме ядра, они получают доступ к системному пространству. Таким образом, системные процессы, процессы сервера (службы), подсистема среды или пользовательское приложение имеют свое собственное адресное пространство.

Windows NT 3.1, Windows NT 3.5, Windows NT 3.51, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008 и Windows 7 являются частью семейства операционных систем на ядре NT. Все они являются операционными системами с вытесняющей многозадачностью. Они разработаны для работы как с однопроцессорными, так и с симметричными мультипроцессорными компьютерами.

Архитектура Windows NT имеет модульную структуру и состоит из двух основных уровней - компоненты, работающие в режиме пользователя и компоненты режима ядра. Программы и подсистемы, работающие в режиме пользователя имеют ограничения на доступ к системным ресурсам. Режим ядра имеет неограниченный доступ к системной памяти и внешним устройствам. Ядро системы NT называют гибридным ядром или макроядром. Архитектура включает в себя само ядро, уровень аппаратных абстракций (HAL), драйверы и ряд служб (Executives), которые работают в режиме ядра (Kernel-mode drivers) или в пользовательском режиме (User-mode drivers).

Пользовательский режим Windows NT состоит из подсистем, передающих запросы ввода\вывода соответствующему драйверу режима ядра посредством менеджера ввода\вывода. Есть две подсистемы на уровне пользователя: подсистема окружения (запускает приложения, написанные для разных операционных систем) и интегрированная подсистема (управляет особыми системными функциями от имени подсистемы окружения). Режим ядра имеет полный доступ к аппаратной части и системным ресурсам компьютера. И также предотвращает доступ к критическим зонам системы со стороны пользовательских служб и приложений.

Ядро

Ядро NTOSKRNL.EXE выполняет большинство основных операций NT, определяющих порядок использования процессора: диспетчеризация потоков; диспетчеризация и обработка исключений; cинхронизация работы процессоров; обеспечение базовых объектов ядра, которые используются исполняемой частью (и в некоторых случаях экспортируются в режим пользователя).

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

Объекты ядра. Одна из функций ядра - обеспечение низкоуровневой базы для хорошо определенных примитивов операционной системы, которые обеспечивают работу компонентов высшего уровня. Ядро изолирует само себя от остальной части ОС, что позволяет вынести принятие политических решений из ядра, за исключением диспетчеризации потоков. Ядро использует набор простейших объектов, называемых объектами ядра, позволяющих управлять работой центрального процессора и порядком создания вычисляемых объектов. Большинство вычисляемых объектов включает в себя один или более объектов ядра, включая определенные ядром атрибуты. Один из наборов объектов называется объектами управления и включает объект процесса ядра, объект АРС, объект процедуры отложенного вызова DPC (Deferred Procedure Call) и несколько объектов, используемых системой ввода/вывода (например, объект обработки прерывания).

Другой набор объектов ядра - объекты диспетчеризации, включает объекты синхронизации потоков, поток ядра, mutex, объекты события, семафора, таймера, таймера ожидания и ряд других.

Поддержка оборудования. Другой главнейшей задачей ядра является абстрагирование (или изоляция) исполняемой части и драйверов устройств от различий микропроцессорных платформ, на которых способна работать Windows NT: х86 и Alpha AXP. Специфичные для архитектуры функции (такие, как контекстное переключение потока) реализованы в ядре. Функции, которые могут отличаться от машины к машине, реализованы в составе HAL.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]