view paper/master_paper.toc @ 4:633fe343d3a7

add Chapter 5
author fuchita
date Thu, 14 Feb 2008 05:31:26 +0900
parents f3ef2f99653f
children c6eefabf35c0
line wrap: on
line source

\contentsline {chapter}{\numberline {第1章}序論}{1}
\contentsline {section}{\numberline {1.1}研究背景と目的}{1}
\contentsline {section}{\numberline {1.2}論文の構成}{2}
\contentsline {chapter}{\numberline {第2章}Federated Linda の提案}{3}
\contentsline {section}{\numberline {2.1}LindaとFedarated Linda}{3}
\contentsline {subsection}{\numberline {2.1.1}Linda}{3}
\contentsline {subsection}{\numberline {2.1.2}Federated Linda}{4}
\contentsline {section}{\numberline {2.2}Federated Linda の分散プログラミング}{5}
\contentsline {subsubsection}{Local Access Protocol}{5}
\contentsline {subsubsection}{Protocol Engine}{5}
\contentsline {subsubsection}{Link Configuration}{5}
\contentsline {section}{\numberline {2.3}実装の段階分け}{5}
\contentsline {subsection}{\numberline {2.3.1}type 1}{6}
\contentsline {subsection}{\numberline {2.3.2}type 2}{6}
\contentsline {subsection}{\numberline {2.3.3}type 3}{7}
\contentsline {section}{\numberline {2.4}現段階における実装}{8}
\contentsline {subsection}{\numberline {2.4.1}type2の実装}{8}
\contentsline {subsubsection}{Linda Server}{8}
\contentsline {subsubsection}{Federated Linda API}{10}
\contentsline {subsubsection}{C言語のAPI}{10}
\contentsline {subsubsection}{Perl, Python, Ruby の API}{11}
\contentsline {subsection}{\numberline {2.4.2}Local Access Protocol}{13}
\contentsline {subsubsection}{ポーリング型のプログラミングスタイル}{13}
\contentsline {subsubsection}{Protocol Engine へのアクセス}{14}
\contentsline {subsection}{\numberline {2.4.3}Protocol Engine}{15}
\contentsline {subsection}{\numberline {2.4.4}Link Configuration}{17}
\contentsline {subsubsection}{トポロジを表すXML}{17}
\contentsline {subsubsection}{接続を行うモジュール}{19}
\contentsline {chapter}{\numberline {第3章}Compact Routing の実装によるtype 2 Federated Linda の評価}{21}
\contentsline {section}{\numberline {3.1}Compact Routingのアルゴリズム}{21}
\contentsline {section}{\numberline {3.2}実装の詳細}{22}
\contentsline {subsection}{\numberline {3.2.1}Protocol Engineによるルーティングテーブルの構築}{23}
\contentsline {subsubsection}{ローカルエリアネットワークの構築}{24}
\contentsline {subsubsection}{LandMark情報の更新}{24}
\contentsline {subsection}{\numberline {3.2.2}Protocol Engineの継承による実装}{25}
\contentsline {subsection}{\numberline {3.2.3}ルーティングテーブルの構築、更新処理}{27}
\contentsline {section}{\numberline {3.3}ルーティングテーブル構築時間の測定}{30}
\contentsline {subsection}{\numberline {3.3.1}測定の流れ}{30}
\contentsline {subsection}{\numberline {3.3.2}測定結果}{30}
\contentsline {section}{\numberline {3.4}考察}{32}
\contentsline {chapter}{\numberline {第4章}Java言語による実装}{33}
\contentsline {section}{\numberline {4.1}現実装(type2)における問題点}{33}
\contentsline {subsection}{\numberline {4.1.1}テスト駆動開発における問題点}{33}
\contentsline {section}{\numberline {4.2}Federated Lindaへの機能拡張}{34}
\contentsline {subsection}{\numberline {4.2.1}Java言語によるLindaサーバーとLinda APIの実装}{34}
\contentsline {section}{\numberline {4.3}Java言語によるLindaサーバーの実装}{34}
\contentsline {subsection}{\numberline {4.3.1}Java New I/\penalty \exhyphenpenalty Oを用いたネットワークプログラミング}{35}
\contentsline {subsubsection}{Buffer}{35}
\contentsline {subsubsection}{Channel}{36}
\contentsline {subsubsection}{Selector}{37}
\contentsline {section}{\numberline {4.4}Java版LindaサーバーとLinda APIの詳細}{39}
\contentsline {subsection}{\numberline {4.4.1}C言語構文に対する置き換え}{39}
\contentsline {subsubsection}{構造体をクラスで置き換える}{39}
\contentsline {subsubsection}{関数ポインタをクラスとインターフェースで置き換える}{41}
\contentsline {subsection}{\numberline {4.4.2}実装の詳細}{43}
\contentsline {subsubsection}{Lindaサーバー(FDLindaServ.java)}{43}
\contentsline {subsubsection}{Linda API}{45}
\contentsline {subsection}{\numberline {4.4.3}リファクタリングを用いた設計の向上}{46}
\contentsline {subsubsection}{リファクタリングとは}{46}
\contentsline {subsubsection}{JDT(Java Development Tools)によるリファクタリング}{46}
\contentsline {subsubsection}{問題提起}{47}
\contentsline {subsubsection}{メソッドの抽出}{47}
\contentsline {subsection}{\numberline {4.4.4}C言語版とJava言語版のプログラムコード数}{50}
\contentsline {chapter}{\numberline {第5章}分散デバッグ機能と評価}{51}
\contentsline {section}{\numberline {5.1}分散環境におけるデバッグ}{51}
\contentsline {subsection}{\numberline {5.1.1}二分法による逐次アルゴリズムのデバッグ}{52}
\contentsline {subsection}{\numberline {5.1.2}シーケンシャルなデバッグ手法の問題点}{52}
\contentsline {subsubsection}{単体のデバッグが有効な例}{53}
\contentsline {subsubsection}{単体のデバッグでは全体の正しさをデバッグできない例}{53}
\contentsline {section}{\numberline {5.2}分散デバッグの機能}{54}
\contentsline {subsection}{\numberline {5.2.1}分散アルゴリズムにおいてデバッグすべき対象}{54}
\contentsline {subsubsection}{デッドロック}{54}
\contentsline {subsubsection}{ライブロック}{55}
\contentsline {subsubsection}{スケーラビリティ}{55}
\contentsline {subsubsection}{通信の集中}{55}
\contentsline {subsubsection}{大量のパケットの送信}{55}
\contentsline {subsection}{\numberline {5.2.2}スナップショットによる分散デバッグ}{56}
\contentsline {section}{\numberline {5.3}通信状態のデバッグインターフェース}{57}
\contentsline {subsection}{\numberline {5.3.1}Java版Linda サーバーへの機能実装}{57}
\contentsline {subsection}{\numberline {5.3.2}視覚的に通信状態を確認するツールの開発}{57}
\contentsline {section}{\numberline {5.4}Compact Rotingの実装を用いた評価}{57}
\contentsline {subsection}{\numberline {5.4.1}通信量のスケーラビリティ}{57}
\contentsline {subsection}{\numberline {5.4.2}評価}{57}
\contentsline {section}{\numberline {5.5}考察}{57}
\contentsline {chapter}{\numberline {第6章}結論}{59}
\contentsline {section}{\numberline {6.1}まとめ}{59}
\contentsline {section}{\numberline {6.2}今後の課題}{59}
\contentsline {chapter}{謝辞}{60}
\contentsline {chapter}{参考文献}{61}
\contentsline {chapter}{発表文献}{62}