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



Одна из целей создания 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 \ system 32 в виде файла hal . dll. При всех последующих загрузках ОС используется эта версии уровня HAL. Если удалить этот файл, то система загрузиться не сможет.

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

 

Уровень ядра

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

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

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

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

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

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

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

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

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

 

Исполняющая система

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

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

Менеджер ввода-вывода – формирует каркас для управления устройствами ввода-вывода и предоставляет общие службы ввода-вывода. Здесь также располагаются все драйверы устройств. Файловые системы формально являются драйверами устройств под управлением менеджера ввода-вывода. Существует два драйвера для FAT и NTFS, независимые друг от друга и управляющие различными разделами диска.

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

Менеджер безопасности – приводит в исполнение сложный механизм безопасности.

Менеджер кэша - хранит в памяти блоки диска, которые использовались в последнее время, чтобы ускорить доступ к ним в случае, если они понадобятся вновь.

Менеджер plug - and - play – получает все уведомления об установленных новых устройствах. У некоторых устройств проверка осуществляется при загрузке ОС. Но есть устройства, которые могут подключаться в любое время (USB – Universal Serial Bus – универсальная последовательная шина), и их запуск осуществляет менеджер plug-and-play, который находит и загружает соответствующий драйвер.

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

Менеджер конфигурации – отвечает за состояние реестра. Он добавляет новые записи и ищет запрашиваемые ключи.

Менеджер вызова локальной процедуры – обеспечивает высокоэффективное взаимодействие между процессами и их подсистемами.

 


Дата добавления: 2018-09-22; просмотров: 343; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!