The Linux Completely Fair Scheduler (CFS)
Explore how the Linux Completely Fair Scheduler achieves balanced CPU allocation among processes by using virtual runtime tracking and dynamic time slices. Understand the roles of sched_latency and min_granularity in optimizing fairness and performance while minimizing scheduling overhead.
We'll cover the following...
Despite these earlier works in fair-share scheduling, the current Linux approach achieves similar goals in an alternate manner. The scheduler, entitled the
To achieve its efficiency goals, CFS aims to spend very little time making scheduling decisions, through both its inherent design and its clever use of data structures well-suited to the task. Recent studies have shown that scheduler efficiency is surprisingly important; specifically, in a study of Google data centers, Kanev et al. show that even after aggressive optimization, scheduling uses about 5% of overall data center CPU time. Reducing that overhead as much as possible is thus a key goal in modern scheduler architecture.
Basic operation
Whereas most schedulers are ...