Mercurial > hg > Papers > 2015 > nozomi-sigos
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によってデータ表 現を変える機能を実装した。