[操作系统] 分页存储管理中的页表项长度

看到很多人有疑问?读到这里的时候我也有疑问的。

 

在操作系统的分页存储管理方式中,写道:

页表始址页号和页表项长度的乘积相加,便得到该表项在页表中的位置。

于是可从中得到该页的物理块号,将之装入物理地址寄存器中。

列出式子出来: 页表始址+页号x页表项长度

 

1)页表项长度是页面长度是吗?

2)如果是页面长度,那两者相乘就是整个内存的大小来,你想一想整个内存都用来存储页表可能吗?

当然是不可能了,首先内存被划分成若干个和页面大小相等的片。

每个页表项代表一个页面的地址,一般很小。

假设内存大小是2GB,页面大小(物理块)是4KB,页表项长度是4B。

则整个内存可以被划分成2GB/4KB=512K个页面。

页表的长度=页表项的长度x页面的个数=4Bx512K=2M。

内存中用2M的大小来存放页表。

这下清楚了吧,实际上是取了每一个页号对应的页面的起始地址,或许还有对应的物理块号(应该有)。

TLB就是用来存放当前访问的那些页表项的。
 

看到这里其实大多数同学是完全不知道这个页表项长度到底是个什么玩意。其实来个图像就明确了:

 

首先内存被划分成若干个和页面大小相等的片。

每个页表项代表一个页面的地址,一般很小。

假设内存大小是2GB,页面大小(物理块)是4KB,页表项长度是4B。

则整个内存可以被划分成2GB/4KB=512K个页面。

页表的长度=页表项的长度x页面的个数=4Bx512K=2M。

内存中用2M的大小来存放页表。

这下清楚了吧,实际上是取了每一个页号对应的页面的起始地址,或许还有对应的物理块号(应该有)。

 

  • 11
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值