diff final_main/chapter3.tex @ 2:72e058e7e594

update
author mir3636
date Sun, 12 Feb 2017 19:02:01 +0900
parents 30a433a94a9a
children 6d00f6c9bb8a
line wrap: on
line diff
--- a/final_main/chapter3.tex	Sat Feb 11 18:23:22 2017 +0900
+++ b/final_main/chapter3.tex	Sun Feb 12 19:02:01 2017 +0900
@@ -34,7 +34,7 @@
 %\end{figure}
 
 \section{CbC による Gears OS の構文サポート}
-Gears OS では Context という 接続可能な Code/Data Gear のリスト、TaskQueue へのポインタ、Persistent Data Tree へのポインタ、Temporal Data Gear のためのメモリ空間等を持っている Meta Data Gear がある。
+Gears OS では Context という接続可能な Code/Data Gear のリスト、TaskQueue へのポインタ、Persistent Data Tree へのポインタ、Temporal Data Gear のためのメモリ空間等を持っている Meta Data Gear がある。
 Gears OS は必要な Code/Data Gear に参照したい場合、この Context を通す必要がある。
 %メインとなる Context と Worker 用の Context があり、TaskQueue と Persistent Data Tree は共有される。
 %Temporal Data Gear のためのメモリ空間は Context 毎に異なり、互いに干渉することはできない。
@@ -43,11 +43,37 @@
 しかし、Context を直接扱うのはセキュリティ上好ましくない。
 そこで Context から必要なデータを取り出して Code Gear に接続する Meta Code Gear である stub を定義し、これを介して間接的に必要な Data Gear にアクセスする。
 
-現在 CbC で Gears OS を記述すると通常の Computation に加えて Meta Computation である stub を記述する必要がある。
-Meta Computation
+%現在 CbC で Gears OS を記述すると通常の Computation に加えて Meta Computation である stub を記述する必要がある。
+%Meta Computation
+
 
 
-Context や stub は Meta Computation であるため。
+%Context や stub は Meta Computation であるため。
+
+\section{Meta Code Gear}
+Gears OS では Code Gear 間の遷移に meta レベルの Meta Code Gear を挟む。
+その様子を表したのが図 \ref{fig:metaCS}である。
+通常レベルの Code Gear は一度 Meta Code Gear へと継続し、その後次の Code Gear へと継続する。
+Meta Code Gear は Meta Computation を行う Code Gear で、メモリの確保やネットワーク管理等が Meta Computation にあたる。
+Code Gear にはこれらの処理を書かず、Meta Code Gear に必要に応じて記述する。
+%通常レベルの Code Gear からは Meta Code Gear への継続は見えず、通常レベルの Code Gear に直接継続しているように見えるべきである
+
+\begin{figure}[htpb]
+ \begin{center}
+  \scalebox{0.55}{\includegraphics{fig/metaCS.pdf}}
+ \end{center}
+ \caption{meta computation}
+ \label{fig:metaCS}
+\end{figure}
+
+\section{stub Code Gear}
+Gears OS では Code Gear は Meta Code Gear に継続し、その後 Code Gear に継続すると述べたが、正確には Meta Code Gear から Code Gear に継続する際に stub Code Gear を挟む。
+stub Code Gear では、Code Gear が必要とする Data Gear を context から取り出すという処理を行うものである。
+stub Code Gear は Code Gear 毎に生成される。
+
+%この機能により、CbC は Code Gear のみでなく Data Gear を単位として用いることが可能になった。
+%Meta Code Gear、Meta Data Gear により meta computation を通常の Code Gear 内に記述せずにすむ、Code Gear 間に実行される Meta Code Gear で継続先を変更する、エラーハンドリングを行うといった使い方ができるようになるだろう。
+
 
 %\section{TaskQueue}
 %ActiveTaskQueue と WaitTaskQueue の 2 つの TaskQueue を持つ。
@@ -71,7 +97,6 @@
 %処理後、必要なデータを Persistent Data Tree に書き出して再び Task の取得・実行を行う。
 %
 \section{interface の記述}
-interface は
 
 interface を記述することで