Commodity hardware and software are growing increasingly more complex, with advances such as chip heterogeneity and specialization, deeper memory hierarchies, ne-grained power management, and most importantly, chip parallelism. Similarly, workloads are growing more concurrent and diverse. With this new complexity in hardware and software, process scheduling in the operating system (OS) becomes more challenging. Nevertheless, most commodity OS schedulers are based on design principles that are 30 years old. This disparity may soon lead to signicant performance degradation. Most signicantly, parallel architectures such as multicore chips require more than scalable OSs: parallel programs require parallelaware scheduling.This paper posits that imminent changes in hardware and software warrant reevaluating the scheduler's policies in the commodity OS. We discuss and demonstrate the main issues that the emerging parallel desktops are raising for the OS scheduler. We propose that a new approach to scheduling is required, applying and generalizing lessons from different domain-specic scheduling algorithms, and in particular, parallel job scheduling. Future architectures can also assist the OS by providing better information on process scheduling requirements.
OverviewCommodity computers and the way we use them changed qualitatively in the last 30 years. The OS, as the intermediary between hardware and software, is required to adapt to the changes in hardware, and the software that uses it. Indeed, many aspects of commodity OSs, such as networking and storage have changed concomitantly. Yet the scheduling policies that lie at the core of the OS remained virtually unchanged during this time [8,23], and are in dire need of modernization. Several important trends in commodity architectures warrant this change, such as increased chip parallelism and heterogeneity, the emergence of power management as a limiting factor in desktop processors, and more complex memory hierarchies. Applications and workloads are also evolving to meet consumer demands and hardware capabilities, each application with its own scheduling requirements.In this paper, we argue that the conuence of parallelism and diverse workloads on the commodity computer warrants revisiting the scheduler's policies. Three postulates support this thesis: commodity hardware is becoming increasingly parallel, the software running on it will follow suit, and the OS will need to support these trends, particularly in terms of scheduling. The main goal of this paper, in Sections 2-4, is to establish these premises and present the case and design goals for scheduler modernization. Next, Section 5 suggests some principles for the development of novel scheduling policies. Finally, we conclude in Section 6.2 Hardware Trends: The Move to ConcurrencyThe phenomenal growth of microprocessor performance has fueled a similarly explosive growth in commodity hardware and applications for more than two decades. However, the growth in single-processor performance is now showing signs of sl...