- Least frequently used
-
Least frequently used (LFU) („am Wenigsten verwendet“) ist ein Algorithmus, der das Vorgehen beim Auswechseln einer Page in der Pagetable beschreibt. Dabei versteht man unter einer Page (deutsch: „Seite“) einen Speicherblock des Computerspeichers mit fester Größe. Die Pagetable ist eine Tabelle, mit deren Hilfe man eine logische Speicheradresse in eine physische Speicheradresse (oder umgekehrt) umrechnen kann.
Der Algorithmus besagt, dass derjenige Pageeintrag in der Pagetable ersetzt wird, der bislang am wenigsten verwendet wurde.
Ein Problem bei diesem Algorithmus ist, dass eine Page, die zu Beginn viel verwendet wurde, einen hohen Zähler besitzt (der Zähler zeigt an, wie viele Male der Pageeintrag in der Pagetable verwendet wurde). Diese Situation ist durchaus denkbar beim Ladevorgang. Obwohl der Pageeintrag danach nicht mehr abgefragt wird, bleibt dieser Eintrag in der Pagetable, da der Zähler hoch genug ist. Somit verliert man einen Platz in der Pagetable. Eine Lösung für dieses Problem kann zum Beispiel sein, den Zähler pro Zeiteinheit um ein Bit nach rechts zu schieben, was zu einer exponentiellen Abnahme des Zählers führt. Dadurch wird verhindert, dass sich ein Eintrag, der für einige Zeit viel verwendet wurde, auf den danach aber fast gar nicht mehr zugegriffen wird auf ewig in der Pagetable halten kann.
Falls sich die Situation ergeben sollte, dass der Algorithmus zwischen zwei Pageeinträgen mit gleich hohem Zähler auswählen muss, kann zum Beispiel der FIFO Algorithmus angewandt werden.
Vorteile:
- Relativ leicht zu implementieren
- Beachtet das Alter einer Seite
- Beachtet die Referenzhäufigkeit einer Seite
Nachteile:
- Eine einmal häufig referenzierte Seite wird erst nach vielen Misses ersetzt und blockiert somit den Cache
Implementierung
Bei LFU wird zu jeder Seite im Cache ein Referenzzähler geführt, der angibt wie oft auf die Seite zugegriffen wurde. Jeder Seitenzugriff erhöht den Referenzzähler. Muss eine Seite ersetzt werden, weil der Cache voll ist, wird die Seite mit den wenigsten Referenzen ersetzt.
Beispiel
A:2 A:2 F:1 B:3 –B→ B:4 –F→ B:4 C:8 C:8 C:8 Cache-Hit Cache-Miss Siehe auch
- GCLOCK
- Least recently used
- LRU-K
- First In – First Out
- Paging
Kategorie:- Betriebssystemtheorie
Wikimedia Foundation.