diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/2015/2015_05_19/slide.md	Tue Aug 04 18:12:46 2015 +0900
@@ -0,0 +1,42 @@
+title: Monadに基づくMeta計算を基本とするGears OSの設計
+author: Tatsuki IHA
+profile:
+lang: Japanese
+
+# 研究目的
+- 当研究室では, プログラムをコードセグメント, データセグメントを用いた並列フレームワークの開発を行っている.
+- Gears OSでは, 並列実行に必要なMetaな機能を関数型言語におけるMonadの原理に基づいて実現する.
+- また, Code Segment, Data SegmentそれぞれにMeta Code Segment, Meta Data Segmentを付属させる.
+- この研究ではGears OSの機能をCbC(Continuation based C)で実装、評価することを目的とする.
+
+# Gear Box
+- 基本はState Diagramで記述
+- State DiagramのStateをCode Gear(Code Segment)
+- Code Gear間にData Gear(Data Segment)を記述
+
+# Gear Box
+![GearBoxExample](./pictures/GearBoxExample.svg)
+
+# Gear Box
+![MetaGearBoxExample](./pictures/MetaGearBoxExample.svg)
+
+# Synchronized Queue
+![GearBoxExample](./pictures/synchronizedQueueSender.svg)
+
+# Synchronized Queue
+![GearBoxExample](./pictures/synchronizedQueueReceiver.svg)
+
+# Synchronized Queue
+- 各Threadに共通のData Gearをもたせる
+- Meta Code Segmentでsynchronizedを表現する
+- つまり, Meta Code Segmentを書き換えることで実装を変更できる
+
+# Synchronized Queue
+- CASでの実装
+    - Meta Put, Meta GetでCasを行い, Data Gearを更新
+- pthread_mutex_lockでの実装
+    - Meta Sender, Meta ReciverでData Gearをlock
+    - Meta Put, Meta Getでunlock
+- Semphoreでの実装
+    - 読み込み用, 書き込み用のSemphoreを用意
+    - Meta Put, Meta Getでsem_p, sem_vを行う