Aby pomóc rozwiązać to pytanie, musimy nasze dane po prawej:
- 16 bit wirtualnej przestrzeni adresowej = 2^16 = 65536 przestrzeń adresowa
- 16 bit fizycznej przestrzeni adresowej = 2^16 = 65 536 przestrzeni adresowej
- 4096 Rozmiar strony bajtu określa przesunięcie, którym jest Log (4096)/Log (2) = 12 bitów. Oznacza to, że 2^12 dla rozmiaru strony
- Zgodnie @Akash Mahapatra, przesunięcie od adresu wirtualnego jest bezpośrednio odwzorowywany na przesunięcie na adres fizyczny
Jako taki, mamy teraz:
- 2^16 (16bit) dla adresu wirtualnego, 2^12 (12bit) dla offsetu => pozostawia nam 4-bity dla stron lub raczej całkowitą liczbę dostępnych stron.
- Nie będę powtarzać obliczeń fizycznych, ponieważ są to te same liczby.
- 2^4 (4bit) dla stron = 16, co jest skorelowane z liczbą wpisów w tabeli powyżej!
Docieramy tam ... bądź cierpliwy! :)
Adres pamięci 0xE12C w notacji szesnastkowej jest również znany z posiadania 16-bitowego adresu. (Ponieważ jest to wskazane w pytaniu.)
Załóżmy teraz zarżnąć adres ...
Najpierw usuń „0x” z informacją.
Możemy przekonwertować E12C na notację binarną, np. @Tony Tannous, ale zamierzam zastosować trochę skrótu.
po prostu użyć wskaźnika. Cóż, adres jest zapisany w 4 znakach powyżej, a ponieważ 16/4 = 4, mogę zdefiniować pierwszą literę jako adres wirtualny, podczas gdy pozostałe 3 to adres przesunięty.
Z informacją "E" w formacie szesnastkowym, muszę przekonwertować na wartość dziesiętną = 14. Następnie zajrzałem do podanego stołu i znalazłem ramkę strony "3". Ramka strony 3 jest zapisana w formacie dziesiętnym, który następnie musi zostać przekonwertowany z powrotem na format szesnastkowy ... Duh! ... która wynosi 3!
Mapowanie adresu fizycznego lokalizacji pamięci wirtualnej 0xE12C można znaleźć w 0x312C w pamięci fizycznej.
Będziesz wtedy wrócić do stołu, i odnoszą się do kolumny bit odniesienia i umieścić „1” do wiersza 14.
Zastosuj tę samą koncepcję nich -
0x3A9D → 0xAA9D
0xA9D9 → 0x59D9
0x7001 → 0xF001
0xACA1 → 0x5CA1
Jeśli zauważysz, ostatnie 3 cyfry są takie same (co określa przesunięcie). i 1 z 4 cyfr odwzorowywane są zgodnie z tabelą:
table entry 3 -> page frame 10 -> hex notation A
table entry A (10) -> page frame 5 -> hex notation 5
table entry 7 -> page frame 15 -> hex notation F
table entry A (10) -> page frame 5 -> hex notation 5
Nadzieja to wyjaśnienie pomaga Tobie i innym jak ja! :)