CPU将一个虚拟内存空间中地址转换为物理地址,需要进行两步:首先将给定一个逻辑地址(其实是段内偏移量),
CPU要利用其段式内存管理单元,先将逻辑地址换换成一个线性地址,再利用其页式内存管理单元,转换为
最终物理地址。线性地址:是CPU所能寻址的范围
物理地址:是机器中实际的内存地址。换言之,是机器中的没存容量范围。
逻辑地址:是对程序而言的。一般以Seg:Offset来表示。(程序员自己看到的地址)
因此,若要比较三者的话,应用如下关系:线性地址大于等于物理地址(PS:但两者之间的地址空间是一样的),
而逻辑地址通过段表变换成线性地址,此时如果并未开启分页机制的情况下,逻辑地址直接转换成CPU所能寻
址的空间。若已开启则通过页表完成线程地址到物理地址的变换。因此,三者之间最准确的关系是:逻辑地址通过线程地址完成物理地址的映射,线性地址在三者之中完全是充当
“桥”的作用。
虚拟内存:虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为他拥有连续的可用的内存(一个完
整的地址空间),而实际上,他通常是被分割成多个物理内存碎片,还有部分暂时存储在外部存储器上,在需要
时,进行数据交换。与没有使用虚拟内存技术的系统相比,使用这种技术的系统使得大型程序的编写变得更容易,
对真正的物理内存的使用也更有效率。虚拟内存的大小可以理解为进程使用的内存空间的大小的和。