annotate 2015/2015_05_19/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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 title: Monadに基づくMeta計算を基本とするGears OSの設計
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 author: Tatsuki IHA
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 profile:
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 lang: Japanese
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 # 研究目的
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 - 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている.
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 - Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する.
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 - また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させる.
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 - この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする.
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 # Gear Box
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 - 基本はState Diagramで記述
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 - State DiagramのStateをCode Gear(Code Segment)
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 - Code Gear間にData Gear(Data Segment)を記述
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 # Gear Box
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 ![GearBoxExample](./pictures/GearBoxExample.svg)
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 # Gear Box
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 ![MetaGearBoxExample](./pictures/MetaGearBoxExample.svg)
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 # Synchronized Queue
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 ![GearBoxExample](./pictures/synchronizedQueueSender.svg)
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 # Synchronized Queue
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 ![GearBoxExample](./pictures/synchronizedQueueReceiver.svg)
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 # Synchronized Queue
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 - 各Threadに共通のData Gearをもたせる
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 - Meta Code Segmentでsynchronizedを表現する
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 - つまり, Meta Code Segmentを書き換えることで実装を変更できる
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 # Synchronized Queue
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 - CASでの実装
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 - Meta Put, Meta GetでCasを行い, Data Gearを更新
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 - pthread_mutex_lockでの実装
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 - Meta Sender, Meta ReciverでData Gearをlock
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 - Meta Put, Meta Getでunlock
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 - Semphoreでの実装
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 - 読み込み用, 書き込み用のSemphoreを用意
3b7da0b661cc Add slide.md
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 - Meta Put, Meta Getでsem_p, sem_vを行う