如何理解在编译时和装入时的地址绑定会生成相同的逻辑地址和物理地址,而执行时的地址绑定则会生成不同的逻辑地址和物理地址
时间: 2024-05-26 21:17:16 浏览: 86
逻辑地址,线性地址及物理地址的区别
在程序的生命周期中,地址绑定是一个非常重要的概念。在编译时,编译器将源代码翻译成机器代码,并且为每个变量、函数分配一个地址。这个地址是逻辑地址,因为它还没有被映射到物理内存上。在装入时,操作系统将机器代码加载到内存中,并且将逻辑地址映射到物理地址上。这个时候,逻辑地址和物理地址是一一对应的,因为操作系统已经将它们绑定在一起了。
但是,随着程序的执行,程序可能会需要更多的内存空间,或者需要与其它进程共享内存空间。这个时候,操作系统可能会将程序的一部分移动到另外一个物理地址上。这个过程就是执行时的地址绑定。在这种情况下,逻辑地址和物理地址是不同的,因为它们之间的映射关系发生了改变。
因此,在编译时和装入时的地址绑定会生成相同的逻辑地址和物理地址,而执行时的地址绑定则会生成不同的逻辑地址和物理地址。这也是为什么在程序运行时,它需要通过地址转换来访问内存,而不是直接使用逻辑地址。
阅读全文