Multi-programming with Fixed and Variable Partition

Filter Course


Multi-programming with Fixed and Variable Partition

Published by: Zaya

Published date: 22 Jun 2021

Multi-programming with Fixed and Variable Partition Photo

Multi-programming with Fixed and Variable Partition

In operating systems, Memory Management is the function responsible for allocating and managing a computer’s main memory. The 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:

  1. Fixed (or static) partitioning
  2. Variable (or dynamic) partitioning

Fixed Partitioning:

This is the oldest and simplest technique used to put more than one process in the main memory. In this partitioning, a number of partitions (non-overlapping) in RAM is fixed but the size of each partition may or may not be the same. As it is contiguous allocation, hence no spanning is allowed. Here partitions are made before execution or during system configure.

fixed partitioning

As illustrated in the above figure, the first process is only consuming 1MB out of 4MB in the main memory.
Hence, Internal Fragmentation in first block is (4-1) = 3MB.
Sum of Internal Fragmentation in every block = (4-1)+(8-7)+(8-7)+(16-14)= 3+1+1+2 = 7MB.

Suppose process P5 of size 7MB comes. But this process cannot be accommodated in spite of available free space because of contiguous allocation (as spanning is not allowed). Hence, 7MB becomes part of External Fragmentation.

There are some advantages and disadvantages of fixed partitioning.

Advantages of Fixed Partitioning –

  1. Easy to implement:
    Algorithms needed to implement Fixed Partitioning are easy to implement. It simply requires putting a process into a certain partition without focusing on the emergence of Internal and External Fragmentation.
  2. Little OS overhead:
    Processing of Fixed Partitioning requires lesser excess and indirect computational power.

Disadvantages of Fixed Partitioning –

  1. Internal Fragmentation:
    Main memory use is inefficient. Any program, no matter how small, occupies an entire partition. This can cause internal fragmentation.
  2. External Fragmentation:
    The total unused space (as stated above) of various partitions cannot be used to load the
  3. processes even though there is space available but not in the contiguous form (as spanning is not allowed).
  4. Limit process size:
    Process of size greater than the size of the partition in Main Memory cannot be accommodated. The partition size cannot be varied according to the size of the incoming process’s size. Hence, the process size of 32MB in above-stated example is invalid.
  5. Limitation on Degree of Multi-programming:
    Partitions in Main Memory is made before execution or during system configure. Main Memory is divided into a fixed number of partitions. Suppose if there are n1 partitions in RAM and n2 are the number of processes, then n2 <= n1 condition must be fulfilled. A number of processes greater than a number of partitions in RAM are invalid in Fixed Partitioning.

Variable Partitioning –

It is a part of the 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-

  1. Initially, RAM is empty and partitions are made during the run-time according to the process’s need instead of partitioning during system configure.
  2. The size of the partition will be equal to the incoming process.
  3. The partition size varies according to the need of the process so that the internal fragmentation can be avoided to ensure efficient utilization of RAM.
  4. The number of partitions in RAM is not fixed and depends on the number of incoming processes and Main Memory’s size.

There are some advantages and disadvantages of variable partitioning over fixed partitioning as given 

dynamic partitioning

Advantages of Variable Partitioning –

  1. No Internal Fragmentation:
    In variable Partitioning, space in the main memory is allocated strictly according to the need of the process, hence there is no case of internal fragmentation. There will be no unused space left in the partition.
  2. No restriction on Degree of Multiprogramming:
    More number of processes can be accommodated due to the absence of internal fragmentation. A process can be loaded until the memory is empty.
  3. No Limitation on the size of the process:
    In Fixed partitioning, the process with a size greater than the size of the largest partition could not be loaded and the process can not be divided as it is invalid in the 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 –

  1. Difficult Implementation:
    Implementing variable Partitioning is difficult as compared to Fixed Partitioning as it involves the allocation of memory during run-time rather than during system configure.
  2. External Fragmentation:
    There will be external fragmentation in spite of the absence of internal fragmentation. For example, suppose in the 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 continuously present in the main memory to get executed. Hence it results in External Fragmentation       

variable partitioning

Now P5 of size 3 MB cannot be accommodated in spite of required available space because in contiguous no spanning is allowed.