diff 2015_06_16/slide.md @ 0:47676a16ed13

Add Slides
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Tue, 14 Jul 2015 17:23:04 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/2015_06_16/slide.md	Tue Jul 14 17:23:04 2015 +0900
@@ -0,0 +1,52 @@
+title: Monadに基づくMeta計算を基本とするGears OSの設計
+author: Tatsuki IHA
+profile:
+lang: Japanese
+code-engine: coderay
+
+# 研究目的
+- 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている.
+- Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する.
+- また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させ,Many CoreやGPGPU環境でも信頼性の高い並列処理を実現する.
+- この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする.
+
+
+# 近況
+- Data SegmentへのアクセスのsyntaxをList, Synchronized Queueに適応
+
+# 従来のDSへのアクセス
+- contextからDataの配列にアクセスする
+
+# 従来のDSへのアクセス
+```
+__code code1(struct Context* context) {
+    context->data[Allocate]->allocate.size = .....;
+    context->data[Allocate]->allocate.next = .....;
+    goto meta(context, Allocator);
+}
+```
+
+# stubを経由したDSへのアクセス
+- Code Segmentは必要なDSを引数として取る
+- 全てのCSに対してstubを用意し, 必要なDSをstubで指定してCSを呼ぶ
+- stubは現在は直接書いているが, Compile時に生成されて欲しい
+
+# stubを経由したDSへのアクセス
+```
+__code code1(struct Context* context, struct Allocate* allocate) {
+    allocate->size = .....;
+    allocate->next = .....;
+    goto meta(context, Allocator);
+}
+__code code1_stub(struct Context* context) {
+    goto code1(context, &context->data[Allocate]->allocate);
+}
+```
+
+
+
+<style scoped>
+    pre {
+        font-size: 20px;
+    }
+</style>