Commit 0fe5268b71a58c23c3aca12f3b83c6e32f41eed6

Authored by Scott Haseley
1 parent c43bf515

new

Showing 2 changed files with 32 additions and 21 deletions
design.tex
1 1 \section{design}
2   -A QoE-centric OS must continuously prioritize resources based on their
3   -effect on QoE. Doing so requires the OS to both quantify QoE and understand
4   -which tasks contribute to it. Given the multi-threaded nature of modern apps,
5   -the complexity of the systems they run on, and the operating system's vantage
6   -point, this is a challenging task. Unlike approaches like
7   -AppInsight~\cite{appinsight-osdi2012} that requires app instrumentation, or
8   -QoE Doctor~\cite{qoe-doctor-imc14} which involves human intervention, using QoE
9   -to do continuous resource prioritization for all apps on all devices requires
10   -the ability to measure QoE on unmodified apps and without developer
11   -participation.
  2 +To meet smartphone users' expectations, it is necessary to design systems
  3 +that can accurately measure and understand QoE, and make decisions based on QoE.
  4 +%
  5 +A QoE-centric OS must continuously prioritize resources based on their effect
  6 +on QoE, which requires the OS to not only quantify QoE, but understand which
  7 +tasks contribute to it.
  8 +%
  9 +Given the multi-threaded nature of modern apps, the complexity of the systems
  10 +they run on, and the operating system's vantage point, this is a challenging
  11 +task.
  12 +%
  13 +Unlike approaches like AppInsight~\cite{appinsight-osdi2012} that requires app
  14 +instrumentation, or QoE Doctor~\cite{qoe-doctor-imc14} which involves human
  15 +intervention, using QoE to do continuous resource prioritization for all apps
  16 +on all devices requires the ability to measure QoE on unmodified apps and
  17 +without developer participation.
12 18  
13   -% Task prioritization
14   -As principle, if a user is waiting for something, priority should
15   -be given to any task that contributes to that end.
16   -
17   -%Network prioritization...
18   -
19   -%I/O prioritization...
20   -
21   -%New approaches...
  19 +As principle, if a user is waiting for something, priority should be given to
  20 +any task that contributes to that end. This priority must extend across
  21 +multiple shared components, namely CPUs, disks, networks, batteries.
  22 +%
  23 +To achieve this goal, the OS must be designed in such a way that gives it
  24 +the visiblity it currently lacks into how its actions will affect QoE.
  25 +%
  26 +To further improve QoE for apps that use the network, this visibility should
  27 +extend past the device and into the network so priority decisions can be made
  28 +by the network to improve QoE.
  29 +%
  30 +The design of QoE-centric operating systems may require deep and fundamental
  31 +changes in order to measure QoE, understand its effect on various components,
  32 +and use that information as feedback to improve it.
... ...
introduction.tex
... ... @@ -16,8 +16,8 @@ While modern operating systems such as Android make decisions based on policies
16 16 meant to improve QoE, it is unclear that these static policies always result
17 17 in the right decisions. For example, Android uses two mechanisms to control the
18 18 underlying task scheduling in Linux: thread priority and control groups (cgroup).
19   -Background threads - any thread running in another app, or low priority threads
20   -running in the foreground app - are placed in a cgroup that receives a very
  19 +Background threads -- any thread running in another app, or low priority threads
  20 +running in the foreground app -- are placed in a cgroup that receives a very
21 21 limited share of the processor, \( \approx \) 5\% on Nexus 5 running stock
22 22 Android 5.1.1. Furthermore, the scheduler considers priority for tasks withing
23 23 the same cgroup. However, thread priorities can be set by app developers both
... ...