Главная страница
Навигация по странице:

  • Архитектура Windows NT .

  • Уровень аппаратных абстракций ( HAL) .

  • Архитектура HAL .

  • Уровень ядра.

  • Список литературы

  • Управление аппаратными средствами. Операционные системы, курсовая работа. Техническое задание Тема курсовой работы управление аппаратными средствами на уровне ядра ос семейства Windows nt


    Скачать 475.15 Kb.
    НазваниеТехническое задание Тема курсовой работы управление аппаратными средствами на уровне ядра ос семейства Windows nt
    АнкорУправление аппаратными средствами
    Дата24.12.2020
    Размер475.15 Kb.
    Формат файлаdocx
    Имя файлаОперационные системы, курсовая работа.docx
    ТипТехническое задание
    #163833

    Техническое задание



    Тема курсовой работы: управление аппаратными средствами на уровне ядра ОС семейства Windows NT.
    Цель курсовой работы: изучить механизм управления аппаратными средствами на уровне ядра операционной системы семейства Windows NT и средства, с помощью которых удается осуществить управление.
    Объект исследования курсовой работы: аппаратные средства Windows NT.
    Предмет исследования курсовой работы: уровень аппаратных абст

    ракций.
    Теоретическая часть курсовой работы включает изучение таких основных тем, как:

    • Архитектура Windows NT;

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

    • Архитектура HAL;

    • Уровень ядра.



    Содержание





    Введение 3

    1.1.Архитектура Windows NT. 5

    1.2.Уровень аппаратных абстракций (HAL). 8

    1.3.Архитектура HAL. 13

    1.4.Уровень ядра. 16

    Заключение 18

    Список литературы 19


    Введение
    Windows New Technology (NT) называют серию операционных систем, производителем которой выступает корпорация Microsoft. Отправной точкой развития данного семейства можно считать 1987-1988 годы, когда в свет вышла новая ОС, разработанная Microsoft совместно с IBM, которая называлась OS/2. Вопреки ожиданиям, новая система не принесла коммерческого успеха, и тогда Microsoft направила все усилия для создания единой операционной системы.
    Данный проект было поручено возглавить Дэвиду Катлеру, главному консультанту фирмы DEC. После того, как в мае 1990 г. была выпущена система Windows 3.0, корпорация разорвала отношения с IBM, и проект получил название New Tehnology. Затем стали выпускаться другие версии систем, которые пользуются популярностью и в настоящее время.
    Структура Windows NT может быть представлена в форме двух частей операционной системы: режим пользователя и режим ядра. Режим пользователя отвечает за защищенные подсистемы, которые общаются друг с другом путем отправки сообщений, а те, в свою очередь, проходят через исполняемую часть, которой называют режим ядра. Режим ядра отвечает за ряд важных компонентов, таких, как управление памятью, различными ресурсами и объектами, файловые системы и так далее. В число компонентов, управляемых ядром, входит HAL.
    HAL, или иначе его называют уровнем аппаратных абстракций, - это слой, разделяющий ядро и аппаратное обеспечение, призванный скрывать различия используемой аппаратуры от высших уровней операционной системы. Для ОС, в таком случае, все аппаратные средства выглядят одинаково, независимо от их фактических различий. Благодаря этому, отсутствует необходимость использовать специальные настройки ОС под каждую версию используемого оборудования.
    Основной задача создания уровня абстракций изначально заключалась в подготовке процедур, позволяющих одному драйверу какого-то конкретного устройства поддерживать его в рабочем состоянии сразу для большого числа различных платформ.
    Уровень аппаратных абстракций ориентирован на большое количество аппаратных платформ разного вида с однопроцессорной архитектурой, из-за чего каждому аппаратному решению не нужна индивидуальная версия операционной системы.
    В средства ОС входят и процедуры уровня абстракции, которые так же могут быть включены в состав драйверов устройств. При работе с последними HAL поддерживает различные технологии ввода\вывода, а не ориентируется на конкретную аппаратную реализацию, что значительно снижает затраты.
    В данной курсовой работе будет подробно рассмотрен вопрос управления аппаратными средствами ядра операционной системы семейства Windows NT.


      1. Архитектура Windows NT.


    В линейку операционных систем Windows New Technology (NT) входят Windows NT 3.1, 3.5, 3.51, 4.0, Windows 2000, XP, Server (2003, 2008), Vista, а также Windows 7, 8 и 10.

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

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

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



    Рис. 1. Схема ядра Windows NT.
    Принцип подсистем окружения (персоналий) часто называют первым принципом архитектуры ядра Windows NT. Данный принцип говорит о том, что сервисы операционной системы пользователями используются не напрямую. При запуске приложения оно никогда не будет использовать ядро напрямую, для этого и существуют подсистемы окружения Windows API.
    Благодаря тому, что библиотека подсистему транслирует API в вызов недокументированной функции операционной системы, эти функции можно менять под современные обновления, при этом обратная совместимость с приложениями, разработанными под ОС, остается за счет сохранения документированного API. Существует три подсистемы окружения: Windows, OS/2 и Posix.
    Ядро состоит из следующих компонентов:

    • Kernel – это наиболее низкоуровневые функции операционной системы, например, планирование потоков, мультипроцессорная синхронизация и обработка прерываний;

    • HAL – уровень аппаратных абстракций, разделяющий ядро и аппаратное обеспечение;

    • Executive – службы, реализующие основные сервисы операционной системы, например, управление памятью, потоками, процессами, безопасностью, вводом и выводом, межпроцессорным взаимодействием;

    • Драйвера;

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




      1. Уровень аппаратных абстракций (HAL).


    Как говорилось выше, слой абстракций является частью ядра, который отделяет его от аппаратного обеспечения. Предназначение запускаемого на компьютерах HAL заключается в сокрытии различий аппаратного обеспечения и главной частью ядра ОС. В таком случае, при запуске кода, который работает в режиме ядра, в него не нужно вносить специальных изменений для систем, работающих с различным аппаратным обеспечением.
    Иногда слой абстракций может рассматриваться, как драйвер материнской платы, который позволяет взаимодействовать высокоуровневым языкам программирования с компонентами низкого уровня, например, с аппаратным обеспечением.
    В рассмотренной ранее системе семейства Windows NT HAL – это главная часть кода, запускаемого в режиме ядра, место которой в отдельном модуле загрузок. Она загружается вместе с ядром системы. Благодаря этому, один и тот же загрузочный модуль ядра Windows NT можно использовать и на перечне систем, архитектура шин ввода\вывода и управление прерываниями и таймерами которых различны.
    В качестве примеров можно назвать рабочие станции, которые были основаны на SGL Intel x86 и IBM и не являлись совместимыми друг с другом. Однако HAL позволил запускаться на них Windows NT. Точно таким же образом одно и то же ядро Windows NT может использоваться и на современным системах, и на устаревших, как с контроллером прерываний APIC, так и без него.
    HAL имеется и в других операционных системах: BSD, Mac OS, Linux, MS DOS, но разрабатывался совершенно для других функций. Некоторые систему умеют вставлять слой абстракций во время процесса работы, например, Linux Adeos. А ядро операционной системы NetBSD называют высокопортируемым из-за наличия чистого слоя абстрагирования.
    Необычный пример использования HAL значится в архитектурах system38 и AS400. Компилятором генерируется абстрактный машинный код, который затем преобразуется в собственный код процессора с помощью лицензионного внутреннего кода (LIC). Получившаяся кодовая последовательность запускается на процессоре. Тогда, если использовать скомпилированное на архитектуре system38 программное обеспечение, расположенное над слоем LIC, то оно может быть запущено без использования дополнительных модификаций или перекомпиляций на системах AS400.
    Из-за того, что уровень абстракций взаимодействует напрямую с аппаратным обеспечением взамен ядра системы, он считается самым низким уровнем в компьютерных языках, даже ниже, чем API (программный интерфейс приложения). Однако благодаря этому HAL затрачивает меньше процессорного времени, нежели API. HAL и API – являются наиболее востребованными языками высокого уровня, помогающими взаимодействовать компонентам низкого уровня.
    Операционные системы, обеспеченные HAL, являются портабельными, что положительно влияет на встраиваемые системы, ведь они работают на достаточно большом количестве платформ разных типов.
    Уровень аппаратных абстракций предоставляет всей системе возможность взаимодействовать с абстрактными аппаратными устройствами, которые не зависят от собственных особенностей аппаратуры. Аппаратные устройства представляют собой машинно-независимые службы (процедурные вызовы и макросы), которые используются всей остальной операционной системой и драйверами.
    В уровень аппаратных абстракций обязательно входят службы, зависящие от материнской платы, а также службы, которые постоянно обновляются в разумных, а главное предсказуемых пределах. Уровень был разработан специально для сокрытия различий материнских плат от разных производителей, но не для сокрытия различий процессоров.
    Все функции, которые включены в HAL, можно найти в библиотеке hal.dll в системном каталоге SystemRoot\system32. Взаимодействие систем выглядит следующим образом: ОС связывается с драйвером устройств, тот, в свою очередь, с уровнем абстракций, который передает сигнал аппаратным средствам.
    Службами, расположенными на уровне HAL, являются: доступ к регистрам устройств, обработка и возврат прерываний, управление таймером, адресация устройств, которые не зависят от шины, операции DMA (прямой доступ к памяти), управление часами реального времени, синхронизация конфигураций, блокировка нижнего уровня, интерфейс BIOS, доступ к CMOS-памяти.
    Абстракции и службы уровня аппаратных абстракций не предоставляются для устройств ввода\вывода (клавиатура, мышь, диски, блоки управления памятью). Но он может предоставить целых три процедуры, предназначенные для чтения регистров устройств, а также три для записи. Выглядит это следующим образом:


    uc = READ_PORT_UCHAR(port); WRITE_PQRT_UCHAR(port, uc);
    us = READ_PORT_USHORT(port); WRITE_PORT_ USHORT (port, us);
    ul = READ_ PORT_ULONG(port); WRITE_PORT_ USHORT (port, ul);
    Представленные процедуры способны читать и записывать 8-, 16-, 32-разрядные целые числа без знаков в необходимый порт. Именно уровень аппаратных абстракций реализует эти действия посредством обращения к физическим портам и регистрам. Поскольку драйвер будет использовать именно эти процедуры, то он без проблем может быть перенесен на другую платформу.
    Для того, чтобы определить содержащиеся в системе шины и устройства ввода\вывода и их настройки, после загрузки операционной системы уровень абстракций связывается с BIOS и CMOS. Полученная информация отправляется в реестр, где она будет просмотрена другими компонентами без прямого обращения к BIOS или CMOS.


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


      1. Архитектура HAL.


    Обслуживание (сервисы), которое предоставляет HAL:

    • Интеграцию с базовой библиотекой с названием newlib ANSI C – она обеспечивает систему общеизвестными функциями стандартной библиотеки;

    • Драйвера устройств, которые обеспечивают доступ к устройствам системы;

    • API (программный интерфейс приложений) – обеспечивает систему стандартным интерфейсом с сервисами HAL (доступом к устройствам, обработкой прерываний и сигнальными средствами);

    • Инициализацию системы – позволяет выполнять задачи инициализации для процессоров, а также задачи по управлению работой программы перед блоком main;

    • Инициализацию устройств – позволяет обрабатывать и инициализировать все устройства в системе перед запуском блока main.


    На рис. 3. Представлены уровни HAL от аппаратного уровня до уровня пользовательских программ.


    Рис. 3. Слои HAL.
    Уровень аппаратных абстракций обеспечивает систему общими модулями устройств для разных классов периферии, которые можно найти во встроенной системе, например, для таймеров, чипов Ethernet, периферии, передающей знаковую информацию. Именно общие модели для устройств буду являться основными показателями производительности уровня абстракций. Благодаря им, пользователи имеют возможность писать программные коды, используя совместимость с API, независимо от аппаратных средств.
    Существуют следующие общие модели устройств:

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

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

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

    • Чипы Ethernet – это специальные устройства, предоставляющие доступ к подключению Ethernet для стека сети;

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

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




      1. Уровень ядра.


    Ядро – важная и неотделимая часть операционной системы, призванная сделать ее независимой от аппаратной части. Используя низкоуровневые службы HAL, оно позволяет формировать абстракции уровней намного выше. Как пример, можно назвать наличие специальных вызовов у уровня абстракций, которые признаны связывать процедуры обработки прерываний с самими прерываниями и устанавливать их приоритеты.
    На этом работа уровня аппаратных абстракций практически закончена. Далее ядро само дает полный механизм, позволяющий переключать контекст и планирование потоков. Оно предоставляет поддержку низкого уровня двум другим классам объектов ядра – объектам управления и объектам диспетчеризации. Данными объектами пользуются система и приложения для управления ресурсами компьютерной системы (процессы, потоки, файлы и т.д.). Объект ядра можно назвать блоком памяти, который специально выделен ядром, который доступен только для него и представляет собой структуру данных.
    К объектам управления можно отнести объекты, которые управляются самой системой: объекты заданий, процессов, потоков, прерываний, отложенных и асинхронных вызовов процедур.
    К объектам диспетчеризации же можно отнести объекты, чье изменение ожидают потоки. Ими являются семафоры, события, таймеры, очереди, файлы и так далее.
    Отложенные вызовы процедур используются для отделения части процедуры обработки прерываний, время которой является критичным, от части, время которой некритично. Данная процедура обработки прерываний позволяет сохранять несколько аппаратных ресурсов, которые связаны с устройствами прерываний вводы\вывода, чтобы затем их можно восстановить. Например, при нажатии клавиши, упомянутая процедура прерываний считывает код регистра нажатой клавиши и допускает прерывание клавиатуры. Но если в это же время обрабатывается событие с более высоким приоритетом, то запрошенная процедура будет обрабатываться немного позже. Появляется очередь, представляющая собой напоминание о работе, которую необходимо выполнить позже.
    Асинхронный вызов процедур похож на отложенный, но его отличие в том, что он выполняется только в контексте одного определенного процесса. Во время обработки нажатой клавиши, не требуется учитывать контекст работающего отложенного вызова, достаточно исследовать введенный код и поместить его в буфер ядра.
    Но если нужно скопировать буфер из ядра в адресное пространство пользовательского процесса, то данная процедура должна работать в контексте получателя, нужный для одновременного появления страниц как в буфере ядра, так и буфере пользователя.

    Заключение
    Управление аппаратными средствами операционной системы семейства Windows NT осуществляется с помощью уровня аппаратных абстракций (HAL), который представляет собой комплекс процедур по управлению аппаратными средствами, работающими в режиме ядра.

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

    Применение подобной библиотеки стало успешным решением для многих фирм и корпораций, и оно используется многими и по сей день.

    Список литературы


    1. Windows NT [Электронный ресурс] // Википедия: Свободная энциклопедия. URL: https://ru.wikipedia.org/wiki/Windows_NT (Дата обращения: 15.12.2020);

    2. Windows NT [Электронный ресурс] // TADVISER: Государство. Бизнес. IT. URL: https://www.tadviser.ru/index.php/Продукт:Windows_NT (Дата обращения: 15.12.2020);

    3. Архитектура ядра Windows NT [Электронный ресурс] // Открытые системы. Дэвид Соломон, 1999 год. URL: https://www.osp.ru/os/1999/01/179629 (Дата обращения: 15.12.2020);

    4. Единое ядро Windows [Электронный ресурс] // Хабр, 2018 год. URL: https://habr.com/ru/post/428469/ (Дата обращения: 15.12.2020);

    5. Ядро Windows NT [Электронный ресурс] // Компьютер с нуля: О персонльном компьютере и как им пользоваться. URL: http://komputercnulja.ru/operacionnye-sistemy/yadro-windows-nt (Дата обращения: 15.12.2020);

    6. Уровень аппаратных абстракций [Электронный ресурс] // OSys.ru: операционные системы. URL: http://www.osys.ru/os/4/uroven_apparatnyh_abstrakcii_hal.shtml (Дата обращения: 15.12.2020);

    7. Слой аппаратных абстракций [Электронный ресурс] // Википедия: Свободная энциклопедия. URL: https://ru.wikipedia.org/wiki/Слой_аппаратных_абстракций (Дата обращения: 15.12.2020);

    8. HAL абстракций [Электронный ресурс] // Википедия: Свободная энциклопедия. URL: https://ru.wikipedia.org/wiki/HAL_(freedesktop.org) (Дата обращения: 15.12.2020);

    9. Уровень аппаратных абстракций [Электронный ресурс] // DATBAZE. URL: https://datbaze.ru/Bez-rubriki/uroven-apparatnyih-abstraktsiy.html (Дата обращения: 15.12.2020);

    10. Слой аппаратной абстракции HAL [Электронный ресурс] // The Magics Moke. URL: https://themagicsmoke.ru/courses/stm32/hal.html (Дата обращения: 15.12.2020);


    написать администратору сайта