Zadanie laboratoryjne
"Zmiana sposobu postarzania ramek"
Obecnie w systemie Linux stosuje się liniowe postarzanie ramek. Każdy
element struktury page posiada pole: age w którym przechowywany jest wiek
strony ( im strona ma mniejsz± warto¶ść age tym jest starsza ). Co pewien
czas, każda ramka, w zależności od tego czy jaki¶ś proces się do niej odwoływał
czy nie, zostaje odmładzana lub postarzana. Odmładzanie polega na zwiększeniu
pola age o wartość stałej PAGE_ADVANCE = 3,a postarzanie na zmniejszeniu
age o stał± PAGE_DECLINE=1. Przy czym pole age nie może przyjmować warto¶ści
ujemnych ani przekroczyć stałej MAX_PAGE_AGE = 20. Gdy zaczyna brakować
pamięci zwalniane s± tylko odpowiednio stare ramki.
Zadanie polega na takim zmodyfikowaniu kodu aby szybkoś¶ć starzenia
się ramek uzależniona była od iloś¶ci wolnej pamięci. Można to uzyskać
na dwa sposoby : albo zamienić stałe PAGE_ADVANCE i PAGE_DECLINE na zmienne,
albo zast±pić je kilkoma stałymi.Można wtedy tak manipulować wartościami
PAGE_ADVANCE i PAGE_DECLINE aby nie dopuścić do stanu niebezpiecznie małej
ilości wolnej pamięci.
Należy także , zaproponować sposób testowania skutków zaproponowanych
zmian w kodzie.
Autor : Radosław Rudzki