design.tex 1.58 KB
\section{design}
To meet smartphone users' expectations, it is necessary to design systems
that can accurately measure and understand QoE, and make decisions based on QoE.
%
A QoE-centric OS must continuously prioritize resources based on their effect
on QoE, which requires the OS to not only quantify QoE, but understand which
tasks contribute to it.
%
Given the multi-threaded nature of modern apps, the complexity of the systems
they run on, and the operating system's vantage point, this is a challenging
task.
%
Unlike approaches like AppInsight~\cite{appinsight-osdi2012} that requires app
instrumentation, or QoE Doctor~\cite{qoe-doctor-imc14} which involves human
intervention, using QoE to do continuous resource prioritization for all apps
on all devices requires the ability to measure QoE on unmodified apps and
without developer participation.

As principle, if a user is waiting for something, priority should be given to
any task that contributes to that end. This priority must extend across
multiple shared components, namely CPUs, disks, networks, batteries.
%
To achieve this goal, the OS must be designed in such a way that gives it
the visiblity it currently lacks into how its actions will affect QoE.
%
To further improve QoE for apps that use the network, this visibility should
extend past the device and into the network so priority decisions can be made
by the network to improve QoE.
%
The design of QoE-centric operating systems may require deep and fundamental
changes in order to measure QoE, understand its effect on various components,
and use that information as feedback to improve it.