Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.047 c
2-1161456513
Ekzot
2006-10-21 22:48
2006.11.05
Real в Int


9-1138288799
rts111
2006-01-26 18:19
2006.11.05
OpenGL. Как узнать координаты точки наблюдения(камеры)?


3-1157698560
angelsaint
2006-09-08 10:56
2006.11.05
как сделать ввод дат "до н.э."


15-1160763962
Витян
2006-10-13 22:26
2006.11.05
Интересная идея! Управление летающим устройством...


15-1161055357
Slider007
2006-10-17 07:22
2006.11.05
С днем рождения ! 17 октября





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский