Skip to Main Content
The design of an Operating System (OS) scheduler is meant to allocate its resources appropriately to all applications. In this paper, we present the scheduling techniques used by two Linux schedulers: O(1) and Completely Fair Scheduler (CFS). CFS is the Linux kernel scheduler that replaces the O(1) scheduler in the 2.6.23 kernel. The design goals of CFS are to provide fair CPU resource allocation among executing tasks without sacrificing interactive performance. The ability to achieve good fairness in distributing CPU resource among tasks is important to prevent starvation. However, these design goals have never been scientifically evaluated despite the fact that there are many conventional operating system benchmarks that are geared towards measuring systems performance in terms of throughput. We therefore scientifically evaluate the design goals of CFS by empirical evaluation. We measure the fairness and interactivity performance by using fairness and interactivity benchmarks. To provide a meaningful representation of results, comparisons of O(1) and CFS kernel schedulers of the open source Linux OS are used. Our experience indicates the CFS does achieve its design goals.