elaborate on mtasks
[msc-thesis1617.git] / pres.system.tex
1 \subsection{Overview}
2 \begin{frame}
3 \frametitle{Solution}
4 \begin{block}{Downsides of the current mTask view}
5 \begin{itemize}
6 \item It all seems perfect
7 \item \ldots\pause{} but\ldots
8 \pause{}
9 \item No interaction
10 \item Compilation requires reprogramming
11 \end{itemize}
12 \end{block}
13 \pause{}
14 \begin{block}{Solution}
15 \begin{itemize}[<+->]
16 \item New bytecode backend for mTask
17 \item Interpreter on client
18 \item Server in iTasks with integration
19 \item No taskserver generation, onetime programming
20 \end{itemize}
21 \end{block}
22 \end{frame}
23
24 \subsection{Extending mTask}
25 \begin{frame}[fragile]
26 \frametitle{Adding a View}
27 \begin{lstlisting}
28 :: ByteCode a p = BC (RWS () [BC] BCState ())
29 :: BCValue = E.e: BCValue e & mTaskType, TC e
30 :: BCShare = { sdsi :: Int, sdsval :: BCValue, sdsname :: String }
31 :: BCState = { freshl :: Int, freshs :: Int, sdss :: [BCShare] }
32
33 instance ByteCode arith, boolExpr, ...
34 \end{lstlisting}
35 \end{frame}
36
37 \begin{frame}[fragile]
38 \frametitle{Functionality}
39 \begin{block}{SDS scope and naming}
40 \begin{itemize}
41 \item SDS is lost
42 \item State per device
43 \item Tasks are sent and gone
44 \end{itemize}
45 \pause{}
46 \begin{lstlisting}
47 class namedsds v where
48 namedsds :: ((v t Upd) -> In (Named t String) (Main (v c s)))
49 -> (Main (v c s)) | ...
50 :: Named a b = Named infix 1 a b
51 \end{lstlisting}
52 \end{block}
53 \end{frame}
54
55 \begin{frame}[fragile]
56 \frametitle{Task scheduling}
57 \begin{block}{Old}
58 \begin{itemize}
59 \item Task server
60 \item Tasks start other tasks
61 \end{itemize}
62 \end{block}
63 \pause{}
64 \begin{block}{New}
65 \begin{itemize}
66 \item Old system, taskserver, tasks start tasks
67 \item New system, task+strategy
68 \pause{}
69 \begin{itemize}
70 \item \CI{OnShot}
71 \item \CI{OnInterval}
72 \item \CI{OnInterrupt}
73 \end{itemize}
74 \pause{}
75 \item How to handle termination
76 \end{itemize}
77 \pause{}
78 \begin{lstlisting}
79 class retrn v where
80 retrn :: v () Expr
81 \end{lstlisting}
82 \end{block}
83 \end{frame}
84
85 \subsection{Devices}
86 \subsection{Server}
87 \subsection{Examples}