Contiguous Memory Management Methods

There are following types of methods to partitioned the main memory in a contiguous manner.

1. Single Contiguous Memory Management System
In this scheme, the physical memory is divided into two contiguous areas. One of them is permanently allocated to the resident portion of the Operating System. Mostly, the Operating System resides in low memory (0 to P as shown in Figure 1). The remaining memory is allocated to transient or user processes, which are loaded and executed one at a time, in response to user commands. This process is run to completion and then the next process is brought in memory.

In this scheme, the starting physical address of the program is known at the time of compilation. The machine contains absolute addresses. They do not need to be changed or translated at the time of execution. So there is no issue of relocation or address translation.

In this scheme as there is at most one process is in memory at any given time so there is a rare issue of interference between programs. However, it is desirable to protect the Operating System code from being tampered by the executing transient process.

contiguous memory

2 Fixed Partitioning or Multiprogramming with fixed partitioning or Multiprogramming with fixed no of task.

In this scheme memory user space is partitioned into different partitions each partition is of fixed size it mean size of partition does not change. In order to run a process a process can be placed in a partition which can hold it.

Since the size of each partition is fixed and the size of memory is also fixed so we can placed fixed number of process in the memory at a time. Therefore degree of multiprogramming is fixed in this scheme so it is also known as multiprogramming with fixed partitions.
If the size of all partitions is equal then it is called equal size partitioning and any process can be placed in any partition since the size of all partitions is equal.
When the size of process is too large to be placed in partition then overlays are used  Overlays are used to store the process that are larger than the amount of memory allocated to it. The idea of overlays is to keep only those instructions and data in memory that are needed ant any instant of time. When other instructions are needed they are loaded into space occupied by the previously instructions that are no longer needed.

If the size of the process is smaller than the  size of partition then there is some space wastage inside  the partition which can not be used by any other process This is called internal fragmentation.
Both overlays and Internal fragmentation can be decreased by unequal size partitioned.
In case of unequal size partitioning overlays will be used only if the largest partition also can not hold the process.

An example of partitioned memory is depicted in Figure 6. Out of the six partitions, one is assumed to be occupied by the resident portion of the OS, and three others by user processes Pi, Pj, and Pk, as indicated. The remaining two partitions, shaded in Figure 6, are free and available for allocation.

Disadvantage of Fixed Partitioning
(i)                 Internal Fragmentation
(ii)               External Fragmentation
(iii)             Degree of multiprogramming is fixed and limited by number of partitions in the memory
Some amount of memory is wasted both in single and multiple partition allocation techniques. Fragmentation refers to the unused memory that the memory management system cannot allocate. It is of two types: External and Internal.

External Fragmentation is waste of memory between partitions caused by scattered non-contiguous free space. It occurs when total available memory space is enough to satisfy the request for a process to be allocated, but it is not continuous. Selection of first fit and best fit can affect the amount of fragmentation. It is severe in variable size partitioning schemes. Compaction is a technique that is used to overcome this.

Internal fragmentation is waste of memory within a partition caused by difference between size of partition and the process allocated. It refers to the amount of memory, which is not being used and is allocated along with a process request i.e. available memory internal to partition. It is severe in fixed partitioning schemes.
Internal fragmentation can be decreased by choosing smallest partition which can hold a process.

User space can be partitioned into fixed seize partition and variable size partitions.

3. Variable size Partitioning or Multiprogramming with variable partitioning.

In this type of scheme the number of partition and the size of partition is not fixed at the system generation time. Partitions are created dynamically with the size partition equal to the size of process  to be loaded. Therefore degree of multiprogramming is variable. So this scheme is also known as multiprogramming with variable number of tasks (MVT).
In this scheme there will be a hole of variable size scattered throughout the memory. Variable partition minimize internal fragmentation. Here Memory allocation can be done by using following methods.

Question : What are different methods of contiguous  memory allocations ?

contiguous memory allocation methods  are as follows -
Best-fit: This strategy allocates the smallest hole that is big enough to accommodate process. Entire list ordered by size is searched and matching smallest left over hole is chosen. For example, suppose a process requests 12KB of memory and the memory manager currently has a list of unallocated blocks of 6KB, 14KB, 19KB, 11KB, and 13KB blocks. The best-fit strategy will allocate 12KB of the 13KB block to the process.

First-fit: This strategy allocates the first available space that is big enough to accommodate process. Search may start at beginning of set of holes or where previous first-fit ended. Searching stops as soon as it finds a free hole that is large enough. Using the same example as above, first fit will allocate 12KB of the 14KB block to the process.

Keywords: memory management methods, memory partitioning methods, contiguousmemory allocation methods ,best fit,first fit ,worst fit algorithm for memory allocation