Lektion
Die Theorie — Seitenersetzung: FIFO, LRU und die optimale Strategie
Der Speicher ist in gleich große Seitenrahmen unterteilt, die Daten eines Programms in Seiten derselben Größe. So passt jede Seite in jeden Seitenrahmen. Die Referenzfolge gibt an, auf welche Seiten ein Programm der Reihe nach zugreift. Ein Zugriff auf eine Seite, die nicht im Speicher liegt, verursacht einen Seitenfehler: Die Seite wird geladen. Ist kein Seitenrahmen frei, entscheidet eine Ersetzungsstrategie, welche Seite verdrängt wird. Eine Strategie zeigt bei einer Referenzfolge die Bélády-Anomalie, wenn sie mit F + 1 Seitenrahmen mehr Seitenfehler verursacht als mit F Seitenrahmen.
Was die einzelnen Symbole bedeuten
F- Anzahl der Seitenrahmen
n- Anzahl der Seiten in einer Schleife (durchgerechnete Aufgabe)
r- Anzahl der Schleifendurchläufe
- Setzt voraus
- Beim Demand Paging wird eine Seite erst geladen, wenn sie angefordert wird. Der Speicher ist anfangs leer, sodass der erste Zugriff auf jede Seite bei jeder Strategie einen Seitenfehler verursacht. Werden mehrere Seiten nicht mehr gebraucht, verdrängt OPT hier die Seite mit der kleinsten Nummer. Jeder Zugriff gilt genau einer Seite. Lese- und Schreibzugriffe werden nicht unterschieden; das Verdrängen einer Seite verursacht keine Kosten. Eine exakte Umsetzung von LRU müsste den Zeitpunkt jedes Speicherzugriffs festhalten. Das ist zu aufwendig. Deshalb nähern Betriebssystemkerne LRU mithilfe eines Referenzbits pro Seite an. Der bekannteste dieser Ansätze ist der Clock-Algorithmus.
Aufgabe vollständig gelöst
-
Wann LRU bei jedem Zugriff einen Seitenfehler verursacht 5 Schritte
Klick auf Schleife, OPT und bestimme, bei welchen Zugriffen die 7 Seitenfehler auftreten. Betrachte dann ein Programm, das ein Array von 100 Seiten 1.000-mal aufsummiert. Es stehen 99 Seitenrahmen zur Verfügung. Wie viele Seitenfehler entstehen mit LRU, wie viele mit OPT? Wie viele sind es mit einem 100. Seitenrahmen?
-
Im Beispiel verursachen die ersten 5 Zugriffe Seitenfehler: 4 füllen die leeren Seitenrahmen, der 5. verdrängt eine Seite. Danach treten die Seitenfehler in den Schritten 9 und 13 auf, im Abstand von 4 Zugriffen: 5 + 2 = 7.
-
Bei n − 1 Seitenrahmen und einer Schleife über n Seiten fehlt genau eine Seite der Schleife im Speicher. Tritt ein Seitenfehler auf, wird die unmittelbar zuvor gelesene Seite erst am spätesten wieder gebraucht: nach n − 1 Zugriffen. Im letzten Durchlauf werden manche Seiten nicht mehr benötigt; OPT kann dann auch eine davon verdrängen. Nach dem Verdrängen liegen die Seiten für die nächsten n − 2 Zugriffe im Speicher. Der nächste Seitenfehler tritt deshalb n − 1 Zugriffe später auf, im Beispiel nach 4 Zugriffen.
-
LRU mit 99 Seitenrahmen: Verursacht der Zugriff auf Seite p einen Seitenfehler, enthalten die Seitenrahmen alle anderen Seiten. Am längsten nicht mehr verwendet wurde p + 1, also die Seite, die die Schleife als Nächstes anfordert. Jeder der 100 × 1.000 = 100.000 Zugriffe verursacht einen Seitenfehler. Im Beispiel gilt das ebenso für alle 15 Zugriffe. FIFO verdrängt dieselben Seiten.
-
OPT: Die ersten 99 Zugriffe füllen die Seitenrahmen. Ab dem 100. Zugriff tritt alle 99 Zugriffe ein Seitenfehler auf, bei den Zugriffen 100, 199, 298, … Das sind 1 + ⌊(100.000 − 100) / 99⌋ = 1 + 1.009 = 1.010 Seitenfehler. Insgesamt ergeben sich 99 + 1.010 = 1.109. Das entspricht n + ⌊n(r − 1)/(n − 1)⌋ mit n = 100 und r = 1.000.
-
Mit einem 100. Seitenrahmen passt das gesamte Array in den Speicher. Jede der drei Strategien verursacht dann 100 Seitenfehler, einen pro Seite. Nach dem ersten Durchlauf treten keine mehr auf.
Antwort
LRU: 100.000, OPT: 1.109, mit einem zusätzlichen Seitenrahmen: 100. Eine Schleife, deren Seitenzahl die Zahl der Seitenrahmen um eins übersteigt, ist der ungünstigste Fall für LRU. Der zusätzliche Seitenrahmen senkt hier die Zahl der Seitenfehler um den Faktor 1.000.
-
Lernpfad
Was eine Datenstruktur mit wenig Aufwand leistet
Quellen (1)
- The first insight's date and attribution: the anomaly, and its formal treatment for FIFO: L. A. Belady, R. A. Nelson and G. S. Shedler, "An anomaly in space-time characteristics of certain programs running in a paging machine," Communications of the ACM 12(6), 349–353, June 1969.