Programs should be dynamically
allocated across the memory hierarchy as required. Allocation should be
transparent to the programmer. Thus, the programmer is relieved of concerns
relating to memory limitations, and the OS can achieve efficiency by assigning
memory to jobs only as needed.