problem casovani programu bylo Re: ioperm - program
Ladislav Vaiz
ziav na adela.fel.zcu.cz
Středa Leden 28 10:08:44 CET 2004
Trosku upresnim:
> Problem bude v tom, ze casovac kernelu v rade 2.4 bezi na 100Hz a proto
> tezko probudi proces, ktery se uspal pomoci nejake verze sleep
> dostatecne presne. Da se stahnout patch, ktery zvetsi HZ na 1000 a v
Tim je myslena symbolicka konstanta na zacatku souboru
include/asm-i386/param.h.
Pouzivejte radeji select misto usleep, chova se lepe (pri 100Hz casovaci
ceka 10ms, usleep ceka 20ms).
> rade 2.6 je to 1000 defaultne. Tim se trochu zlepsi odezva, ale pokud to
> potrebujes opravdu relativne presne, tak ti asi nezbyde nic jineho nez
> aktivne cekat v nejake smycce a cas merit treba pomoci tiku procesoru.
Muzete cist mikrosekundy pomoci gettimeofday a kdyz uplynou, tak smycku
ukoncit. To bude fungovat uspokojive, pokud vas proces pobezi sam.
Pokud by vam stacil seriovy port a jeho ctyri ridici vstupy, muzete napsat
jednoduchy ovladac do jadra a vyuzivat preruseni. Komunikovat s userspace
muzete treba pres znakove zarizeni. To by bylo nejcistsi a nejfunkcnejsi
reseni.
La'd"a
__... ...__ _.. . ___ _._ .____ __.. .. ._
(__)
(oo) U
/-------\/ /---V
/ | || * |--| .
* ||----||
^^ ^^
Cow at 1 meter. Cow at 100 meters. Cow at 10,000 meters.
Další informace o konferenci Linux