view 2015/2015_06_16/slide.md @ 1:3b7da0b661cc

Add slide.md
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Tue, 04 Aug 2015 18:12:46 +0900
parents
children
line wrap: on
line source

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>