Mereni casu v microsekundach

Michal Dobes dobes na tesnet.cz
Středa Říjen 9 08:27:53 CEST 2002


Dominik Formanek wrote:
> Jasne, ja prave nepotrebuju vedet cas presne, ale potrebuju zjistit u
> par mereni, ktere bylo nejkratsi a nejdelsi a pak z toho neco vyvodit.

Z nejdelsicho a nejkratsiho pro nekolik mereni se da spatne neco 
uvazovat.
 
> U WINDOWSUX verze autori pouzivaji THREAD_PRIORITY_TIME_CRITICAL, u
> linuxu by to melo jit taky, ale v tech vlaknech se moc nevyznam.... :-(

Pokud nevadi, ze aplikace bude potrebovat prava roota, tak by se 
v ni mohlo mhlo vyskytnout neco tahovedleho:

mlockall(MCL_FUTURE); // zabrani odswapovani aplikace a jejich dat

a pak si znasilnit scheduler zhruba v tomto duchu:

struct  sched_param parms;
parms.sched_priority=sched_get_priority_max(SCHED_FIFO);
sched_setscheduler(getpid(), SCHED_FIFO, &parms);

Pokud to je psano jako vicevlaknova vec, tak je to pak fce
pthread_setschedparam(pthread_self(), SCHED_FIFO, &parms);

A pozor, proces bezici s SCHED_FIFO bezi bez preruseni tak
dlouho, dokud se nezablokuje na nejakem I/O nebo ve fronte nebude
volny jiny proces s SCHED_FIFO a vyssi prioritou (coz by v nasem
pripade by uz byt nemelo). Takze pokud ma pocitac jeste delat neco
jineho, tak je vhodne cas od casu pouzit sched_yield(). 

Jirka Kosina wrote:
> V pripade userspace programu bych se bez nejakych realtime patchu do jadra 
> ani nedivil, ze namerene hodnoty neodpovidaji, chovani scheduleru lze jen 
> pomerne obtizne predvidat.

Ehm, v pripade pouziti real-time jadra neni pro user space 
aplikaci jiste uz absolutne vubec nic (a ani pro vlastni 
jadro). :-)
Pokud to teda neni napsano specialne jako hard RT user space 
aplikace. To umi RT-AI s LXRT (tusim) a RT-Linux to umi 
v kombinaci s PSC, ale to je jen za penize.

> (BTW Tykami Ti, protoze mam za to, ze se zname z Fida. Pokud ne, sorry ;))

FIDO je vecne.... 2:423/118.

	Majkl


Další informace o konferenci Linux