address binding
Imagine writing party invitations before you have booked a venue. You could (1) print the real street address now, while writing — but then you are locked to that one hall; or (2) leave a blank and stamp the address when you mail them; or (3) hand out cards that say 'check the board at the entrance' so guests find the room on arrival. Address binding is exactly this choice: at what moment do the addresses in a program get tied to real memory locations?
There are three classic times. Compile-time binding: if you know in advance where the program will sit, the compiler can generate absolute addresses directly; the code is fast but stuck at that one location (used in some simple embedded systems). Load-time binding: the compiler produces relocatable code (addresses relative to the start), and when the loader places the program it fixes them up by adding the chosen starting point; the program can go anywhere, but once loaded it cannot move. Execution-time binding: the program keeps using logical addresses and the translation to physical happens on every access by hardware as it runs; this lets the OS move a process around even while it is running, and is what all modern general-purpose systems use.
Why it matters: the binding time decides how much freedom the OS has. Earlier binding is simpler but rigid; later binding needs hardware help (the MMU) but gives the OS the flexibility to relocate, swap, and protect processes. The whole logical/physical address machinery exists to make execution-time binding cheap enough to do on every memory reference.
The same compiled program runs twice. With load-time binding the loader puts copy A at base 5000 (adding 5000 to every relocatable address) and copy B at base 90000. With execution-time binding nothing is rewritten; the MMU just adds the base on each access.
Later binding = less rewriting and more flexibility, at the cost of needing hardware translation.
Only execution-time binding lets the OS relocate a process after it has started running; the earlier two fix the location once and for all. This is why modern systems pay for an MMU.