Что такое функционирование в «Реальном масштабе времени»


Download 1.86 Mb.
Pdf ko'rish
bet26/72
Sana19.04.2023
Hajmi1.86 Mb.
#1362511
TuriУчебное пособие
1   ...   22   23   24   25   26   27   28   29   ...   72
Bog'liq
Луканов А.С. Системы реального времени 2020

Управление прерываниями в NT. 
В Windows NT единственный способ управления аппаратурой 
– 
через драйвер устройства. Поскольку приложение реального 
времени имеет дело с внешними событиями, разработчик должен 
написать и включить в ядро драйвер устройства, дающий доступ к 
аппаратуре. Этот драйвер реагирует на прерывания, генерируемые 
соответствующим устройством. 
Прерывания обрабатываются в два этапа. Сначала 
выполняется очень короткая программа обслуживания прерываний 
(ISR
). Впоследствии работа завершается выполнением DPC – 
процедуры отложенного вызова. Возникает следующий поток 
событий: 
– 
Происходит прерывание.
– 
Процессор сохраняет PC, SP и вызывает диспетчер.
– 
ОС сохраняет контекст и вызывает ISR.
– 
В ISR выполняется критическая работа (чтение/запись 
аппаратных регистров).
– DPC 
ставится в очередь.
– 
ОС восстанавливает контекст.


58 
– 
Процессор восстанавливает PC, SP.
– 
Ожидающие в очереди DPC выполняются на уровне 
приоритета DISPATCH_LEVEL.
– 
После завершения всех DPC ОС переходит к выполнению 
приложений.
ISR 
должно быть как можно короче, поэтому большинство 
драйверов выполняют значительную часть работы в DPC (которая 
может быть вытеснена другим ISR), ожидая окончания других DPC
ранее попавших в очередь (все DPC имеют одинаковый приоритет). 
Из документации по NT следует, что ISR может быть 
вытеснена другим ISR с более высоким приоритетом и что DPC 
имеет более высокий приоритет, чем пользовательские и системные 
нити. Но поскольку все DPC имеют одинаковый уровень 
приоритета и ISR должна быть сведена к минимуму, ваш DPC будет 
вынужден ждать других и ваше приложение будет зависеть от 
остальных драйверов устройств непредсказуемым образом. 
Задержки системных вызовов, описанные в предыдущем разделе, 
обусловлены именно тем, что DPC от драйверов жесткого диска и 
сети блокируют все другие. 
В настоящих ОС РВ разработчик знает, на каком уровне 
выполняются драйверы всех других устройств. Обычно имеется 
свободное пространство для прерываний выше стандартных 
драйверов. Вся критическая работа выполняется в ISR, что 
позволяет настроить конфигурацию драйвера в зависимости от 
временных ограничений приложения. 
Управление памятью в NT 
Другим важным моментом при проектировании СРВ является 
политика управления памятью в ОС РВ. В Windows NT процессы 
выполняются в своем собственном пространстве памяти. Добиться 
этого позволяют механизмы виртуальной памяти и подкачки. Для 
бизнес-приложений это хорошо, но для СРВ, которая должна 
реагировать на внешние события с заранее определенным лимитом 
времени, это порождает непредсказуемость, особенно если система 
отправит страницу из памяти на диск. Windows NT позволяет 


59 
захватить страницу в памяти посредством вызова функции 
VirtualLock
. Тем не менее NT может разблокировать страницу и 
выгрузить ее на диск, если весь процесс неактивен.
Может ли Windows NT использоваться в качестве ОС РВ? 
Итак, можно сделать вывод, что Windows NT
предназначенная в основном для классических приложений, не 
является хорошей платформой для поддержания обработки в 
реальном времени. Тем не менее на ее базе можно все-таки 
построить простую мягкую СРВ, время от времени допускающую 
опоздания. Следующие обстоятельства могут облегчить построение 
СРВ на базе NT
– 
загрузка CPU низка (DPC имеют достаточно времени);
– 
критическая работа (или даже вся) делается на уровне DPC 
или (еще лучше) на уровне ISR. В таком случае непонятно, зачем 
вообще нужна ОС.
Но для жесткой СРВ использование Windows NT невозможно 
– 
система реального времени никогда не будет предсказуемой. Что 
следует изменить в Windows NT, чтобы ее можно было использовать 
в жестких СРВ? 
a) 
Класс процессов реального времени должен иметь больше 
уровней. 
б) Необходимо решить проблему инверсии приоритетов. 
в) Время, затрачиваемое каждым системным вызовом, 
должно быть предсказуемо и известно. 
г) Система прерываний должна быть заменена целиком: 
– DPC 
должны иметь много уровней приоритетов; 
DPC 
должны быть вытесняемыми более приоритетными 

Download 1.86 Mb.

Do'stlaringiz bilan baham:
1   ...   22   23   24   25   26   27   28   29   ...   72




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling