# HG changeset patch # User mir3636 # Date 1513930967 -32400 # Node ID a6372acc8f0e7bc674bc1d0cb437e4471b98f29b # Parent f5714330584795ed16026a5aff013928bda70f12 fix diff -r f57143305847 -r a6372acc8f0e Paper/main.tex --- a/Paper/main.tex Thu Dec 21 18:57:57 2017 +0900 +++ b/Paper/main.tex Fri Dec 22 17:22:47 2017 +0900 @@ -230,18 +230,18 @@ %\lstinputlisting[label=excbc, caption=CbC で記述された stack のコード]{./src/ex_stack.cbc} -\section{interface と implement} -interface は呼び出しの引数になる Data Gear の集合であり、そこで呼び出される Code Gear のエントリである。 +\section{Interface} +Interface は呼び出しの引数になる Data Gear の集合であり、そこで呼び出される Code Gear のエントリである。 呼び出される Code Gear の引数となる Data Gear はここで全て定義される。 -Code\ref{interface}は stack の interface である。 +Code\ref{interface}は stack の Interface である。 Code Gear、Data Gear に参照するために Context を通す必要があるが、 -interface を記述することでデータ構造の api と Data Gear を結びつけることが出来、呼び出しが容易になった。 +Interface を記述することでデータ構造の api と Data Gear を結びつけることが出来る。 \lstinputlisting[label=interface, caption=Interface]{./src/Stack.cbc} -Code\ref{implement}は stack の implement の例である。 -createImpl は関数呼び出しで呼び出され、interface と implement の初期化と Code Gear のポインタの設定を行う。 +Code\ref{implement}は stack の Implement の例である。 +createImpl は関数呼び出しで呼び出され、Implement の初期化と Code Gear のスロットに対応する Code Gear の番号を入れる。 %return で interface を返し、その先で Code Gear や Data Gear へ継続できるようになる。 \lstinputlisting[label=implement, caption=Implement]{./src/stackimpl.cbc} @@ -259,12 +259,6 @@ %\lstinputlisting[label=gearef1, caption=定義前のコード]{./src/ex_code1} %\lstinputlisting[label=gearef2, caption=Gearef、GearImplを用いたコード]{./src/ex_code2} -%\section{stub Code Gear} -%Code Gear が必要とする Data Gear を取り出す際に Context を通す必要があるが、 -%Context を直接扱うのはセキュリティ上好ましくない。 -%そこで Context から必要なデータを取り出して Code Gear に接続する stub Code Gear を定義し、これを介して間接的に必要な Data Gear にアクセスする。 -%stub Code Gear は Code Gear 毎に生成され、次の Code Gear へと継続する間に挟まれる。 - \section{stub Code Gear の生成} Gears OS を CbC で実装する上でメタ計算の記述が煩雑であることがわかった。 @@ -313,8 +307,26 @@ \lstinputlisting[label=init_context, caption=生成されたinitContext]{./src/gencontext.c} %\section{比較} +%従来の OS は、ユーザーレベルとシステムレベルを持っているが、 +%システムレベルではメタ計算の分離ができない。 +%しかし Gears ではメタ計算を Meta Code Gear 単位で記述するため、メタ計算を階層化できる。 +%また既存の OS ではプロセスやファイルが型を持っていないが、Gears は型を持っている。 +%既存のOSでメタ計算を使おうとするとOSを書き換える必要がある。 + +%リアルタイムモニタ +%OSの一種の簡略バージョン +%Gearsに近い +%APIを使って資源管理を行う +%Gears OSの場合はメタ計算を使って行う + +%GPGPU + %\section{結論} +%GearsOSのメタ計算部分の実装例を示した +%メタ計算の有効性 +%Interfaceの有用性 + \section{今後の課題} 本研究では LLVM/Clang のデバッグ、interface の記述、CbC ファイルから Gears OS の記述に必要な Context と stub の生成を行う Perl スクリプトの生成を行なった。 これにより Gears OS のコードの煩雑さは改善され、ユーザーは Context への接続を意識する必要がなくなった。