Wymiana stron jest realizowana w funkcji
swap_out. Funkcja ta jest wołana tylko przez funkcję
refill_inactive, która jest z kolei wołana tylko przez funkcję
do_try_to_free_pages.
Funkcja do_try_to_free_pages jest zaś
wołana przez demona kswapd i w pewnych szczególnych przypadkach
przez funkcję __alloc_pages przydzielającą ramki pamięci
(szczegóły w pliku page_alloc.c).
Tak więc widzimy, że wymiana stron jest inicjalizowana przez funkcje
związane ze zwalnianiem i przydzielaniem pamięci.
Każde żądanie wymiany stron dotyczy całego systemu, i gdy tylko
jest zgłaszane to system (po przez funkcję swap_out)
stara się wymienić tak dużo stron jak tylko jest to możliwe.
Tomasz Szymko 27 listopada 2001