Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.05;
Скачать: CL | DM;

Вниз

Работает ли 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;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.054 c
15-1161106213
Nic
2006-10-17 21:30
2006.11.05
Выбрал телефон


8-1143789307
Feg16
2006-03-31 11:15
2006.11.05
Вывод потокового звука


6-1149973029
Wyper
2006-06-11 00:57
2006.11.05
Разработка сетевого приложения


1-1159031806
GrayFace
2006-09-23 21:16
2006.11.05
Доступ к property в asm вставках


1-1159163057
oleg__
2006-09-25 09:44
2006.11.05
Код нажатой клавиши