nejasnosti kolem volani jadra

Martin Mares mj na atrey.karlin.mff.cuni.cz
Úterý Červen 15 17:04:01 CEST 1999


Zdravim,

> 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?)).

   Zadny proces se nikdy nesmi spolehat na to, ze nejake kernelove volani
je neprerusitelne. Pouze u nekterych systemovych callu je zarucena
jejich atomicita vzhledem k ostatnim callum stejneho typu. Jinymi slovy:
systemove volani muze byt obecne preruseno kdykoliv, i kdyz jeho konkretni
implementace to muze nejak omezovat, coz ovsem vubec nemusi zalezet na
stavu procesu (i proces ve stavu R se muze rozhodnout, ze da ostatnim
procesum v temze stavu sanci bezet tim, ze se dobrovolne vzda strojoveho
casu).
 
> 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)?

   S nedokoncenym volanim se nedeje vubec nic zvlastniho -- az bude
proces opet prischedulovan, pokracuje se v nem tam, kde se skoncilo.

				Have a nice fortnight
-- 
Martin `MJ' Mares   <mj na ucw.cz>   http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
"You might have mail."


Další informace o konferenci Linux