hochauflösender Timer
-
Hallo,
kennt sich jemand unter Linux aus mit Timern? Ich suche ein Äquivalent zum Multimedia-Timer unter Windows. Der löst nämlich bis 1 ms auf. Unter Linux ist mit nur die Möglichkeit von SIGALARM bekannt, wo ich aber nur 10 ms habe und auch nur ein Alarm-Signal pro Prozess.
-
Was hat dass mit ANSI C am Hut(h)?
-
http://www.freebsd.org/cgi/man.cgi?query=setitimer&apropos=0&sektion=0&manpath=FreeBSD+5.3-RELEASE+and+Ports&format=html
die structur timeval aus time.h bietet eine auflösung von microseconds.
-
in python werden sleeps mit einem select() simuliert
-
Die Funktion settimer lässt zwar Werte im Mikrosekunden-Bereich zu, der Timer kann aber nur Zeiten von 10 ms auflösen, da der Scheduler dafür verantwortlich ist. Der schaut nämlich nach jedem Task-Wechsel in seiner Liste nach ausführbaren Tasks nach, und das mit einer Frequenz von 100 Hz.
Man kann auch am Scheduler vorbei Timer benutzen, die dann über Interrupts die am Timer angemeldete Task ausführen.
Nun wollte ich wissen, wie das unter Linux durchgeführt werden kann und ob ich dazu vielleicht einen Kernel-Patch brauche.