CSAPP

173 阅读1分钟

hansimov.gitbook.io/csapp/labs/…

虚拟内存

虚拟内存 物理内存 主存

1,虚拟内存将主存看做存储在磁盘空间上的地址空间的高速缓存,是一种对主存的抽象;为每个进程提供了一致的地址空间,简化内存管理;保护每个进程的地址空间不被其他进程破坏;

2,物理内存指的是实实在在的内存,也就是主存

3,主存:DRAM

虚拟内存需要考虑在磁盘上的地址;物理内存需要考虑在主存上的地址。

虚拟页 物理页 页表

1,虚拟页是虚拟内存被分割成固定大小的产物,有三种状态:

  • 未分配:系统还没有分配或者创建的页,也就是说不和任何数据有关联
  • 已缓存:有物理页与之对应并且缓存到主存中
  • 未缓存:已经分配但是主存中没有缓存

2,物理页是物理内存被分割成固定大小的产物,也叫做页帧

3,页表存储了虚拟页与物理页的映射关系。

malloc 对应的磁盘操作

malloc 在磁盘上创建空间并更新对应的 PTE,使其指向磁盘上新创建的页面。

工作集

程序趋向于在较小的活动页面集合上工作,该集合叫做工作集

抖动

如果工作集大小超过了物理内存大小,程序就会产生抖动。页面会不停地换进换出。

可以统计缺页次数来排查