[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