| 项目 | 值 |
|---|---|
| 核心概念 | 虚拟内存基于局部性原理(时间局部性:刚访问的数据近期可能再次访问;空间局部性:访问某地址后可能访问其邻近地址),使程序不需要全部装入内存即可运行。虚拟内存大小受地址位数和外存容量限制,实际受地址位数约束。 |
| 关键公式 / 性质 | 请求分页管理:在基本分页基础上增加请求调页和页面置换功能。页表项增加:状态位 P(是否在内存)、访问位 A、修改位 M、外存地址。 |
| 考试频率 | ⭐⭐⭐⭐ |
虚拟内存基于局部性原理(时间局部性:刚访问的数据近期可能再次访问;空间局部性:访问某地址后可能访问其邻近地址),使程序不需要全部装入内存即可运行。虚拟内存大小受地址位数和外存容量限制,实际受地址位数约束。
请求分页管理:在基本分页基础上增加请求调页和页面置换功能。页表项增加:状态位 P(是否在内存)、访问位 A、修改位 M、外存地址。
缺页中断:访问的页不在内存时产生缺页中断,与普通中断的区别是:缺页中断在指令执行期间产生(一条指令可能多次缺页),且需要一条指令可能执行多次。
抖动 / 颠簸(Thrashing):页面频繁调入调出,CPU 利用率急剧下降。原因:分配给进程的物理块不足。工作集模型可防止抖动。
工作集:在某段时间间隔内,进程实际访问的页面集合。窗口大小为 $\Delta$ 时,工作集 $W(t,\Delta)$ 是时刻 $t$ 前 $\Delta$ 个时间单位内访问的页面集合。驻留集应不小于工作集。
| 概念 | 定义 |
|---|---|
| 虚拟内存 | 具有请求调页和页面置换功能的存储管理系统,使逻辑地址空间大于物理内存 |
| 缺页中断 | 访问的页面不在内存时触发的中断,需从外存调入 |
| 页面置换 | 当内存无空闲页框时,按算法选择一页换出到外存,腾出空间 |
| 抖动 | 页面在内存和外存之间频繁换入换出,导致系统效率极低 |
| 工作集 | 进程在时间窗口 $\Delta$ 内访问的页面集合 |
| 驻留集 | 操作系统分配给进程的物理块集合 |
| Belady 异常 | 使用 FIFO 置换算法时,增加物理块数反而使缺页率升高的现象 |
| 缺页率 | 缺页次数 / 总访问次数 |
| 考点 | 说明 |
|---|---|
| 页面置换过程模拟 | 给定访问串和物理块数,模拟各算法的置换过程,统计缺页次数 |
| Belady 异常判断 | FIFO 算法下对比不同物理块数的缺页率 |
| 有效访问时间计算 | $EAT = (1-p)\times$ 内存访问时间 $+\ p\times$ 缺页处理时间($p$ 为缺页率) |
| 工作集计算 | 给定访问序列和窗口大小,确定工作集大小 |
| 抖动的预防 | 调整驻留集大小使 $\geq$ 工作集,或降低多道程序度 |
| LRU 的硬件实现 | 计数器法或栈法实现 LRU |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。