Russian Qt Forum

Компиляторы и платформы => Linux => Тема начата: nik135 от Апрель 08, 2008, 20:47



Название: Фиксированная задержка в 1 мкс(или мс) под linux
Отправлено: nik135 от Апрель 08, 2008, 20:47
Господа, наверняка кто-нибудь реализовывал задержку в выполнении кода в 1мкс или 1мс под linux. Поделитесь рабочим примером?


Название: Re: Фиксированная задержка в 1 мкс(или мс) под linux
Отправлено: Пантер от Апрель 09, 2008, 11:36
ИМХО, фиксированно это возможно только в операционке реального времени. Linux к таковым не относится.


Название: Re: Фиксированная задержка в 1 мкс(или мс) под linux
Отправлено: vregess от Апрель 10, 2008, 07:09
ИМХО, фиксированно это возможно только в операционке реального времени. Linux к таковым не относится.

не совсем так. при определенных условиях в linux можно реализовать фиксированные маленькие задержки.
Для софт реалтайма и хард реалтайма есть патчи на ядро. Видимо следует двигаться в этом направлении.
RTLinux, KURT, RTAI и тд.


Название: Re: Фиксированная задержка в 1 мкс(или мс) под linux
Отправлено: nik135 от Апрель 10, 2008, 19:42
Нужна задержка в 25 мкс. То есть не меньше, чем 25 и не больше, чем 50. Ровно 25 не обязательно. Нужно патчить ядро? В Винде для этой задачи годились функции  QueryPerformanceFrequency,  QueryPerformanceCounter;


Название: Re: Фиксированная задержка в 1 мкс(или мс) под linux
Отправлено: vregess от Апрель 11, 2008, 05:27
хз какие задержки можно получить на непропатченом ядре, не занимался этим.
Одно в голову приходит: количество процессов нужно свести к минимуму, выставить у программы высокий приоритет утилитой nice.

Наверное ядро лучше будет пересобрать все-таки, чтоб выкинуть лишнее.
Если дистриб пакетный, то можно просто поставить из репозитариев realtime модуль и попробовать че-нить поделать.
Но потом все-равно лучше ядро собрать свое, чтоб наверняка.

Можно начать отсюда:
http://www.linuxfocus.org/Russian/May1998/article44.html (http://www.linuxfocus.org/Russian/May1998/article44.html)
http://www.mycomp.com.ua/text/5430 (http://www.mycomp.com.ua/text/5430)

ссылки найдены по запросу "realtime linux задержки"


Название: Re: Фиксированная задержка в 1 мкс(или мс) под linux
Отправлено: Пантер от Апрель 11, 2008, 11:32
Под виндой такую задержку тоже не получить. То что у тебя получалось - лишь счастливый случай. Под Линем можно получить 25 мс, но субъективно. Т.е. если операционке не будет хватать ресурсов, то твоя софтина обломается по полной программе. Для чего тебе вообще это нужно? Может задачу переделать?


Название: Re: Фиксированная задержка в 1 мкс(или мс) под linux
Отправлено: nik135 от Апрель 11, 2008, 22:14
Программа работает с железякой, вот для нее и нужны эти самые задержки :-(
Спасибо за ссылки, бум пробовать  :)


Название: Re: Фиксированная задержка в 1 мкс(или мс) под linux
Отправлено: SiRuS от Апрель 14, 2008, 14:00
А nanosleep и usleep не смотрели? Просто линукс далеко, но вроде бы "оно".