|
While
modern workloads are increasingly interactive and resource-intensive
(e.g., graphical user interfaces, browsers, and multimedia players),
current operating systems have not kept up. These operating systems,
which evolved from core designs that date to the 1970s and 1980s,
provide good support for batch and command-line applications but do
little to ensure responsiveness. Despite of their best-effort
priority-based schedulers that provide no bounds on delays, their
resource managers (especially memory managers, disk I/O schedulers) are
completely oblivious to response time requirements. Therefore, pressure
on any of these resources can significantly degrade application
responsiveness.
We present Redline, a system that brings first-class support for
interactive applications to commodity operating systems. Redline works
with unaltered applications and standard APIs. It uses lightweight
specifications to orchestrate memory and disk I/O management to
serve the needs of interactive applications. Unlike real-time systems
that treat specifications as strict requirements and thus
pessimistically limit system utilization, Redline dynamically adapts to
load to maximize responsiveness and system utilization. We show that
Redline delivers responsiveness to interactive applications even in the
face of extreme workloads including fork bombs, malloc bombs and bursty
large disk I/O requests, reducing application pauses by up to two orders
of magnitude. |