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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Visual C++ Как работать с 2-мя таблицами в CRecordView http://www.cyberforum.ru/cpp-beginners/thread461264.html
Как одновременно работать с двумя(и более) связанными таблицами в форме производной от CRecordView? Если указать 2 таблицы в рекордсете то выходит лажа. Я пробую так: подчиненную таблицу указываю в качестве основного рекордсета в CRecordView. и еще создаю один рекордсет для основной таблицы. вот в чем вопрос: как пользоваться механизмом DDX для этого еще одного рекордсета. потому что...
C++ Использование realloc наряду с new и delete Можно ли использовать realloc наряду с new и delete? Ведь new использует malloc, а delete использует free (по крайней мере в BC 3.1 - смотрел в RTL sources) http://www.cyberforum.ru/cpp-beginners/thread461256.html
Пободные функции:Left$, Mid$, Right$, Hex, Val, RGB C++
Подскажите подобные функции в VC++: 1. Left$ 2. Mid$ 3. Right$ 4. Hex 5. Val 6. RGB
C++ Форматированный вывод построчно с разбивкой на колонки
Как сделать в VC++ Форматированный вывод построчно с разбивкой на колонки как в WinZip ,Outlook Exp. ....?? Есть какой-нивудь класс в MFC??
C++ Как посылать сообщения DOS-задаче http://www.cyberforum.ru/cpp-beginners/thread461199.html
Как посылать сообщения DOS-задаче, которая работает в режиме эмуляции, в частности, проэмулировать нажатия клавиш.
Visual C++ Как мне поймать WM_KEYDOWN Пишу обработку сообщения в Dialog Based Project: void CDialogDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { if (nChar == VK_RIGHT) { point.x-=4; } else if (nChar == VK_LEFT) { подробнее

Показать сообщение отдельно
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-ые переползли... вполне безболезненно, если не считать немерянного увеличения ОЗУ...
 
Текущее время: 05:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru