diff Slide/prosym.md @ 11:6fdcb5241bda default tip

before Society
author tobaru
date Tue, 22 May 2018 11:56:32 +0900
parents d4e58a38aae7
children
line wrap: on
line diff
--- a/Slide/prosym.md	Tue May 22 10:13:39 2018 +0900
+++ b/Slide/prosym.md	Tue May 22 11:56:32 2018 +0900
@@ -50,7 +50,7 @@
 
 
 ## スライドの流れ
-- <font color="red">Interface</font>
+- <font color="red">Gears OS での形式化とInterfaceの導入</font>
 - 並列API
 - CbC
 - Gears OS における並列実行
@@ -58,14 +58,14 @@
 - 今後の課題 
 
 
-## Gears OS での形式化とInterfaceの導入
+## Gears OS での形式化
 - 形式化とは仕様、実装、実行を Logic で記述する事である。
 - Gears OS では、継続を使った関数型プログラムとして実装を記述する
 - Logic としては、依存型関数言語である Agda を使う(外間の発表)
 - 証明とモデル検査を使って、信頼性を確保する
 
 ## Gears OS の Interface 
-- Code Gear と Deta Gear は Interface と呼ばれるまとまり(モジュール)で記述される。
+- Code Gear と Deta Gear は Interface と呼ばれるまとまりで記述される。
 	- Gears OS のモジュール化
 - Interface 作成時に Code Gear の集合を指定することにより複数の実装(並列処理)を持つことができる。
 - Interface は Data Gear で記述されて、Meta Deta Gear と呼ばれる。
@@ -81,7 +81,7 @@
 % Contextも集合
 
 ## スライドの流れ
-- Interface
+- Gears OS での形式化とInterfaceの導入 
 - <font color="red">並列API</font>
 - CbC
 - Gears OS における並列実行
@@ -97,7 +97,7 @@
 	- 応用として par goto を使って 並列API を実装
 
 ## スライドの流れ
-- Interface
+- Gears OS での形式化とInterfaceの導入 
 - 並列API
 - <font color="red">CbC</font>
 - Gears OS における並列実行
@@ -111,7 +111,7 @@
 ## CbC 
 - ノーマルレベルとメタレベルの計算をまとめて表現できる言語として、本研究室で設計した CbC を用いる。
 	- ノーマルレベルの計算
-		- コンピュータの計算はプログラミング言語で行われる。
+		- コンピュータの計算はプログラミング言語で記述される。
 		- その部分をノーマルレベルの計算と呼ぶ。
 	- メタレベルの計算
 		- コードが実行される際の以下の部分が、メタレベルの計算という。
@@ -173,7 +173,7 @@
 
 
 ## スライドの流れ
-- Interface
+- Gears OS での形式化とInterfaceの導入 
 - 並列API
 - CbC
 - <font color="red">Gears OS における並列実行</font>
@@ -209,14 +209,21 @@
 ## Context
 - 1つのスレッド内で使われる Interface の Code Gear と Data Gear は Meta Data Gear に格納される。
 - この Meta Data Gear を Context と呼ぶ。 
-- Context を複製して複数の CPU に割り当てることにより並列実行が可能になる。 
+- **Context を複製して複数の CPU に割り当てることにより並列実行が可能になる。**
 - ノーマルレベルでは見る事ができない。
-- Context は Task でもある。
-- Task は実行する Code Gear と Data Gear を全て持っている。
 <div style="text-align: center;">
     <img src="./image/gears_structure.png" alt="Gears OS の構造" width="400">
 </div>
 
+## Task
+- Context は Task でもある。
+- Task は実行する Code Gear と Data Gear を全て持っている。
+	- Interface の Code Gear と Data Gear は Meta Data Gear に格納
+<div style="text-align: center;">
+    <img src="./image/gears_structure.png" alt="Gears OS の構造" width="400">
+</div>
+
+
 
 
 ## TaskManager
@@ -245,7 +252,7 @@
 
 ## 1つの Code Gear の実行は他の Code Gear に割り込まれない 
 - 共有された Data Gear があった時に、それに対する変更はただ1つの Code Gear だけが許される
-- 読み込みは複数であってもいい
+	- 読み込みは複数であってもいい
 - Agda 側で、並列実行を Code Gear の順次実行としてシミュレーションするため
 - このような実行になるように Gears OS の実装を行う
 
@@ -256,16 +263,13 @@
 </div>
 
 
-
-
-
-# par goto  
+## par goto  
 - Context(Task) の複製には par goto を用いる。
-- 他に、入力の同期、タスクスケジューラへの Context の登録が行われる。
 - 複数実行した時に、共有 Data Gear に書き込みを成功したかを確認(commit)するために __exit を使用する。
-- par goto で生成された Task は __exit に継続することで終了する
-- GearsOS の Task は Output Data Gear を生成した時点で終了する
-- そのため、par goto では直接 __exit に継続せず、Output Data Gear への書き出し処理に継続される。
+- par goto で生成された Task は Output Data Gear を生成した時点で終了する
+	- そのため、par goto では直接 __exit に継続せず、Output Data Gear への書き出し処理に継続される。
+	- 割り込みを防ぐため
+% - 他に、入力の同期、タスクスケジューラへの Context の登録が行われる。
 % - Code Gear と Data Gear の依存関係をノーマルレベルで記述できるようになる。
 ```c
 __code code1(Integer *integer1, Integer * integer2, Integer *output) {
@@ -327,7 +331,7 @@
 % ## 並列構文
 
 ## スライドの流れ
-- Interface
+- Gears OS での形式化とInterfaceの導入 
 - 並列API
 - CbC
 - Gears OS における並列実行
@@ -460,7 +464,7 @@
 
 
 ## スライドの流れ
-- Interface
+- Gears OS での形式化とInterfaceの導入 
 - 並列API
 - CbC
 - Gears OS における並列実行
@@ -468,12 +472,6 @@
 - <font color="red">今後の課題</font>
 
 
-## スライドの流れ
-- CbC
-- Gears OS における並列実行
-- 比較
-- <font color="red">今後の課題</font>
-
 ## 今後の課題
 - Go 言語との比較から 1CPU での動作が遅いことがわかった。
 - par goto 文を使用することで、Contextを生成し、並列処理を行う。