Dynamic Loading:
► Routine is not loaded until it is called
► Better memory-space utilization; unused routine is never loaded.
► Useful when large amounts of code are needed to handle infrequently occurring cases.
► No special support from the operating system is required implemented through program design.
Dynamic Linking:
► Linking postponed until execution time.
► Small piece of code, stub, used to locate the appropriate memory-resident library routine.
► Stub replaces itself with the address of the routine, and executes the routine.
► Operating system needed to check if routine is in processes? memory address.
► Dynamic linking is particularly useful for libraries.
Overlays:
► Keep in memory only those instructions and data that are needed at any given time.
► Needed when process is larger than amount of memory allocated to it.
► Implemented by user, no special support needed from operating system, programming design of overlay structure is complex.