Untuk menentukan halaman alamat memori tertentu, ambil nomor P bit pertama (dari N bit).
P = lg2(numberOfPages)
Dalam contoh Anda, P=lg2(16)=4
Jadi 4 bit pertama dari alamat memori tertentu akan memberi tahu kita halamannya. Itu berarti sisanya harus diimbangi dari awal halaman tersebut.
Alamat contoh Anda, 51996, adalah 1100101100011100 dalam biner. Yaitu. [1100:101100011100].
1100 (12 dalam desimal) adalah nomor halaman
101100011100 (2844 dalam desimal) adalah offset
Sekarang kita perlu menemukan di mana halaman 12 berada di memori.
Melihat tabel frame Anda, tampaknya halaman 12 berada di frame ke-6. Dalam sistem di mana semua memori dapat di-page (yaitu tidak ada IO yang dipetakan memori), frame halaman ke-6 akan berada di (entriesPerPage*frameNum)-1
Dalam hal ini, 4000*6-1 = 23999 ("-1" diperlukan karena memori diindeks 0.)
Dalam hal ini, 4096*6-1 = 24575 ("-1" diperlukan karena memori diindeks 0.)
Sekarang yang harus kita lakukan adalah menambahkan offset dan kita memiliki alamat memori fisik:
23999 + 2844=26843 = 0x68DB
24575 + 2844 = 27419 = 0x6B1B
Selesai!
Semoga ini (edit) bermanfaat XD
Sunting: Terima kasih kepada Jel karena telah mengetahui kesalahan saya :) Terima kasih kepada pengguna8 karena telah mengetahui kesalahan saya yang lain! (frameNum bukannya pageNum).
person
ParoXoN
schedule
06.05.2009