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