hansimov.gitbook.io/csapp/labs/…
虚拟内存
虚拟内存 物理内存 主存
1,虚拟内存将主存看做存储在磁盘空间上的地址空间的高速缓存,是一种对主存的抽象;为每个进程提供了一致的地址空间,简化内存管理;保护每个进程的地址空间不被其他进程破坏;
2,物理内存指的是实实在在的内存,也就是主存
3,主存:DRAM
虚拟内存需要考虑在磁盘上的地址;物理内存需要考虑在主存上的地址。
虚拟页 物理页 页表
1,虚拟页是虚拟内存被分割成固定大小的产物,有三种状态:
- 未分配:系统还没有分配或者创建的页,也就是说不和任何数据有关联
- 已缓存:有物理页与之对应并且缓存到主存中
- 未缓存:已经分配但是主存中没有缓存
2,物理页是物理内存被分割成固定大小的产物,也叫做页帧
3,页表存储了虚拟页与物理页的映射关系。
malloc 对应的磁盘操作
malloc 在磁盘上创建空间并更新对应的 PTE,使其指向磁盘上新创建的页面。
工作集
程序趋向于在较小的活动页面集合上工作,该集合叫做工作集
抖动
如果工作集大小超过了物理内存大小,程序就会产生抖动。页面会不停地换进换出。
可以统计缺页次数来排查