我有这个问题的答案,但我仍然不理解他们中的一些。你能解释一下吗?
考虑具有16位虚拟地址的系统,其中12位用于页面偏移。对于下面的每个问题,如果无法从提供的信息中确定答案,请回答问题并简要说明您的答案,或者指出“未知”。
(a)虚拟页面有多大? 2 ^ 12字节
(b)物理页面有多大? 2 ^ 12字节
(c)单个进程的虚拟地址空间有多大(以字节为单位)? 2 ^ 16字节
(d)存在多少个物理页面? 未知
(e)在系统上运行的所有进程中,全局存在多少个虚拟页面? 未知
答案 0 :(得分:0)
a+b)
12位用于偏移。你能用12位寻址多少个地址?
答案是:2^12
。这就是页面大小为2^12 = 4096 bytes = 4KB
c)
你能用16位寻址多少个地址? 2^16 B
这是虚拟地址。
d)
#frames = main-memory-size / page-size`由于不知道物理内存大小而未知。
e)
取决于系统中的进程数。
答案 1 :(得分:0)
在虚拟地址中,
页面偏移的大小表示一页内的字节数,因为一个偏移指向物理内存中的一个字节。这里是12位,因此一页中的数字字节为2^12
。 (a)
页码的大小占虚拟内存中的总页数。此处页面大小为4位长,16-12,因此总页数为2^4
。
(b)
因为页面大小等于页面大小,所以它等于2^12
个字节。
(c)
虚拟地址空间=总页数*页面大小= 2^4
* 2^12
= 2^16
(可以直接根据虚拟地址中的位数计算)。
(d)
你无法分辨虚拟地址空间的帧数。拥有虚拟地址空间的重点是能够分配比可用物理大小更大的内存。
(e)
每个进程最多可包含2^4
个虚拟页面。因此,虚拟页面的总数取决于进程数。