×

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

Booting Process in Operating System

What is Booting? Booting is defined as the term which says that the process of loading the operating system into the memory. The process of booting begins when we switch on...

4 minutes read.

Can a Computer Run Without the Operating System

Computers may function right out of the box, mostly due to operating systems. Nowadays, there are probably already some pre-installed apps in a new computer when you buy one. Have...

9 minutes read.

HRRN Scheduling in OS

Highest Response Ratio Next (HRRN) Scheduling in OS Highest Response Ratio Next Scheduling is a Non-Preemptive Scheduling algorithm. This algorithm provides the benefits of the shortest job first scheduling algorithm and also removes...

6 minutes read.

5 Goals of Operating System

An Operating System (OS) is system software that acts as an interface or bridge between the hardware of a computer and the end user. Operating System reduces the communication barrier between the...

4 minutes read.

Operating System Services

The Operating System provides various types of services:   I/O operationProgram executionFile system manipulationCommunicationError HandlingResource allocationAccountingProtection 1. I/O Operation: - To execute a program, needs I/O, which consists of a file, or I/O device. Due to the protection...

3 minutes read.

Linux Operating System

What is Linux? The Linux operating system is used on various devices, including cellphones, automobiles, supercomputers, household gadgets, personal computers, and business servers. You can find Linux on your phones, thermostats, vehicles,...

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

Process Schedulers and Process Queue in OS

Process Schedulers There are various types of Process Schedulers: Long Term SchedulerShort Term SchedulerMedium Term Scheduler                                            Long Term Scheduler: - Long term scheduler is also referred to as Job Scheduler. The task of the Long-term...

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

Virtual Memory in Operating System

What is Virtual Memory Virtual Memory is a storage scheme in which the users have an illusion that users have a significant amount of Main Memory. We can perform this by taking a...

3 minutes read.

FCFS (First-Come-First-Serve) Disk Scheduling Algorithm

FCFS Disk Scheduling Algorithm FCFS (First-Come-First-Serve) is the easiest disk scheduling algorithm among all the scheduling algorithms. In the FCFS disk scheduling algorithm, each input/output request is served in the order...

4 minutes read.

File Allocation Methods in Operating System

A file allocation method is a way that an operating system stores and retrieves files on a storage device, such as a hard drive or SSD. The file allocation method...

4 minutes read.

Disk Scheduling Algorithms

Disk Scheduling Algorithms Disk scheduling algorithms are the algorithms that are used for scheduling a disk. Generally, the scheduling refers to a time-table for completing any task or a job. With the help...

2 minutes read.

Segmentation in Operating System

The term segmentation in operating system refers to the division of computer memory into segments. Segmentation is a technique used by many modern operating systems to provide better memory management....

4 minutes read.

Multiprogramming Operating System

You will discover more about the multiprogramming operating system in this post, including how it functions and its benefits and drawbacks. Each process needs several types of system time, including CPU...

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

What is Scheduling on OS

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

5 minutes read.

Test Set Lock Mechanism | Operating System

Modification in the Assembly Code The problem in the lock variable is that, in some cases, the process reads the previous or old value of the lock variable and enters into the critical...

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.

Ubuntu Operating System

Ubuntu Operating System Ubuntu is an open-source and a Linux based operating system. Ubuntu is developed for the Network Servers, Computers, and Smartphones. The Ubuntu operating system was developed by Canonical...

3 minutes read.