Process must be in physical memory for execute
Size of a process is limited to the size of physical memory
Better memory-space utilization, use dynamic loading
Routine is not loaded until it is called; 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