位和字节之间的转换-虚拟内存分页

时间:2018-07-27 14:12:05

标签: hex byte paging bit virtual-memory

我认为对大多数人来说,我确实很容易陷入困境。页面大小(偏移量)为4KiByte,假设有多少位用于偏移量?我知道这听起来很容易,但这就是我所困的地方:

1 Byte = 8 Bit = 2^8 = 256 possibilities. 4 KiByte = 2^12 Byte = 4096 Byte = 4096*2^3 Bit = 32768 = 2^15 possibilites

意思是我需要15位地址才能在虚拟内存页面中的所有32768条可寻址行中寻址正确的行。

虚拟内存的大小为64kiByte,主内存为32kiByte,因此页表中有16个虚拟页,分别具有8个物理页。

所以给定一个虚拟地址,如0x13AF,我将切掉15位用于偏移量,而页表中的索引只剩下一个位,这当然毫无意义,因为我们需要能够地址16页面表中的不同条目。解决方案应该是仅将最后12位作为页面中的偏移量,并将前4位作为页面表的索引,但是我很困惑,我只是无法正确地计算它。

我想我的意思是我在从位到字节的转换中有一个很大的误解,但我无法弄清楚。

谢谢!

0 个答案:

没有答案