Contents
show
Contiguous and Non Contiguous Memory Allocation
What is Contiguous Memory Allocation?
What is Non Contiguous Memory Allocation ?
This contiguous and non contiguous memory allocation tutorial covers the concepts both type of memory organization. This tutorial also covers the various problems and techniques each with each types of memory allocation method.
(A) Contiguous Memory Allocation
In contiguous memory allocation every process is allotted one contiguous space in memory. Process should exist during a single block or partition of a contiguous address house. It is not possible sometime to possess giant enough block for the process. Low overhead.
Some facts about contiguous memory allocation are as follow :
Some facts about contiguous memory allocation are as follow :
- Contiguous memory allocation may be a classical memory allocation model that assigns process consecutive memory blocks (that is, memory blocks having consecutive addresses).
- Contiguous memory allocation is one in every of the oldest memory allocation schemes. once process must execute. The scale of the process is compared with the number of contiguous main memory offered to execute the process.
- If comfortable contiguous memory is found, the process is allotted memory to start out its execution. Otherwise, it’s further to a queue of waiting processes till comfortable free contiguous memory is offered.
- The contiguous memory allocation theme will be enforced in operational systems with the assistance of 2 registers, referred to as the bottom and limit registers. Once a process is corporal punishment in main memory, its base register contains the beginning address of the memory location wherever the process is corporal punishment, whereas the number of bytes consumed by the process is keep within the limit register.
-  A process doesn’t directly sit down with the particular address for a corresponding memory location. Instead, it uses a relative address with regard to its base register. All addresses referred by a program thought-about as virtual addresses.
The central processing unit generates the logical or virtual address, that is born-again into AN actual address with the assistance of the memory management unit (MMU). the bottom address register is employed for address translation by the MMU. Thus, a physical address is calculated by adding the Base register address and logical or virtual address.
Â
The address of Any memory location documented by a process is checked to make sure that it doesn’t sit down with an address of a neighboring process. This process security is handled by the underlying software system.
Â
One disadvantage of contiguous memory allocation is that the degree of instruction execution is reduced thanks to processes expecting free memory.
Â
Several problems associated with contiguous memory allocation are Memory Protection, Relocation and  fragmentation. Faces the matter of memory fragmentation. Apply techniques of memory compaction and recycle in dynamic. Compaction needs , Swapping techniques are used .
(B) Non-Contiguous Memory Allocation
In case of Non contiguous memory organization the Complete program is split into chunks referred to as sections and every segment will be placed in several elements or blocks of memory. it’s easier to fins the opening or house during which it will be match.
In context to memory organization, non contiguous memory allocation suggests that the offered memory house is scattered here and there it suggests that all the free offered memory house isn’t along at one place. Reduces external fragmentation.
(C) Example
Consider the scenario given in the figure.
Â
Â
Â
Let us understand the above example for the both contiguous and non contiguous memory allocation.
Â
In case of Contiguous Memory Allocation Process P1, P2 and P3 are placed in blocks of memory which has sufficient space available to hold these process p1 .
To understand the concept of Non Contiguous memory Allocation consider that After Placing the process p1, p2 and p3 suppose a new process P is arrived and size of p is 60 KB. But we don’t have 60 Kb free space continuously ( as shown in figure c) we have 60 KB free space in scattered manner 20 KB after process p3 and 40 Kb after process D.
Â
 So we can use this scattered space to allocate the this  new process p . We divide the process P in two chunks one of 20 Kb and another of 40 Kb and places these chunks of process P in available spaces of 20 KB nd 40 Kb,
Two approaches are used in non contiguous memory allocation techniques first is paging and second is Segmentation. Paging consist of fixed size pages. But External fragmentation occurred in this technique. Second technique is segmentation it avoid the external fragmentation. Â
(D) Conclusion
In this tutorial I have explained the concepts of contiguous and non contiguous memory organization I hope that this tutorial will be helpful to students in understanding these concepts. If you have any problem or query related to the topic then please ask in comments. Your suggestion and questions are really valuable for us.
Keywords: Introduction to memory allocation, definition of contiguous and non-contiguous memory allocation,Â