在本文中,我们将通过示例及其类型(如编译时间、加载时间和执行时间地址绑定)来介绍地址绑定。让我们一一讨论。
地址绑定:
程序指令和数据与实际物理内存位置的关联称为地址绑定。让我们考虑下面给出的以下示例,以便更好地理解。
考虑一个程序 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
地址绑定类型:
地址绑定分为以下三种类型。
- 编译时地址绑定
- 加载时间地址绑定
- 执行时间地址绑定
编译时地址绑定:
- 如果编译器负责执行地址绑定,则称为编译时地址绑定。
- 这将在将程序加载到内存之前完成。
- 编译器需要与操作系统内存管理器交互以执行编译时地址绑定。
加载时间地址绑定:
- 这将在程序加载到内存后完成。
- 这种类型的地址绑定将由操作系统内存管理器(即加载器)完成。
执行时间或动态地址绑定:
- 即使将程序加载到内存中,它也会被推迟。
- 程序将不断更改内存中的位置,直到程序执行为止。
- 处理器在程序执行时完成的动态地址绑定类型。
笔记 :
大多数操作系统实际上实现了动态加载、动态链接、动态地址绑定。例如——Windows、Linux、Unix 所有流行的操作系统。