Abstract
We suggest a method for minimizing the paging on a system with a very heavy memory usage. Sometimes there are processes with active memory allocations that should be in the physical memory, but their total size exceeds the physical memory range. In such cases, the operating system starts swapping pages in and out of the memory on every context switch. We minimize this thrashing by splitting the processes into a number of bins, using Bin Packing approximation algorithms. We modify the scheduler to have two levels of scheduling - medium-term scheduling and short-term scheduling. The medium-term scheduler switches the bins in a Round-Robin manner, whereas the short-term scheduler runs the standard Linux scheduler among the processes in each bin. We show that this feature does not impose modifications on the shared memory maintenance. In addition, we show how to adjust the new scheduler to fit some elements of the original scheduler like priority and real-time privileges. Experimental results show significant improvement on heavily loaded memories. The code of this project is free and can be found in http://www.cs.biu.ac.il/~reubenm.
Original language | English |
---|---|
Pages (from-to) | 297-309 |
Number of pages | 13 |
Journal | Computer Journal |
Volume | 49 |
Issue number | 3 |
DOIs | |
State | Published - May 2006 |
Externally published | Yes |
Keywords
- Allocation/deallocation strategies
- Process management
- Scheduling
- Swapping
- Virtual memory