Windows NT и требования к ОСРВ.
Нити и приоритеты. NT – многонитевая ОС, она позволяет вытеснение и тем самым удовлетворяет требованию 1.
В СРВ задачи имеют различные приоритеты. Более критичные по времени получают более высокий приоритет. Другие же, например, отображение состояния системы, регистрация событий в файл или конфигурирование системы имеют более низкий приоритет. Чтобы учитывать эти различия, ОС должна уметь приписывать различные приоритеты этим задачам.
имеются два класса приоритетов: класс реального времени и динамический класс. Процессы в классе реального времени имеют фиксированный приоритет, менять который может лишь само приложение, тогда как приоритет процессов динамического класса может меняться диспетчером. Нить в процессе может иметь приоритет в диапазоне плюс/минус 2 около базового уровня или один из двух крайних уровней класса (16 или 31 для реального времени).
Предсказуемость системных вызовов Win32 API. Для создания в Win32 API приложения реального времени система должна быть предсказуемой и независимой от числа объектов в системе.
Управление прерываниями в NT. . В Windows NT единственный способ управления аппаратурой – через драйвер устройства. Этот драйвер реагирует на прерывания, генерируемые соответствующим устройством. Прерывания обрабатываются в два этапа. Сначала выполняется очень короткая программа обслуживания прерываний (ISR). Впоследствии работа завершается выполнением DPC (Deffered Procedure Call) – процедуры отложенного вызова. Это порождает следующую последовательность событий:
|
|
¨ Происходит прерывание.
¨ ОС сохраняет контекст и вызывает ISR.
¨ В ISR выполняется критическая работа (чтение/запись аппаратных регистров).
¨ Драйвер устройства вызывает функцию DPC (на самом деле это очередь, обрабатываемая администратором ввода-вывода, т.е. DPC ставится в очередь)
¨ ОС восстанавливает контекст.
¨ Ожидающие в очереди DPC выполняются на уровне приоритета DISPATCH_LEVEL. Это уровень программного прерывания.
¨ После завершения всех DPC ОС переходит к выполнению приложений.
Управление памятью в NT. В Windows NT процессы выполняются в своем собственном пространстве памяти. Добиться этого позволяют механизмы виртуальной памяти и подкачки.
Возможность использования Windows NT в качестве ОСРВ.
Аргументы “за” использование Windows NT в качестве ОСРВ.
¨ Многопроцессность и многозадачность системы.
¨ Поддержка многопроцессорности.
¨ Preemption задач.
¨ Preemption прерываний и возможность их маскирования. Асинхронный ввод/вывод.
¨ Прямой доступ к оборудованию посредством интерфейса HAL (Hardware Abstraction Level). HAL обеспечивает изоляцию приложения от деталей реализации оборудования, обеспечивая платформенно-независимый прямой доступ к оборудованию.
|
|
¨ Специальная схема приоритетов.
¨ Пространство ввода-вывода для задач из класса реального времени не участвует в страничном обмене механизма виртуальной памяти.
¨ Для закрепления страниц задачи в памяти существует специальный системный вызов (VirtualLock()).
¨ Предоставляются объекты синхронизации: критические секции, таймеры, события, mutex и т. д.
Аргументы “против” использования Windows NT в качестве ОСРВ.
¨ Ядро системы не preemptive.
¨ Малое количество приоритетов в классе реального времени (7) приводит к тому, что много задач будут иметь одинаковый.
¨ Не решена проблема инверсии приоритетов.
¨ Высокоприоритетные задачи могут блокироваться низкоприоритетными.
¨ Все страницы неактивного процесса могут быть перенесены на диск, несмотря на закрепление их вызовом. Это приводит к случайным задержкам при активизации процесса.
¨ Для Windows NT официально не приводятся времена системных вызовов и времена блокирования прерываний.
¨ Систему невозможно использовать без дисплея и клавиатуры.
¨ Система предъявляет слишком большие для ОСРВ запросы на память.
¨ Тем не менее на базе Windows NT можно все-таки построить простую мягкую СРВ, время от времени допускающую опоздания. Но для жесткой СРВ использование Windows NT невозможно – система реального времени никогда не будет предсказуемой.
Дата добавления: 2018-08-06; просмотров: 236; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!