Operating systems, by allocating resources and managing power, are in a position to greatly improve the efficiency of computer systems. However, a key challenge is that operating systems lack almost insight into application behavior and are constrained to heuristics that guess at application behavior. This leads to inefficient resource use and energy waste: many systems are over-provisioned to ensure predictable latency, wasting money and power.
Our work has looked at how to provide better information to the operating system that enables it to make higher quality decisions leading to increased utilization and efficiency. I will discuss our efforts at providing higher-quality information about application behavior to the OS to increase efficiency of multiple subsystems, including power management, memory management, and accelerators. I will also discuss a vision of machine-learning enabled operating system polices that have the potential to dramatically improve overall system efficiency.