nejasnosti kolem volani jadra
Jan Kara
jack na atrey.karlin.mff.cuni.cz
Pondělí Červen 14 22:56:48 CEST 1999
>
> > Proces, ktery se prave potuluje v jadre, se muze nachazet ve zhruba trech
> > zajimavych stavech: R=running (bezici), S=interruptible sleep (prerusitelne
> > cekani) a D=non-interruptible sleep (neprerusitelne cekani).
> >
> > V R neco dela, v S a D na neco ceka (vetsinou na I/O), pricemz ve stavu S
> > je schopen sve cekani prerusit, kdyz prijde nejaky signal a vratit se do
> > userlandu, zatimco D jen tak prerusit nelze (vetsinou z toho duvodu, ze
> > proces drzi nejaky zamek a bude vnejsim podnetum pristupny, az kdyz ho
> > uvolni).
> Kdyz tedy dam umount filesystemu, ktery ma nejaka data v cache (disketa),
> kernel udela fs_lock, data zapise, odmounti to a nakonec udela fs_unlock?
> Nebo se da neprerusitelnost umountu vysvetlit jinak?
Tedy umount zavola sys_umount. Ten potom jednak zrusi dcache pro dany fs,
jednak da sync bloku a pak se vezme lock od filesystemu a vycisti se inode cache.
Ten umount by mel byt v zasade prerusitelny (tedy alespon v prubehu toho syncu).
Jinak potom pozdeji uz asi ne, protoze se ceka na nejake ty inody (ale to by
nemelo moc nastavat) a tam se ceka neprerusitelne...
Honza.
Další informace o konferenci Linux