0% found this document useful (0 votes)
7 views

Contigious and Non Contigious Memory Allocation in Operating System

Uploaded by

souravjdas23
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Contigious and Non Contigious Memory Allocation in Operating System

Uploaded by

souravjdas23
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

Contigious and Non Contigious memory allocation

in operating system

In operating systems, memory allocation refers to the process of


assigning memory to different processes or programs running on a
computer system. There are two types of memory allocation techniques
that operating systems use: contiguous and non-contiguous memory
allocation. In contiguous memory allocation, memory is assigned to a
process in a contiguous block. In non-contiguous memory allocation,
memory is assigned to a process in non-adjacent blocks.

Contiguous Memory Allocation


Contiguous memory allocation is a technique where the operating system
allocates a contiguous block of memory to a process. This memory is
allocated in a single, continuous chunk, making it easy for the operating
system to manage and for the process to access the memory. Contiguous
memory allocation is suitable for systems with limited memory sizes and
where fast access to memory is important.

Contiguous memory allocation can be done in two ways


Fixed Partitioning − In fixed partitioning, the memory is divided into
fixed-size partitions, and each partition is assigned to a process. This
technique is easy to implement but can result in wasted memory if a
process does not fit perfectly
into a partition.

Dynamic Partitioning − In dynamic partitioning, the memory is


divided into variablesize partitions, and each partition is assigned
to a process. This technique is more efficient as it allows the
allocation of only the required memory to the process, but it
requires more overhead to keep track of the available memory.

Advantages of Contiguous Memory Allocation

Simplicity − Contiguous memory allocation is a relatively simple


and straightforward technique for memory management. It requires
less overhead and is easy to implement.

Efficiency − Contiguous memory allocation is an efficient technique


for memory management. Once a process is allocated contiguous
memory, it can access the entire memory block without any
interruption.
Low fragmentation − Since the memory is allocated in contiguous
blocks, there is a lower risk of memory fragmentation. This can result
in better memory utilization, as there is less memory wastage.
Disadvantages of Contiguous Memory Allocation

Limited flexibility − Contiguous memory allocation is not very


flexible as it requires memory to be allocated in a contiguous
block. This can limit the amount of memory that can be allocated
to a process.

Memory wastage − If a process requires a memory size that is smaller


than the contiguous block allocated to it, there may be unused
memory, resulting in memory wastage.

Difficulty in managing larger memory sizes − As the size of memory


increases, managing contiguous memory allocation becomes more
difficult. This is because finding a contiguous block of memory that
is large enough to allocate to a process becomes challenging.

External Fragmentation − Over time, external fragmentation may


occur as a result of memory allocation and deallocation, which may
result in non − contiguous blocks of free memory scattered
throughout the system.

Overall, contiguous memory allocation is a useful technique for memory


management in certain circumstances, but it may not be the best
solution in all situations, particularly when working with larger amounts
of memory or if flexibility is a priority.

Non-contiguous Memory Allocation


Non-contiguous memory allocation, on the other hand, is a technique
where the operating system allocates memory to a process in non-
contiguous blocks. The blocks of memory allocated to the process need
not be contiguous, and the operating system keeps track of the various
blocks allocated to the process. Non-contiguous memory allocation is
suitable for larger memory sizes and where efficient use of memory is
important.

Non-contiguous memory allocation can be done in two ways


Paging − In paging, the memory is divided into fixed-size pages, and
each page is assigned to a process. This technique is more efficient
as it allows the allocation of only the required memory to the process.

Segmentation − In segmentation, the memory is divided into variable-


sized segments, and each segment is assigned to a process. This
technique is more flexible than paging but requires more overhead to
keep track of the allocated segments.
Non-contiguous memory allocation is a memory management technique
that divides memory into non-contiguous blocks, allowing processes to be
allocated memory that is not necessarily contiguous. Here are some of
the advantages and disadvantages of noncontiguous memory allocation −

Advantages of Non-Contiguous Memory Allocation

Reduced External Fragmentation − One of the main advantages of


non- contiguous memory allocation is that it can reduce external
fragmentation, as memory can be allocated in small, non-
contiguous blocks.

Increased Memory Utilization − Non-contiguous memory allocation


allows for more efficient use of memory, as small gaps in memory
can be filled with processes that need less memory.

Flexibility − This technique allows for more flexibility in


allocating and deallocating memory, as processes can be
allocated memory that is not necessarily contiguous.

Memory Sharing − Non-contiguous memory allocation makes it


easier to share memory between multiple processes, as memory
can be allocated in non-contiguous blocks that can be shared
between multiple processes.

Disadvantages of Non-Contiguous Memory Allocation

Internal Fragmentation − One of the main disadvantages of non-


contiguous memory allocation is that it can lead to internal
fragmentation, as memory can be allocated in small, non-
contiguous blocks that are not fully utilized.

Increased Overhead − This technique requires more overhead than


contiguous memory allocation, as the operating system needs to
maintain data structures to track memory allocation.

Slower Access − Access to memory can be slower than contiguous


memory allocation, as memory can be allocated in non-contiguous
blocks that may require additional steps to access.

In summary, non-contiguous memory allocation has advantages such as


reduced external fragmentation, increased memory utilization, flexibility,
and memory sharing. However, it also has disadvantages such as internal
fragmentation, increased overhead, and slower access to memory.
Operating systems must carefully consider the tradeoffs between these
advantages and disadvantages when selecting memory management
techniques.
Difference between contigious and non contigious memory
allocation in operating system

Contiguous Memory Non-Contiguous Memory


Aspect Allocation Allocation

Method Allocates memory Allocates memory to a


in a contiguous process in non-contiguous
block to a process blocks

Block Size Memory allocated in Memory allocated in


a single, continuous noncontiguous blocks of
chunk varying sizes

Management Easy to manage by Requires additional overhead


the operating and can be more complicated
system to manage

Memor May result in Efficient use of memory


y memory wastage and reduces
Usage and external fragmentation within
fragmentation memory blocks

Suitable For Systems with limited Larger memory sizes and


amounts of memory systems that require more
and fast access to efficient use of memory
memory is important

Advantages Simple and More flexible and efficient


efficient technique technique for larger memory
for memory sizes and systems that
management require more efficient use of
memory

Disadvantage Can be inflexible and Requires additional overhead


s result in memory and can be more complicated
wastage and to manage
fragmentation
Conclusion
In conclusion, memory allocation is an important aspect of operating
systems, and contiguous and non-contiguous memory allocation are two
techniques used to manage memory. Contiguous memory allocation is a
simple and efficient technique for allocating memory to processes, but it
can result in memory wastage and fragmentation. It is suitable for
systems with limited amounts of memory and where fast access to
memory is important. Non-contiguous memory allocation, on the other
hand, is a more flexible and efficient technique for larger memory sizes
and systems that require more efficient use of memory. However, it
requires additional overhead and can be more complicated to manage,
particularly in the presence of fragmentation within memory blocks. The
choice between these two techniques depends on the specific
requirements of the system in question, and effective memory
management is essential for optimal system performance.

You might also like