题目
46.(6分)某计算机系统按字节编址[1],采用二级页表[2]的分页[3]存储管理[4]方式,虚拟地址[5]格式如下所示: 10位 10位 12位 页目录号 页表索引 页内偏移量 请回答下列问题。 (1)页和页框的大小各为多少字节?进程的虚拟地址空间[6]大小为多少页? (2)假定页目录项和页表项均占4个字节,则进程的页目录和页表共占多少页?要求写出计算过程。 (3)若某指令周期[7]内访问的虚拟地址为0100 0000H和0111 2048H,则进行地址[8]转换时共访问多少个二级页表?要求说明坪由。
46.(6分)某计算机系统按字节编址[1],采用二级页表[2]的分页[3]存储管理[4]方式,虚拟地址[5]格式如下所示:
10位 10位 12位
页目录号 页表索引 页内偏移量
请回答下列问题。
(1)页和页框的大小各为多少字节?进程的虚拟地址空间[6]大小为多少页?
(2)假定页目录项和页表项均占4个字节,则进程的页目录和页表共占多少页?要求写出计算过程。
(3)若某指令周期[7]内访问的虚拟地址为0100 0000H和0111 2048H,则进行地址[8]转换时共访问多少个二级页
表?要求说明坪由。
题目解答
答案
46.【答案要点】
(1)页和页框大小均为4 KB。进程的虚拟地址空间大小为232/212=220页。
(2)(210*4)/212(页目录所占页数)+(220*4)/212(页表所占页数)=1025页。
(3)需要访问一个二级页表。因为虚拟地址0100 0000H和0111 2048H的最高10位的值都是4,访问的是同一
个二级页表。
【评分说明】用其他方法计算,思路和结果正确同样给分。
解析
考查要点:本题主要考查分页存储管理中的地址结构、页表计算及地址转换过程。
解题思路:
- 页和页框大小:由页内偏移量的位数确定,页内偏移量为12位,故页大小为$2^{12}$字节。
- 虚拟地址空间大小:总页数由页目录号和页表索引的组合决定,即$2^{10} \times 2^{10}$。
- 页目录和页表占用页数:需分别计算页目录和每个页表的总大小,再转换为页数求和。
- 二级页表访问次数:若两个虚拟地址的页目录号相同,则共享同一二级页表。
第(1)题
页和页框大小
页内偏移量为12位,故页大小为:
$2^{12} = 4096 \text{字节} = 4\text{KB}$
页框大小与页大小相同,为4KB。
虚拟地址空间大小
虚拟地址总位数为32位,页内偏移占12位,剩余20位用于地址选择(10位页目录号 + 10位页表索引)。总页数为:
$2^{20} = 1\text{M页}$
第(2)题
页目录占用页数
页目录有$2^{10}$个项,每个项占4字节,总大小为:
$2^{10} \times 4 = 4096 \text{字节} = 1\text{页}$
页表占用页数
每个页表有$2^{10}$个项,总大小为$2^{10} \times 4 = 4096$字节(1页)。共有$2^{10}$个页表,总页数为:
$2^{10} \times 1 = 1024\text{页}$
总页数
页目录和页表共占:
$1 + 1024 = 1025\text{页}$
第(3)题
地址转换分析
虚拟地址0100 0000H和0111 2048H的最高10位均为二进制0000000100(十进制4),说明它们的页目录号相同,因此访问同一二级页表。