FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Technische Informatik

RS: Second Chance Algorithmus

RS: Second Chance Algorithmus 2008-02-12 19:37
Anonymer User
kann mir den jemand bitte nochmal langsam erklären an dem beispiel im skript und bitte immer hinschreiben, bei wem das Benutztbit gesetzt ist, bzw nicht.

RE: RS: Second Chance Algorithmus 2008-02-12 20:58
T
schaust du hier: (mit beispiel, ohne skript)
wir haben fünf speicherplätze
->0: 1: 2: 3: 4:
die sind alle leer. nun tun wir was rein bis sie voll sind:
0°:c 1°:a 2°:e 3°:b -> 4°:n
dabei soll ° heissen dass dieser inhalt genutzt wurde, der pfeil zeigt auf das zuletzt eingefügte.
nun wollen wir ein d. alles ist voll. wir bewegen den zeiger einen nach rechts. hier also wieder an den anfang.
->0°:c 1°:a 2°:e 3°:b 4°:n
hier steht, dass der inhalt dieses platztes schon benutz wurde, also müssen wir weiter und markieren den platz schonmal als nicht-benutzt.
0:c ->1°:a 2°:e 3°:b 4°:n
dieser platz ist aber auch schon benutzt. wir gehen also weiter - bis wir wieder bei der 0 ankommen.
->0°:d 1:a 2:e 3:b 4:n
hier können wir das d einfügen. nun lesen wir ein e. wir wollen ein h. also verschieben wir den zeiger:
0°:d ->1°:h 2°:e 3:b 4:n
und siehe da, der platz ist frei. man beachte auch das ° vor dem e. e hatten wir ja grade gelesen.
nun wollen wir ein x lesen. wir verschieben wieder den zeiger:
0°:d 1°:h ->2°:e 3:b 4:n
ne, das ist markiert, das können wir jetzt nicht löschen. also weiter
0°:d 1°:h 2:e ->3°:x 4:n
ja, da ist platz, das b wurde nicht genutzt seit der zeiger das letzte mal hier vorbeigelaufen ist.

der vorteil von second-chance liegt darin, dass alles was einmal im speicher liegt mindestens einen durchlauf drin bleibt. und das ohne sich irgendwelche zeiten zu merken oder die dinge in eine reihen folge zu bringen. das ist vergleichsweise einfach zu implementieren, läuft schnell und braucht wenig speicher.
man kann es sich ganz gut als kreis vorstellen. wenn eine seite genutzt wird, wird das flag gesetzt. wenn ein platz gebraucht wird geht der zeiger um und löscht solange ein flag nach dem anderen bis er irgendwo vorbeikommt wo das flag nicht gesetzt war. dort kommt die neue seite rein.