From c43bf515229ecb3a345603c690d199ac1d23b5b3 Mon Sep 17 00:00:00 2001 From: Scott Haseley Date: Fri, 15 Apr 2016 00:48:24 -0400 Subject: [PATCH] Progress --- badwords | 14 ++++++++++++++ design.tex | 21 +++++++++++++++++++++ introduction.tex | 43 +++++++++++++++++++++++++++++++++++++++++++ paper.tex | 10 ++++++---- references.bib | 16 ++++++++++++++++ 5 files changed, 100 insertions(+), 4 deletions(-) create mode 100644 design.tex create mode 100644 introduction.tex diff --git a/badwords b/badwords index e69de29..41f14d3 100644 --- a/badwords +++ b/badwords @@ -0,0 +1,14 @@ +AppInsight +AsyncTask +AsyncTasks +cgroup +Challen +challen +edu +Haseley +HotMobile +ondemand +pdfinfo +prioritization +QoE +shaseley diff --git a/design.tex b/design.tex new file mode 100644 index 0000000..2286663 --- /dev/null +++ b/design.tex @@ -0,0 +1,21 @@ +\section{design} +A QoE-centric OS must continuously prioritize resources based on their +effect on QoE. Doing so requires the OS to both quantify QoE and 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. + +% Task prioritization +As principle, if a user is waiting for something, priority should +be given to any task that contributes to that end. + +%Network prioritization... + +%I/O prioritization... + +%New approaches... diff --git a/introduction.tex b/introduction.tex new file mode 100644 index 0000000..7c043b2 --- /dev/null +++ b/introduction.tex @@ -0,0 +1,43 @@ +\section{introduction} + +Current operating systems are already proficient at managing certain system +resources, such as the CPU, memory, and disk. But on interactive mobile devices, +users care more about resources such as time, battery life, and money, that are +unmanaged or poorly managed by today's smartphone platforms. +When apps slow down our typing, they waste our time. When apps download +unnecessary resources, they waste battery life and potentially money, if using +a metered data plan. It is the degree two which mobile devices effectively +manage these human-facing resources that determines a user's +\textit{quality of experience} (QoE), and it is QoE which should drive not just +policy, but decisions on mobile devices. + +\begin{sloppypar} +While modern operating systems such as Android make decisions based on policies +meant to improve QoE, it is unclear that these static policies always result +in the right decisions. For example, Android uses two mechanisms to control the +underlying task scheduling in Linux: thread priority and control groups (cgroup). +Background threads - any thread running in another app, or low priority threads +running in the foreground app - are placed in a cgroup that receives a very +limited share of the processor, \( \approx \) 5\% on Nexus 5 running stock +Android 5.1.1. Furthermore, the scheduler considers priority for tasks withing +the same cgroup. However, thread priorities can be set by app developers both +directly through the API, and indirectly by creating an \texttt{AsyncTask}. +While this policy was created based on the assumed effect on QoE, it is still +possible to negatively affect QoE by assigning the wrong priority to a thread +or by inappropriately using \texttt{AsyncTasks}. +\end{sloppypar} + +The \texttt{ondemand} CPU frequency governor that is enabled in Android +Linux is another example of where static policy meant to improve QoE may not +result in correct decisions being made. This governor changes the CPU frequency +depending on the current CPU load with the goal of improving performance. +However since running at higher frequencies is less efficient, this increased +performance comes at the cost. If QoE would not be improved by increasing the +frequency, such as for time-insensitive background tasks or when the performance +increase would not be perceivable, negative QoE may manifest itself through a +quicker draining battery. + +Static policies can lead to resource allocation decisions that are less than +optimal in terms of QoE. To remedy this, we propose designing QoE-centric +mobile operating systems that can accurately quantify QoE and use it as feedback +to drive resource allocation decisions. diff --git a/paper.tex b/paper.tex index e32106a..60e56c9 100644 --- a/paper.tex +++ b/paper.tex @@ -1,8 +1,8 @@ \input{./include/start.tex} \def\theconference{HotMobile'16} -\def\thetitle{Poster: Quantifying Quality of Experience Using the Screen as a Sensor} -\def\theauthors{Scott Haseley$^\star$, Geoffrey Challen$^\star$} +\def\thetitle{Poster: QoE-centric Mobile Operating System Design} +\def\theauthors{Scott Haseley, Geoffrey Challen} \def\theemails{\{shaseley,challen\}@buffalo.edu} \ifdefined\isdraft @@ -32,7 +32,7 @@ \author{ \alignauthor\theauthors\\[0.05in] - \affaddr{$\star$ University at Buffalo}\\ + \affaddr{University at Buffalo}\\ \email{\theemails} } @@ -48,7 +48,9 @@ \maketitle -\input{abstract.tex} +%\input{abstract.tex} +\input{introduction.tex} +\input{design.tex} {\scriptsize \renewcommand{\baselinestretch}{0.8} diff --git a/references.bib b/references.bib index 2a7b3f1..32b8b6e 100644 --- a/references.bib +++ b/references.bib @@ -581,3 +581,19 @@ pages = {1-14}, year={2008}, publisher={Elsevier} } + +@inproceedings{qoe-doctor-imc14, + title = {QoE Doctor: Diagnosing Mobile App QoE with Automated +UI Control and Cross-layer Analysis}, + author = {Qi Alfred Chen and Haokun Luo and Sanae Rosen and Z. Morley Mao and +Karthik Iyer and Jie Hui and Kranthi Sontineni and Kevin Lau}, + booktitle = proc # {ACM Internet Measurement Conference}, + year = {2014} +} + +@inproceedings{appinsight-osdi2012, + title = {AppInsight: Mobile App Performance Monitoring in the Wild}, + author = {Lenin Ravindranath and Jitendra Padhye and Sharad Agarwal and Ratul Mahajan and Ian Obermiller and Shahin Shayandeh}, + booktitle = proc # {OSDI}, + year = {2012} +} -- libgit2 0.22.2