Least frequently used

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen) ausgestattet. Die fraglichen Angaben werden daher möglicherweise demnächst entfernt. Bitte hilf der Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst. Näheres ist eventuell auf der Diskussionsseite oder in der Versionsgeschichte angegeben. Bitte entferne zuletzt diese Warnmarkierung.
Z.Z. sind weder Literatur noch Einzelnachweise vorhanden. --H.Marxen (Diskussion) 15:07, 17. Mai 2013 (CEST)

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 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 (Paging).

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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

Literatur[Bearbeiten]

  • Andrew S. Tanenbaum: Moderne Betriebssysteme. 3. Auflage. Pearson Studium, 2009, ISBN 3-8273-7342-5 (umfassende Erläuterungen zur Speicherverwaltung, Übersetzung aus dem Englischen)