Linux Resource Management: Difference between revisions
Jump to navigation
Jump to search
Line 12: | Line 12: | ||
The implementation monitors the virtual runtime for each process (vruntime). At every scheduling point, if the process has run for t milliseconds, vruntime is incremented with t, henceforth vruntime monotonically increases for a process. When a context change occurs (timer interrupt), always choose the task with lowest vruntime. | The implementation monitors the virtual runtime for each process (vruntime). At every scheduling point, if the process has run for t milliseconds, vruntime is incremented with t, henceforth vruntime monotonically increases for a process. When a context change occurs (timer interrupt), always choose the task with lowest vruntime. | ||
In order to pick the process with the lowest vruntime, the scheduler maintains a [[Red-black Tree|red-black tree]]. | |||
===RT Scheduler=== | ===RT Scheduler=== |
Revision as of 19:06, 8 February 2018
Internal
CPU
Schedulers
CFS Scheduler
The CFS (Completely Fair Scheduler) aims at dividing the CPU time fairly among the processes. The processor time is divided in quantas, and for each quanta, the scheduler attempts to distribute the processor time fairly across the processes in the ready queue.
The implementation monitors the virtual runtime for each process (vruntime). At every scheduling point, if the process has run for t milliseconds, vruntime is incremented with t, henceforth vruntime monotonically increases for a process. When a context change occurs (timer interrupt), always choose the task with lowest vruntime.
In order to pick the process with the lowest vruntime, the scheduler maintains a red-black tree.