реклама на сайте
подробности

 
 
> Объекты синхронизации в Windows NT, Насколько медленно работают?
ishergin
сообщение May 25 2006, 09:29
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 16-06-05
Из: Оренбург
Пользователь №: 6 039



Проблема такая -- пишу WDM драйвер PCI устройства. Отложенная процедура обработчика прерывания (DPC) устанавливает объект событие в сигнальное состояние и начинает выполняться код в режиме пользователя. Суммарная задержка между началом работы ISR и кодом пользователя составляет примерно 350 мкс на Athlon 750.

Кто нибудь знает какую часть времени времени занимает выполнение функции синхронизации? smile.gif Насколько я знаю объекты синхронизации ядра выполняются в NT ОЧЕНЬ долго.

ЗЫ. Просто вся литература у меня дома, посмотреть ответ смогу вечером только..

PPS. Похоже придется использовать QNX, сосвем не нравится замедление работы приложения при перемещении мышки или запуске программ blink.gif (приложение запущено с приоритетом реального времени rolleyes.gif )


--------------------
Программа выполнила невыполнимое и допустила недопустимое
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Yura_K
сообщение May 25 2006, 17:19
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821



А Вы не могли бы подробнее описать задачу. Какие задержки допустимы и почему именно между KeSetEvent и WaitForSingleObject?


--------------------
Чудес не бывает - бывает мало знаний и опыта!
Go to the top of the page
 
+Quote Post
ishergin
сообщение May 25 2006, 18:28
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 16-06-05
Из: Оренбург
Пользователь №: 6 039



Цитата(Yura_K @ May 25 2006, 23:19) *
А Вы не могли бы подробнее описать задачу. Какие задержки допустимы и почему именно между KeSetEvent и WaitForSingleObject?


Пожалуйста smile.gif Упрощенно схема выглядит так: есть некое устройство под названием КАМАК, к нему подключена моя PCI плата. КАМАК может выставить прерывание, которое прередается на шину PCI. Функцию KeSetEvent вызывает DPC от первичного обработчика прерывания, пользовательское приложение ждет события (WaitForSingleObject) и обрабатывает прерывание (например что-то читает из модуля АЦП КАМАКа). В принципе уже достиг сегодня минимальной скорости реакции (100 мкс). Дальше наверно буду переносить код пользователя в драйвер....

А задежки - чем меньше тем лучше smile.gif. В принципе 100 мкс уже пойдет, осталось блочную передачу данных между КАМАК и PCI платой в драйвере сделать, тогда задержек таких не будет smile.gif


--------------------
Программа выполнила невыполнимое и допустила недопустимое
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 05:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01365 секунд с 7
ELECTRONIX ©2004-2016