nanosleep()
Zdenek Kabelac
kabi na fi.muni.cz
Úterý Září 29 19:42:02 CEST 1998
Smolik Daniel wrote:
>
> Martin Mares wrote:
> >
> >
> > Problem je v tom, ze pro real-timove procesy (to jest ty, ktere maji
> > scheduling type jiny nez SCHED_OTHER), se intervaly do 2ms resi busy-loopem
> > a ty vetsi nez 2ms (pripadne vsechny pro SCHED_OTHER) pomoci timeru, ktery
> > na PC tika jednou za 10ms. Rozumnym resenim je v pripade, ze je zapotrebi
> > presneho casovani, opakovat cekani na 2ms. Odporne, ale asi jedine mozne :((
>
> Tak jsem to nakonec vyresil, ale zdalo se mi to odporne tak jsem se
> radeji zeptal :-)).
To tikani 1x10ms se da samozrejme zlepsit tim, ze se zvedne pocet switchu
ze 100Hz
na 1000Hz jednou zmenou headru pred kompilaci linuxoveho kernelu, cimz se
dostanes
na tu vysnenou 1ms - jenze to ti neresi pripade pristupu na disky a dalsi
zloradne interupty, ktere jsou schopne pocitac blokovat i na 10ms. Na tyhle
pripady je pak SCHED_FIFO kratky - dle meho nazoru se to vyborne hodi,
pokud muzes prezit ztratu nekolika milisekund bez problemu - tj. napriklad
prehravani
.mpg apod., kdy mas buffer a ten je potreba naplnit a mit zaruku, ze i pri
zatizenem
systemu se dostane dostatecne vcas k lizu, za predpokladu, ze vetsina
zbylych
tasku bezi pod normalnim schedulerem.
Ja myslim ze 9 z 10 linuxaku by hlasovalo pro pouziti RT-linux, pokud
programujes
nejakou casove kritickou operaci.
--
Odstranite-li ve Windows95 vsechny chyby
budete mit prazdny disk
Zdenek Kabelac http://www.fi.muni.cz/~kabi/ kabi na fi.muni.cz
Další informace o konferenci Linux