diff paper/evaluation.tex @ 19:4dcfec1bf1e7

revision
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Thu, 18 Feb 2016 07:20:46 +0900
parents 958634b9fa32
children
line wrap: on
line diff
--- a/paper/evaluation.tex	Wed Feb 17 20:29:45 2016 +0900
+++ b/paper/evaluation.tex	Thu Feb 18 07:20:46 2016 +0900
@@ -3,6 +3,7 @@
 つまり、依存関係のない処理ならば並列処理することが可能である。
 
 本章では依存関係のない簡単な例題を用いて Gears OS の評価を行う。
+また、Gears OS の実装自体への評価も行う
 
 \section{Twice}
 Twice は与えられた整数配列を2倍にする例題である。
@@ -65,3 +66,21 @@
 今回、例題に用いた Twice は依存関係のない並列処理である。
 本来、並列処理には複雑な依存関係が存在するのが一般的である。
 並列フレームワークには複雑な依存関係を解決しながら十分な並列度を保てることが必須なので依存関係を解決するための TaskManager の実装が必要である。
+
+\section{Gears OS の実装}
+\begin{itemize}
+\item Code Segment \\
+  Code Segment は分割・統合を容易に行うことができる。
+  巨大な Code Segment を記述することも可能だが、それは好ましくない。
+  今回の実装では制御構文で Code Segment を分割するようにコーディングを行った。
+  制御構文で分割することで Code Segment のサイズを小さくすることには繋がったが、Code Segment の数が増加した。
+  Code Segment には必ず stub が付属するので記述量が2倍ほどになる。
+  CbC の構文サポートを利用することで記述量を減らすことはできるが、正しいコードに変換できない場合もある。
+  Code Segment の継続ではスタックに値が積まれないので、デバッグの際にどの Code Segment から接続されたか特定できない。
+\item Data Segment \\
+  Data Segment は共用体と構造体を用いて表現した。
+  現状ではすべての Context が同じ定義を持つことになる。
+  必要ない Data Segment を持つ場合もあるので好ましくない。
+  定義されているべき Data Segment は実行可能な Code Segment のリストから推論することが可能である。
+  専用の構文を準備し、必要な Data Segment のみ持つようにするべきである。
+\end{itemize}