...do_swap_page()1
Funkcja ta jest uruchamiana w przypadku błędu braku strony (page fault); znajduje się w pliku mm/memory.c
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...try_to_swap_out() 2
Wszystkie funkcje swap_out_*() oraz try_to_swap_out() znajdują się w pliku mm/vmscan.c
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... odwiedzana3
Warto zwrócić uwagę, że jest to drugie miejsce, gdzie możemy postarzać stronę (po refill_inactive_scan()). Różnica polega na tym, że tu patrzymy na bit _PAGE_BIT_ACCESSED, a nie PG_referenced.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... stroną4
System traktuje strony nieaktywne jako już wysłapowane, jedyna różnica polega na tym, że jeżeli ktoś się do nich odwoła to nie trzeba będzie ich ściągać z dysku
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... strony5
Jeżeli dużo procesów odwołuje się do strony, to zostaje ona wyswappowana dopiero, gdy page->count == 1, czyli odwołanie tylko ze swap_cache. W ten sposób nie wyrzucamy strony, dopóki nie wyswappujemy jej od wszystkich procesów
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... wyswappowana6
pte wskazuje na swap entry, do którego została przypisana strona
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... inactive\_target7
To porównanie znajduje się w funkcji inactive_shortage()
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... inactive\_target8
Deklaracja znajduje się w pliku includeinuxwap.h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.