b.Procesul page stealer

[ ]
Nucleul treze?te procesul page stealer atunci cnd memoria liber disponibil n sistem ajunge la un nivel minim, iar acesta evacueaz pagini pn cnd memoria liber disponibil n sistem ajunge la un nivel stabilit.
Cnd page stealer decide s evacueze o pagin, acesta verific dac o pagin exist o copie a paginii pe dispozitivul de swap. Exist trei posibiliti:
1. Dac nu exist nici o copie a paginii pe dispozitivul de swap, nucleul planific pagina pentru o evacuare: page stealer pune pagina ntr-o list a paginilor care trebuiesc evacuate ?i continu; din punct de vedere logic, evacuarea este terminat. Cnd lista paginilor de evacuat atinge o limit (dependent de prioritile controlerului de disc), nucleul scrie paginile pe dispozitivul de swap.
2. Dac exist deja o copie a paginii pe dispozitivul de swap ?i nici un proces nu i-a modificat coninutul n memorie (n intrarea din tabela de pagin bitul modify este ?ters), nucleul ?terge bitul valid al intrrii din tabela de pagin, decrementeaz contorul de referin la intrrii din tabela pfdata ?i pune intrarea ntr-o list de intrri libere n vederea unei alocri viitoare.
3. Dac exist o copie a paginii pe dispozitivul de swap, dar un proces a modificat coninutul paginii n memorie, nucleul planific pagina pentru a fi evacuat, ca mai sus, ?i elibereaz spaiul pe care pagina l ocup pe dispozitivul de swap.
n concluzie, exist dou faze n evacuarea unei pagini din memorie. n prima faz, page stealerul gse?te pagina ce poate fi evacuat ?i plaseaz numrul paginii n lista de pagini care trebuie evacuate. n cea de-a doua faz, nucleul copiaz pagina pe dispozitivul de swap convenit, pune pe "0" bitul valid n intarea din tabela de pagin, decrementeaz contorul de referin al intrrii din pfdata ?i pune intrarea din pfdata la sfr?itul listei de intrri libere dac din memorie este valid pn cnd pagina este reasigurat.

:

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