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

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

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

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

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

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

Как заставить работать do while - C++
Печатает пока 100 строк не будут заполнены, нужно при вводе символа n закончить принятие данных и вывести те, которые ввели. Если не...

как заставить С++ и С# работать вместе? - C++
Здравствуйте! Хотелось бы научится писать проги со совмещение С++ и шарпа... Посоветуйте что-то почитать или хотябы покажите код как...

не знаю как заставить работать - C++
7,9.cpp:7:10: error: invalid use of non-static data member ‘matrix::two’ long two,one; ^ 7,9.cpp:8:15: error: from...

Как заставить работать <algorithm> - C++
Здравствуйте! У меня есть программа которая vector &lt;int&gt; найдет номер максимального элемента! vector &lt;int&gt;::const_iterator MAX =...

Как заставить код работать на x32 и x64? - C++
есть приложение C/C++ как заставить его запускаться на x64 и на x32 одновременно, нужно ли что-то в настройках компилятора менять ? или оно...

Как заставить sscanf работать с динамическими массивами? - C++
Как заставить sscanf работать с динамическими массивами или есть этому альтернатива(кроме strtok)?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
VitSoft
0 / 0 / 0
Регистрация: 25.09.2007
Сообщений: 92
07.10.2007, 19:58 #2
Hi !!

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

SetThreadPriority()

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

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

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

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

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

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

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

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

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

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

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

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

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

Как заставить работать прогу без Visual Studio? - C++
Вот написал программу на заказ, в студии работает, а вот если запускаю exe файл вне студии то прога завершает работу #include &lt;iostream&gt; ...

Как заставить программу не выгружаться из памяти и работать дальше? - C++
Возьмем банальный пример клавиатурный шпион или чтонить в этом роде... Проект Win32 application я разместил в конце ВинМайн цикл...

Как заставить работать регулярные выражения под VS2012 с тулсетом VS2005? - C++
Помогите пожалуйста разобраться, плачу картохой. Имеем слово: &quot;проверка&quot; Имеем пример текста: 1. &quot;это прове рка&quot; 2. &quot;будет...

Как заставить проэкт работать в Visual Studio 2010? - C++
Доброго времени суток! Люди пожалуста помогите, вчера поставил себе Microsoft Visual Studio 2010. Создал новый проэкт C++, Win32 Console...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.05.2014, 15:04
Ответ Создать тему
Опции темы

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