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>