Форум: "Основная";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
ВнизРаботает ли Sleep в реальном времени? Найти похожие ветки
← →
WhiteBarin © (2006-09-20 09:50) [0]Здравствуйте, скажите соответствует ли время указаное в Sleep реальному времени, т.е. указываю 70мс действительно ли это 70мс, или нет? Операционная система работает по квантам времени, соответствуют ли они реальному времени?
← →
Polevi © (2006-09-20 10:03) [1]нет
← →
WhiteBarin © (2006-09-20 10:11) [2]А как получить реальные 70мс, или это нереально в системе нереального режима времени, которой является Windows? Насколько 70мс являются правдивыми, какова погрешность, от чего это зависит (от быстродействия системы или нет?)?
← →
miek © (2006-09-20 10:20) [3]Получить-то можно. Поставить своему потоку приоритет real-time, например. Все остальное будет подвисать, но программа отработает почти в реал-тайме. Только из-за этого "почти" никто так не делает.
← →
WhiteBarin © (2006-09-20 10:28) [4]Ты пишешь про потока а можно ли на процесс это распространить? т.е. на программу, или например включить режим реального времени отработать sleep и затем выключить, можно ли так, или какой вариант предложишь чтобы sleep правильно работал, и высока ли пограшность?
← →
sniknik © (2006-09-20 10:40) [5]> высока ли пограшность?
зависит от многих факторов, загруженности системы например, попадеш на какой нибудь "подвис" системы изза выполнения критичной задачи и погрешность возрастет на порядки.
я бы сказал так, погрешность в пределах от 0 до бесконечности... (комп выключали в тот момент, после не удалось включить, сломался, и он с твоей недовершонной задачей отправился на помойку...)
← →
DVM © (2006-09-20 10:42) [6]
> Ты пишешь про потока а можно ли на процесс это распространить?
Конечно можно процессу дать RealTime. Диспетчер задач же это может.
> или какой вариант предложишь чтобы sleep правильно работал
Multimedia Timers может чем то улучшить картину.
← →
WhiteBarin © (2006-09-20 10:46) [7]Извеняюсь за глупый вопрос, но что такое Multimedia Timers и как программно назначить процессу Real-time, думаю в моём случае это подойдёт, т.к. кроме этого процесса иные задачи не требуются на компьютере (ну а системные и иные сводятся на низший приоритет нереального времени)
← →
DVM © (2006-09-20 10:51) [8]
> но что такое Multimedia Timers
timeSetEvent() + MSDN
вот еще на эту тему, правда чуть иначе:
http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=434
← →
WhiteBarin © (2006-09-20 10:56) [9]Благодарю всех за помощь буду разбираться вопрос закрыт, спасибо за решение!
← →
sniknik © (2006-09-20 12:04) [10]> спасибо за решение!
и где же оно, решение то?
вообще что решаем? задачи в вопросе нет, есть вопрос по работе sleep, которая не изменилась ни на йоту независимо от ответов...
а по ссылке всего лиш отличная от борландовской реализация таймера, сути системы (виндов) он не меняет.
← →
atruhin © (2006-09-20 12:44) [11]Где то у microsoft видел документ по созданию "мягких" систем реального времени под W2K. Методики расчетов, проектирование и т.д. Страниц 200.
Что бы небыло возражений поясняю: "мягкая" СРВ - система работающая в реальном времени, но допускающая периодические, некоторые нарушения временных интервалов.
← →
Don Nikola © (2006-09-20 13:04) [12]Я делал timeBeginPeriod(1) и ставил в messageloop проверку timeGetTime на окончание периода, затем постил сообщение в очередь. Работало с точностью не менее 2-3мс, даже при хорошей загрузке, по крайней мере удалось сделать четкий лимит по FPS от 1 до 500. По идее на нормальной выделенной тачке точность будет 1мс.
Имхо, получется тоже что и timeSetEvent, но без лишних потоков и с большим контролем.
P.S.: Вроде как timeBeginPeriod и на точность Sleep влияет.
← →
Jeer © (2006-09-20 15:39) [13]atruhin © (20.09.06 12:44) [11]
> Что бы небыло возражений поясняю
Возражений у тех, кто проектировал такие системы быть не может.
Работают.
← →
atruhin © (2006-09-20 15:57) [14]> [13] Jeer © (20.09.06 15:39)
Само собой :)
Просто существует довольно много классификаций, и терминов описывающих типы СРВ, поэтому и посянил термин.
← →
Jeer © (2006-09-20 16:37) [15]Для примера, могу пояснить:
- система управления приводом (0.1-2 тонны деталь) на основе w2k работает без единого "срыва" более 3 лет;
- система управления теплонагревом поковок (до 3 тонн) работает без нареканий более 4 лет.
В основе "такого" оптимизма для win лежит единственное уточнение:
- все потенциально критичные и опасные процессы решаются на аппаратном уровне;
- соотношение кванта системы и постоянной времени объекта управления >>10
- не используются ресурсо-отнимающие задачи, т.е. в Quake никто не играет:))
← →
Пусик © (2006-09-20 17:10) [16]
> скажите соответствует ли время указаное в Sleep реальному
> времени, т.е. указываю 70мс действительно ли это 70мс, или
> нет?
Да, действительно 70мс.
← →
Ketmar © (2006-09-20 17:13) [17]>[16] Пусик(c) 06-09-20 17:10
>Да, действительно 70мс.
плюс ещё что-то. %-)
← →
Пусик © (2006-09-20 17:14) [18]
> плюс ещё что-то. %-)
Что?
← →
Ketmar © (2006-09-20 17:19) [19]>[18] Пусик(c) 06-09-20 17:14
>> плюс ещё что-то. %-)
>Что?
latency системы. Windows -- это не RTS.
← →
Jeer © (2006-09-20 18:05) [20]Ketmar © (20.09.06 17:19) [19]
+ более того, на разных платформах Windows - разные slice.
На w2k, например, не получить устойчиво sleep не кратное 20 ms.
На XP - своя карусель.
← →
WhiteBarin © (2006-09-21 10:25) [21]:) Так каким же образом тогда создать реальные например 70мс, которые на любом железе будут реальными 70мс, без всяких огромных погрешностей.
Причем требуется осуществить простой системы, а не тайминг
← →
Dmitrij_K (2006-09-21 10:29) [22]
> :) Так каким же образом тогда создать реальные например
> 70мс, которые на любом железе будут реальными 70мс, без
> всяких огромных погрешностей.
Еще раз прочитай что тут писали.
← →
Сергей М. © (2006-09-21 10:30) [23]
> WhiteBarin © (21.09.06 10:25) [21]
Для столь серьезных задач, связанных с высокой прецизионностью выдержки временных интервалов, следует использовать ОС реального времени, а не многозадачные системы. И тебе об этом уже сказали.
← →
sniknik © (2006-09-21 11:16) [24]> Для столь серьезных задач ...
каких серьезных? задачи как не было с [0], так и нет, а то что тут сказано "создать реальные например 70мс" это не задача, а авторский вариант решения чегото нам неизвестного, причем по понятиям автора вопроса о том как должна работать система, которые разработчики системы почемуто не учли... (безобразие просто!!!)
а в итоге окажется что это просто какойнибудь счетчик который при суммировании дает слишком большую разницу с реально прошедшим временем, потому что пытается считать самыми мелкими частями... вместо того чтобы засечь общее прошедшее время и поделить чтобы узнать сколько частей прошло.
а вы ему советуете не поменять собственную логику, а сменить систему...
← →
Сергей М. © (2006-09-21 12:21) [25]
> sniknik © (21.09.06 11:16) [24]
Да все может быть)
Без конкретики, разумеется, рассуждать тут бессмысленно ...
← →
WhiteBarin © (2006-09-22 08:50) [26]Извеняюсь за внесённое мною недопонимание. Может я неверно сформулировал вопрос, тогда сформулирую требование
Требуется чтобы при выполнении программы произошла "пауза", ожидание в 70 мс. и затем дальше пошло её выполнение. Вот я и спрашивал является ли время указанное в Sleep реальным, если не является как совершить данную паузу.
← →
Ketmar © (2006-09-22 08:55) [27]>[26] WhiteBarin(c) 22-Sep-XLI A.S., 08:50
это частность. а просили задачу.
← →
WhiteBarin © (2006-09-22 08:58) [28]НУ и про задачу немешало бы мне занть
← →
Ketmar © (2006-09-22 09:04) [29]>[28] WhiteBarin(c) 22-Sep-XLI A.S., 08:58
>НУ и про задачу немешало бы мне занть
класс.-- чего пишешь-то?
-- не знаю. скомпилирую -- посмотрим.
(ц)
← →
Palladin © (2006-09-22 09:05) [30]Ты, в смысле, сам не знаешь зачем тебе эта пауза?
← →
Ketmar © (2006-09-22 09:06) [31]>[30] Palladin(c) 22-Sep-XLI A.S., 09:05
>Ты, в смысле, сам не знаешь зачем тебе эта пауза?
чтоб была. раньше холостые циклы делали, теперь -- Sleep().
← →
WhiteBarin © (2006-09-22 09:12) [32]Не важно для чего нужна пауза, в моей задаче, да это часность, согласен. Но вопрос то вполне нормально сформулирован.
← →
Ketmar © (2006-09-22 09:27) [33]>[32] WhiteBarin(c) 22-Sep-XLI A.S., 09:12
>Не важно для чего нужна пауза, в моей задаче,
ну, тогда тебе ответили. даже разжевали. глотай уж сам. хотели ещё рецепт покалорийней дать, но ты не уточнил, что тебе можно есть. вдруг -- вегетарианец?
← →
WhiteBarin © (2006-09-22 09:44) [34]Ок, спасибо огромное
← →
Сергей М. © (2006-09-22 10:32) [35]
> WhiteBarin © (22.09.06 09:12) [32]
>
> Не важно для чего нужна пауза, в моей задаче
Так может быть ты вообще не тот огород окучиваешь)..
Скажем, есть какой-то дивайс, он расчитан на ввод/вывод по прерываниям, кр.того имеет интерфейс статуса готовности к чтению/записи. А ты вдруг почему-то не используешь это, то ли не зная об этих фичах дивайса, то ли не ведая с какого бока к ним подойти ..
Потому мы и интересуемся подробностями твоего ТЗ..
← →
Ketmar © (2006-09-22 10:35) [36]>[35] Сергей М.(c) 22-Sep-XLI A.S., 10:32
>Потому мы и интересуемся подробностями твоего
>ТЗ..
да-да. старая история. "мастер на сайте игрался в гестапо"...
← →
Игорь Шевченко © (2006-09-22 11:19) [37]Ketmar © (22.09.06 10:35) [36]
При цитировании дату в нормальный формат переводи, плз.
← →
Сергей М. © (2006-09-22 11:24) [38]
> Ketmar © (22.09.06 10:35) [36]
угу ..
см. [36]
а то очередным рецидивом отдает - то нобискум тыкал везде где ни попадя, то теперь вот эту хрень пишешь)
← →
Ketmar © (2006-09-22 18:57) [39]>[38] Сергей М.(c) 22-Sep-2006, 11:24
>а то очередным рецидивом отдает - то нобискум
>тыкал везде где ни попадя, то теперь вот эту
>хрень пишешь)
да просто лениво было две функции делать. понадеялся, что не обратят внимания. %-)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.043 c