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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
genesys
0 / 0 / 0
Регистрация: 07.10.2007
Сообщений: 4
#1

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

07.10.2007, 15:42. Просмотров 1430. Ответов 8
Метки нет (Все метки)

Можно ли заставить Windows работать как RealTime средствами VC++ для работы с железом?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2007, 15:42     заставить Windows работать как RealTime
Посмотрите здесь:

как заставить С++ и С# работать вместе? C++
C++ Не работает код. В чём причина? Как "заставить" работать?
Как заставить программу не выгружаться из памяти и работать дальше? C++
FindRersource API не могу заставить работать C++
Как заставить работать <algorithm> C++
подскажите как заставить правильно работать программу по реализации класса "треугольник" на C++ C++
C++ Как заставить sscanf работать с динамическими массивами?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VitSoft
0 / 0 / 0
Регистрация: 25.09.2007
Сообщений: 92
07.10.2007, 19:58     заставить Windows работать как RealTime #2
Hi !!

можно если установить приоритет программе RealTime

SetThreadPriority()

http://www.development.efficientit.com
Ghost
Сообщений: n/a
09.10.2007, 12:15     заставить Windows работать как RealTime #3
Нифига подобного
Таким методом чожно только заставть диспетчер времени выдавать больше времени процессу.
Для действительно реального времени надо, чтоб OS поддерживала это, а MS открещивается от RTOS как черт от ладана

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

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

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

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

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

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

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

До сих пор, кстати, система живёт, развивается и даже продаётся... Сейчас уже под 2000-ые переползли... вполне безболезненно, если не считать немерянного увеличения ОЗУ...
McVillain
1 / 1 / 0
Регистрация: 30.04.2007
Сообщений: 226
09.10.2007, 17:37     заставить Windows работать как RealTime #5
или обманул? кажется, потокам опроса железа и работы с сетью вешался приоритет TimeCritical... или всё-таки Normal? Не помню уже...
Ghost
Сообщений: n/a
09.10.2007, 17:50     заставить Windows работать как RealTime #6
20 герц?
а на какой аппаратной платформе?
И, если не секрет, для чего?

У меня была прога (правда, под свою OS ) так там скорость опроса (486 CPU ) лимитировалась только скоростью обмена через ISA.

В OS был ВНЕШНИЙ таймер - на 4 мс - раз в 4 мс - IRQ - всплываем, расхлебываем и тонем
Так 100 процессов (больше не успел поставить - проект загнулся) просто летали.
McVillain
1 / 1 / 0
Регистрация: 30.04.2007
Сообщений: 226
09.10.2007, 21:52     заставить Windows работать как RealTime #7
Тренажёр для водителей. Там больше не надо. А аппаратура... Последний вариант, который при мне жил на win2000 -- 2xPIII-800, 384 Mb RAM, GeForce лучшей на то время модели... Там всё упиралось в визуализацию, она целиком отъедала один процессор и кучу памяти... На втором процессоре лениво переругивались железо, сеть, имитационная модель машины, инструкторские заморочки...

Суммарная загрузка системы была где-то процентов 70... И, ещё раз повторяю, 20 герц вполне хватало (а может там и больше было... никто не мерял)

В последнем варианте поставили умную плату сбора сигналов и тоже жили по прерыванию...
Ghost
Сообщений: n/a
09.10.2007, 23:15     заставить Windows работать как RealTime #8
А я телефонией занимался
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2014, 15:04     заставить Windows работать как RealTime
Еще ссылки по теме:

C++ Как заставить работать прогу без Visual Studio?
C++ Как заставить код работать на x32 и x64?
C++ не знаю как заставить работать
Как заставить работать do while C++
Как заставить работать регулярные выражения под VS2012 с тулсетом VS2005? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
TimeRoller
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 7
11.05.2014, 15:04     заставить Windows работать как RealTime #9
В диспетчере задач, задать приоритет определенных процессов
Yandex
Объявления
11.05.2014, 15:04     заставить Windows работать как RealTime
Ответ Создать тему
Опции темы

Текущее время: 12:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru