Explain the differences between Internal and external fragmentation.
Internal and external fragmentation
(1) While memory allocated to a process is a little larger than the requested memory, space at the end of a partition is not used and wasted. Such wasted space inside a partition is termed as internal fragmentation. When sufficient total memory space exists to satisfy a request, but this is not contiguous; storage is fragmented in a large number of small holes. It wasted space not allocated to any partition is termed as external fragmentation.
(2) Internal fragmentation is determined in multiple fixed partition schemes whereas all the partitions are of similar size. That physical memory is broken in fixed-sized blocks.
External fragmentation is determined in many variable partition schemes. In place of dividing memory in a fixed set of partitions, an operating system can select to allocate to a process the accurate amount of unused memory space this requires.
(3) In many fixed partition schemes, the partition table requires storing either the starting address for each process or the no. of the partition allocated to each process.
In many type of variable partition scheme, the overhead of managing extra data increases.
The partition table should store exact starting and ending location of each process and data about that memory locations are free should be maintained.
(4) In schemes of multiple fixed partitions, size/limit register is set at boot time and includes the partition size. All time a process is allocated control of CPU, the operating system only requires resetting the relocation register. Within multiple variable partition schemes, each time a diverse process is given control of the CPU, the operating system should reset the size/limit register in addition to the relocation register. The operating system should also make decisions on that partition this should allocate to a process.
(5) Internal fragmentation can be reduced by using multiple variable partition method. Though, this solution suffers from external fragmentation. This external fragmentation can be solved by using compaction where the goal is to shuffle the memory contents to place all free memory mutually in one large block. The other possible solution to the external fragmentation problem is to allow the logical address space of a process to be non-contiguous. Such solution is achieved by segmentation and paging.