【问题思考总结】缺页时页表怎么变?【操作系统中的缺页】

问题

在做题的时候,我认为页表是不能变更的,因为页表不就是指明了这个块在哪里吗?这个地址我访问,如果页表变了,岂不是访问不到了?

tips

  1. 页表中除了物理页号还有有效位(指明该页是否在内存中)
  2. 页表中的物理页号,包含了两个情况(第一种是物理页号,第二种是磁盘地址),这个也是我主要的误区。

缺页流程

缺页的时候首先,意思就是这个块不在内存中(通过有效位推断出来)。

情况1

如果这个时候有空闲的页框,就会分配内存(把一个块,从磁盘中,复制到内存中)。
在这个过程中,页表中原来页表项代表的是磁盘地址,更换后变成了内存地址(物理块号)
因此这个过程除了内存分配外,页表同样也被更改

情况2

然后如果没有空闲的页框,就根据算法,把一个块调出到磁盘,把一个块换入磁盘,那么这两个块对应的页表项都要进行更改

实际上,页表项是干什么的呢,页表项就是指向一个固定的块,但是这个块有的时候是在磁盘中,有的时候是在内存中,在内存中的时候,可能在不同的地方,在磁盘中的时候也可能在不同的地方(不知道磁盘中可不可以移动),唯一不变的就是这个页表项指向的永远是同一个页

问题解决

访问地址的时候,用的是虚拟地址,包含页号和页内偏移,这个页号实际上就是对于一个固定的页表项的访问,而又因为这个页表项指向的永远是同一个页,因此,这个页表项不管怎么变也不会影响访问那一个块,只不过是地址改变了。

最开始的问题实际上是没有搞清楚映射,不知道一个块在内存中可以移动。

如有错误,恳请指正。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值