Wątek przeniesiony 2016-05-31 11:53 z Edukacja przez somekind.

Pamięć wirtualna - algorytm drugiej szansy

0

Witam,

bardzo proszę o potwierdzenie czy dobrze to rozumiem, że momentem, w którym bity odwołania wszystkich stron (poza bitem strony, która zastępuje) są zerowane jest zastąpienie w Ramce 1?

Mam na myśli poniższą sytuacją dla chwili 5:
user image

Czy zatem poprawnie to rozumiem na przykładzie chwil 5, 12 i 17?

user image

Pozdrawiam,
Arek

2

Nie, to co napisałeś nie ma sensu i chyba w ogóle nie rozumiesz co się tutaj dzieje. Nie ma takiego kroku algorytmu że nagle zerujesz wszystkie bity, niemniej taka sytuacja moze wystąpić. Algorytm jest prosty jak budowa cepa:

  1. Strona po użyciu ląduje na końcu kolejki fifo a jej bit jest ustawiany na 1
  2. Kiedy FIFO się zapełni to szukamy ofiary do wyrzucenia przeglądajac kolejkę od początku:
    a) jeśli bit strony na początku kolejki jest 1 to zerujemy go a strona leci na koniec kolejki (dajemy drugą szansę)
    b) jeśli bit strony na początku kolejki jest 0 to strona wylatuje

Więc w twojej chwili czasowej 5 przeglądamy sobie kolejkę w poszukiwaniu ofiary, ale że wszystkie strony mają bit 1 to każda dostanie drugą szansę. Więc będziemy po kolei przerzucać strony na koniec kolejki zerujac bit aż nie zatoczymy koła i znów nie trafimy na stronę 1, która teraz ma już wyzerowany bit i zostanie wywłaszczona.

Weź moze spróbuj przeczytać choćby http://edu.pjwstk.edu.pl/wyklady/sop/scb/wyklad8/wyklad.html ? Bo mam wrażenie że ty próbujesz zgadywać jak te algorytmy działają...

0

Dzięki bardzo.
Wydaje mi się, że rozumiem.
Brakowało mi tego puzzla, że w w ramach jednej chwili robimy dwa cykle - najpierw zerujemy, a potem siłą rzeczy trafia się pierwszy do zastąpienia.
Abstrahując od niewłaściwie postawionego przeze mnie pytania czy te rozwiązanie dla 20 chwil jest poprawne - bo wydaje mi się, że tak (mimo, że przygotowane początkowo bardziej intuicyjnie niż na podstawie zrozumienia tematu)?

Pozdrawiam,
Arek

0
arhetyp napisał(a):

...Brakowało mi tego puzzla, że w w ramach jednej chwili robimy dwa cykle...

Tylko drobna poprawka -- to nie są dwa cykle, tylko jeden, robiony do skutku (do natrafiania na pierwsze zero).

1 użytkowników online, w tym zalogowanych: 0, gości: 1