Fragmentation is a phenomenon in which storage space
is used inefficiently. Fragmentation occurs when main memory is available but
space is not sufficient to load any other process. Due to swapping and dynamic memory
allocation, user process swap in and swap out of the main memory. As a result
there are free space but we cannot load new process because available size is
smaller than size of the process.
Types of Fragmentation:
Internal Fragmentation occurs when memory allocated to a process is slightly
larger than the actual memory requirement of the process. The difference is
known as internal fragmentation. Internal fragmentation is actually unused
memory internal to a process partition.
Example: Suppose, four process
arrives and P1 requires 35 KB, P2 requires 70 KB, nd P4
requires 28 KB. The new process P5 requires 54KB. Memory requirement of process P5 is not fulfilled because
internal fragmentation occurs in this case.
REASON: Total Free Memory =
50 + 2 + 5= 57 KB. But we cannot allocate to process P5 because free memory is within
allocated process memory area.
2 External Fragmentation occurs when there is a sufficient area within main
memory to satisfy current process memory requirement. BUT memory cannot be
allocated because available memory is not contiguous.
Example: Suppose a new process
arrives and needs 100 KB. In this case, external fragmentation occurs and memory
is not allocated to new process.
REASON: The total free
memory available is 30+20+60+10=120KB. But we cannot allocate memory
to new process because available free memory is not contiguous.
The solution for external
fragmentation is compaction and non contiguous memory allocation
Compaction is a process to
shuffle memory content so that all free memory forms one large block.
Practically this is not possible every time.
Another way to solve
external fragmentation is allowing logical address space to be non contiguous.
The two methods used are Paging and Segmentation.
No comments:
Post a Comment