概念
- 每个程序有自己的地址空间,这些地址空间被分为很多拥有连续地址范围的页面
- 程序运行时,并非所有页面都要加载进内存。只有需要时,页面才被OS映射到物理内存
- 页面可以被交换(和磁盘)
- 程序里用到的是虚地址
Paging
问题
- 如何把虚地址映射到物理地址
相关概念
页面
虚拟地址空间单元
图
页表
- 页面和页框的映射关系
- Present/Absent
- Page Frame Number
页框
- 物理内存空间单元
MMU
Memory Management Unit
翻译过程
虚拟地址
虚拟页面号
- 高4位
偏移量
- 低12位
步骤
- 由虚拟地址找到虚拟页面号和偏移量
- 由页表得到物理页面号(顺便判断是否会缺页中断,如果缺页中断就不用找了)
- 加偏移量得到物理地址
图
优化
Speeding Up paging
TLBs
情报
- 大多数程序总是对少量的页面进行频繁的访问
功能
- 引入一个小型的硬件设备TLB将虚拟地址直接映射到物理地址,不再需要去查找页表
Reduce Page Table Size
Multilevel Page level
缺点
- 影响查找速度
Inverted Page Table
- 哈希
- 全局只有一张表
Page Replacement Alg
为什么需要PRA
- 新的进程已经没内存了,所以要替换一些进程
分类
最优置换算法
特点
- Optimal but unreliazable
- Page fault数最小
- 替换最后使用的进程
计算缺页中断次数
Least Recently used
概念
- 参考之前的序列,找到最不常用的
分类
Strict LRU
缺陷
- 要维护一个链表,每次都要更新链表
Approximately LRU
硬件实现
Simulating LRU
- Not Frequently used
The Working Set PRA
The WS Clock
FIFO
