Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Может ли Windows NT использоваться в качестве ОС РВ?
Итак, можно сделать вывод, что Windows NT, предназначенная в основном для классических приложений, не является хорошей платформой для поддержания обработки в реальном времени. Тем не менее на ее базе можно все-таки построить простую мягкую СРВ, время от времени допускающую опоздания.Следующие обстоятельства могут облегчить построение СРВ на базе NT: · загрузка CPU низка (DPC имеют достаточно времени); · критическая работа (или даже вся) делается на уровне DPC или (еще лучше) на уровне ISR. В таком случае непонятно, зачем вообще нужна ОС. Но для жесткой СРВ использование Windows NT невозможно - система реального времени никогда не будет предсказуемой.Что следует изменить в Windows NT, чтобы ее можно было использовать в жестких СРВ? a) Класс процессов реального времени должен иметь больше уровней. б) Необходимо решить проблему инверсии приоритетов. в) Время, затрачиваемое каждым системным вызовом, должно быть предсказуемо и известно. г) Система прерываний должна быть заменена целиком: · DPC должны иметь много уровней приоритетов. · DPC должны быть вытесняемыми более приоритетными DPC. · Драйверы от третьих фирм и системные драйверы должны быть настраиваемыми (уровни прерываний ISR, уровни прерываний DPC) · Драйверы от третьих фирм должны быть открыты для разработчиков, должно быть известно по крайней мере максимальное время, затрачиваемое на работу ISR и DPC. · Должно быть известно время маскирования прерываний. Готовы ли разработчики Microsoft ввести эти усовершенствования в NT или они полагают, что рынок слишком мал, и оставят его свободным для третьих фирм?
Лекция №2. Использование Windows NT в качестве ОСРВ. Языки программирования реального времени. План лекции: 1. Коммерческие решения, расширяющие NT возможностями обработки в реальном времени 2. Использование NT 3. Реализация Win32 API над другой ОС РВ 4. Совместная работа на одном процессоре NT и ОС РВ 5. Использование многопроцессорной архитектуры 6. Необходимые требования к ОС для обеспечения предсказуемости
Коммерческие решения, расширяющие NT возможностями обработки в реальном времени Существуют разные варианты использования технологии NT для разработки систем реального времени: · Использование NT как она есть для построения мягкой системы реального времени. · Реализация Win32 API над другой ОС РВ. · Совместная работа на одном процессоре NT и другой ОС РВ (или ее части). · Использование мультипроцессорной архитектуры, когда NT выполняется на одном процессоре (или более), а часть реального времени - на остальных. Во многих решениях производители модифицируют HAL или ядро NT. Политика Microsoft заключается в том, чтобы не допускать никаких модификаций ядра NT, кроме драйверов устройств. Это единственно возможный способ связи с ядром. Политика компании относительно HAL другая. HAL (Hardware Abstraction Layer) - уровень аппаратных абстракций - уровень, лежащий ниже программного обеспечения, который виртуализирует интерфейс NT с аппаратурой, допуская переносимость NT с одной аппаратной платформы на другую. Такие модификации HAL, как манипуляции с часами или замена методов обработки прерываний, представляются беспримерно незаконным использованием HAL. Они создают нестандартную среду и могут привести к проблемам сопровождения, если, например, Microsoft изменит HAL в следующих версиях. Поэтому различие в решениях, предлагаемых поставщиками, заключается в попытках сделать модификации HAL минимальными. Также возможен перехват HAL посредством трюков с процессором Intel. Однако это можно реализовать только на платформе Intel. Механизмы перехвата посредством обработки исключительных ситуаций на уровне устройства поглощают определенную вычислительную мощность.
Использование NT Подобное применение предполагает включение структур, обрабатывающих прерывания. Однако учитывая, что NT не предназначена для обработки в реальном времени это надо делать очень аккуратно. Иногда вводят усовершенствования в механизм обработки прерываний. Единственный способ сделать это - перехватить прерывание, для чего необходимо добавить специальное аппаратное расширение. LP-Elektronik, например, перехватывает прерывание и использует затем NMI (немаскируемое прерывание, не используемое на уровне NT) для обработки событий реального времени. Этот подход применим только тогда, когда процессор имеет отдельный стек прерываний. Программа NMI должна быть написана аккуратно: в ней нельзя использовать вызовы ОС и она должна быть как можно короче, чтобы не потерять другие прерывания. Такое решение дает минимальную задержку прерывания, но требует дополнительной аппаратуры. Как и в других решениях, здесь необходим дополнительный механизм связи между NT и частью реального времени. Разница в том, что при этом требуется большая аккуратность в использовании NMI.
|
Последнее изменение этой страницы: 2019-04-21; Просмотров: 182; Нарушение авторского права страницы