Commit 0fe5268b71a58c23c3aca12f3b83c6e32f41eed6
1 parent
c43bf515
new
Showing
2 changed files
with
32 additions
and
21 deletions
design.tex
| 1 | \section{design} | 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,8 +16,8 @@ While modern operating systems such as Android make decisions based on policies | ||
| 16 | meant to improve QoE, it is unclear that these static policies always result | 16 | meant to improve QoE, it is unclear that these static policies always result |
| 17 | in the right decisions. For example, Android uses two mechanisms to control the | 17 | in the right decisions. For example, Android uses two mechanisms to control the |
| 18 | underlying task scheduling in Linux: thread priority and control groups (cgroup). | 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 | limited share of the processor, \( \approx \) 5\% on Nexus 5 running stock | 21 | limited share of the processor, \( \approx \) 5\% on Nexus 5 running stock |
| 22 | Android 5.1.1. Furthermore, the scheduler considers priority for tasks withing | 22 | Android 5.1.1. Furthermore, the scheduler considers priority for tasks withing |
| 23 | the same cgroup. However, thread priorities can be set by app developers both | 23 | the same cgroup. However, thread priorities can be set by app developers both |