##CSAPP读书日记-第九章-虚拟内存

虚拟内存是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的、一致的和私有的地址空间。

它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据。
它为每个进程提供了结构一致的地址空间,从而简化了内存管理。
它保护了每个进程的地址空间不被其它进程破坏。
在这里插入图片描述

物理和虚拟寻址:
计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组。每个字节都有唯一一个物理地址(PA=Physical Address)。

给定这种简单的结构,CPU访问内存的最自然的方式就是使用物理地址——这种寻址方式则被称为物理寻址。
早期的PC使用物理寻址方式,而且诸如数字信号处理器,嵌入式微控制器以及Cray超级计算机这样的系统仍然继续使用着这种寻址方式。
现代处理器使用的是一种称为虚拟寻址的寻址方式:

CPU通过生成一个虚拟地址(VA=Virtual Address)来访问主存。
这种虚拟地址在被送到内存之前先被转换成适当的物理地址。
将一个虚拟地址转换为物理地址的任务叫做地址翻译。
CPU芯片上的内存管理单元(MMO=Memory Management Unit),利用存放在主存中的查询表来完成上面的任务。
查询表的内容由操作系统管理。

地址空间:
一个地址空间的大小就是由表示最大地址所需要的位数来描述的。

比如一个 2^n 个地址的虚拟地址空间就叫做一个n位地址空间。
地址空间的概念是很重要的:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zjx130/article/details/86434941
今日推荐