-
分页式存储管理技术的扩展,是一种常用的分页式虚拟存储管理技术
-
基本原理:
将作业信息被分为多个页面,其副本存放在辅助存储器中。当作业被调度运行时,仅装入需要立即访问和使用的页面,在执行过程中如果需要访问的页面不在主存中,则将其动态装入。 -
请求分页式存储管理中OS内核各阶段内容
- 进程创建时
- 创建进程页表
- 分配磁盘交换区
- 初始化页表
- 修改进程控制块内存管理相关信息
- 进程被调度执行
- 设置页表基址寄存器为当前被调度进程页表
- 进程执行过程中发生缺页异常时
- 页面加载、页面替换
- 进程终止执行时
- 释放进程所占页框
- 释放页表所占内存空间
- 释放磁盘交换区空间
- 进程创建时
-
页表扩展
-
硬件支撑
- 操作系统的存储管理需要依靠低层硬件的支撑来完成,该硬件称为主存管理单元MMU。
- MMU的主要功能,完成逻辑地址到物理地址的转换,并在转换过程中产生相应的硬件中断(缺页中断、越界中断)
- MMU的主要组成:
- 页表基址寄存器
- 快表TLB
- MMU的工作流程
-
更详细的转换过程
-
页面装入策略,何时将一个页面装入主存?
- 请页式调入,缺页中断驱动,一次调入一页
- 预调式调入,按某种预测算法动态预测并调入若干页面
-
消除策略,何时将修改过的页面写回辅存?
- 请页式清除,仅当一页被选中进行替换时,该页内容已修改则写回辅存。(清除与替换成对)
- 预约式清除,内容被修改页面成批写回辅存,写回操作在该页面被替换前,而非替换时。
- 页缓冲技术:
仅清除淘汰的页面,并使清除操作和替换操作不必成对出现。- 实现:
- 淘汰页面进入两个队列:修改页面队列和非修改页面队列
- 修改页面队列中的页不时被成批写出并加入非修改页面队列,非修改页面队列中的页面,当再次引用时回收,或者淘汰掉以作替换
- 实现:
-
页框分配原则
- 缺页中断、I/O中断频繁会降低运行效率,因此应尽可能减少缺页中断的次数。
-
页框分配涉及的问题
- 分配多少?
- 分配给进程的空间越小,主存容纳的进程数越多
- 进程仅有很少的部分驻留主存,缺页中断率会很高
- 分配给进程的主存空间超过一定限度,也不会明显降低缺页中断率
- 如何分配?
- 替换算法作用于全局还是一个进程
- 分配多少?
-
页面分配策略
- 固定分配,在一个进程的生命周期中,分配给它的页框数固定。
- 平均分配、按比例分配、优先权分配
- 可变分配,在一个进程的生命周期中,当进程缺页次数较多时,分配给它较多的页框,反之,则分配给较少的页框。
-
页面替换策略
- 局部替换策略,通常与固定分配结合使用
- 全局替换策略,通常与可变分配结合使用
-
如何评价页面替换算法
- 应尽量避免“抖动”现象的出现
- 衡量指标——[[缺页率f]]
-
影响缺页中断率的因素:
- 页面替换算法
- [[最佳页面替换算法]]
- [[随机页面替换算法]]
- [[先进先出页面替换算法(FIFO)]]
- [[第二次机会页面替换算法]]
- 时钟页面替换算法
- [[最近最少用页面替换算法(LRU)]]
- 主存页框数
- 页面大小
- 程序特性
- 页面替换算法
-
典型的全局页面替换算法:
- [[全局最佳页面替换算法]]
- [[工作集模型]]和[[工作集置换算法]]
- 模拟工作集替换算法
- [[老化算法]]
- [[时间戳算法]]
- [[缺页频率替换算法]]
-
请求分页虚拟存储管理的实现
- 页面大小,考虑因素:
- 页表大小
- 主存利用率
- 读写一个页面的时间
- 等待时间:移臂时间 + 旋转时间
- 传输时间
- 最佳页面尺寸,512B~8KB之间
- 主要考虑减少页框内部碎片和页表占用的存储空间两个方面考虑
- 页面交换区/交换文件
- 专用的磁盘区域用于保存被淘汰的页面内容
- 采用交换区映射表管理
- 锁定主存页
- 某些页面在进行I/O操作时不能被替换
- 写时复制
- copy on write技术,在页面级的优化应用
- 页面大小,考虑因素:
请求分页式存储管理
最新推荐文章于 2024-06-16 17:05:07 发布