annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 title: Monadに基づくMeta計算を基本とするGears OSの設計
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 author: Tatsuki IHA
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 profile:
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 lang: Japanese
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 code-engine: coderay
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 # 研究目的
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 - 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている.
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 - Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する.
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 - また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させ,Many CoreやGPGPU環境でも信頼性の高い並列処理を実現する.
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 - この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする.
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 # 近況
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 - Data SegmentへのアクセスのsyntaxをList, Synchronized Queueに適応
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 # 従来のDSへのアクセス
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 - contextからDataの配列にアクセスする
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 # 従来のDSへのアクセス
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 ```
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 __code code1(struct Context* context) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 context->data[Allocate]->allocate.size = .....;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 context->data[Allocate]->allocate.next = .....;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 goto meta(context, Allocator);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 ```
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 # stubを経由したDSへのアクセス
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 - Code Segmentは必要なDSを引数として取る
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 - 全てのCSに対してstubを用意し, 必要なDSをstubで指定してCSを呼ぶ
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 - stubは現在は直接書いているが, Compile時に生成されて欲しい
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 # stubを経由したDSへのアクセス
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 ```
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 __code code1(struct Context* context, struct Allocate* allocate) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 allocate->size = .....;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 allocate->next = .....;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 goto meta(context, Allocator);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 __code code1_stub(struct Context* context) {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 goto code1(context, &context->data[Allocate]->allocate);
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 ```
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 <style scoped>
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 pre {
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 font-size: 20px;
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 }
47676a16ed13 Add Slides
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 </style>