禁止转载!
Chapter 3. 内存管理
页表不会可以埋了,下一个
覆盖与交换 (*)
- 交换: 不同进程之间 (swap)
- 覆盖: 同一进程中 (section)
内存分配方式
连续分配方式
- 单一连续: 仅允许一道用户程序
- 固定分区: 分区大小相等 | 不等,会产生较多碎片,且效率低下
动态分区分配
- 首次 (First Fit)
- 临近 (Next Fit)
- 最佳 (Best Fit) 最差,会产生最多碎片
- 最坏 (Worst Fit)
分页
页面置换算法
Belady 异常: FIFO 特有,随着物理块数增大,缺页率不减反增
驻留集: 给一个进程分配物理页框的集合
抖动: 换出又换入
OPT
绝对最优,替换的是最长时间内不再被访问的页面,缺页率最低FIFO
可能出现Belady
异常RLU
目前实在 OS 中最优,但开销较大,因此现代 OS 大多使用CLOCK
的变体CLOCK
试图以较小的开销接近 LRU 算法的性能改进型
CLOCK
: 减少磁盘I/O
次数- 新增修改位 (脏位)
- 访问位 A, 修改位 M
- 多轮扫描,A0M0 > A0M1 > A1M0 > A1M1
- M 为 1 时写回需要拷贝
调入页面
时机
- 预调页策略: 首次调入,程序员指出
- 请求调页策略: 缺页中断
方式
- UNIX: 文件区读取,换出 SWAP
缺页率的影响因素
工作集: 某段时间间隔内,进程要访问的页面集合
因此: 分配物理块 < 工作集,可能导致频繁缺页
- 页面大小
- 分配的物理块数 (与工作集有关)
- 页面置换算法
- 程序编制方法
Misc
Logic Address
形成时间: 链接时- 多级页表优点: 减少页表所占连续内存空间,其它略
- Memory-Mapped Files: 允许多进程共用内存共享文件,进程退出时写回
- 可能与计组综合考题 (王道 P211)