Clock (Second Chance)

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Clock (Second Chance)
Ich hätte ein Paar Fragen zu dem Second Chance Ersetzungsverfahren.

Erstmal überhaupt ob ich das richtig verstehe:
Ich “nulle” erst dann, wenn ein Seitenfehler aufgetreten ist und nur den Bereich der sich “unterhalb” des Auswahlzeigers befindet? Wenn nicht, wieso wurden bei der Seitenreferenz nr. 7 die Kacheln 2 und 3 nicht genullt?

Hauptfrage: Widersprüchlich zu dem Hinweis, wurde bei der Seitereferenz nr. 10 Auswahlzeiger nicht hochgesetzt, bzw. ich dann beim Einfügen der 3 dann eigentlich die 1 Überschreiben müsste, weil der Auswahlzeiger ja auf 2 steht? Tippfehler?

Ich hoffe mir kann jemand erklären, wann ich 1. die Zellen nulle und 2. wann der Auswahlzeiger wandert.


Disclaimer: (I)DB ist schon etwas her.

Ja, der Zeiger wandert nur wenn eine neue Seite in den Speicher geladen werden soll. Wird auf eine schon vorhandene Seite zugegriffen, dann wird der „Kontrollzustand“ auf 1 gesetzt, falls er vorher 0 war.

Du gibst jeder Seite eine zweite Chance, daher der Name. Dabei gehst du von der aktuellen Position („Auswahlzeiger“) los und schaust ob der „Kontrollzustand“ 0 ist, falls ja, hatte die Seite schon ihre 2. Chance und wird verdrängt. Falls sie noch 1 ist, setzt du den „Kontrollzustand“ auf 0 (zweite Chance) und läufst weiter. Dass ganze geht immer Reihum wie auf einer Uhr, daher Clock.

Bei 7 stand ja der „Auswahlzeiger“ schon auf 3, was den „Kontrollzustand“ 0 hatte. Damit wird diese Seite sofort verdrängt, keine anderen Seiten werden mehr angeschaut.

Bei 10 wird keine Seite verdrängt, sondern nur auf schon vorhandene Seite zugegriffen.

1 „Gefällt mir“

Dankeschön für die erste Erklärung, klingt logisch. Mit Vorlesungsfolien verifiziert, ergibt das auch Sinn.

Ja, dabei wird aber doch das Bit auf 1 gesetzt weil da drauf zugegriffen wurde. Laut dem Hinweis sollte dann der Auswahlzeiger ebenso wandern. Zumal die 3 später dann nicht die 1 ersetzt, sondern die 4 an der Position 3. Ich gehe von einem Tippfehler aus, denn so wurde das auch davor gemacht (wandern bei setzen von 0 auf 1) .


Ich glaube der Hinweis bezieht sich nur darauf, worauf der Zeiger zeigt, nicht wann er wandert.

Das liegt aber daran, dass Kachel 2 (worauf „Auswahlzeiger“ zeigt) noch auf 1 ist, aber Kachel 3 auf 0. Deswegen wird Kachel 3 verdrängt.

Vorher kam der Fall nicht vor, da wurde immer auch eine Seite verdrängt oder das Bit war schon auf 1.

Ich weiß aber auch nicht ob meine These stimmt.


Okay, das war wohl der Knackpunkt. Zeiger wandert nur dann, wenn es einen Seitenfehler gibt, also die Seite nicht eingelagert ist.

Jetzt macht es auch Sinn. Danke Dir!