Programs must therefore be loaded into contiguous memory blocks large enough to hold the entire program.
For an operating system embedded in a single purpose device with no external storage, this may be ok.
In a multiprogramming operating system, many processes will be loaded into memory.
Memory allocation occurs when a process is created and deallocation occurs when the process terminates.
However, the order of deallocation is not predictable from the order of allocation!