|
|
|
|
|
|
|
|
|
|
|
分散オペレーティングシステム |
|
プラディープ・K・シンハ 著
水野 忠則 翻訳主観
井手口 哲夫 他訳 |
|
13,900円 |
|
A5 1032頁 |
|
4-87653-008-4 C3055 |
|
|
|
|
|
|
|
|
|
|
|
|
高度情報化社会の発展を支えている重要な技術分野の一つとしてコンピュータサイエンスおよびコンピュータ工学があり、特に分散コンピューティングシステムの基礎となる分散オペレーティングシステムの技術がますます重要になってきている。
オペレーティングシステムは、単体で動作するスタンドアローン型のオペレーティングシステムからネットワーク機能を付加したネットワークオペレーティングシステム、さらには複数のCPUを使用したマルチプロセッサオペレーティングシステムなどへと進展してきている。
本書で紹介する分散オペレーティングシステムは、その中で最も進化したものであり、ネットワーク機能と純粋のオペレーティングシステム機能が完全に一体化したものである。ここで述べる分散オペレーティングシステムは、最新の技術的な概念を含んでいる。本書は、このような分散オペレーティングシステムのすべてを網羅し、かつ体系的にとらえ、分散オペレーティングシステムが何であるかを明確に解説している。
これまで、この分野の多くの本は特定の一研究分野に絞って解説し、分散オペレーティングシステムの全体を理解することは複雑で、時間を要するものであったが、本書は、分散オペレーティングシステムに横たわる基本的な概念と設計原理を分かり易く説明している。また、特定の分散オペレーティングシステムやハードウェアに限定していないために、各種の分散オペレーティングシステムに適用可能な、基本的な概念と設計原理が、一般的に記述されている。また、事例研究として、実際にこれまで研究開発されたきた分散オペレーティングシステムについても詳しく述べている。
特に、本書の特徴の一つとして参考文献が充実しており、インターネットのホームページ参照ポインタによる参考文献が記載されている。これにより、現時点での分散オペレーティングシステムに関する技術が容易に入手できるようになっており、さらに、インターネットを利用することによって、本書以降の最新の状況をも入手することができる。さらに、各章の最後には豊富な演習問題が載っており、それを解くことにより、レベルの高い理解度が得られように構成されている。
したがって本書を勉強することにより、ネットワークを介した高度なコンピュータシステムを実現する各種の技術を取得でき、実際の実装、そして新たな技術への展開をはかることが可能であり、この分野の最新技術を学ぶ技術者や研究者にとって有益な著書である。
本書の構成
本書は12章から構成されている。
第1章は、分散オペレーティングシステムに関する基本的な技術についての導入章である。
過去20年間において、マイクロエレクトロニック技術の発展により高速でかつ低価格なプロセッサを、また通信技術の発展により経済性のある高能率なコンピュータネットワークが出現してきたが、これらの技術により複数プロセッサの相互接続構成を可能にしたコンピュータ構成法(疎結合システム形態)としての分散コンピューティングシステムについてまず解説している。
本書では、「分散システム」という用語は分散オペレーティングシステムを利用する分散コンピューティングシステムに対してのみ使用している。したがって、「分散システム」を定義するまでは、「分散コンピューティングシステム」は疎結合システムを表している。すなわち、分散コンピューティングシステムは通信ネットワークを介して相互に接続したシステムであり、このシステムの任意の2つのプロセッサ間通信は通信ネットワーク上でのメッセージパッシングによって行われることを基本としている。
このように本章では、分散コンピューティングシステム、分散オペレーティングシステム、および分散オペレーティングシステムの基本技術についての特徴を解説し、歴史的な背景とともに分散コンピューティングシステムのモデル、さらに本書の中心的テーマである分散オペレーティングシステムの設計の課題について分かり易く記述している。
また、本書において事例研究として紹介されている分散コンピューティング環境(Distributed Computing Environment: DCE)についても簡単な解説も行っている。
第2章では、コンピュータネットワークの簡単な紹介を行うととも、最新のネットワーク技術を述べる。
分散システムは基本的にハードウェアやソフトウェアの資源をもつ複数のノードから構成されるコンピュータネットワークである。このような分散システムの性能や信頼性は、コンピュータネットワークの性能や信頼性に依存ため、分散オペレーティングシステムを学習するためには少なくともコンピュータネットワークの基本知識が必要となる。本章では分散オペレーティングシステムの設計の基礎として必要となるネットワークを構成するための概念と設計について解説している。具体的には、ネットワークのタイプ(LANとWAN)の特徴、LAN技術としてのCDMA/CDプロトコル、トークンリングプロトコル、さらにLAN技術の応用事例、WAN技術としての交換技術、中継技術、通信プロトコル、イーサネットプロトコル事例について述べており、この章を理解することで基本的なコンピュータネットワークについての基本技術を十分理解することができ、コンピュータネットワークについての入門書としてもこの章を活用できる。
第3章では、分散オペレーティングシステムの重要な機能の一つであるプロセス間通信機構の設計に必要となるメッセージパッシング機構について説明している。
分散システムにおいて、2つのコンピュータがお互いに通信するためには、プロセス間通信(IPC)機構を提供する必要があり、このプロセス間通信機構を実現する代表的な方法として、メッセージパッシング方式がある。
このメッセージパッシング方式は、共有する情報(データ)はメッセージ(メッセージは情報のブロックである)の形式で転送される。すなわち、分散システムのプロセスはメッセージの交信によって通信を行う。
このメッセージパッシングシステムは、メッセージに基づくIPCプロトコルの集合を提供し、複雑なネットワークプロトコルや複数の不均質なプラットフォームの詳細をプログラマに見えないようにする分散オペレーティングシステムの重要なサブシステムであり、他の高位レベルのIPCシステム、例えば遠隔手続き呼び出し (第4章参照)や分散共用メモリ(第5章参照)を構築するための重要な機能となる。
第4章では、分散アプリケーション共通に使用できる汎用的なメッセージパッシングモデルに基づくプロセス間通信(IPC)プロトコルとしての遠隔手続き呼び出し(RPC)の機能について説明している。
RPC機能は全ての分散アプリケーションに対する汎用的なものではないが、多くの分散アプリケーションを構築するために適した価値ある通信機構を提供するものであり、分散システムにおいて幅広く受け入れられているIPC機構となっている。このIPC機構の持つ単純な呼び出し形式、親しみ易いセマンティクス、理解しやすいインタフェース仕様、使用の容易性、汎用性、効果性などの点からIPC機構について分かり易く解説している。
第5章では、メッセージパッシングと対称的な情報の共有方法の一つであるプロセスに共有アドレス空間を提供する分散共有メモリ(DSM)の機能について述べている。
この分散共有メモリ方式では、プロセスはこの共有アドレス空間を通常のローカルメモリを使うのと同じ方法で使うことができる。
これまでプロセス間通信のための共有メモリの利用は、密結合共有メモリマルチプロセッサにおいて動作する分散プロセスを対象としていおり、最近まで粗結合の分散メモリマルチプロセッサにおけるプロセス間通信機構はメッセージパッシングに限定されていた。しかし、最近の粗結合分散メモリシステムは、メッセージパッシング通信システムの上に、抽象的な共有メモリを提供するための共有メモリ抽象層を導入することによって、例えばネットワークを介する分散共有メモリの機能を実現している。この階層は、オペレーティングシステムカーネルの内部に実現されるか、もしくは適切なシステムカーネルのサポートを使った実行時ライブラリルーチンとして実現されることもある。
第6章では、分散システムにおいて並行に動作する複数のプロセス間で生じるシステム資源の共有に関わる同期機構について説明している。
分散システムでは、使用可能な資源の数は限定されているため、あるプロセスが資源を競合するとき、他の並行して動作しているプロセスの行動に必然的に影響を与えることになり、プロセス間の資源の共有は協調的または競合的と言える。例えば、複数のプロセスから同時に使用できないような資源に対して、他のプロセスがその資源を使用しているならば、それを使用しようとするプロセスは待たなければならない。場合によっては、所望の性能を達成するために、または実行されている計算上の都合で、並行プロセスは協調しなければならない。
このようなプロセス間の協調と競合における適正な相互動作を保証するためのルールは同期機構として実現されており、本章は分散システムに適した同期機構についてクロック同期、事象順序制御、相互排他、デッドロック、選択アルゴリズムなどの重要な同期機構の課題を述べる。
第7章では、ネットワークによって相互接続された分散システムは多くの資源を含んでおり、これらのシステム資源に関する資源管理の機構について資源の多重性およびシステムの透過性の観点から述べる。
分散システムにおける使用可能な資源の集合は、ユーザの観点から見ると、1つの仮想システムのように動作する。したがって、ユーザがあるプロセスの実行を要求すると、プロセスへ資源の割り当てを制御すること、及びこれらの割り当てに従ってシステムの適切なノードにプロセスを転送することは、分散オペレーティングシステムの重要な機能の一つであり、資源管理と呼ばれる。ここでは、資源管理の機能について分散システムにおけるプロセスをスケジュールする上で、システム資源の使用、応答時間、ネットワーク輻輳、スケジュールオーバヘッドを最適化するためのスケジューリング技法としてタスク割り付け方法、負荷バランス方法、負荷分担方法の動作原理とそれぞれの特徴の説明に加えて、良好な全体スケジューリングアルゴリズムの望ましい特性についても述べる。
第8章では、前章で述べた資源管理を受けて、分散オペレーティングシステムにおけるプロセス管理の機構について述べる。
分散オペレーティングシステムにおけるプロセス管理の主な目標は、システム全体の処理資源を、すべてのプロセスの間で、共有することにより、それらを可能な限り効率良く使用するようにすることである。この目標を達成するために分散オペレーティングシステムで使用される3つの重要な概念、すなわちプロセスがどのプロセッサに割り当てられるべきかを決定するためのプロセッサ配置、プロセスが現在の場所から割り当てられたプロセッサへ移動するためのプロセス移動、および処理能力の向上に向けて細分された並列処理を実現するためのスレッドについて述べる。
第9章では、分散環境におけるファイルシステムである分散ファイルシステムの設計と実装について説明する。
分散ファイルシステムは、利用者と記憶装置とが物理的に散在していることから、既存のファイルシステムより複雑であり、単一プロセッサシステムでのファイルシステムによる永続的な記憶や情報の共有という利点に加えて、分散ファイルシステムでは遠隔情報共有、利用者移動性、可用性、ディスクレスワークステーションの機能をサポートしており、これらの機能についても述べる。
分散ファイルシステムでは、記憶装置サービス、純粋ファイルサービス、名前サービスを提供する。記憶装置サービスの設計と実装は、集中ファイルシステムの記憶装置サービスと同じである。名前サービスの設計と実装の詳細は次章に述べる。この章では分散ファイルサービスの中の純粋なファイルサービスの設計と実装について主に扱う。
第10章では、分散システムにおける位置透過性の目標を達成する上で非常に重要な役割を果たす名前付けの機能の設計および実装についての各種の取り組みを述べる。
分散システムは、プロセス、ファイル、I/O装置、メールボックス及びノードといった幾つかのタイプのオブジェクトをサポートしている。分散システムの名前付け機能により、ユーザ及びプログラムは各種のオブジェクトに文字列の名前を割り当ることで、これらの名前によってオブジェクトを指定することができる。名前付けシステムは、名前付け機能と位置特定機能から構成されており、ネットワークにおいてオブジェクトが実際にどのように、またどこに位置しているのかについての詳細をユーザに対して隠蔽することが可能となる。また、オブジェクトの複製を扱う場合にはさらに進んだ抽象化レベルを提供し、さらにオブジェクト共有をも実現しており、ここでは透過的移動、オブジェクトの複製の実現と共有に関する設計と実装について説明している。
第11章では、分散システムにおけるセキュリティの機構について述べている。
コンピュータシステムのセキュリティの目標は、そのシステムのセキュリティ方針によって決まり、それらの目標を達成するための方法はセキュリティ機構と呼ばれる。コンピュータセキュリティの共通目標は、安全性、プライバシ、信憑性、完全性であり、この点についての機構を説明する。
一方、セキュリティにおいてはユーザ認証およびアクセス制御の重要な機能があり、さらには分散システムの環境、用途及び実装に関連するため通信セキュリティと呼ばれる第三の機能が重要であり、通信実体の信憑性とメッセージの完全性が含まれる。
セキュリティは、外的要因に対してのセキュリティと分散システムそのものに内在するセキュリティに大きく分けられるが、これらの双方を提供することは、単一の制御点というものが存在しないことと、データ通信において不安全なネットワークを使用するため集中型システムよりも分散システムの方が難しい。外部要因に関するセキュリティは分散システムに内在するセキュリティと同等に重要なものであるが、コンピュータセキュリティに関してオペレーティングシステムとして後者の機構を扱っている。したがって、本章では、分散システムにおけるセキュリティを提供するために通常用いられている機構について説明している。
第12章では、 具体的な分散オペレーティングシステムについて、これまでの章で述べた概念に関連する4つの実際の分散オペレーティングシステムの事例研究について述べている。
本章で説明する事例は、Amoeba(オランダのVrije大学)、V-System(アメリカのstanford大学)、Mach(アメリカのCarnegie-Mellon大学)およびChorus(フランスのINRIA)である。最初の2つは大学における研究プロジェクトであり、あとの2つもまた研究プロジェクトとして始まったが、現在では製品化されている。これらのシステムは現在も様々な開発と改良が行われている。ここで取り上げている事例を理解することによって、これまでの章で紹介した様々な概念について読者はより一層の理解を深めることができる。特に、各システムの設計の目的、システムアーキテクチャ、そして重要で価値のある特徴についてのみ焦点を当てて説明している。また、参考文献には他の幾つかのシステムに関する資料が列挙されており、これらのシステムも分散オペレーティングシステムに関する研究活動を行っている人にとって興味深いものであろう。
本書は、分散オペレーティングシステムの簡明で、分かり易い解説を望んでいる人を対象としおり、分散オペレーティングシステムの授業における理想的な教科書としても大学学部高学年および大学院で教科書として使用可能である。また、本書は、分散オペレーティングシステムまたは分散アプリケーションシステム、さらにはコンピュータネットワークに基づく各種アプリケーションの設計と開発を行おうとしているシステム管理者、専門ソフトウェア技術者、コンピュータ科学者・研究者によっても自習用テキストとして有効な著書である。 |
|
|
|
|
|
|
|