Difference between load time binding and run time binding?

difference between load time binding and run time binding?

Compile Time Binding : It is the translation of logical addresses to physical addresses at the time of compilation. Now this type of binding is only possible in systems where we know the contents of the main memory in advance and know what address in the main memory we have to start the allocation from. Knowing both of these things is not possible in modern multi-programming systems. So it can be safely said the compile time binding would be possible in systems not having support for multi-programming.

Load Time Binding : It is the translation of the logical addresses to physical addresses at the time of loading. The relocating loader contains the base address in the main memory from where the allocation would begin. So when the time for loading a process into the main memory comes, all logical addresses are added to the base address by the relocating loader to generate the physical addresses.

Run Time Binding : In most modern processors multi-programming is supported. Therefore, there comes the need of shifting the physical addresses from one location to another during run time. This is taken care by the run time binding concept. It is used in Compaction to remove External Fragmentation. It is also used in Virtual Functions .

load time binding is done by loader and run time binding is done by CPU.

I hope this solves your doubt!