1. Introduction

When a program is written, it has no knowledge of the exact memory location where it will execute. However, the CPU can execute instructions only if they are located at specific physical memory addresses.

This creates a fundamental challenge:

How can program-generated addresses be mapped to actual memory locations?

The mechanism that solves this problem is known as Address Binding.

Address binding is one of the most important concepts in memory management because it forms the foundation for relocation, paging, segmentation, and virtual memory.

2. What is Address Binding?

Definition

Address Binding is the process of mapping a program's logical addresses to physical memory addresses.

Conceptually:

Logical Address
       ↓
Address Binding
       ↓
Physical Address

The operating system and memory-management hardware work together to perform this mapping.

3. Why Address Binding is Needed

A program passes through several stages before execution:

Source Program
      ↓
Compiler
      ↓
Object Program
      ↓
Linker
      ↓
Executable Program
      ↓
Loader
      ↓
Memory
      ↓
Execution

At each stage, memory addresses may change.

Without address binding:

  • Programs could run only at fixed locations.

  • Memory relocation would be impossible.

  • Multiprogramming could not be supported efficiently.

  • Dynamic memory management would not exist.

Address binding provides flexibility by allowing programs to execute regardless of where they are loaded into memory.

4. Types of Addresses

Before understanding binding mechanisms, it is important to distinguish between logical and physical addresses.

4.1 Logical Address (Virtual Address)

A logical address is generated by the CPU during program execution.

Characteristics:

  • Used by the program

  • Independent of actual memory location

  • Generated for every memory reference

Example:

Logical Address = 250

The process assumes it is accessing location 250.

4.2 Physical Address

A physical address is the actual location in RAM.

Characteristics:

  • Used by memory hardware

  • Represents a real memory location

  • Obtained after address translation

Example:

Physical Address = 4250

Key Insight

In modern operating systems:

Logical Address ≠ Physical Address

The conversion is performed by hardware and OS mechanisms.

5. Types of Address Binding

Address binding may occur at three different stages:

  1. Compile-Time Binding

  2. Load-Time Binding

  3. Execution-Time Binding

5.1 Compile-Time Binding

Concept

If the memory location where a program will execute is known in advance, addresses can be generated during compilation itself.

The compiler produces absolute addresses.

Example

Suppose:

Program starts at memory location 1000

Instruction:

LOAD X

may be translated into:

LOAD 1200

The address is permanently fixed.

Characteristics

  • Absolute addressing

  • No relocation support

  • Fast execution

  • Simple implementation

Advantages

  • Minimal runtime overhead

  • Simple address generation

Disadvantages

  • Program must execute at predetermined location

  • Memory relocation impossible

  • Recompilation required if location changes

Visualization

Compile Time

Program
   ↓
Compiler
   ↓
Absolute Addresses Generated
   ↓
Memory Location Fixed