×

Contiguous Memory Allocation in Operating System

Memory is a place where data, facts, figures, and information are stored for temporary or permanent access the data in future, which is also considered as the storage place.

Allocation of memory refers to the concept of providing certain memory or storage space to certain data; for example, if we enter the Z alphabet from the keyboard, the system will allocate memory for Z, and if we assign 99 value to Z, the system will store 99 at the Z location ( Here, Z is considered as a location in memory for human understanding only, but inside the system, there is no such location named as Z. Inside the system Z is also stored at the certain address which is a set of binary numbers. )

Memory Management Strategies:

There are two types of memory management strategies, which are given below:

1) Contiguous Memory Allocation

  1.  Fixed Partition
  2.  Variable/Dynamic Partition

2) Non-Contiguous Memory Allocation

Contiguous Memory Allocation: It refers to the concept of providing continuous memory/space to similar types of processes, irrespective of the number of processes. For example, if a process contains four blocks named as Zi, Zii, Ziii, and Ziv, the system will try to allocate/ provide a contiguous address to the entire block of that process in the RAM. It will allocate Zi next to Zii and Zii next to Ziii, and so on.

Contiguous memory allocation is one of the most important strategies for memory management. In this method, the memory is either branched in fixed sizes and slots or randomly branched as per the size and space required by the file. One single process holds an individual (entire) partition of contiguous memory, and because of this feature, it becomes very easy to access any random data from its process.   

  1. Fixed Partition: Fixed partition of memory is associated with the concept of contiguous memory allocation. This method allows us to divide the memory into certain fixed parts or make various slots of the same size. Nowadays, this method is no longer used because there are various evolved and modern forms of this method, which are way better and improved methods than fixed partitioning. Some of them are paging, segmentation, multilevel paging, inverted paging, etc. (the fixed method is the basis of all mentioned methods, all of these methods are the developed and improved versions of the static method). The Fixed Partitioning method was used in the 20th century around 1960. It was mainly used in the main frames or for big servers. 
  2. Dynamic Partition: Dynamic/ Variable partition of memory is associated with the concept of contiguous memory allocation. This method does not allow the partition of memory into fixed parts. As per the name suggests, it is dynamic in nature, and we cannot divide the memory into slots. In this method, we directly allocate the memory as per need depending on the file size or process.

Advantages of Contiguous Memory Allocation

There are certain advantages of allocating the memory contiguously, which are as follows:

  1. Implementation using contiguous memory allocation becomes very easy as compared to other methods used for memory management. In dynamic memory allocation, we use pointers to store the addresses, and indexes are also required. In contiguous allocation, there is no need for an index, no need for a pointer. We can put the data, and it will allocate memories as per length of the file and make it easy to implement.
  2. One of the advantages of contiguous memory allocation is that we can directly access any file from a disk. It takes a minimum to seek time, as there is no need to change track to access the data in the same file. We can access any random file from the track with the minimum time required.
    It has a magnificent reading performance.

Disadvantages of Contiguous Memory Allocation:

  1. One of the major disadvantages of contiguous memory allocation is external fragmentation. External fragmentation refers to the situation where there is the availability of memory in the system. Still, we cannot store any data or use that memory due to contiguous memory allocation.  
Contiguous Memory Allocation in Operating System
  • While using contiguous memory allocation, it is really difficult to edit and expand files. We can only add more data to the file if there is enough contiguous space available on the disk. We cannot add more data to a file if contiguous space is not available, hence cannot expand the file later.
  • Internal fragmentation is also considered as one of the disadvantages of contiguous memory allocation. It is a huge problem and is not only associated with contiguous memory allocation. It is a situation where a file uses less space for storage than the available space, and the remaining memory is wasted.

Related Topics

FCFS Scheduling in OS

FCFS: First Come First Serve Scheduling in OS FCFS is a non-preemptive and preemptive scheduling algorithm that is easy to understand and use. In this, the process which reaches first is...

3 minutes read.

Trap vs Interrupt in Operating System

What is Trap in Operating System? A trap is a synchronous interrupt used to perform functionality when an error occurs in a user process. A trap in an operating system can...

4 minutes read.

Priority Scheduling in OS

Priority Scheduling is a type of CPU Scheduling algorithm which is used for process scheduling. In Priority Scheduling, we assign some priorities to each process. The process which has higher priority among all...

5 minutes read.

Fixed Partitioning in Operating System

Fixed Partitioning in OS Fixed Partitioning is also known as Contiguous memory allocation. Fixed Partitioning is the easiest method, which is used to load more than one process into the main memory. In Fixed...

5 minutes read.

Difference between C-LOOK and C-SCAN Disk Scheduling Algorithm

Disk scheduling is used by operating systems to arrange the arrival of I/O requests to the disc. I/O scheduling is another name for disc scheduling. Disk scheduling is necessary because...

4 minutes read.

Inter Process Communication in Operating System

Inter-Process Communication or IPC refers to the methods and techniques that allow processes (programs or tasks) to communicate with each other within a computer system. This is typically done through...

3 minutes read.

Why is it critical for the Scheduler to distinguish between I/O-bound and CPU-bound programs

A CPU-bound process is one that spends most of its time executing instructions on the processor. A process that is I/O-bound spends most of its time waiting for input and...

2 minutes read.

SJF Scheduling in OS

Shortest Job First (SJF) Scheduling in OS Shortest Job First is a Preemptive or Non-Preemptive algorithm. In the shortest job first algorithm, the job having shortest or less burst time will...

4 minutes read.

Banker’s Algorithm in Operating System

What is Banker’s Algorithm? Bankers algorithm is an algorithm which is used for deadlock avoidance and resource allocation. It was established by Edsger Dijkstra. The reason behind the name ‘banker’s algorithm’...

8 minutes read.

Deadlock Avoidance

Deadlock Avoidance In an operating system, for deadlock avoidance, we perform the following: We only grant the request of the resources if the resulting state of the system will not cause any deadlock in the...

3 minutes read.

Contiguous Memory Allocation in Operating System

Memory is a place where data, facts, figures, and information are stored for temporary or permanent access the data in future, which is also considered as the storage place. Allocation of...

4 minutes read.

Feedback Queue in Operating System

In a computer or a laptop, there is a processor which do all the tasks. The processor cannot do all the tasks at a time. So, the tasks will be...

3 minutes read.

How to implement Monitors using Semaphores

Monitors Monitor is a type of synchronization device designed to solve difficulties caused by semaphores, such as timing errors. Monitors are the type of data types that are abstract by nature...

2 minutes read.

Process Synchronization | Operating System

Process Synchronization Process Synchronization means managing the process in such a manner so that no two processes have access to share similar data and resources. We can use Process Synchronization in a Multi-Process System...

4 minutes read.

Look Disk Scheduling

Look Disk Scheduling Look disk scheduling is another type of disk scheduling algorithm. Look scheduling is an enhanced version of SCAN disk scheduling. Look disk scheduling is the same as SCAN disk scheduling,...

4 minutes read.

Producer-Consumer Problem in OS

What is Producer-Consumer Problem? The Producer-Consumer problem is a classical problem. The Producer-Consumer problem is used for multi-process synchronization, which means synchronization between more than one processes. In this problem, we have one producer...

4 minutes read.

What is Thread and Types of Thread

What is Thread A thread means a lightweight process. Thread is the basic unit of CPU execution, which consists of thread ID, Program counter, set of registers to hold the information of current...

7 minutes read.

Difference between C-SCAN and SSTF Disk Scheduling Algorithm

C-SCAN / Circular Elevator The circular SCAN (C-SCAN) scheduling method is a modified version of the SCAN disc scheduling technique that addresses the SCAN algorithm's inefficiency by more equitably serving requests....

3 minutes read.

MS-DOS Operating System

It is also referred to occasionally as "DOS", an abbreviation for disc operating systems. Operating systems with a graphical user interface (GUI) in different iterations of the graphical Microsoft Windows...

5 minutes read.

Bit Vector in Operating System

What is Bit vector? Bit vector is one of the most important methods used in the free space management of operating system. Free space management which is used by the operating...

3 minutes read.