[操作系统笔记]请求分页管理方式

内容系听课复习所做笔记,图例多来自课程截图

在这里插入图片描述

操作系统需要提供两大功能:

  • 请求调页:缺失页面调入内存
  • 页面置换:暂时不用的换出外存

页表机制

原先的页式管理使用的页表并不能满足新的需求,因此需要为页表增加新的页表项目,其考量主要有如下几个方面:

  • 需要在请求调页时能够判断某个页面是否已经调入内存(即状态位)
  • 需要在请求调页时,若没调入就得知道在哪调入(即外存地址)
  • 需要在请求调页时能够根据某个指标决定调出哪个页面(即访问字段)
  • 调出页面时如果该页面没被修改过就应当不浪费时间写入外存(即修改位)

因此页表应当变为如下样子:

内存块号状态位访问字段修改位外存地址
000x
b1100y
c161z

状态位:0是没调入,1是已调入
访问字段:可记录最近访问几次或者上次访问时间

缺页中断机构

缺页中断是内中断

在这里插入图片描述

当欲访问的页面不在内存时,就会产生一个缺页中断,然后由操作系统的缺页中断处理程序处理。

此时检查是否有空闲的物理页面:如果无,进行1;如果有,进行3

  1. 按某种页面置换算法选择一个页面被替换
  2. 如果该页面被修改过,需重新写回外存(覆盖旧数据)
  3. 把需要的页面调入内存,同时更新主存页表和快表(如果有)

一条指令执行期间可能产生多次缺页中断

如把逻辑地址A的数据复制到B,它们属于不同的页面,且都不在内存中

地址变换机构

在这里插入图片描述

快表保存的页面必须在内存中,若换出则应当删除快表的备份

只有执行写指令后才需要修改“修改位”(有快表一般只修改快表,只有该快表项删除时才修改慢表,以减少访存次数)

缺页中断是要保留CPU现场的(和普通的中断处理一样)

换入/换出都涉及启动慢速的I/O操作,越频繁开销越大

完整的缺页流程

  1. 查快表,且未命中
  2. 查慢表,发现没调入内存
  3. 调页,修改慢表,也需要将表项复制到快表
  4. 查快表,命中
  5. 访存
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值