Contiguous memory management techniques
Overview
Main memory (RAM) is the primary memory, which a CPU can access directly. Therefore, any instruction in execution and data that is used by instruction must be in one of the direct storage access devices (RAM).
The run-time mapping to physical address from virtual address is done by a hardware device called the memory management unit (MMU).
Memory management can be broadly classified into two types:
- Contiguous memory management
- Non-contiguous memory management
- Internal fragmentation can be described as when there is a left-over space that cannot be utilized further.
- External fragmentation takes place when there is enough space to satisfy the request of a process but it is not contiguous, so it cannot be utilized further.
Contiguous memory management
The word contiguous here refers to the shared allocation of a memory resource.
The two important types of contiguous memory management are:
- Fixed partitioning
- Dynamic partitioning
Fixed partitioning
- Fixed size partitioning is also called static partitioning.
- In fixed partitioning, the number of partitions is fixed.
- In fixed partitioning, the size of each partition may or may not be the same.
- In fixed partitioning, spanning is not allowed, which means that the entire process has to be allocated into a partition block. This also means that only a portion of the process cannot be allocated.
Limitations
- Internal fragmentation
- Limits the process size
- Limits the degree of multi-programming
- External fragmentation
Dynamic partitioning
- Dynamic partitioning is a variable size partitioning.
- In dynamic partitioning, the memory is allocated at run-time based on the requirement of processes.
- We usually consider the available block of memory as hole.
- There is no internal fragmentation in dynamic partitioning.
- In dynamic partitioning, there is no limitation on the number of processes.
- The only limitation of dynamic partitioning is that it suffers from external Fragmentation.