计算机基础-操作系统-请求分页存储管理方式
请求分页存储管理与基本分页存储管理的主要区别:
- 在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。
- 若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存。
为实现请求分页功能操作系统需要实现:
- 操作系统要提供请求调页功能,将缺失页面从外存调入内存
- 操作系统要提供页面置换的功能,将暂时用不到的页面换出外存
1. 页表机制
与基本分页管理相比,请求分页管理中,为了实现“请求调页”,操作系统需要知道每个页面是否已经调入内存:如果还没调入,那么也需要知道该页面在外存中存放的位置。
当内存空间不够时,要实现“页面置换”,操作系统需要通过某些指标来决定到底换出哪个页面;有的页面没有被修改过,就不用再浪费时间写回外存。有的页面修改过,就需要将外存中的旧数据覆盖,因此,操作系统也需要记录各个页面是否被修改的信息。
请求分页存储管理的页表:
2. 缺页中断机构
在请求分页系统中,每当要访问的页面不在内存时,便产生一个缺页中断,然后由操作系统的缺页中断处理程序处理中断。
此时缺页的进程阻塞,放入阻塞队列,调页完成后再将其唤醒,放回就绪队列。
如果內存中有空闲块,则为进程分配一个空闲块,将所缺页面装入该块,并修改页表中相应的页表项。
如果内存中没有空闲块,则由页面置换算法选择一个页面淘汰,若该页面在内存期间被修改过,则要将其写回外存。未修改过的页面不用写回外存。
缺页中断是因内当前执行的指令想要访问的目标又南未调入内存而产生的,因此属于内中断
一条指令在执行期间,可能产生多次缺页中断。
copy A to B,即将逻辑地址 A 中的数据复制到逻辑地址B,而A、B属于不同的页面,则有可能产生两次中断
3. 地址变换机构
在具有快表机构的请求分页系统中,访问一个逻辑地址时,若发生缺页,则地址变换步骤是:
查快表(未命中)—>查慢表(发现未调入內存)—>调页(调入的页面对应的表项会直接加入快表)—>查快表(命
中)—>访问目标内存单元
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Joker!
评论
ValineTwikoo