CSAPP 第九章 虚拟内存知识点总结
- 虚拟内存是对内存的一种抽象,它将主存作为磁盘地址空间的缓存,只在主存中保留有效的部分;它对每个进程提供一个独立的私有地址空间,从而避免进程执行的时候写入其它进程空间导致程序崩溃
- CPU访问内存地址时是提供虚拟地址给内存管理单元(MMU),由MMU使用查表将虚拟地址转化为物理地址,并将访问数据通过总线传回CPU
主存作为磁盘缓存
- 在将主存当作磁盘的缓存时,实际上根据缓存的使用,磁盘,主存,虚拟内存都需要被划分为若干固定大小的块,虚拟地址划分的块叫虚页,物理地址划分的叫物理页,也叫页框
- 虚页在任何时候只有三种情况:
- 虚页还没有被分配,即这部分虚拟地址没有对应部分,磁盘中也没有
- 虚页还没有在物理主存中缓存,即虚页已经映射到了磁盘中的一页,但是没有load进主存
- 虚页已经在物理主存中缓存,已经在主存中
- MMU通过访问页表来将虚拟内存翻译为物理内存,页表由页表项构成,简化来看,页表项由valid bit和address bits构成;valid为1,则地址部分即为翻译后得到的物理地址,valid为0,如果地址部分为NULL,则表示还没有被分配,如果不为NULL,则地址指向的磁盘上的虚拟页
- Page hit&