X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=top%2Ftop.tex;fp=top%2Ftop.tex;h=d7775598326967100bd53924c7c48450088dba51;hb=8142f08ef9966c7c53e82a6097de56de260fdb06;hp=3f18e5a6e327c3343312779dd0159d2f5d41a908;hpb=0e65bdb41aba272dc3a58ba525acd8d5bda35e84;p=phd-thesis.git diff --git a/top/top.tex b/top/top.tex index 3f18e5a..d777559 100644 --- a/top/top.tex +++ b/top/top.tex @@ -7,11 +7,12 @@ \pagenumbering{arabic} }{} -\chapter{Introduction to \texorpdfstring{\glsxtrshort{IOT}}{IoT} device programming}% +\chapter{Edge device programming}% \label{chp:top4iot} \todo{betere chapter naam} \begin{chapterabstract} This chapter introduces \gls{MTASK} and puts it into perspective compared to traditional microprocessor programming. + It does so by showing how to program microprocessors using \gls{ARDUINO}, a popular microprocessor framework, and the equivalent \gls{MTASK} programs. \end{chapterabstract} The edge layer of \gls{IOT} system mostly consists of microprocessors that require a different method of programming. @@ -682,26 +683,22 @@ task = declarePin D3 PMInput \d3-> In {main=count d3 .||. count d5} \end{lstClean} -\chapter{Green computing with \texorpdfstring{\gls{MTASK}}{mTask}}% -\label{chp:green_computing_mtask} - -\section{Green \texorpdfstring{\glsxtrshort{IOT}}{IoT} computing} - -\section{Task scheduling} -\subsection{Language} -\subsection{Device} - -\section{Interrupts} - \chapter{Integration with \texorpdfstring{\gls{ITASK}}{iTask}}% \label{chp:integration_with_itask} +\begin{chapterabstract} + This chapter shows the integration with \gls{ITASK}. + It gives an intuition for the architecture of the \gls{IOT} systems. + The interface for connecting devices, lifting \gls{MTASK} tasks to \gls{ITASK} tasks and lifting \gls{ITASK} \glspl{SDS} to \gls{MTASK} \glspl{SDS} is shown. +\end{chapterabstract} + The \gls{MTASK} language is a multi-view \gls{DSL}, i.e.\ there are multiple interpretations possible for a single \gls{MTASK} term. -Using the byte code compiler (\cleaninline{BCInterpret}) \gls{DSL} interpretation, \gls{MTASK} tasks are fully integrated in \gls{ITASK} and executed as if they were regular \gls{ITASK} tasks and communicate using \gls{ITASK} \glspl{SDS}. -\Gls{MTASK} devices contain a domain-specific \gls{OS} (\gls{RTS}) and are little \gls{TOP} servers in their own respect, being able to execute tasks. +Using the byte code compiler (\cleaninline{BCInterpret}) \gls{DSL} interpretation, \gls{MTASK} tasks can be fully integrated in \gls{ITASK}. +They are executed as if they are regular \gls{ITASK} tasks and they communicate may access \glspl{SDS} from \gls{ITASK} as well. +\Gls{MTASK} devices contain a domain-specific \gls{OS} (\gls{RTS}) and are little \gls{TOP} engines in their own respect, being able to execute tasks. \Cref{fig:mtask_integration} shows the architectural layout of a typical \gls{IOT} system created with \gls{ITASK} and \gls{MTASK}. The entire system is written as a single \gls{CLEAN} specification where multiple tasks are executed at the same time. Tasks can access \glspl{SDS} according to many-to-many communication and multiple clients can work on the same task. -Devices are integrated into the system using the \cleaninline{widthDevice} function (see \cref{sec:withdevice}). +Devices are integrated into the system using the \cleaninline{withDevice} function (see \cref{sec:withdevice}). Using \cleaninline{liftmTask}, \gls{MTASK} tasks are lifted to a device (see \cref{sec:liftmtask}). \Gls{ITASK} \glspl{SDS} are lifted to the \gls{MTASK} device using \cleaninline{liftsds} (see \cref{sec:liftmtask}). @@ -713,7 +710,8 @@ Using \cleaninline{liftmTask}, \gls{MTASK} tasks are lifted to a device (see \cr \end{figure} \section{Devices}\label{sec:withdevice} -\Gls{MTASK} tasks in the byte code compiler view are always executed on a certain device. +When interpreted by the byte code compiler view, an \gls{MTASK} task produces a compiler. +This compiler is exceuted at run time so that the resulting byte code can be sent to an edge device. All communication with this device happens through a so-called \emph{channels} \gls{SDS}. The channels contain three fields, a queue of messages that are received, a queue of messages to send and a stop flag. Every communication method that implements the \cleaninline{channelSync} class can provide the communication with an \gls{MTASK} device. @@ -746,10 +744,31 @@ class liftsds v where \chapter{Implementation}% \label{chp:implementation} +\begin{chapterabstract} + This chapter shows the implementation of the \gls{MTASK} system. + It is threefold: first it shows the implementation of the byte code compiler for \gls{MTASK}'s \gls{TOP} language, then is details of the implementation of \gls{MTASK}'s \gls{TOP} engine that executes the \gls{MTASK} tasks on the microprocessor, and finally it shows how the integration of \gls{MTASK} tasks and \glspl{SDS} is implemented both on the server and on the device. +\end{chapterabstract} IFL19 paper, bytecode instructieset~\cref{chp:bytecode_instruction_set} \section{Integration with \texorpdfstring{\gls{ITASK}}{iTask}} IFL18 paper stukken +\chapter{Green computing with \texorpdfstring{\gls{MTASK}}{mTask}}% +\label{chp:green_computing_mtask} +\begin{chapterabstract} + This chapter demonstrate the energy saving features of \gls{MTASK}. + First it gives an overview of general green computing measures for edge devices. + Then \gls{MTASK}'s task scheduling is explained and it is shown how to customise it so suit the applications and energy needs. + Finally it shows how to use interrupts in \gls{MTASK} to reduce the need for polling. +\end{chapterabstract} + +\section{Green \texorpdfstring{\glsxtrshort{IOT}}{IoT} computing} + +\section{Task scheduling} +\subsection{Language} +\subsection{Device} + +\section{Interrupts} + \input{subfilepostamble} \end{document}