Mercurial > hg > Members > innparusu > slides
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>