SetThreadPriority SetPriorityClass и SetProcessAffinityMask

У меня небольшая проблема, которую я не совсем понимаю. Таким образом, в основном у меня есть поток, который ожидает события, и timeSetEvent от WinMM, который генерирует событие каждые 1 мс.

Я добавил в свою ветку некоторый счетчик производительности запросов, чтобы узнать временное расстояние между началом каждого потока. Поток в настоящее время просто ожидает события и проверяет свою собственную скорость и больше ничего не делает.

Я проверил, что он WinMM правильно запланирован каждые 1 мс, однако, как только событие сигнализирует, иногда мой поток прерывается и работает на ~6 мс позже, чем ожидалось. В этот момент я начал играть с приоритетами и близостью. Так что я проверил свой приоритетный класс в режиме реального времени, а мои темы - во время. И когда на ядре 0 мой поток все еще прерывается время от времени (~1-2 раза каждые 15 секунд). Вместо этого, если я установлю привязку к ядру 2, оно никогда не будет прервано (как никогда, я запускал тестовое программное обеспечение в течение нескольких часов, ни разу не выгружался). Существуют ли какие-либо потоки драйверов / системы, работающие с приоритетом выше критического в реальном времени / времени, которые связаны только с ядром 0?

Я работаю на Windows 7 Pro на Intel i7-3470.

0 ответов

Другие вопросы по тегам