# HG changeset patch
# User mir3636
# Date 1516258201 -32400
# Node ID d5d62b74c21977935a5d91244b4d5df7441c8cb8
# Parent 57c060703f4afcaa60ca1bbc9b2ea3d6881d37cd
fix
diff -r 57c060703f4a -r d5d62b74c219 Slide/prosym.html
--- a/Slide/prosym.html Thu Jan 18 13:38:10 2018 +0900
+++ b/Slide/prosym.html Thu Jan 18 15:50:01 2018 +0900
@@ -86,52 +86,24 @@
-
Gears OS
-
-
-
-
-
-
-
-
メタレベルの計算
+
研究目的
- - プログラムを記述する際、ノーマルレベルの処理の他に、メモリ管理やスレッド管理、CPU や GPU の資源管理等、記述しなければならない処理が存在する。これらの計算をメタ計算と呼ぶ。
- - メタ計算をノーマルレベルの計算から切り離して記述したい。
- - 本研究ではノーマルレベルとメタレベルを共通して表現できる言語として Continuation based C を用いる。
+ - 現代の OS では拡張性と信頼性を両立させることが要求されている。
+
+
+ - 信頼性をノーマルレベルの計算に対して保証し、拡張性をメタレベルの計算で実現することを目標に Gears OS を設計中である。
+ - ノーマルレベルの計算とメタレベルの計算を切り離して記述するために Code Gear と Data Gear という単位を用いている。
+ - Gears OS は Continuation based C(CbC) によってアプリケーションと OS そのものを記述する。
+ - 本研究では、CbC を用いた Gears OS の実装と、メタ計算の実例を示す。
-
-
-
-
-
Continuation based C (CbC)
-
+
+
# メタ計算の重要性
+- プログラムを記述する際、ノーマルレベルの処理の他に、メモリ管理やスレッド管理、CPU や GPU の資源管理等、記述しなければならない処理が存在する。これらの計算をメタ計算と呼ぶ。
+- メタ計算はノーマルレベルの計算から切り離して記述したい。
+- そのためには処理を細かく分割する必要があるが、関数やクラスなどの単位は容易に分割できない。
+- そこで当研究室ではメタ計算を柔軟に記述するためのプログラミング言語の単位として Code Gear、Data Gear という単位を提案している。
-
メタ計算の重要性
+
Continuation based C (CbC)
+
+ - Continuation based C (CbC) はこの Code Gear 単位を用いたプログラミング言語として開発している。
+ - Code Gear は 関数呼び出し時の環境を使わずに次の Code Gear へと goto 文によって遷移する。
+ - この goto 文による遷移を軽量継続と呼ぶ。
+ - CbC は軽量継続を持ち、C と互換性のある言語である。
+
+
+
+
+
+
+
CbC のコード例
- - プログラムを記述する際、ノーマルな処理の他に、メモリ管理やスレッド管理、CPU や GPU の資源管理等、記述しなければならない処理が存在する。これらの計算をメタ計算と呼ぶ。
- - メタ計算はノーマルな計算から切り離して記述したい。
- - そのためには処理を細かく分割する必要があるが、関数やクラスなどの単位は容易に分割できない。
- - そこで当研究室ではメタ計算を柔軟に記述するためのプログラミング言語の単位として Code Gear、Data Gear という単位を提案している。
-# Continuation based C (CbC)
- - Continuation based C (CbC) はこの Code Gear 単位を用いたプログラミング言語として開発している。
- CbC では Code Gear は __code という型を持つ関数の構文で定義される。
- Code Gear は戻り値を持たないので、関数とは異なり return 文は存在しない。
- goto の後に Code Gear 名と引数を並べて、次の Code Gear の遷移を記述する。
@@ -174,12 +153,43 @@
goto cs2(c);
}
-# Gears OS
-- Gears OS は Code Gear、 Data Gear の単位を用いて開発されており、CbC で記述されている。
-- 並列実行するための Task を、実行する Code Gear 、実行に必要な Input Data Gear 、Output Data Gear の組で表現する。
-- またGears OS ではメタ計算を Meta Code Gear、Meta Data Gear で表現する。
-- Meta Code Gear はノーマルの Code Gear の直後に遷移され、メタ計算を実行する。
-- Meta Code Gear で OS の機能であるメモリ管理やスレッド管理を行う。
+
+
+
+
+
+
Gears OS
+
+ - Gears OS は Code Gear とデータの単位である Data Gear を用いて開発されており、CbC で記述されている。
+ - 並列実行するための Task を、実行する Code Gear 、実行に必要な Input Data Gear 、Output Data Gear の組で表現する。
+ - Input/Output Data Gear の依存関係が解決された Code Gear を並列実行する。
+
+
+
+
+
+
+
Data Gear
+
+ - Data Gear は データの単位であり、int や文字列などの Primitive Type を持っている。
+ - Code Gear は任意の数の Input Data Gear を参照して処理を行い、Output Data Gear を出力し処理を終える。
+ - 接続された Data Gear 以外には参照を行わない。
+
+
+
+
+
+
+
Gears でのメタ計算
+
+ - Gears OS ではメタ計算を Meta Code Gear、Meta Data Gear で表現する。
+ - Meta Code Gear はノーマルレベルの Code Gear の直後に遷移され、メタ計算を実行する。
+ - Meta Code Gear で OS の機能であるメモリ管理やスレッド管理を行う。
+
+
+
+
+
@@ -324,13 +334,13 @@
-
比較
+比較
-
今後の課題
+
今後の課題
- 本研究では interface の記述、CbC ファイルから Gears OS の記述に必要な Context と stub の生成を行う perl スクリプトの生成を行なった。
- これにより Gears OS のコードの煩雑さは改善され、ユーザーは Context への接続を意識する必要がなくなった。
@@ -338,51 +348,7 @@
- また、今回 perl スクリプトによって Context や stub の生成を行なったが、LLVM/clang 上で実装しコンパイラで直接 CbC を実行できるようにすることを目的とする。
-
-
+
diff -r 57c060703f4a -r d5d62b74c219 Slide/prosym.md
--- a/Slide/prosym.md Thu Jan 18 13:38:10 2018 +0900
+++ b/Slide/prosym.md Thu Jan 18 15:50:01 2018 +0900
@@ -9,7 +9,6 @@
- 現代の OS では拡張性と信頼性を両立させることが要求されている。
-
- 信頼性をノーマルレベルの計算に対して保証し、拡張性をメタレベルの計算で実現することを目標に Gears OS を設計中である。
- ノーマルレベルの計算とメタレベルの計算を切り離して記述するために Code Gear と Data Gear という単位を用いている。
- Gears OS は Continuation based C(CbC) によってアプリケーションと OS そのものを記述する。
@@ -18,16 +17,17 @@
+
# メタ計算の重要性
- プログラムを記述する際、ノーマルレベルの処理の他に、メモリ管理やスレッド管理、CPU や GPU の資源管理等、記述しなければならない処理が存在する。これらの計算をメタ計算と呼ぶ。
- メタ計算はノーマルレベルの計算から切り離して記述したい。
@@ -66,17 +66,22 @@
- 接続された Data Gear 以外には参照を行わない。
# Gears でのメタ計算
+- Gears OS ではメタ計算を Meta Code Gear、Meta Data Gear で表現する。
+- Meta Code Gear はノーマルレベルの Code Gear の直後に遷移され、メタ計算を実行する。
+- Meta Code Gear で OS の機能であるメモリ管理やスレッド管理を行う。
-- またGears OS ではメタ計算を Meta Code Gear、Meta Data Gear で表現する。
-- Meta Code Gear はノーマルの Code Gear の直後に遷移され、メタ計算を実行する。
-- Meta Code Gear で OS の機能であるメモリ管理やスレッド管理を行う。
+
+
+
# Gears OS の構成
+
# Context
- Gears OS には Context と呼ばれる接続可能な Code Gear、Data Gear のリスト、Temporal Data Gear のためのメモリ空間等を持っている Meta Data Gear がある。