这篇文章记述了关于虚拟内存的知识点。
先搞懂两个问题,对于一个进程而言,其地址如何映射到磁盘上?对于指针变量而言,又是如何将一定数量的空间进行划分的呢?
最后再来一个手撕LRU
王道的图很详细:https://www.cnblogs.com/wkfvawl/p/11733057.html
CSAPP真是一本好书啊!以下为引用:
虚拟内存提供了三个重要的能力:1)它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效的使用了主存;(这句话真是精辟,高速缓存指明主存是一个读写速度很快的缓存系统,只保护活动区域是指页面的置换)
2)它为每个进程提供了一致的地址空间,从而简化了内存管理;
3)它保护了每个进程的地址空间不被其他进程所破坏。
虚拟内存成功的主要原因是它是沉默的、自动的在工作,不需要应用程序员进行干涉。