Mercurial > hg > Papers > 2017 > mitsuki-thesis
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 を記述することで