changeset 6:7d9441dd343e

update
author mir3636
date Mon, 21 Jan 2019 18:34:24 +0900
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}