# 4.9 页面分配策略与抖动 ## 一、工作集 ### 1.1 什么是工作集 **工作集(Working Set)**:在某段时间间隔内,进程实际要访问的页面集合。 ### 1.2 工作集窗口 **工作集窗口(Δ)**: - 考察工作集的时间窗口 - 通常以页面访问次数为单位 **工作集大小**: - 窗口内的页面数量 - 反映进程的局部性 ### 1.3 工作集的特点 - **动态变化**:随时间变化 - **局部性**:一段时间内相对稳定 - **大小波动**:不同阶段工作集大小不同 --- ## 二、抖动(Thrashing) ### 2.1 什么是抖动 **抖动**:频繁的页面换入换出,导致系统性能急剧下降的现象。 ### 2.2 抖动的原因 **根本原因**: - 分配给进程的页框数少于工作集大小 - 进程需要的页面不能全部驻留内存 **具体原因**: - 多道程序度太高 - 每个进程分配的页框太少 - 频繁的缺页中断 - 大量时间用于页面置换 ### 2.3 抖动的表现 - 缺页率极高 - CPU利用率极低 - 磁盘I/O繁忙 - 系统吞吐量下降 ### 2.4 抖动的危害 - 系统性能急剧下降 - 进程执行缓慢 - 系统可能崩溃 --- ## 三、防止抖动的方法 ### 3.1 工作集模型 **思想**: - 为每个进程分配足够容纳其工作集的页框 - 如果空闲页框不足,挂起某些进程 **实现**: - 监测每个进程的工作集大小 - 确保分配的页框数 ≥ 工作集大小 ### 3.2 缺页率模型 **思想**: - 根据缺页率调整分配的页框数 **策略**: - 缺页率过高:增加页框数 - 缺页率过低:减少页框数 **上下界**: - 设置缺页率上界和下界 - 超出范围时调整页框数 ### 3.3 挂起进程 **思想**: - 当内存不足时,挂起某些进程 - 将其页框分配给其他进程 **选择策略**: - 优先级低的进程 - 工作集小的进程 - 计算型进程 ### 3.4 控制多道程序度 **思想**: - 限制同时运行的进程数 - 确保每个进程有足够的页框 --- ## 四、页面分配策略总结 ### 4.1 固定分配局部置换 - 每个进程分配固定页框数 - 缺页时从该进程的页面中置换 - 简单但不够灵活 ### 4.2 可变分配全局置换 - 动态调整页框数 - 可以从任何进程置换页面 - 灵活但可能不公平 ### 4.3 可变分配局部置换 - 动态调整页框数 - 只能从该进程的页面中置换 - 兼顾灵活性和公平性 --- ## 五、考研重点 1. **工作集**:概念、窗口、特点 2. **抖动**:定义、原因、表现、危害 3. **防止抖动的方法**: - 工作集模型 - 缺页率模型 - 挂起进程 - 控制多道程序度 4. **页面分配策略**:固定/可变、局部/全局 --- *下一节:4.10 请求分段管理方式*