There is rarely enough memory to actively hold all code and data structures needed by running processes in memory at any given point of time. The idea is to swap in and out blocks of code as they are required from secondary memory.
Fixed Partitioning
Main memory is divided into static partitions.
Any process, given its requirements may be loaded into a
partition of equal or greater size.
Note that here processes are not divided into modules,
rather memory is divided and entire processes are placed
inside a partition.
Partitions may be of two types :
Dynamic Partitioning
Here, partitions are created dynamically as
per the requirement/size of the process in question.
1. a; 2. b; 3. b;