Mercurial > hg > Papers > 2017 > mitsuki-prosym
comparison Paper/main.tex @ 10:8550077113b9
fix
author | mir3636 |
---|---|
date | Fri, 22 Dec 2017 22:53:23 +0900 |
parents | a6372acc8f0e |
children | 3e81264d4764 |
comparison
equal
deleted
inserted
replaced
9:e61e468bf6fc | 10:8550077113b9 |
---|---|
169 \end{center} | 169 \end{center} |
170 \caption{Gears でのメタ計算} | 170 \caption{Gears でのメタ計算} |
171 \label{fig:metaCS} | 171 \label{fig:metaCS} |
172 \end{figure} | 172 \end{figure} |
173 | 173 |
174 Gears OS は Context と呼ばれる接続可能な Code Gear、Data Gear のリスト、Temporal Data Gear のためのメモリ空間等を持っている Meta Data Gear を持つ。 | 174 Gears OS は Context と呼ばれる使用されるすべての Code Gear、Data Gear 持っている Meta Data Gear を持つ。 |
175 Gears OS は必要な Code Gear、Data Gear に参照したい場合、この Context を通す必要がある。 | 175 Gears OS は必要な Code Gear、Data Gear に参照したい場合、この Context を通す必要がある。 |
176 | 176 |
177 しかし Context を通常の計算から直接扱うのはセキュリティ上好ましくない。 | 177 しかし Context を通常の計算から直接扱うのはセキュリティ上好ましくない。 |
178 そこで Context から必要なデータを取り出して Code Gear に接続するMeta Code Gear である stub Code Gear を定義し、 | 178 そこで Context から必要なデータを取り出して Code Gear に接続するMeta Code Gear である stub Code Gear を定義し、 |
179 これを介して間接的に必要な Data Gear にアクセスする。 | 179 これを介して間接的に必要な Data Gear にアクセスする。 |
210 \lstinputlisting[label=initcontext, caption=initContext]{./src/initcontext.c} | 210 \lstinputlisting[label=initcontext, caption=initContext]{./src/initcontext.c} |
211 | 211 |
212 Data Gear は union と struct によって表現される。 | 212 Data Gear は union と struct によって表現される。 |
213 Context には Data Gear の Data Type の情報が格納されている。 | 213 Context には Data Gear の Data Type の情報が格納されている。 |
214 この情報から確保する Data Gear のサイズなどを決定する。 | 214 この情報から確保する Data Gear のサイズなどを決定する。 |
215 Temporal Data Gear のためのメモリ空間は Context 毎に異なり、互いに干渉することはできない。 | 215 %Temporal Data Gear のためのメモリ空間は Context 毎に異なり、互いに干渉することはできない。 |
216 | 216 |
217 Context は Task でもあり、Taskは通常のOSのスレッドに対応する。 | 217 Context は Task でもあり、Taskは通常のOSのスレッドに対応する。 |
218 Task は実行する Code Gear と Data Gear をすべて持っている。 | 218 Task は実行する Code Gear と Data Gear をすべて持っている。 |
219 TaskManager によって Context が生成され Task Queue へ挿入する。 | 219 TaskManager によって Context が生成され Task Queue へ挿入する。 |
220 Gears OS における Task Queue は Synchronized Queue で実現される。 | 220 Gears OS における Task Queue は Synchronized Queue で実現される。 |
326 %GearsOSのメタ計算部分の実装例を示した | 326 %GearsOSのメタ計算部分の実装例を示した |
327 %メタ計算の有効性 | 327 %メタ計算の有効性 |
328 %Interfaceの有用性 | 328 %Interfaceの有用性 |
329 | 329 |
330 \section{今後の課題} | 330 \section{今後の課題} |
331 本研究では LLVM/Clang のデバッグ、interface の記述、CbC ファイルから Gears OS の記述に必要な Context と stub の生成を行う Perl スクリプトの生成を行なった。 | 331 本論文では Code Gear、 Data Gear によって構成される Gears OS のプロトタイプの設計、実装、CbC ファイルから Gears OS の記述に必要な Context と stub の生成を行う Perl スクリプトの生成を行なった。 |
332 これにより Gears OS のコードの煩雑さは改善され、ユーザーは Context への接続を意識する必要がなくなった。 | 332 Code Gear 、Data Gear を処理とデータの単位として用いて Gears OS を設計した。 |
333 Code Gear、Data Gear にはメタ計算を記述するための Meta Code Gear、Meta Data Gear が存在する。 | |
334 メタ計算を Meta Code Gear、によって行うことでメタ計算を階層化して行うことができる。 | |
335 Code Gear は関数より細かく分割されてるためメタ計算を柔軟に記述できる。 | |
336 | |
337 Code Gear と Data Gear は Interface と呼ばれるまとまりとして記述される。 | |
338 Interface は使用される Data Gear の定義と、それに対する操作を行う Code Gear の集合である。 | |
339 Interface は複数の実装をもち、Meta Data Gear として定義される。 | |
340 従来の関数呼び出しでは引数をスタック上に構成し、関数の実装アドレスを Call するが、 | |
341 Gears OS では引数は Context 上に用意された Interface の Data Gear に格納され、操作に対応する Code Gear に goto する。 | |
342 | |
343 Context は使用する Code Gear、Data Gear をすべて格納している Meta Data Gear である。 | |
344 通常の計算から Context を直接扱うことはセキュリティ上好ましくない。 | |
345 このため Context から必要なデータを取り出して Code Gear に接続する Meta Code Gear である stub Code Gear を定義した。 | |
346 stub Code Gear は Code Gear 毎に記述され、Code Gear 間の遷移に挿入される。 | |
347 | |
348 これらのメタ計算の記述は煩雑であるため Perl スクリプトによる自動生成を行なった。 | |
349 これにより Gears OS のコードの煩雑さは改善され、ユーザーレベルではメタを意識する必要がなくなった。 | |
333 | 350 |
334 今後の課題は Code Gear からメタ計算を行う meta Code Gear を生成できるようにし、ユーザーがメタレベルの処理を意識せずにコードを記述できるようにする。 | 351 今後の課題は Code Gear からメタ計算を行う meta Code Gear を生成できるようにし、ユーザーがメタレベルの処理を意識せずにコードを記述できるようにする。 |
335 また、今回 Perl スクリプトによって Context や stub の生成を行なったが、LLVM/clang 上で実装しコンパイラで直接 CbC を実行できるようにすることを目的とする。 | 352 また、今回 Perl スクリプトによって Context や stub の生成を行なったが、LLVM/clang 上で実装しコンパイラで直接 CbC を実行できるようにすることを目的とする。 |
336 | 353 |
337 % BibTeX を使用する場合 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 354 % BibTeX を使用する場合 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |