b.Procesul page stealer
Cвnd page stealer decide sг evacueze o paginг, acesta verificг dacг o paginг existг o copie a paginii pe dispozitivul de swap. Existг trei posibilitгюi:
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г. Cвnd lista paginilor de evacuat atinge o limitг (dependentг de prioritгюile 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 conюinutul оn memorie (оn intrarea din tabela de paginг bitul modify este ?ters), nucleul ?terge bitul valid al intrгrii din tabela de paginг, decrementeazг contorul de referinюг la intrгrii din tabela pfdata ?i pune intrarea оntr-o listг de intrгri libere оn vederea unei alocгri viitoare.
3. Dacг existг o copie a paginii pe dispozitivul de swap, dar un proces a modificat conюinutul paginii оn memorie, nucleul planificг pagina pentru a fi evacuatг, ca mai sus, ?i elibereazг spaюiul 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 gгse?te pagina ce poate fi evacuatг ?i plaseazг numгrul 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 intrгrii din pfdata ?i pune intrarea din pfdata la sfвr?itul listei de intrгri libere dacг din memorie este valid pвnг cвnd pagina este reasiguratг.