Write a note on allocation of frames
Virtual memory is implemented using demand paging. Demand paging necessitates the development of a page-replacement algorithm and a frame allocation algorithm.
Frame allocation algorithms are used if you have multiple processes; it helps decide how many frames to allocate to each process.
There are various constraints to the strategies for the allocation of frames:
⦁ You cannot allocate more than the total number of available frames.
⦁ At least a minimum number of frames should be allocated to each process. This constraint is supported by two reasons.
⦁ The first reason is, as less number of frames are allocated, there is an increase in the page fault ratio, decreasing the performance of the execution of the process.
⦁ Secondly, there should be enough frames to hold all the different pages that any single instruction can reference.
Frame allocation algorithms:
The two algorithms commonly used to allocate frames to a process are:
⦁ Equal allocation: In a system with x frames and y processes, each process gets equal number of frames, i.e. x/y. For instance, if the system has 48 frames and 9 processes, each process will get 5 frames. The three frames, which are not allocated to any process, can be used as a free-frame buffer pool.
Disadvantage:
In systems with processes of varying sizes, it does not make much sense to give each process equal frames. Allocation of a large number of frames to a small process will eventually lead to the wastage of a large number of allocated unused frames.
⦁ Proportional allocation: Frames are allocated to each process according to the process size.
For a process pi of size si, the number of allocated frames is ai = (si/S)*m, where S is the sum of the sizes of all the processes and m is the number of frames in the system. For instance, in a system with 62 frames, if there is a process of 10KB and another process of 127KB, then the first process will be allocated (10/137)*62 = 4 frames and the other process will get (127/137)*62
= 57 frames.
Advantage:
All the processes share the available frames according to their needs, rather than equally.
Global vs Local Allocation:
The number of frames allocated to a process can also dynamically change depending on whether you have used global replacement or local replacement for replacing pages in case of a page fault.
⦁ Local replacement: When a process needs a page which is not in the memory, it can bring in the new page and allocate it a frame from its own set of allocated frames only.
⦁ Advantage: The pages in memory for a particular process and the page fault ratio are affected by the paging behavior of only that process.
⦁ Disadvantage: A low priority process may hinder a high priority process by not making available to the high priority process its frames.
⦁ Global replacement: When a process needs a page, which is not in the memory, it can bring in the new page and allocate it a frame from the set of all frames, even if that frame is currently allocated to some other process; that is, one process can take a frame from another.
⦁ Advantage: Does not hinder the performance of processes and hence results in greater system throughout.
⦁ Disadvantage: The page fault ratio of a process cannot be solely controlled by the process itself. The pages in memory for a process depend on the paging behavior of other processes as well.