Proces s _uplne_ idle prioritou

Pavel Machek pavel na suse.cz
Pondělí Červen 11 16:59:28 CEST 2001


Hi!

> > > Vypada to, ze 2.4 umi SCHED_YIELD, coz podle kodu i komentare ve funkci
> > > goodness() v sched.c je presne to, co potrebujete.
> > 
> > sched_yield je neco jineho.
> 
> Ne sched_yield(), ale SCHED_YIELD jako parametr pro sched_setscheduler().
> A pokud to i presto dela neco jineho, pak by mne tedy zajimalo co...

Nejspis jo, protoze AFAIK 2.4.X tohle proste neumi.

> > To co ten clovek chce *nejde*.
> 
> Zcela urcite je to algoritmicky resitelny problem, a tudiz to jde. Otazka
> je jen, jak je obtizne to udelat. :)

A jestli by se tomu potom jeste dalo rikat linux ;-).

Problem je tenhle: predpoklada se, ze kazdy proces aspon trochu bezi, takze
kdyz si vezme lock, tak ho taky nekdy pusti. Tohle "uplne idle" procesy 
porusuji. Vysledkem je tak desivy pripad priority inversion, ze nad nim
neni mozne zavrit oci, coz linus jinak dela.

Reseni je takovemu "uplne idle" procesu dat "normalni" prioritu pokud je
zrovna v kernelu. Patch na to jsem videl. (Ale to uz zas neni tak "uplne
idle" ;-)
								Pavel
-- 
Philips Velo 1: 1"x4"x8", 300gram, 60, 12MB, 40bogomips, linux, mutt,
details at http://atrey.karlin.mff.cuni.cz/~pavel/velo/index.html.



Další informace o konferenci Linux