某计算机系统按字节编址,采用二级页表的分页存储管理方式,虚拟地址格式如下所示:
10位 10位 12位
页目录号
页表索引
页内偏移量
请回答下列问题。
1)页和页框的大小各为多少字节?进程的虚拟地址空间大小为多少页?
2)假定页目录项和页表项均占4个字节,则进程的页目录和页表共占多少页?要求写出计算过程。
3)若某指令周期内访问的虚拟地址为0100 0000H和0111 2048H,则进行地址转换时共访问多少个二级页表?要求说明理由。
1)在分页存储管理方式中,将用户程序的地址空间分为若干个固定大小的区域,称为“页”或“页面”。相应地,将内存空间分为若干个物理块或页框(frame),页和页框大小相同。因此,页和页框大小均为2^12B=4KB。进程的虚拟地址空间大小为2^32/2^12=2^20页。
2 某计算机系统按字节编址,由题目中给的页表项结构,页目录占了 10位 计算机底层是二进制,则共 2^10个目录号,每个目录 4个字节,则共 2^10*4 个目录数据(计算机按字节编址)又由于页内偏移12位 即 页和页框的大小也是12位。则一页可以存 2^12 数据 所以 目录页有 2^10*4 /2^12=1
同理,由于此题是个二级页表存储,页目录 10位,页表索引10位,所以,他可以代表的的页面数目为 2^20 个页面,每一页按字节编址 4位,则共 2^20*4 个数据,又由于页内偏移12位 即 页和页框的大小也是12位,所以页共: 2^20*4/2^12=2^10
所以共有 2^10+1 =1025页
3 需要访问一个二级页表。因为虚拟地址0100 0000H和0111 2048H的最高10位的值都是4,页目录号相同,访问的是同一个二级页表。