view paper/master_paper.toc @ 17:32ba010cf7da

slide
author fuchita
date Mon, 18 Feb 2008 05:05:25 +0900
parents 9bbcbcd1c3ec
children
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 {subsubsection}{大域的なプログラム状態とは}{56}
\contentsline {subsubsection}{スナップショットを用いた分散デバッグ手法}{57}
\contentsline {subsubsection}{スナップショットのモニターツールと逐次デバッガによるデバッグ}{57}
\contentsline {subsection}{\numberline {5.2.3}分散デバッグ機能のスケーラビリティ}{58}
\contentsline {section}{\numberline {5.3}通信状態デバッグインターフェースの実装}{59}
\contentsline {subsection}{\numberline {5.3.1}Java版Linda サーバーへの機能実装}{60}
\contentsline {subsection}{\numberline {5.3.2}実装の詳細}{61}
\contentsline {subsubsection}{機能拡張を行ったLindaサーバーの通信ループ}{62}
\contentsline {subsubsection}{ComDebug\_Clientの出力ログ}{63}
\contentsline {subsection}{\numberline {5.3.3}視覚的に通信状態を確認するツールの開発}{64}
\contentsline {subsubsection}{バインディングとは}{64}
\contentsline {subsubsection}{通信ログ・モニターツール}{65}
\contentsline {section}{\numberline {5.4}Federated Lindaの実装を用いたデバッグインターフェースの評価}{66}
\contentsline {subsection}{\numberline {5.4.1}評価条件}{66}
\contentsline {subsubsection}{問題点}{66}
\contentsline {subsubsection}{実験を行う Federated Lindaの構成}{67}
\contentsline {subsubsection}{通信状態のデバッグを行う実験}{68}
\contentsline {subsection}{\numberline {5.4.2}評価}{68}
\contentsline {subsubsection}{バグ要因の特定}{70}
\contentsline {subsubsection}{デバッグにおけるモニターツールの有用性}{70}
\contentsline {section}{\numberline {5.5}考察}{71}
\contentsline {chapter}{\numberline {第6章}比較}{72}
\contentsline {section}{\numberline {6.1}Jini}{72}
\contentsline {section}{\numberline {6.2}Overlay Weaver}{73}
\contentsline {chapter}{\numberline {第7章}結論}{74}
\contentsline {section}{\numberline {7.1}まとめ}{74}
\contentsline {section}{\numberline {7.2}今後の課題}{74}
\contentsline {chapter}{謝辞}{75}
\contentsline {chapter}{参考文献}{76}
\contentsline {chapter}{発表文献}{77}