diff presen/sigOS/sample.markdown @ 15:696a908208c8

add compress part
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Sun, 24 May 2015 18:40:04 +0900
parents 99e5104997b7
children 1ac38e2b7572
line wrap: on
line diff
--- a/presen/sigOS/sample.markdown	Sun May 24 17:56:24 2015 +0900
+++ b/presen/sigOS/sample.markdown	Sun May 24 18:40:04 2015 +0900
@@ -16,7 +16,7 @@
 
 # Aliceの概要(1) - Data Segment
 * 複数の関係のない要素を1つのデータオブジェクトで表現した場合、全ての操作でlockが必要になり、スケラビリティーを低下させる。
-* Alice はデータを細かく分割して記述する。その分割されたデータを *Data Segment(DS)* と呼ぶ。
+* Alice はデータを細かく分割して記述する。その分割されたデータを **Data Segment(DS)** と呼ぶ。
 
 # Aliceの概要(2) - Data Segment Manager
 * DS は queue に保存される。queue には対 になる key し、 key を指定して DS の保存、取得を行う。
@@ -57,7 +57,7 @@
 	* RemoteDSM に put された場合は通信時に byteArray に変換されたバイナリオブジェクトが enQueue される。
 
 # Aliceの概要(5) - Code Segment  
-* Alice上で実行されるタスクの単位を Code Segment(CS) と呼ぶ。
+* Alice上で実行されるタスクの単位を **Code Segment(CS)** と呼ぶ。
 * 複数のDSが入力され、その結果をDSとして出力するfunctionと捉えられる。
 * CS をユーザーが記述する際には CS を継承して記述することにより CS で使用する API を利用する事ができる。
 
@@ -88,18 +88,19 @@
 * Meta Computation も CS と DS により表現されており、それぞれMeta CSとMeta DSと呼ぶ。
 
 # AliceVNC
-* 研究室では授業向け画面共有システム TreeVNC の開発を行っている。
-* 授業で VNC を使う場合、1つ のコンピュータに多人数が同時につながるため、性能が大幅に落ちる
-* TreeVNCではノード同士を接続させ、木構造を構成することで負荷分散を行う
+* 研究室では授業向け画面共有システムTreeVNCではノード同士を接続させ、木構造を構成することで負荷分散を行う
 ![opt](./images/treeVNC.svg)
 
 # Alice の新機能
-* Alice が実用的なアプリケーションを記述する能力をもつことを確認するために、TreeVNC を Alice を用いて実装した AliceVNC の作成を行った。
+* Alice が実用的なアプリケーションを記述する能力をもつことを確認するため、TreeVNC を Alice を用いて実装した AliceVNC の作成を行った。
 * AliceVNCの実装で必要となった以下の機能をMeta Computation として実装した。  
-	* flip機能 … Input DS を Output DS として転送する
+	* 転送機能 … Input DS を Output DS として転送する
 	* 圧縮機能 … DS Manager の指定によってDSの表現を切り替える
 
-# flip機能
+# 転送機能
+* 通常、Input DSに変更を加えOutput DSとして出力する場合DSのコピーが行われる。
+* AliceVNCのようにInput DS をそのまま子ノードに Output DS として出力する場合、コピーを行なうのは無駄。
+* Input DSをコピーせずそのままOutput DSに渡すMeta Computationとして転送機能を実装した。
 
 # 圧縮機能
 * AliceVNCは、ノードは受け取った画面データを描画すると同時に、子ノードの Remote DSM に送信する。
@@ -151,11 +152,16 @@
 * take(String **"compressed"** + managerKey, String key)
 
 # 圧縮機能 - 通信プロトコルの変更
-Remote から put されたデータは必ずシリアライズ化されており byteArray で表現される。
-データの 表現に圧縮した byteArray を追加したため、Remote から put された byteArray が圧縮されているのかそ うでないのかを判断する必要がある。
+* Remote から put されたデータは必ずシリアライズ化されており byteArray で表現される。
+* 圧縮した byteArray の追加により、Remote から put された byteArray が圧縮されているのか判断する必要がある。
+
+# 圧縮機能 - 通信プロトコルの変更
+* Alice の通信におけるヘッダにあたる CommandMessage.classに **シリアライズ状態表すフラグ**と、**圧縮状態を表すフラク** を追加
+* これにより put された DSM はフラグに応じた適切な形式で格納できる。
 
 # 圧縮機能の評価
 RingRelayTest
+![opt](./images/topologyring.svg)
 
 # まとめ
 * Alice が実用的なアプリケーションを記述するための Meta Computation として、データに多態性を持たせ、指定するDSMによってデータ表 現を変える機能を実装した。