在本文中,我们将通过一个示例及其地址类型(如编译时间,加载时间和执行时间地址绑定)来介绍地址绑定。让我们一一讨论。
地址绑定:
程序指令和数据与实际物理内存位置的关联称为地址绑定。让我们考虑下面给出的以下示例,以便更好地理解。
考虑程序P1具有指令集,使得I1,I2,I3,I4和程序计数器值分别是10、20、30、40。
Program P1
I1 --> 10
I2 --> 20
I3 --> 30
I4 --> 40
Program Counter = 10, 20, 30, 40
地址绑定的类型:
地址绑定分为以下三种类型。
- 编译时地址绑定
- 加载时间地址绑定
- 执行时间地址绑定
编译时地址绑定:
- 如果编译器负责执行地址绑定,则称为编译时地址绑定。
- 它将在将程序加载到内存之前完成。
- 编译器需要与OS内存管理器进行交互以执行编译时地址绑定。
加载时间地址绑定:
- 将程序加载到内存后即可完成。
- 这种类型的地址绑定将由OS内存管理器(即加载程序)完成。
执行时间或动态地址绑定:
- 即使将程序加载到内存中,也会被推迟。
- 程序将一直在更改内存中的位置,直到执行程序为止。
- 程序执行时由处理器完成的地址绑定的动态类型。
笔记 :
大多数操作系统实际上都实现了动态加载,动态链接,动态地址绑定。例如– Windows,Linux,Unix都是流行的操作系统。