Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tema_5_1.rtf
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
4 Мб
Скачать
☆

Уровень аппаратных абстракций

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

Рисунок 5.2 – Упрощенная структура Windows 2000

Работа уровня HAL заключается в том, чтобы предоставлять всей остальной системе абстрактные аппаратные устройства (без индивидуальных отличительных особенностей, которыми так богато реальное аппаратное обеспечение). Эти устройства представляются в виде машинно-зависимых служб (процедурные вызовы и макросы), которые могут использоваться остальной ОС и драйверами. Драйверы и ядро пользуются службами HAL и не обращаются напрямую к устройствам. По этому требуется значительно меньше изменений для их переноса на другую платформу. А перенос самого уровня HAL довольно прост, т.к. весь код сконцентрирован в одном месте и цель переделки четко определена. Уровень HAL разработан, для того чтобы скрывать различия между материнскими платами различных производителей, а не различия между процессорами. К службам уровня HAL относят:

  • доступ к регистрам устройств;

  • адресация к устройствам, независящим от шины;

  • обработка прерываний и возврат прерываний;

  • операции DMA;

  • управление таймерами, часами реального времени.

Уровень HAL не представляет абстракций или служб для специфических устройств ввода \ вывода (клавиатур, мышей или дисков). Поскольку HAL должен в совершенстве соответствовать системе, на которой установлен, поэтому набор различных уровней HAL поставляется на диске вместе с ОС. При установке системы из них выбирается подходящий уровень и копируется на HDD в системный каталог \winnt\system32 в виде файла hal.dll. При всех последующих загрузках ОС используется эта версии уровня HAL. Если удалить этот файл, то система загрузиться не сможет.

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

Уровень ядра

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

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

Ядро предоставляет:

  • абстрактную модель аппаратуры более высоким уровням;

  • управляет переключениями потоков;

  • низкоуровневую поддержку двум классам объектов – управляющим объектам и объектам диспетчеризации.

Эти два класса объектов представляют собой внутренние объекты, на основе которых исполняющая система строит объекты пользователя.

Управляющие объекты – это объекты, которые управляют системой, включая примитивные объекты процессов, прерываний, DPC (Deferred Procedure Call – отложенный вызов процедуры) и APC (Asynchronous Procedure Call – асинхронный вызов процедуры).

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

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