页目录索引,页表索引,字节索引

 

 学习操作系统之时,对分层的页式地址变换有些不解,思考许久,才有点明白,下面将以一道题目来说明。

 

题目:已知某系统页面大小为4KB,页表项为4字节,采用多层分页策略映射64位虚拟地址空间。若限定最高层页表占1页,问可用几层分页?

 

首先需要明白的是,什么叫页表项。

 

页表项是一个数据结构,它包含一些信息,这些信息和页本身内容没有关系,而是用来管理页面的。比如在X86系统中,硬件页表项有一个修改位和一个访问位,它用来给页面调度算法提供依据,不论是LRU算法还是其它淘汰算法,都要根据访问位来淘汰,不仅如此,还包含一个写位用来提供写保护,用来确定是否有可以写页面的权限。

 

也就是说,页表项是页面本身依靠人为增加一些管理字段被人为的延长了。

 

按本题来讲,页面大小为4KB,总共有212位信息,其中只有210 位信息是真正我们程序中所需要的信息,而另外4字节的内容是管理这张页表的信息,是操作系统用来执行调度算法,存储保护的相关依据。

 

最后回到本题,64位地址空间,事实上每页只能存放10位的容量,那么去掉作为页内地址的12位空间,将有252页表,将这些页表按每页存放10位容量计算,则需要[52/10]=6层。

 

这种结果可能看起来不太清楚,或许这样说,最高层事实上只要2位信息就足够,但它需要另外2位来管理比它低一层的页表信息,注意虽然是比它低一层,但它仍然是一张页表,仅有最低层的下一层才是页内地址。

 

事实求是地讲:高一层的页表索引事实上相当于页目录索引,它存放的是页表的位置,根本原因就是因为页表的庞大导致页面大小不足以装入一个页表。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值