Mercurial > hg > Members > nobuyasu > presen
changeset 10:eaf3f3d169fe
modify index.html
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 08 Sep 2011 17:23:58 +0900 |
parents | 95d46a58d75e |
children | ccdc3d3faafd |
files | OpenSourceConference/index.html |
diffstat | 1 files changed, 68 insertions(+), 53 deletions(-) [+] |
line wrap: on
line diff
--- a/OpenSourceConference/index.html Thu Sep 08 12:40:56 2011 +0900 +++ b/OpenSourceConference/index.html Thu Sep 08 17:23:58 2011 +0900 @@ -221,10 +221,10 @@ <ul> <li>RFB Protocol</li> <li>データ転送量</li> + <li>ZRLE Encodingの問題</li> <li>データ転送に用いたMulticastQueueについての説明</li> - <li>TreeVNCのデモ</li> +<!-- <li>TreeVNCのデモ</li> --> <li>木構造の再構築</li> - <li>ZRLE Encodingの問題</li> </ul> </div> <!-- PAGE --> @@ -664,25 +664,7 @@ if (zrleInStream == null) zrleInStream = new ZlibInStream(); </pre> - <li>JavaではZlibの辞書を取り出す機能がなかった為、このような方法をとることになった。</li> - </div> - <!-- PAGE --> - <div class="slide"> - - - </div> - <!-- PAGE --> - <div class="slide"> - <h1>MulticastQueue</h1> - <li>MulticastQueueはjava.util.CountDownLatchを用いて実装されたクラスである。 </li> - <li>クライアントから接続されると、データ転送用のスレッド(sender)が走る。 </li> - <li>このスレッドは次に流すデータが来るまでは待機して置かなければならない。そして流すべきデータがくるとまた動き始めなければならない。</li> - <li>このスレッドの待機・解放を行うのがMulticastQueueとなる。 </li> -<!-- - <small> - <li>CountDownLatchはカウントを用いてスレッドの待機と解放を行えるクラスである。</li> - </small> ---> + <li>JavaではZlibの辞書の取り出しが実装されていなかった為、このような方法をとることになった。</li> </div> <!-- PAGE --> <div class="slide"> @@ -696,6 +678,56 @@ </div> <!-- PAGE --> <div class="slide"> + <h1>MulticastQueue</h1> + <li>MulticastQueueからデータを取り出し子供に送っている部分のソース</li> + <pre> +LinkedList<ByteBuffer> bufs = c.poll(); +int inputIndex = 0; +ByteBuffer header = bufs.get(inputIndex); +if (header==null) continue; +writeToClient(os, bufs, inputIndex); +</pre> +<li>c.poll(inputIndex) 内部では次の処理を行っている。</li> +<pre> +latch.await(); +return next; +</pre> +<li>次のデータが用意できるまでawait()で待つのである。</li> + </div> + <!-- PAGE --> + <div class="slide"> + <h1>MulticastQueue</h1> + <li>データは作られるとMulticastQueueにputされる。</li> + <p><small>put内部ではつぎの処理が行われる。</small></p> + <pre> +Node<T> next = new Node<T>(item); +tail.set(next); +tail = next; + </pre> + +<small> +<p> +set()内部ではlatchがcountDown()され、await()で止まっていたスレッドが動き出す。 +</small> + </div> + <!-- PAGE --> + <div class="slide"> + <h1>MulticastQueue</h1> + <li>MulticastQueueは次の次のデータへの参照を順序良く行うためのクラスである。</li> + <li></li> + + <li>MulticastQueueはjava.util.CountDownLatchを用いて実装されたクラスである。 </li> + <li>クライアントから接続されると、データ転送用のスレッド(sender)が走る。 </li> + <li>このスレッドは次に流すデータが来るまでは待機して置かなければならない。そして流すべきデータがくるとまた動き始めなければならない。</li> + <li>このスレッドの待機・解放を行うのがMulticastQueueとなる。 </li> +<!-- + <small> + <li>CountDownLatchはカウントを用いてスレッドの待機と解放を行えるクラスである。</li> + </small> +--> + </div> + <!-- PAGE --> + <div class="slide"> <h1>MulticastQueueの問題点</h1> <li>Clientがデータを読み込まないとデータが溜まりメモリを圧迫してしまう。 </li> <p style="text-align: center;"> @@ -705,42 +737,29 @@ <!-- PAGE --> <div class="slide"> <h1>MulticastQueueの問題点</h1> - <li style="text-align: center;">解決策</li> + <li>TimeOut(TO)スレッドを走らせ、一定の時間データを読み込まなければ代わりにこのTOが読み込むようにする。</li> <p style="text-align: center;"> - <img src="./pix/TimeOut2.png"> - </p> - <small> - <li>TimeOut(TO)スレッドを走らせ、一定の時間データを読み込まなければ代わりにこのTOが読み込むようにする。</li> - </small> - </div> - <!-- PAGE --> - <div class="slide"> - <h1>TreeVNCのデモ</h1> - <li>では実際に動かしてみる。</li> - <li></li> + <img src="./pix/TimeOut2.png"><br> + 解決策 + </p> </div> <!-- PAGE --> <div class="slide"> - <h1>TreeVNCの利点と欠点</h1> - <ul> - <li>ケーブル1本への負荷が減る。一極集中型よりスループットを維持できる。</li> - <li>無線を使われると遅くなる。</li> - </ul> + <h1>テスト環境の構築</h1> + <li>CUI版のVNCクライアントを作成</li> + <li>48台あるクラスタでCUI版のクライアントをはしらせてVNCをかけさせる。</li> + <li>最初の1台目と48台めをGUI版のクライアントで接続を行い見比べてみる。 </li> </div> <!-- PAGE --> <div class="slide"> - <h1>テスト環境について</h1> - <li>CUI版のVNCクライアントを作成</li> - <li>48台あるクラスタでCUI版のクライアントをはしらせてVNCをかけさせる。</li> - <li>最初の1台目と50台めをGUI版のクライアントで接続を行い見比べてみる。 </li> + <h1>TreeVNCの発端</h1> + <li>大学のB3でうける授業の1つ、programming4で作り始めたことがきっかけ。</li> + <li>programming4は作りたいものを提案して作る授業。 </li> + <li>授業が終わっても改良を加えていた。</li> + <li>B4になりこの場で発表してみることになった。</li> </div> <!-- PAGE --> - <div class="slide"> - <h1></h1> - <li></li> - <li></li> - </div> - <!-- PAGE --> +<!-- <div class="slide"> <h1>既存のプログラムとの比較</h1> <li>VNC Reflector</li> @@ -749,11 +768,7 @@ <li>VNC Reflecotrにクライアントが接続することでVNCを行うことができる</li> </ul> </div> - <!-- PAGE --> - <div class="slide"> - <h1></h1> - <li></li> - </div> +--> <!-- PAGE --> </div> </body>