nejasnosti kolem volani jadra
Martin Macok
macok na kocour.ms.mff.cuni.cz
Úterý Červen 15 14:39:01 CEST 1999
On Tue, 15 Jun 1999, Bashar wrote:
> Pavel Kankovsky wrote:
> > 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).
> >
>
> 1) Chapu, ale zajimalo by me, jaky podnet dovede prerusit systemove
> volani
> a jestli se pri tomto preruseni bere ohled na stav procesu, ktery to
> volani vykonal (protoze kdyz proces zavola systemove volani je nejdrive
> ve
> stavu R a terpve potom se muze dostat do stavu jineho (jak/kdy?)).
>
> 2) V pripade, ze se pri systemovem volani ceka na dokonceni I/O
> (a prekroci se kvantum casu pridelene procesu) - jaky mechanizmus
> preda procesor jinemu procesu a co se deje s nedokoncenym volanim
> (kdo zavola scheduler)?
Takovy proces bude ve stavu S, to znamena, ze je zablokovan a ceka na ten
I/O a mezitim vesele jinej proces maka na procesoru ... az prijde I/O, tak
se prerusi ten makajici, odblokuje ten S a jede se dal.
Pokud by byl ve stavu D, tak mu casove kvantum nedojde, proste tam bude
viset, dokavad bude chtit (dokavad nedostane ten I/O)
Je to ono, co jste chtel vedet?
--
-===========================<ISO-8859-2-compatible>=-
| Martin Mačok |
| email: martin.macok na st.mff.cuni.cz |
| WWW: http://kocour.ms.mff.cuni.cz/~macok/ |
-===================================================-
... but Microsoft is today and Linux is tomorrow ...
Další informace o konferenci Linux