In operating systems, Memory Management is the function responsible for allocating and managing computer’s main memory. Memory Management function keeps track of the status of each memory location, either allocated or free to ensure effective and efficient use of Primary Memory.
There are two Memory Management Techniques: Contiguous, and Non-Contiguous. In Contiguous Technique, executing process must be loaded entirely in main-memory. Contiguous Technique can be divided into:
- Fixed (or static) partitioning
- Variable (or dynamic) partitioning
Variable Partitioning –
It is a part of Contiguous allocation technique. It is used to alleviate the problem faced by Fixed Partitioning. In contrast with fixed partitioning, partitions are not made before the execution or during system configure. Various features associated with variable Partitioning-
- Initially RAM is empty and partitions are made during the run-time according to process’s need instead of partitioning during system configure.
- The size of partition will be equal to incoming process.
- The partition size varies according to the need of the process so that the internal fragmentation can be avoided to ensure efficient utilisation of RAM.
- Number of partitions in RAM is not fixed and depends on the number of incoming process and Main Memory’s size.
There are some advantages and disadvantages of variable partitioning over fixed partitioning as given below.
Advantages of Variable Partitioning –
- No Internal Fragmentation:
In variable Partitioning, space in main memory is allocated strictly according to the need of process, hence there is no case of internal fragmentation. There will be no unused space left in the partition.
- No restriction on Degree of Multiprogramming:
More number of processes can be accommodated due to absence of internal fragmentation. A process can be loaded until the memory is not empty.
- No Limitation on the size of the process:
In Fixed partitioning, the process with the size greater than the size of the largest partition could not be loaded and process can not be divided as it is invalid in contiguous allocation technique. Here, In variable partitioning, the process size can’t be restricted since the partition size is decided according to the process size.
Disadvantages of Variable Partitioning –
- Difficult Implementation:
Implementing variable Partitioning is difficult as compared to Fixed Partitioning as it involves allocation of memory during run-time rather than during system configure.
- External Fragmentation:
There will be external fragmentation inspite of absence of internal fragmentation.
For example, suppose in above example- process P1(2MB) and process P3(1MB) completed their execution. Hence two spaces are left i.e. 2MB and 1MB. Let’s suppose process P5 of size 3MB comes. The empty space in memory cannot be allocated as no spanning is allowed in contiguous allocation. The rule says that process must be contiguously present in main memory to get executed. Hence it results in External Fragmentation.
Now P5 of size 3 MB cannot be accommodated in spite of required available space because in contiguous no spanning is allowed.
- Fixed (or static) Partitioning in Operating System
- Operating System | Lock variable synchronization mechanism
- Operating System | Buddy System - Memory allocation technique
- Operating System | Requirements of memory management system
- Operating System | Semaphores in operating system
- Operating System | Introduction of Operating System - Set 1
- Operating System | Starvation and Aging in Operating Systems
- Operating System | Kernel I/O Subsystem (I/O System)
- Operating System | Unix File System
- Operating System | Introduction of System Call
- Operating System | Types of Operating Systems
- Operating System | Segmentation
- Operating System | Paging
- Functions of Operating System
- Operating System | Microkernel
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.