上QQ阅读APP看书,第一时间看更新
1.4 虚拟地址
虚拟地址的概念是虚拟内存实现中最为基础的一个部分,并在很多方面会对编译器和链接器的设计产生十分重要的影响。
一般来说,程序设计者完全不用关心程序运行时所占用的地址范围(至少,对绝大多数用户空间的应用程序来说确实如此,但内核模块是个例外)。取而代之的是,编程模型假定地址空间的范围是0~2N(虚拟地址范围),而且这个规则对所有程序适用。
在代码开发过程中,为所有程序采用简单且统一的地址模式能够带来许多好处。采用这一模式的好处如下:
● 简化链接过程。
● 简化加载过程。
● 实现运行时进程间共享。
● 简化内存分配机制。
操作系统利用地址翻译机制,对固定地址范围内的程序内存进行实际的运行时分配。该实现通过名为内存管理单元(MMU)的硬件模块完成,不需要程序本身的任何介入。
图1-4对简单的物理地址方案(该方案现如今用于简单微控制系统领域)和虚拟地址机制进行了比较。
图1-4 物理地址和虚拟地址