- Global vs. Local Allocation
- Global replacement; process selects replacement frame from set of all frames; process can take frame from another
- Local replacement each process selects only from its own set of allocated frames
- Frame locking; frames that belong to resident kernel, or are used for critical purposes, may be locked for improved performance.
- Page buffering; victim frames are grouped into two categories: those that hold unmodified (clean) pages and modified (dirty) pages
- Thrashing (see Fig. 4.14);
- The number of processes that are in the memory determines the multiprogramming (MP) level.
- The effectiveness of virtual memory management is closely related to the MP level.
- When there are just a few processes in memory, the possibility of processes being blocked and thus swapped out is higher.
- When there are far too many processes (i.e., memory is overcommitted), the resident set of each process is smaller.
- This leads to higher page fault frequency, causing the system to exhibit a behavior known as thrashing.
- In other words, the system is spending its time moving pages in and out of memory and hardly doing anything useful.
- process spends more time paging than executing
- The only way to eliminate thrashing is to reduce the multiprogramming level by suspending one or more process(es).
- Victim process(es) can be the: lowest priority process, faulting process, newest process, process with the smallest resident set, process with the largest resident set
- Student analogy to thrashing: Too many courses!
2004-05-25