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