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