[LUGOS-PROG] Milisekundni stevec
Rok Papež
rok.papez at lugos.si
Wed Nov 6 12:12:23 CET 2002
Zivjo!
Dne sreda 6. november 2002 08:27 je davorin.robba at ensico.si napisal(a):
> Zal morajo biti vsaj milisekunde. Na majhnem kontrolerju (PC baziran na
> 486) smo razvili aplikacijo (napisana v C/C++), ki tece na linuxu. V
> aplikaciji rabimo milisekundni cas za sinhronizacijo in racunanje
> timeout-ov. Pri pregledu funkcij sem opazil, da vse jemljejo cas iz
> sistemske ure, ki pa se jo da spreminjati. Ob spremembi ure pa se
> racunalniku zmesa in odleti. Rabimo tako funkcijo, ki recimo vrne uptime
> izrazen v milisekundah. Na windows-ih je to GetTickCount(). Po mojem mora
> kaj takega obstajati tudi na linux-u.
Morda bi zadostoval /dev/rtc ?
rtfm:/usr/src/linux/Documentation/rtc.txt
Ticke pa Linux pozna pod imenom "jiffie". Le ta se inkrementira vsakic, ko se
sprozi scheduler. Stevilo jiffijev na sekundo je razvidno iz makra HZ, ki je
na x86 2.4 jedru nastavljen na 100.
HZ je definiran v datoteki /usr/src/linux/include/asm-i386/param.h
Ce se zeli hitrejsa odzivnost sistema se lahko spremeni vrednost HZ in ponovno
prevede kernel.
Gonilnik, ki bi vracal trenutno stevilo jiffies vrednosti pa je trivialno
spesniti (ce ze ne obstaja).
IMO je Primozev predlog se najboljsi.. potrebno je potem samo se pretvarjati
med stevilom urinih tickov in frekvenco delovanja procesorja.. ki pa je
razvidna iz /proc/cpuinfo.
Morda bi se splacalo pogledati se RTAI ali RTLinux.
--
best regards,
Rok Papež.
More information about the lugos-prog
mailing list