×

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

Types of Operating System

There are various types of operating system: Simple Batch Operating SystemMultiprogramming batch Operating SystemTime-sharing Operating SystemMultiprocessor Operating SystemDistributed Operating SystemNetwork Operating SystemReal-time Operating SystemMobile Operating System Simple Batch operating system In the simple batch operating system, there is no direct communication between...

6 minutes read.

Difference between Rotational Latency and Disk Assess Time in Disk Scheduling

Disk scheduling is used by operating systems to arrange the arrival of I/O requests to the disc. Disk scheduling is necessary because several I/O requests may occur from various processes,...

4 minutes read.

What is Demand Paging?

Demand Paging is defined as a process in which the pages are loaded into the memory (when the page fault occurs) or on-demand. It consists of the following steps: If there is...

4 minutes read.

Free Space Management in Operating System

What is Free Space Management? The system always keeps the records of the free disks blocks for allocating space to files when they are created. To use the space free from...

4 minutes read.

Commercial Mobile Operating Systems

Introduction to Commercial Mobile Operating Systems A computer program's common services are managed by an operating system (OS), which also handles computer hardware and software resources. The user can communicate with...

7 minutes read.

CPU Scheduling in OS

What is Scheduling? Scheduling is the process that is used to share the computing resources such as memory, processor time, and bandwidth to the different processes, data flows, threads, and applications that need...

5 minutes read.

DOS Operating System

What is DOS Operating System? An operating system that runs from a hard disk drive is known as the DOS (Disk Operating System).In other words, DOS (Disk Operating System) is defined...

7 minutes read.

Strategies for Handling Deadlock

Strategies for Handling Deadlock The Strategies for handling Deadlock are: Deadlock IgnoranceDeadlock PreventionDeadlock AvoidanceDeadlock Detection and Recovery Deadlock Ignorance Deadlock Ignorance is the most popular deadlock handling strategy. We can use this in the various operating systems for...

2 minutes read.

Single-User Operating System

An operating system designed and intended to be used on a computer or device with a single user at a time is known as a single-user operating system. Devices like...

8 minutes read.

File in Operating System

What is File in Operating System?  A file is defined as a collection of the interrelated information that is stored in the secondary memory or the non-volatile memory such as optical...

4 minutes read.

Difference between Process and Program in the Operating System

What is a process in the Operating System? A process is a program that is going through the execution. It also helps us to execute all the lines of code in...

4 minutes read.

Functions of Operating System

The functions of Operating System are: Process Management Memory Management File Management Device Management Secondary storage Management Security Coordination between other software and users Networking Job Accounting Error detecting aids 1. Process Management Process Management support operating system to create and delete...

3 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.

Need of Operating System

There are various needs of operating system: Managing Input-Output UnitThe Operating system as a platform for application programsMultitaskingConsistent user interface Managing Input-Output Unit: - With the help of the operating system, the...

2 minutes read.

Deadlock Detection and Recovery

Deadlock Detection and Recovery In deadlock detection and recovery, to avoid or prevent a deadlock, the operating system uses various methods. For checking deadlock, an operating system continuously monitors the system. Then also,...

2 minutes read.

Lock Variable Mechanism | Operating System

Lock Variable Mechanism The Lock variable mechanism is a synchronization mechanism that is implemented in a user mode. It is a software procedure. Lock variable is a solution for busy waiting that can be...

3 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.

Distributed Shared Memory

Distributed Shared Memory is a process of managing memory over more than one node and makes inter-process communication which transfers to end users. It is a mechanism that allows user...

2 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.

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.