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