a.reincarcarea proceselor

[ ]
Procesul 0, swapper-ul, este singurul proces care ncarc procese n memorie din zonele de swap. La sfr?itul iniializarii sistemului, swapper-ul intr ntr-o bucl infinit, n care singura sa sarcin este s fac ncrcarea/evacuarea proceselor. El ncearc s ncarce procese din zona de swap ?i evacueaz procese dac este nevoie de spaiu n memoria principal. Dac nu are nici o sarcin de rezolvat, swapper-ul se pune n a?teptare(de exemplu, dac nu exist procese care pot fi alese pentru a fi ncrcate) sau dac este incapabil s fac altceva (nu exist procese care pot fi alese pentru a fi evacuate); nucleul l treze?te periodic, a?a cum vom vedea n continuare.Nucleul planific execuia; swapper-ul se execut numai n modul kernel. Swapper-ul nu face apeluri de funcii sistem dar utilizeaz funcii interne nucleului pentru a executa transferul.Handler-ul (rutina de tratare) de ceas msoar timpul ct fiecare proces a stat n memoria intern sau a fost evacuat. Cnd swapper-ul este trezit pentru a ncrca procese, el verific toate procesele care sunt n starea "ready-to-run" evacuate ?i selecteaz pe acela care a stat cel mai mult timp evacuat.
Dac este destul memorie liber disponibil, swapper-ul ncarc procesul n memorie, executnd operaiile inverse evacurii: aloc memorie fizic, cite?te procesul din zona de swap ?i elibereaz spaiul de swap.
Dac swapper-ul a terminat cu succes ncrcarea unui proces, el caut un alt proces n starea "ready to run" pentru a-l ncrca n memorie si repet procedura descris mai nainte. Poate aprea, n final, una din urmtoarele situaii:
-nu exist procese n starea "ready to run" pe dispozitivul de swap: swapper-ul trece n starea de a?teptare pn cnd l treze?te un proces din zona de swap sau pn cnd nucleul evacueaz un proces care este n starea "ready to run".
-swapper-ul gse?te un proces potrivit pentru a fi ncrcat, dar sistemul nu contine memorie suficient: swapper-ul ncearc s evacueze un alt proces, ?i, dac reu?e?te, restarteaz algoritmul de ncrcare, cutnd un proces pentru a-l ncrca n memorie.

:

Network | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | () | | | | | | | | | | | | | | | | () | Assembler | Basic, VB | Pascal | , ++ |