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