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; Мы поможем в написании вашей работы!

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






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