天天看点

【虚拟内存】物理寻址和虚拟寻址

文章目录

      • 1、物理寻址
      • 2、虚拟寻址
      • 参考

1、物理寻址

  • 物理地址

    主存是一个有M个连续的字节大小的单位组成的数组。每个字节都有自己对应的一个地址,就是物理地址。物理地址大小就是实际的主存的大小。比如,通常说的4G内存,就是指内存大小就是4GB,其物理地址是32位。

  • 物理寻址

    就是CPU使用物理地址直接到主存中找对应的数据。(如下图)

    【虚拟内存】物理寻址和虚拟寻址

2、虚拟寻址

  • 虚拟地址

    虚拟内存是一个由存放在磁盘上的N个连续的字节大小的单元组成的数组。每个字节都有一个唯一的地址,就是虚拟地址。通常,虚拟地址由页号和偏移量组成,页号就是抽象的虚拟页的编号,偏移量用于计算实际的物理地址。

  • 虚拟地址和物理地址的关系

    进程虽然使用虚拟地址,但是用数据时还是要到实际的物理地址去取数据。这就存在一个虚拟地址到物理地址的转化运算,这是由CPU芯片上一个叫做内存管理单元(MMU)的专用硬件来实现的。

    通常,物理地址=页号*页大小+页内偏移量。

  • 虚拟寻址

    CPU通过虚拟地址来访问主存,访问内存使用的物理地址,MMU通过将虚拟地址进行翻译,转化为物理地址,然后再用这个物理地址去访问内存数据。(如下图)

    【虚拟内存】物理寻址和虚拟寻址

参考

《深入理解计算机系统》第9章.虚拟内存

继续阅读