Цитата(vzn @ Apr 6 2006, 11:39)

Вариант с перекомпиляцией ядра для уменьшения времени отклика не подходит.
Какие еще могут быть способы реализовать таймер?
Если бы

... ваш вариант гораздо хуже, чем просто перекомпиляция ядра

:
- все службы времени ОС привязаны к системному тику (timeslice)...
- это не совсем то же, что интервал (о чём говорили здесь: HZ=100) решедулирования (например в QNX6 интервал решедулирования = 4 * timeslice и изменить это никакими силами нельзя), но они могут и совпадать ... не помню что там в Linux...;
- но если вы и уменьшите интервал до T, то, согласно требованиям POSIX 1003b (realtime расширения) - время срабатывания временных интервалов минимальное будет 3T ... с большой вероятностью

, иногда - 2T (это всё объясняется, но не место здесь это делать);
- итого, вам нужно было бы уменьшить timeslice как минимум до 30мкс (в 300 раз)...
- при этом решедулирование и всё обслуживание системного времени участиться в 300 раз ... и в разы завалит вам итоговую производительность системы...
Цитата(makc @ Apr 6 2006, 12:08)

Если хотите сделать задержки меньше, то можете попытаться организовать отдельный поток и вызывать в нем функцию usleep, которая может приостанавливать выполнение (давать задержку) на заданное число микросекунд.
Не поможет

- все события в системе, разделённые интервалом времени меньше timeslice -
неразличимы и выглядят так, как если бы они произошли в одной точке времени.
Чем делу можно помочь?
Можете попробовать использовать другой задатчик времени: RTC (который на IRQ8 сидит а не на IRQ0) ... можете об этих делах почитать здесь:
http://qnx.org.ru/index.php?option=com_min...273&page=0.htmlhttp://en.wikipedia.org/wiki/Real-time_clockА вот здесь:
ftp://ftp.qnx.org.ru/pub/projects/ed1k/clock.tgz- лежит давненько уже написанная статья, одним знакомым, где с полным программным кодом показывается и объясняется как это делается... Только тягомутина всё это организовать - "ещё та"

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