W Linuxie bufor stron jest strukturą inicjalizowaną i utrzymywaną
przez jądro systemu. Bufor ten jest zbiorem ramek trzymanych w listach,
do których dowiązania pamiętane są w tablicy mieszającej (ang. hash table)
page_hash_table.
W systemie, bufor stron jest początkowo pusty, a potem rozrasta się w miarę
potrzeb, dopóki nie zabraknie pamięci. Gdy skończy się pamięć, wówczas
uruchamiany jest mechanizm czyszczenia pamięci, który prawie zawsze zaczyna
zwalnianie pamięci od redukcji podręcznej pamięci buforowej stron.
Reasumując, w systemie jest tylko jeden bufor stron i nie ma
limitu górnego na ilość buforowanych stron.
Rysunek:
Struktura podręcznej pamięci stron.
|
Aby szybko stwierdzić czy dana strona4,
jest już buforowana, bufor stron został zaimplementowany jako
tablica mieszająca z rozwiązywaniem kolizji metodą łańcuchową.
Tablica mieszająca ma rozmiar zależny od rozmiaru pamięci operacyjnej komputera,
a pamiętane są w niej wskaźniki na listy ramek wchodzących w skład
bufora. Dalej taką pojedyńczą listę ramek będę nazywał ,,kubełkiem''
tablicy mieszjącej.
Tomasz Szymko 25 listopada 2001