关于页表,页表项,页框号(物理块号)的理解

今天看到一个关于分页系统中页表项的计算问题。首先要了解页表项是由【页号】【页框号】组成,因为是分页系统每一个页面大小都是一样的所以可以根据逻辑地址的大小推算出【页号】,也就是说页表项中的【页号】可以省略。
下边给出一个例子:
一个32位系统分页系统,页面大小为4KB,则100MB的进程其页表大小为多少,占多少个页面存储页表?
【页面大小】为4KB,既212B 也就是说占了12个bit , 进而可以计算出【页号】为220B 即占了20个bit,因为逻辑地址是由【页号】【页内偏移量】(页面大小)组成,【页框号】(物理块号)232 /212=220 ,也占了20个bit ,一般情况下在题目中都会给出【页框号】占多大的位置,但是这个没有给出,我们其实可以大概的估算一下,就是就【页号】+【页框号】的占了多少bit,即20+20=40bit (8bit 比特= 1Byte 字节) 40/8=5字节,如果把【页号】省略掉也就是只算【页框号】占的字节数 ,即20/8=2…4 也就是3字节(因为2个字节没有办法存储20位)。
但是这个题计算的时候用的【页表项】大小并不是3字节和5字节,而是4字节。(具体为什么我个人认为是32位系统默认就是按照4字节来计算,没有特别要求的话)
下边我们来计算一下这个题
1、100MB的进程占用页表项数 = 100MB/4KB=100 x 28
每一个页表项大小是4B,则所占页表大小=100*28 *4B=100KB
2、一个页面可以存储的大小=(212B /4B )x 4KB =2MB,其中212B /4B算出的是页表项的个数
100MB/2MB = 50页

这个题是次要的主要是上边对页表项大小的计算问题的分析。
萌新博主,还有些不适应这个编辑方式还有语言表达不知道是否清晰,如有问题大家可以提出来,望大家见谅。

  • 22
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值