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
- Fixed Partition
- 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.
- 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.
- 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:
- 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.
- 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:
- 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.
- 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.