请求分页管理方式
页表机制
页表机制功能:
- 记录每个页面是否调入内存
- 记录每个页面在外存中的位置
- 记录各个页面被修改的信息
页表中新增的字段: - 状态位:是否已调入内存
- 访问字段:可记录最近被访问过几次,或记录上次访问的时间,供置换算法选择换出页面时参考
- 修改位:页面调入内存后是否被修改过
- 外存地址:页面在外存中的存放位置
缺页中断机构
在请求分页系统中,每当要访问的页面不在内存时,就会产生一个缺页中断,然后操作系统的缺页中断处理程序进行中断处理。
缺页的进程阻塞,放入阻塞队列,调页完成后再将其唤醒,放回就绪队列。
如果内存中有空闲块,则为进程分配一个空闲块,将所缺页面装入该块,并修改页表中相应的页表块。
如果内存中没有空闲块,则由页面置换算法选择一个页面淘汰,若该页面在内存期间被修改过,则要将其写回外存,未修改过的页面不用写回外存。
内中断
缺页中断是因为当前指令想要访问的目标未调入内存发生的,属于内中断。属于内中断的故障
一条指令在执行期间,可能发生多次缺页中断。
地址变换机构
请求分页存储管理和基本分页存储管理的主要区别:
- 在程序执行过程中,当所访问的信息不存在时候,由操作系统负责将所需要的信息从外存调入内存,然后继续执行程序。
- 若内存空间不够时,由操作系统负责将内存中用不到的信息换出外存。
新增步骤: - 请求调页(查找到页表项进行判断)
- 页面置换(需要调入页面,但是没有空闲内存块时候进行
- 需要修改请求页中新增的表项
在具有快表机构的请求分页系统中,访问一个逻辑地址时,若发生缺页,则地址变换步骤是:
- 查快表(未命中)
- 查慢表(发现未调入内存)
- 调页(调入的页面对应的表项会加入快表)
- 查快表(命中)