תקציר
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.
שפה מקורית | אנגלית |
---|---|
עמודים (מ-עד) | 297-309 |
מספר עמודים | 13 |
כתב עת | Computer Journal |
כרך | 49 |
מספר גיליון | 3 |
מזהי עצם דיגיטלי (DOIs) | |
סטטוס פרסום | פורסם - מאי 2006 |
פורסם באופן חיצוני | כן |