# HG changeset patch # User mir3636 # Date 1513950803 -32400 # Node ID 8550077113b98ad7b06873a327d7ba7786bae4a6 # Parent e61e468bf6fc5bec3ce0b240a7fced82e6219c7e fix diff -r e61e468bf6fc -r 8550077113b9 Paper/main.tex --- a/Paper/main.tex Fri Dec 22 21:31:15 2017 +0900 +++ b/Paper/main.tex Fri Dec 22 22:53:23 2017 +0900 @@ -171,7 +171,7 @@ \label{fig:metaCS} \end{figure} -Gears OS は Context と呼ばれる接続可能な Code Gear、Data Gear のリスト、Temporal Data Gear のためのメモリ空間等を持っている Meta Data Gear を持つ。 +Gears OS は Context と呼ばれる使用されるすべての Code Gear、Data Gear 持っている Meta Data Gear を持つ。 Gears OS は必要な Code Gear、Data Gear に参照したい場合、この Context を通す必要がある。 しかし Context を通常の計算から直接扱うのはセキュリティ上好ましくない。 @@ -212,7 +212,7 @@ Data Gear は union と struct によって表現される。 Context には Data Gear の Data Type の情報が格納されている。 この情報から確保する Data Gear のサイズなどを決定する。 -Temporal Data Gear のためのメモリ空間は Context 毎に異なり、互いに干渉することはできない。 +%Temporal Data Gear のためのメモリ空間は Context 毎に異なり、互いに干渉することはできない。 Context は Task でもあり、Taskは通常のOSのスレッドに対応する。 Task は実行する Code Gear と Data Gear をすべて持っている。 @@ -328,8 +328,25 @@ %Interfaceの有用性 \section{今後の課題} -本研究では LLVM/Clang のデバッグ、interface の記述、CbC ファイルから Gears OS の記述に必要な Context と stub の生成を行う Perl スクリプトの生成を行なった。 -これにより Gears OS のコードの煩雑さは改善され、ユーザーは Context への接続を意識する必要がなくなった。 +本論文では Code Gear、 Data Gear によって構成される Gears OS のプロトタイプの設計、実装、CbC ファイルから Gears OS の記述に必要な Context と stub の生成を行う Perl スクリプトの生成を行なった。 +Code Gear 、Data Gear を処理とデータの単位として用いて Gears OS を設計した。 +Code Gear、Data Gear にはメタ計算を記述するための Meta Code Gear、Meta Data Gear が存在する。 +メタ計算を Meta Code Gear、によって行うことでメタ計算を階層化して行うことができる。 +Code Gear は関数より細かく分割されてるためメタ計算を柔軟に記述できる。 + +Code Gear と Data Gear は Interface と呼ばれるまとまりとして記述される。 +Interface は使用される Data Gear の定義と、それに対する操作を行う Code Gear の集合である。 +Interface は複数の実装をもち、Meta Data Gear として定義される。 +従来の関数呼び出しでは引数をスタック上に構成し、関数の実装アドレスを Call するが、 +Gears OS では引数は Context 上に用意された Interface の Data Gear に格納され、操作に対応する Code Gear に goto する。 + +Context は使用する Code Gear、Data Gear をすべて格納している Meta Data Gear である。 +通常の計算から Context を直接扱うことはセキュリティ上好ましくない。 +このため Context から必要なデータを取り出して Code Gear に接続する Meta Code Gear である stub Code Gear を定義した。 +stub Code Gear は Code Gear 毎に記述され、Code Gear 間の遷移に挿入される。 + +これらのメタ計算の記述は煩雑であるため Perl スクリプトによる自動生成を行なった。 +これにより Gears OS のコードの煩雑さは改善され、ユーザーレベルではメタを意識する必要がなくなった。 今後の課題は Code Gear からメタ計算を行う meta Code Gear を生成できるようにし、ユーザーがメタレベルの処理を意識せずにコードを記述できるようにする。 また、今回 Perl スクリプトによって Context や stub の生成を行なったが、LLVM/clang 上で実装しコンパイラで直接 CbC を実行できるようにすることを目的とする。