diff Paper/chapter/1-Christie.tex @ 9:1e12b3e710d6

update chapter1
author riono <e165729@ie.u-ryukyu.ac.jp>
date Fri, 07 Jan 2022 01:19:06 +0900
parents 91276da3d77e
children 39cc44ae7917
line wrap: on
line diff
--- a/Paper/chapter/1-Christie.tex	Thu Jan 06 22:55:58 2022 +0900
+++ b/Paper/chapter/1-Christie.tex	Fri Jan 07 01:19:06 2022 +0900
@@ -53,6 +53,33 @@
 ThreadPoolとはCPUに合わせた並列度でqueueに入ったThreadを順次実行していく実行機構である。
 ThreadPoolが増えると、CPUコア数に合わない量のThreadを管理することになり並列度が下がるため、1つのThreadPoolで全てのCGMを管理している。
 またCGMのListを共有することでメタレベルで全てのCodeGear/DataGearにアクセス可能となっている。
+CGを記述する際はCodeGear.classを継承する。
+CodeGearはRunnableインターフェースを持っており、runメソッド内に処理を記述することでマルチスレッドで処理が行われる。
+CGに記述したkeyと一致するDGが全て揃った時、runに記述された処理が実行される。
+runメソッドの引数にCGMを指定しており、そのCGMを経由してChristieのAPIにアクセスする。 
+GearsOSではCG間でContextを受け渡すことによってCGはDGにアクセスを行なっているため、Christieでもそのアクセス方法が採用されている。
+
+通常のRunnableクラスでは引数を受け取ることができないが、
+CodeGearExecutorというRunnableのMeta Computationを挟んだことでCGMを受け渡しながらの記述を可能にしている。
+
+
+DGMに対してput操作を行うことでDGM内のqueueにDGを保管できる。
+DGを取り出す際には、CG内で宣言した変数データにannotationを付ける。
+DGのannotationには以下の4種類がある。
+
+\begin{flushleft} 
+  \begin{itemize}
+    \setlength{\leftmargin}{0pt}
+    \item[Take] 先頭のDGを読み込み、そのDGを削除する。
+    \item[Peek] 先頭のDGを読み込むが、DGは削除されない。そのため、特に操作をしない場合には同じDGを参照し続ける。
+    \item[TakeFrom]\mbox{}\\
+      Takeと処理動作は同じであるが、Remote DGM nameを指定することで、その接続先(Remote)のDGMからTake操作を行うことができる。
+    \item[PeekFrom]\mbox{}\\
+      Peekと処理動作は同じであるが、 Remote DGM nameを指定することで、その接続先(Remote)のDGMからPeek操作を行うことができる。 
+  \end{itemize}
+\end{flushleft}
+
+\section{}
 
 
 
@@ -62,10 +89,3 @@
 
 
 
-
-
-
-
-
-
-