已知系统为32位实地址,采用48位虚拟地址,页面大小4KB,页表项大小为8B;每段最大为4GB。
若系统采用段页式存储,则每用户最多可以有多少个段段内采用几级页表
参考答案:系统采用48位虚拟地址,每段最大为4GB,故段内地址为32位,段号为48-32=16位。每个用户最多可以有216个段。段内采用页式地址,与1)中计算同理,(32-12)/9,取上整为3,故段内应采用3级页表。
解析: 在采用多级页表的页式存储管理中,若快表使中,则只需要一次访问内存操作即时存取指令或数据,这一点需要注意和理解。以本题1)中假设的条件为例,不考虑分段时,需要4级页表。如果快表未命中,则需要从虚拟二址的高位起,每9位逐级访问各级页表,第5次才能访问到指令或数据所以的内存页面。
如果快表命中,首先考虑快表中的实际内容:快表存放经常被访问的页面对应的页表项,页表项中是完整的48-12=36位页面号,所以根据快表可以直接对虚拟地址进行转换。故多级页表中,快表命中时同样只需要一次访问内存操作。根本原因在于,快表提供了进行地址转换的完整的页面号,而不是某一级的页面号。