changeset 56:c39c2e8eddc7

update
author mir3636
date Sun, 22 Apr 2018 17:35:03 +0900
parents 8916b7fa1bef
children 6c55961dcf0b
files Paper/sigos.tex
diffstat 1 files changed, 6 insertions(+), 48 deletions(-) [+]
line wrap: on
line diff
--- a/Paper/sigos.tex	Sun Apr 22 17:29:14 2018 +0900
+++ b/Paper/sigos.tex	Sun Apr 22 17:35:03 2018 +0900
@@ -49,6 +49,8 @@
 \author{
   宮城 光希\affiref{1}
   \and
+  桃原 優 \affiref{1}
+  \and
   河野 真治\affiref{2}
 }
 
@@ -56,6 +58,8 @@
 \eauthor{
   Mitsuki MIYAGI\affiref{1}
   \and
+  Yu TOBARU\affiref{1}
+  \and
   Shinji KONO\affiref{2}
 }
 
@@ -189,41 +193,8 @@
 Gears OS ではメモリ管理は stub などのメタ計算部分で処理される。
 例えば、寿命の短いスレッドでは使い捨ての線形アロケーションを用いる。 
 
-\section{Continuation based C (CbC)}
-CbC は Code Gear という処理の単位を用いて記述するプログラミング言語である。
-Code Gear は CbC における最も基本的な処理単位である。
-Code Gear は入力と出力を持ち、CbC では引数が入出力となっている。
-CbC では Code Gear は \_\_code という型を持つ関数の構文で定義される。
-ただし、これは \_\_code 型の戻り値を返すという意味ではなく、Code Gear であることを示すフラグである。
-Code Gear は戻り値を持たないので、Cの関数とは異なり return 文は存在しない。
-
-Code Gear から次の Code Gear への遷移は goto による継続で処理を行い、次の Code Gear へ引数として入出力を与える。
-図\ref{fig:cs}は Code Gear 間の処理の流れを表している。
-
-\begin{figure}[ht]
- \begin{center}
-  \includegraphics[width=70mm]{./pic/codesegment.pdf}
- \end{center}
- \caption{goto による Code Gear 間の継続}
- \label{fig:cs}
-\end{figure}
-
-CbC の goto による継続は Scheme の継続と異なり呼び出し元の環境がないので、この継続は単なる行き先である。
-したがってこれを軽量継続と呼ぶ。
-軽量継続により、並列化、ループ制御、関数コールとスタックの操作を意識した最適化がソースコードレベルで行えるようにする。
-
-\section{Gears OS}
-Gears OS は Code Gear とデータの単位である Data Gear を用いて開発されており、CbC で記述されている。
-Gears OS では、並列実行するための Task を、実行する Code Gear と、実行に必要な Input Data Gear 、Output Data Gear の組で表現する。
-Gears OS は Input/Output Data Gear の依存関係が解決された CodeGear を並列実行する。
-Data Gear はデータの単位であり、int や文字列などの Primitive Type を持っている。
-Code Gear は任意の数の Input Data Gear を参照して処理を行い、Output Data Gear を出力し処理を終える。
-また、接続された Data Gear 以外には参照を行わない。
-処理やデータの構造が Code Gear、Data Gear に閉じているため、これにより実行時間、メモリ使用量などを予測可能なものにすることができる。
-
-Gears OS では メタ計算 を Meta Code Gear、Meta Data Gear で表現する。
-Meta Code Gear は通常の Code Gear の直後に遷移され、メタ計算を実行する。
-これを図示したものが図\ref{fig:metaCS}である。
+%Meta Code Gear は通常の Code Gear の直後に遷移され、メタ計算を実行する。
+%これを図示したものが図\ref{fig:metaCS}である。
 
 \begin{figure}[ht]
  \begin{center}
@@ -233,15 +204,6 @@
  \label{fig:metaCS}
 \end{figure}
 
-Gears OS は Context と呼ばれる使用されるすべての Code Gear、Data Gear 持っている Meta Data Gear を持つ。
-Gears OS は必要な Code Gear、Data Gear を参照したい場合、この Context を通す必要がある。
-
-しかし Context を通常の計算から直接扱うのはセキュリティ上好ましくない。
-そこで Context から必要なデータを取り出して Code Gear に接続するMeta Code Gear である stub Code Gear を定義し、
-これを介して間接的に必要な Data Gear にアクセスする。
-stub Code Gear は Code Gear 毎に生成され、次の Code Gear へと継続する前に挿入される。
-goto による継続を行うと、実際には次の Code Gear の stub Code Gear を呼び出す。
-
 \section{Gears OS の構成}
 Gears OS は以下の要素で構成される。
 
@@ -262,10 +224,6 @@
  \label{fig:gearsos}
 \end{figure}
 
-Code\ref{context} は Context の定義を示している。
-
-\lstinputlisting[caption=Contextの定義, label=context]{./src/context1.c}
-
 Data Gear は union と struct によって表現される。
 Context には Data Gear の Data Type の情報が格納されている。
 この情報から確保する Data Gear のサイズなどを決定する。