Mercurial > hg > Papers > 2019 > mitsuki-master
changeset 6:7d9441dd343e
update
author | mir3636 |
---|---|
date | Mon, 21 Jan 2019 18:34:24 +0900 (2019-01-21) |
parents | 94ac73bc7829 |
children | 66fa6f0b1ff6 |
files | paper/gearsOS.tex paper/introduction.tex paper/meta_computation.tex |
diffstat | 3 files changed, 55 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/gearsOS.tex Mon Jan 21 14:31:36 2019 +0900 +++ b/paper/gearsOS.tex Mon Jan 21 18:34:24 2019 +0900 @@ -1,18 +1,21 @@ \chapter{Gears OS の構成} Gears OS は以下の要素で構成される。 -\begin{itemize} - \item Context - \item TaskQueue - \item TaskManager - \item Worker -\end{itemize} + +・Context + +・TaskManager + +・TaskQueue + +・Workers + 図\ref{fig:gearsos} に Gears OS の構成図を示す。 \begin{figure}[ht] \begin{center} - \includegraphics[width=120mm]{./fig/gears_structure} + \includegraphics[width=140mm]{./fig/gears_structure} \end{center} \caption{Gears OS の構成図} \label{fig:gearsos} @@ -22,9 +25,50 @@ Context には Data Gear の Data Type の情報が格納されている。 この情報から確保する Data Gear のサイズなどを決定する。 -Context は Task でもあり、Taskは通常のOSのスレッドに対応する。 -Task は実行する Code Gear と Data Gear をすべて持っている。 +%Context は Task でもあり、Taskは通常のOSのスレッドに対応する。 +%Task は実行する Code Gear と Data Gear をすべて持っている。 TaskManager は Task を実行する Worker の生成、管理、Task の送信を行う。 Gears OS における Task Queue は Synchronized Queue で実現される。 Worker は TaskQueue から Task である Context を取得し、Task の Code Gear を実行し、Output Data Gear の書き出しを行っている。 Input/Output Data Gear の依存関係が解決されたものから並列実行される。 + +\section{Context} +Context は Task でもあり、Taskは通常のOSのスレッドに対応する。 +Task は実行する Code Gear と Data Gear をすべて持っている。 +Context は、ソースコード \ref{contexth} のように定義されている。 + + + +Context は、ソースコード \ref{enumCodeh} のように Code Gear の番号を持っており。 +初期化の際に Code Gear のアドレスと対応付けている。(ソースコード \ref{initContext}) + +\begin{lstlisting}[frame=lrbt,label=code_simple,caption={\footnotesize enumCodeh}] +enum Code { + C_popSingleLinkedStack, + C_pushSingleLinkedStack, + C_stackTest3, + C_assert3, + ... +}; +\end{lstlisting} + +\begin{lstlisting}[frame=lrbt,label=code_simple,caption={\footnotesize initContext}] + context->code[C_popSingleLinkedStack] = popSingleLinkedStack_stub; + context->code[C_pushSingleLinkedStack] = pushSingleLinkedStack_stub; + context->code[C_stackTest3] = stackTest3_stub; + context->code[C_assert3] = assert3_stub; +\end{lstlisting} + +Data Gear も Code Gear と同様に Context が番号を持っている。(ソースコード \ref{enumDatah}) +\begin{lstlisting}[frame=lrbt,label=code_simple,caption={\footnotesize enumDatah}] +enum DataType { + D_Code, + D_SingleLinkedStack, + D_Stack, + D_TaskManager, + D_Worker, + ... +}; +\end{lstlisting} + +
--- a/paper/introduction.tex Mon Jan 21 14:31:36 2019 +0900 +++ b/paper/introduction.tex Mon Jan 21 18:34:24 2019 +0900 @@ -44,7 +44,7 @@ これらの機能は Agda 上で継続を用いた関数型プログラムに対応するようになっている。 \begin{figure}[ht] \begin{center} - \includegraphics[width=70mm]{./fig/MetaGear.pdf} + \includegraphics[width=100mm]{./fig/MetaGear.pdf} \end{center} \caption{Gearsのメタ計算} \label{fig:MetaGear}
--- a/paper/meta_computation.tex Mon Jan 21 14:31:36 2019 +0900 +++ b/paper/meta_computation.tex Mon Jan 21 18:34:24 2019 +0900 @@ -59,7 +59,7 @@ \begin{figure}[ht] \begin{center} - \includegraphics[width=70mm]{fig/IO_DataGear.pdf} + \includegraphics[width=100mm]{fig/IO_DataGear.pdf} \end{center} \caption{CodeGear と DataGear} \label{fig:IODataGear}