Форум программистов, компьютерный форум CyberForum.ru

заставить Windows работать как RealTime - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Использование realloc наряду с new и delete http://www.cyberforum.ru/cpp-beginners/thread461256.html
Можно ли использовать realloc наряду с new и delete? Ведь new использует malloc, а delete использует free (по крайней мере в BC 3.1 - смотрел в RTL sources)
C++ Пободные функции:Left$, Mid$, Right$, Hex, Val, RGB Подскажите подобные функции в VC++: 1. Left$ 2. Mid$ 3. Right$ 4. Hex 5. Val 6. RGB http://www.cyberforum.ru/cpp-beginners/thread461245.html
C++ Форматированный вывод построчно с разбивкой на колонки
Как сделать в VC++ Форматированный вывод построчно с разбивкой на колонки как в WinZip ,Outlook Exp. ....?? Есть какой-нивудь класс в MFC??
Как посылать сообщения DOS-задаче C++
Как посылать сообщения DOS-задаче, которая работает в режиме эмуляции, в частности, проэмулировать нажатия клавиш.
C++ Изменить отсчет углов в системе координат http://www.cyberforum.ru/cpp-beginners/thread461138.html
Как изменить отсчет углов в системе координат С++(v.4.5)?
C++ Что лучше Pascal или C++ Какой язык лучше Pascal или C++? и что легче изучать? подробнее

Показать сообщение отдельно
McVillain
1 / 1 / 0
Регистрация: 30.04.2007
Сообщений: 226
09.10.2007, 17:35     заставить Windows работать как RealTime
Было такое, пытались... Мягкое реальное время, опрос железа запускался отдельной нитью с нормальным приоритетом, выглядело так:

while( ! надоВыходить )
{
опроситьПлату();
sleep(1);
}

Без sleep NT как-то очень по-левому квантовала время, слишком большими кусками, что ли...

Результаты опроса скидывались в буфер (понятное дело, примитивы чтения/записи были синхронизированы), параллельный (рабочий) поток их забирал и работал в своё удовольствие. Там ещё один поток был, с очень большими вычисляниями, так ему выставили приоритет idle -- и всё нормально было.

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

В итоге частота опроса была порядка 20 герц... для того приложения вполне достаточно.

Да, если втыкалось несколько разных железок, каждую опрашивал собственный поток (привязанный к собственному драйверу ядра). Ещё жили потоки чтения/записи в/из сети... Весь обмен между потоками -- через безопасные для асинхронного доступа буфера.

До сих пор, кстати, система живёт, развивается и даже продаётся... Сейчас уже под 2000-ые переползли... вполне безболезненно, если не считать немерянного увеличения ОЗУ...
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru