分页存储管理中的页表项长度是什么?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

下面抄写操作系统中的一句话便于理解:

对于一个具有32位逻辑地址空间的分页系统(4GB),规定页面大小为4KB,则在每个进程页表中的页表项

可达1M个之多。4GB/4KB=1M

又因为每个页表项占用1个字节(1B),故每个进程仅仅其页表就要占1MB的内存空间。

而且还要求是连续的,显然这是不现实的,解决问题方法:

1)采用离散分配方式来解决难以找到一块连续的大内存空间的问题。

2)只将当前需要的部分页表项调入内存,其余的页表项仍然驻留在磁盘上,需要时再调入。

 

  • 30
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值