• 検索結果がありません。

位置透過な資源操作方式によるプロセス生成機構

N/A
N/A
Protected

Academic year: 2021

シェア "位置透過な資源操作方式によるプロセス生成機構"

Copied!
14
0
0

読み込み中.... (全文を見る)

全文

(1)Vol. 44. No. SIG 10(ACS 2). 情報処理学会論文誌:コンピューティングシステム. July 2003. 位置透過な資源操作方式によるプロセス生成機構 石. 井. 陽. 介†. 谷. 口. 秀. 夫††. 分散環境では,CPU やメモリといった計算機資源を複数利用して,負荷分散を実現できる.この 負荷分散を効率的に実現するためには,プロセスを位置透過に再配置する機構が必要になる.そこ で,本論文では,位置透過な処理を実現する資源操作方式を提案する.また,提案方式を基にしたプ ロセス生成機構について述べる.提案方式では,オペレーティングシステムが制御し管理する対象を 資源として分離し,独立化させ,各資源を位置透過に同一形式で扱う.資源を分離する際,資源の粒 度を小さくすることで,各資源操作の処理負荷を小さくする.本方式に基づき,プロセスの構成要素 を細分割する.これにより,位置透過で効率良いプロセス生成処理を実現する.本論文では,これら の実現例として,Tender( The ENduring operating system for Distributed EnviRonment )オ ペレーティングシステムにおける実現方式を示し,資源操作処理,ならびにプロセス生成削除処理の 性能を示す.. Process Creation Facility Based on Location-transparent Resource Operation Method Yousuke Ishii† and Hideo Taniguchi†† In distributed system a load distribution can be realized by using several CPUs and memories. To realize the load distribution a remote process creation and a process migration are needed. This paper proposes a resource operation method and describes a process creation facility based on the method. In this method the objects to be controlled and managed by operating system, which are called resources, are divided finely. The resources can be accessed uniformly and location-transparently. The processing time of resource operations becomes short. Based on this method, a process can be composed by the resources, and can be created efficiently. The proposed method and the facility are implemented on Tender operating system. This paper describes the implementation and shows the performance.. が高い計算機上のプロセスの応答時間を短縮すること. 1. は じ め に. が可能である.また,メモリ負荷の分散により,メモ. 近年,複数の計算機を結んだ分散環境の利用が進ん. リ利用率の低い計算機を有効利用することで,仮想記. でいる.分散環境では,計算機の動的な追加や切り離. 憶機構を利用する際に起こる実メモリ空間と外部記憶. しにより,システム内の構成を柔軟に変更できる.ま. 装置間の入出力操作を削減することが可能である.こ. た,システム内に分散する計算機資源をプロセス間で. れらの負荷分散を行うためには,システム内で,各計. 共有し ,統合的な処理環境を実現可能である.特に,. 算機上の計算機資源を位置透過に,かつ効率良く操作. 分散環境では,複数の計算機資源を利用可能なため,. できる方式を提供することが必要不可欠である.さら. 負荷分散を行える.分散させる負荷には,CPU 負荷,. に,プロセスを静的に効率良く配置するためには,プ. ならびにメモリ負荷がある.CPU 負荷の分散により,. ロセスを位置透過に生成する機構が必要であり,また,. CPU 利用率の低い計算機,つまり CPU 性能を持て. 動的に再配置するためには,プロセス移動機構1) が必. 余している計算機を有効利用することで,CPU 負荷. 要である.したがって,分散環境の特徴を生かすため には,システム内の資源操作方式,ならびにプロセス の管理手法が重要になる.そこで,本論文では,分散. † 九州大学大学院システム情報科学府 Graduate School of Information Science and Electrical Engineering, Kyushu University †† 九州大学大学院システム情報科学研究院 Graduate School of Information Science and Electrical Engineering, Kyushu University. 環境において,効率的に負荷分散を行う機構を実現す るために,位置透過な資源操作方式,ならびにこの資 源操作方式を基にした位置透過なプロセス生成機構に ついて述べる. 62.

(2) Vol. 44. No. SIG 10(ACS 2). 位置透過な資源操作方式によるプロセス生成機構. 既存の多くのオペレーティングシステム(以降,OS と呼ぶ)では,OS が制御し管理する対象の粒度が大. 63. 2. 位置透過な資源操作方式. 1 つの制御対象として扱っている.しかし,プロセス は,多くの要素により構成されているため,プロセス. 2.1 課題と対処 OS は,制御する対象を資源として管理している.以 降では,資源とは,単独で存在し,資源を制御し管理. という制御対象の単位が大きくなり,プロセスの生成,. する処理モジュールの外から資源の識別と操作ができ. 移動,および削除の処理負荷が大きくなってしまう問. るものとする.つまり,応用プログラム( 以降,AP. 題がある.したがって,たとえば,プロセスの再配置. と呼ぶ)からも,資源の識別と操作が可能である.. きい.たとえば,既存の多くの OS では,プロセスを. 処理を行う際,その処理自身の負荷が大きくなるため, 負荷分散の効果を低下させてしまうという問題がある.. 分散環境では,効率的に負荷分散を行えるように, システム内で,位置透過なプロセス生成処理を効率良. そこで,本論文では,位置透過に,かつ効率良く操. く実現することが必要である.このためには,システ. 作可能な資源操作方式を提案する.本論文で提案する. ム内に存在するどのプロセスからも,システム内の資. 資源操作方式では,OS の制御対象を細分割すること. 源を位置透過に,かつ効率良く操作できるように方式. で,その粒度を小さくしている.また,分割した各々. を提供しなくてはならない.しかし,従来の方式では,. を資源として独立化させ,システム内で位置透過に扱. Sprite 3) のように,入出力デバイスのような一部の計. えるようにする.これにより,効率的に負荷分散を行 えるように,システム内に存在するどのプロセスから. 算機資源だけしか透過的に扱えない問題がある.また, V 4) のように,マイクロカーネルモデルを基にして,. も,システム内の資源を位置透過に,かつ効率良く操. すべての資源を扱える方式もある.しかし,資源の粒. 作できるようする.また,従来は,個別に独立した操. 度が大きいため,さらなる分割が可能な資源の生成削. 作ができなかった制御対象についても,資源として扱. 除を行う際に,構成要素の一部は再利用可能な場合が. えるようにすることによって,効率の良い位置透過な. あるにもかかわらず,逐一生成や削除が必要になり効. プロセス生成処理を実現できるようにする.また,提. 率が悪い.さらに,資源操作時に必要な呼び出し処理. 案方式を基にしたプロセス生成機構について述べる.. に要するオーバヘッドが大きいという問題もある.し. これにより,低い負荷でプロセス生成削除処理を実現. たがって,高速で,かつ効率の良い位置透過な資源操. し,効率的に負荷分散を行えるようになる.. 作処理を提供する必要がある.. 本論文で提案する位置透過な資源操作方式,ならび. しかし,既存の多くの OS では,OS が制御する対. に位置透過なプロセス生成機構は,Tender オペレー. 象をすべて資源として管理しているわけではない.こ. ティングシステムに実現した.文献 2) の Tender で. のため,資源として管理されていない対象については,. は,スタンド アロン環境において,資源の分離と独立. その識別と操作が制限されてしまう.また,資源とし. 化を基にした資源操作方式,ならびにプロセス生成実. て管理されていない対象は,当該の対象を利用する資. 行機構を実現している.また,資源の分離と独立化の. 源が存在しなければ,単独で存在することもできない.. 特徴を生かした機能として,プロセス生成削除の高速. たとえば,仮想記憶空間は,これを利用するプロセス. 化を実現している.しかし,位置透過な資源操作処理. の存在なしには存在できない.さらに,複数の構成要. は実現しておらず,位置透過なプロセス生成処理も行. 素からなる対象を 1 つの資源として扱うと,資源の粒. えない.そこで,本論文では,Tender で実現してい. 度が大きくなる.このような粒度の大きい資源は,資. る資源操作方式を,位置透過に,かつ効率良く操作で. 源の生成や削除を行う際,構成要素の生成や削除を毎. きるように拡張した.また,これを基にして,Tender. 回個別に行う必要がある.このため,資源の生成や削. に位置透過なプロセス生成機構を実現した.さらに,. 除には,多大な処理負荷をともなってしまうという問. 実現した処理について,基本性能の評価を行った.. 題が生じてしまう.. 以降,2 章では,本論文で提案する位置透過な資源. 上記の問題を解決するために,資源の分離と独立化. 操作方式について述べる.3 章では,提案方式を基に. を行う.つまり,既存 OS の資源を細分割する.分割. した位置透過なプロセス生成機構について述べる.4. された資源は,それぞれ必要な情報を持たせて独立化. 章では,提案機構の実現例として,Tender における. させ,位置透過に識別と操作を行えるようにする.こ. 実現方式を示し,評価結果を示す.その後,5 章で関連. の資源の分離と独立化により,資源の粒度が小さくな. 研究との比較について述べ,6 章で本論文をまとめる.. るので,各資源操作に要する負荷を小さくできる.ま た,従来,識別や操作が制限され,独立して存在する.

(3) 64. 情報処理学会論文誌:コンピューティングシステム. July 2003. ことができなかった制御対象に対して,細かな資源操 作が実現できる. しかし,上記の対処法では,資源の細分割を行うた め,資源を細分割しない方法と比べて,資源操作に おける処理効率の低下が懸念される.処理効率を低 下させる要因としては,資源の分割により,資源を管 理するモジュール間の呼び出し回数が増えるため,呼 び 出し 処理に要するオーバヘッド が増大することが 考えられる.さらに,このモジュール呼び出し処理が 計算機間にまたがって行われる場合は,その際の通信 処理オーバヘッド も付加される.そこで,資源を管理 するモジュールを,モノリシックカーネルモデルを基 にカーネル内で実現するようにする.これにより,モ ジュール間の呼び出し処理に要するオーバヘッドを抑. 図 1 位置透過な資源操作処理の様子 Fig. 1 Appearance of location-transparent resource operation.. 制できる. 一方,資源の分割により,複数の構成要素からなる. を行う計算機(以降,ローカル計算機と呼ぶ)内にお. 資源の生成削除処理から,構成資源の生成削除処理を. ける資源操作のインタフェースと,別の計算機(以降,. 独立化でき,資源の生成や削除にともなう処理を高速. リモート計算機と呼ぶ)上の資源操作のインタフェー. 化できるという利得が得られる.具体的には,資源の. スを同一形式にする.ここで,操作対象計算機の判別. 単独存在を可能にすることにより,資源の事前用意や. には,資源名と資源識別子の中に含まれる資源の場所. 保留による再利用で,資源の生成や削除にともなう処. 情報を利用する.ただし,資源操作を要求する際,操. 理を高速化することができる.これにより,特に,複. 作対象計算機を逐一指定することになるため,ローカ. 数の要素より構成されるプロセスの生成削除処理を高. ル計算機内で行う資源操作の処理効率が悪くなるとい. 速化することができる.たとえば,仮想記憶空間が単. う問題がある.そこで,操作対象資源が,ローカル内. 独で存在できれば,プロセス生成処理より以前の負荷. に存在するのか否かを陽に指定できるようにして,か. が小さいときに,仮想記憶空間を作成しておくことに. つ資源操作処理を図 1 のようにする.図 1 における. より,プロセス生成処理を高速化できる.. 処理の流れでは,陽にローカル指定していない場合の. 2.2 対処の具体化 位置透過な資源操作を実現するためには,システム. み,処理依頼先計算機の判別処理を行うようにしてい. 内の全資源を一意に識別でき,同一形式で操作できる. 対象計算機の判別処理が不要になるため,ローカル計. 必要がある.. 算機内における資源操作の処理効率を改善できる.. まず,資源識別のために,全資源に対して,文字列 による資源名,ならびに数字による資源識別子を付与 する.これらを両方利用することにより,AP を記述. る.これにより,陽にローカル指定した場合は,操作. 3. 位置透過なプロセス生成機構 3.1 プロセスの構成. する際の利便性を高め,かつ操作対象資源の特定処理. プロセスとは,プログラムを実行する際,OS がそ. を高速化することができる.このため,資源名と資源. の動作を制御する基本単位である.プロセスは,多く. 識別子の対応関係を管理し,一方を他方へと変換でき. の要素から構成されている.プロセスの構成要素を. るようにする.また,システム内の資源を一意に識別. 図 2 に示す.プロセスの構成要素には,プログラム,. できるようにするために,各資源に付与する資源名と. プロセス管理表,プログラムの実行のために必要なも. 資源識別子の中に,当該資源の場所情報を持たせる.. の(以降,内部資源と呼ぶ) ,プログラムの処理が必要. この資源の場所情報については,システム内の計算機. とするもの( 以降,外部資源と呼ぶ)がある.たとえ. との対応関係をシステム内の特定計算機上で管理し ,. ば,内部資源には,仮想記憶空間,プロセッサ,レジ. システム内で共有して利用するようにする.対応関係. スタ群などがあり,外部資源には,ファイル,ソケッ. を特定計算機で管理することにより,管理情報の追加. トなどがある.プログラムは,テキスト部,データ部,. や更新作業を一元化し,情報の一貫性を保持する.. BSS 部,スタック部(ユーザスタック部,カーネルス タック部)からなる.テキスト部は,プロセッサが実. 次に,位置透過な資源操作のために,資源操作要求.

(4) Vol. 44. No. SIG 10(ACS 2). 位置透過な資源操作方式によるプロセス生成機構. 65. 図 3 遠隔資源を利用したプロセスの構成 Fig. 3 Process composition using remote resources. 図 2 プロセスの構成要素 Fig. 2 Components of process.. とによって構成可能になる.また,各資源は位置透過 に利用可能なため,利用資源の存在場所を意識するこ. 行可能な命令の列である.データ部は,初期値を持つ. となくプロセスを構成することが可能になる.これに. 変数や文字列の集合部分である.BSS 部は,初期値. より,計算機間で共有可能な資源を用いてプロセスを. を持たない変数の集合部分である.スタック部には,. 構成することもできるため,共有可能な資源を効率良. ユーザスタックとカーネルスタックがあり,プロセス. く利用できるようになる.ただし,プロセス構成資源. がそれぞれ,ユーザモード またはカーネルモードで走. が複数の計算機に散在することにより実行時のオーバ. 行するときに利用する.プロセス管理表が持つ情報は,. ヘッド 増大を招き,かえって負荷分散効率が下がるこ. 実行の制御に必要な情報(以降,内部情報と呼ぶ)と. とも考えられる.そこで,実行時のオーバヘッド 増大. プログラム処理が必要とする外部資源の操作に必要な. を防ぐために,プロセスの構成資源として利用可能な. 情報( 以降,外部情報と呼ぶ)に分類できる.. 資源の存在場所に,一定の制約を設ける必要がある.. 3.2 既存 OS の問題点 既存の多くの OS においては,プロセスを 1 つの資 源として扱っており,プログラムやメモリ空間といっ. このため,当該プロセスが利用するプロセッサ資源, レジスタ資源,および メモリ資源については,ともに. たプロセスの構成要素を資源として扱っていない.こ. 設けることにする.. 同一計算機上に存在しなければならないという制約を. のため,プロセスという資源の単位が大きくなり,プ. 本方式により,プロセスを粒度が小さい資源で構成. ロセスの生成,移動,および削除にともなう処理負荷. できる.このため,プロセスの生成削除処理から,当. が大きくなってしまう問題がある.. 該プロセスの構成資源の生成削除処理を独立化させる. 分散環境下では,位置透過なプロセス生成により,. ことができる.したがって,資源の再利用2) により,. システム内で負荷分散を行うことが考えられる.負荷. 構成資源の生成削除処理を簡略化することができるた. 分散を効率的に行うには,負荷分散の効果を低下させ. め,プロセス生成削除処理を高速化することができる.. ないように,低い負荷でプロセス生成処理を行う必要. 位置透過なプロセス生成を行う場合は,プロセスと. がある.したがって,位置透過なプロセス生成処理を,. して実行するプログラムについての情報と,プロセス. 高速かつ省資源に行う必要がある.また,プロセスの. が利用する計算機,すなわち利用するプロセッサにつ. 構成要素の中には,プログラムのようにシステム内の. いての情報が必要になる.本方式では,これらを資源. 計算機間で共有可能な構成要素も存在する.したがっ. として直接指定し,利用することが可能であり,プロ. て,共有可能な構成要素を,計算機間で効率良く共有. セスの位置透過な生成を実現することができる.また,. できる手段を提供する必要もある.. プロセスがプログラム実行時に利用する資源を位置透. 3.3 対 処 法 3.2 節で示した問題を,前章で述べた資源の分離と 独立化を行うことにより解決する.つまり,プロセス. 過に指定し ,利用することも可能である.このため, に存在するプロセッサを利用して実行させることも可. を細分割し,各々を資源として独立化させる.たとえ. 能である.この例を図 3 に示す.図 3 において,計. ば,プロセスの構成要素であるプログラムと仮想記憶. 算機 B 上のプロセスは,計算機 A 上のプログラムを. 空間と実メモリを資源化する.これにより,プロセス. 実行し ,計算機 A,ならびに計算機 C 上のファイル. は,それ自身が利用する資源を自由に組み合わせるこ. を操作し ,さらに,計算機 C 上のプロセスとプロセ. ある計算機上に存在するプログラムを,別の計算機上.

(5) 66. 情報処理学会論文誌:コンピューティングシステム. July 2003. ス間通信を行っていることを表している. さらに,本方式により,プロセス移動処理も高速化 できる.具体的には,移動先で利用する資源のみを移 動させることにより,プロセス移動を実現できる.こ れにより,移動処理にともなう資源生成削除処理,な らびに通信路を介したデータ転送量を削減することが できる.. 4. Tender における実現と評価 4.1 Tender オペレーティングシステム Tender は,プログラム構造を重視し,OS の操作対 象を資源として分離し,独立化させている.Tender. 図 4 資源識別子と資源名 Fig. 4 Resource identifier and resource name.. では,資源を管理しているプログラム部分(以降,資. 規定している.同一種類内通番は OS が資源生成時に. 源管理処理部と呼ぶ)を独立化させるため,表プログ. 決定する.固有名は AP が指定する.. ラム構造という機構を持つ.表プログラム構造とは,. ここで,資源識別子,ならびに資源名については,. プログラム部品と,プログラム部品へのポインタを持. 以下に述べる方式で管理を行う.まず,OS では,資. つプログラムポインタ表からなる.プログラムポイン. 源識別子と資源名の対応関係を管理し,一方を他方へ. タ表の行要素と列要素は,操作する資源の種類と操作. と変換する機能を提供するようにする.具体的に,資. 内容に対応している.資源管理処理部は,資源への操. 源識別子と資源名の変換機能は,資源インタフェース. ,削除( close 系) ,入力 作を,資源の生成( open 系). 制御によって提供される.ただし,資源に付与する資. ,出力( write 系) ,および制御( control 系) ( read 系). 源識別子,ならびに資源名の中には,その資源の存在. の 5 つに分類し,各々をプログラム部品として実現し. 場所を示す情報も格納している.このため,資源の存. ている.プログラムポインタ表は,Tender 特有の部. 在場所が変わる場合,すなわち資源が移動する場合は,. 分である資源インタフェース制御によって管理される.. 当該資源の資源識別子,ならびに資源名を変更する必. 資源インタフェース制御は,プログラム部品の登録,. 要がある.ここで,資源の移動については,AP,も. 削除,および変更を行う機能を提供し,プログラム部. しくはミドルウェアに相当する OS 核外より要求を受. 品への呼び出しを制御している.つまり,各資源の操. けて行うことを想定している.このため,資源の移動. 作に必要な資源管理処理部の呼び出しは,資源インタ. を要求する際には,OS 核外で資源の移動先を指定す. フェース制御へ依頼し,資源インタフェース制御がプ. ることになる.したがって,移動を要求された資源の. ログラムポインタ表を用いてプログラム部品を呼び出. 資源識別子,ならびに資源名の変更内容については,. すようにしている.. OS 核外で把握できるため,資源の移動によって生じ. 資源には,図 4 に示す資源識別子と資源名を付与す. る問題に対しては,OS 核外で必要な対処を行うよう. る.資源識別子は,資源の場所と種類と同一種類内の. にする.また,システム内の計算機が動的に削除され. 通番を情報として有する数字である.資源名は,場所. た場合については,当該計算機上に存在している資源. 名と種類名と固有名からなる文字列である.場所とは,. を利用しているプロセスに対して,OS 側から特に通. 資源が存在する計算機を指す.場所を示す数字(以降,. 知は行わない.したがって,この場合についても,OS. 計算機番号と呼ぶ) ,ならびに名前( 以降,計算機名. 核外で必要な対処を行うようにする.具体的には,計. と呼ぶ)は,システム内の計算機との対応関係ととも. 算機の削除を行う前に,当該計算機上にある資源の中. に,計算機の場所情報表として,システム内の特定計. で,削除後も必要になる資源については,別計算機上. 算機上で管理している.計算機番号と計算機名の中に. へ移動させる処理をあらかじめ行っておくことが考え. は,ローカルを示す番号,ならびに名前を確保してい. られる.. る.具体的には,システム内のすべての計算機におい. 4.2 資源操作方式. ルを示す名前として “tender” を確保している.これ. Tender では,資源の場所情報を含んだ資源名,も しくは資源識別子を利用し,資源インタフェース制御. らを用いることで,資源を陽にローカル指定できるよ. を介することによって,位置透過な資源操作を可能に. うにしている.種類については,OS で数字や名前を. している.ここでは,遠隔資源の操作を行うために,. て,ローカルを示す番号として 0 番を,また,ローカ.

(6) Vol. 44. No. SIG 10(ACS 2). 位置透過な資源操作方式によるプロセス生成機構. 67. 表 1 資源操作のための提供インタフェース Table 1 Interfaces for resource operation. 操作の種類. 形式. 機能( pid:共通引数,処理要求プロセスのプロセス識別子). open. open rsc(rsc name, pid, args, mod). 引数 args を利用して資源を生成し,操作権 mod と資源名 rsc name を付与する.. 非 open. *** rsc(rid, pid, args). 引数 args を利用して資源識別子 rid で指す資源に ***操作を行う. ここでは,*** = “close, read, write, control”.. 図 5 Tender における資源操作処理の様子 Fig. 5 Appearance of location-transparent resource operation on Tender.. 図 6 プロセスを構成する資源 Fig. 6 Component resources of process.. 遠隔手続呼出制御を利用している.遠隔手続呼出制御. を陽に指定するように変更して,自計算機の資源イン. モート計算機では,依頼された処理要求を,ローカル は,遠隔計算機上にある手続きを呼び出す際,データ. タフェース制御に依頼する.資源インタフェース制御. の送受信を行う入出力とのインタフェース整合処理,. では,当該の要求は陽にローカルを指定していると判. 自計算機内での手続呼出代行処理,および呼出し結果. 別し,要求された処理を行う資源管理処理部のローカ. の返送処理を制御している.. ル処理プログラムを呼び出し,その戻り値を返す.こ. Tender における資源操作処理の様子を図 5 に示 す.資源操作は,表 1 の提供インタフェースを利用し. の戻り値は,処理依頼とは逆の手順で,依頼元のロー. て,ローカル計算機の資源インタフェース制御に依頼 する.資源インタフェース制御では,引数の資源名,. カル計算機に返される.. 4.3 プロセス生成機構 4.3.1 プロセスの構成. もしくは資源識別子を調べて,当該の要求が陽にロー. Tender では,資源の分離と独立化により,プロセ. カルを指定しているのか否かの判別を行う.陽にロー. スは多くの資源によって構成されている.プロセスを. カル計算機を指定している場合は,要求された処理を. 構成する資源を図 6 に示す.矢印は,資源の依存関係. 行う資源管理処理部のローカル処理プログラムを呼び. を表している.ここで,資源「プロセス」とは,プロ. 出し,その戻り値を返す.逆に,陽にローカルを指定. セス識別子とプロセス管理表からなり,OS がプログ. していない場合は,要求された処理を行う資源管理処. ラムの動作を制御する単位になる.したがって,プロ. 理部のリモート処理プログラムを呼び出す.リモート. セス生成時には,資源「プロセス」が,生成先計算機. 処理プログラムは,リモート計算機に対して処理の依. 上に生成され動作することになる.次に,資源「プロ. 頼をするため,遠隔手続呼出制御を呼び出す.この遠. グラム」とは,プログラムのテキスト /データのサイ. 隔手続呼出制御では,引数の資源名,もしくは資源識. ズと先頭アドレス,および,プログラムの開始アドレ. 別子と,計算機の場所情報表との整合を取ることによ. スの情報からなり,プログラムの実行形式を隠蔽して. り,処理の依頼先計算機を判別する.この際,依頼先. いる.プログラムの内容は,プレート上に存在してい. がローカル計算機である場合は,その処理要求を陽に. る.ここで,資源「プレート 」とは,永続的な記憶を. ローカル指定し直して,再度,ローカル計算機の資源. 提供するものであり,既存の OS のファイルに相当す. インタフェース制御に処理の依頼を行う.逆に,依頼. る.また,資源「演算」とは,プロセスへのプロセッ. 先がリモート計算機である場合は,通信路を介して,. サ割当て単位を資源化したもので,プロセスとは独立. 当該のリモート計算機に対して処理の依頼をする.リ. して存在する.プロセスは,演算を関連付けることで,.

(7) 68. July 2003. 情報処理学会論文誌:コンピューティングシステム. 表 2 プロセスの生成形態 Table 2 Patterns of process creation.. 図 7 プロセスとメモリ管理関連の資源 Fig. 7 Resources of process and memory management.. 通番. 名称. プロセス 生成先. プログラム 存在先. (1) (2) (3) (4) (5). LL RR LR RL RR. ローカル. ローカル. リモート. リモート. ローカル. リモート. リモート. ローカル. リモート. リモート. 備考. 各リモートは同一. 各リモートは別々. ロセス移動は,まず,移動先計算機上にプロセスを生 成し,生成したプロセスをプロセス変身機能5) を用い て,移動プロセスへと変身させることで実現している.. プロセッサの割当てを受けて走行できる.. このプロセス移動により,動的に負荷分散を行うこと. ここで,プロセスとメモリ関連資源との関係を図 7 に示す.資源「仮想領域」とは,実メモリあるいは外 部記憶装置のデータ格納域情報を仮想化した資源であ. を可能にしている.. 4.3.3 プロセス生成法 位置透過なプロセス生成を実現するためには,生成. る.資源「仮想空間」とは,仮想アドレスの空間であ. したプ ロセスが走行する計算機,ならびにプ ロセス. り,仮想アドレスを実アドレスに変換する変換表に相. として実行するプ ログラムを,位置透過に指定でき. 当する.資源「仮想カーネル空間」 ,ならびに資源「仮. るようにする必要がある.プロセスの生成形態として. 想ユーザ空間」とは,プロセッサが仮想アドレスによっ. は,表 2 のように 5 つの形態が考えられる.これら. て,前者はカーネルモード のみ,後者はユーザモード. の形態のうち,形態( LL ) ,形態( RR ) ,および形態. でもアクセス可能な空間である.両者はともに,仮想. ,ならびに形 ( LR )を実現すれば,残りの形態( RL ). 領域を仮想空間に「貼り付ける」ことで生成され, 「剥. 態( RR )についても,それらを組み合わせて利用す. す」ことで削除される.ここで, 「 貼り付ける」とは,. ることで実現可能である.具体的には,形態( RL )は,. 仮想空間が持つアドレス変換表に,当該の仮想領域の. 形態( LR )の処理においてプロセス生成処理要求を. データ格納域情報を設定することに相当する.逆に, 「剥す」とは,貼り付けた際に設定したデータ格納域 情報を解放することに相当する.. 4.3.2 プロセス生成実行の特徴 Tender では,プロセスの生成実行に関して,次に 述べる 3 つの特徴がある.. 行う際,形態( RR )の処理で利用するリモートへの プロセス生成処理要求を行うことで実現できる.また, 形態( RR )は,形態( RR )の処理においてプログ ラムに関する処理を行う際,形態( LR )の処理で利 用するリモートへのプログラム処理要求を行うことで 実現できる.. 第 1 に,資源の位置透過な利用が可能なため,遠隔. また,4.2 節で述べた位置透過な資源操作方式を用. 資源を利用したプロセスの構成が可能である.これに. いることにより,図 6 で示した各構成資源について. より,たとえば,遠隔計算機上に存在するプログラム. は,システム内のどの計算機上に存在している資源で. を利用してプロセスを生成できる.. も,プロセスの構成資源として利用することが可能で. 第 2 に,資源の分離と独立化により,資源の事前用. ある.ただし,プロセス構成資源が複数の計算機に散. 意や保留が可能になっている.これにより,資源の生. 在することにより実行時のオーバヘッド 増大を招くこ. 成や削除にともなう処理を高速化することができるた. とも考えられる.そこで,実行時のオーバヘッド 増大. め,処理の高速化を図ることが可能である.たとえば,. を防ぐために,プロセスの構成資源として利用可能な. プロセスへのプロセッサ割当て単位を資源「演算」と. 資源の存在場所に,一定の制約を設けている.具体的. して資源化し,プロセスとは独立に存在させ,プロセ. ,資源「仮想空間」 ,資 には,図 6 にある資源「演算」. スに演算を関連付けることでプロセスの実行が開始さ. 源「仮想カーネル空間」 ,資源「仮想ユーザ空間」 ,お. れる.これにより,あらかじめ,プロセスや演算を作. よび資源「実メモリ」については,同一計算機上に存. り置きしておくことにより,プロセスの生成実行処理. 在しなければならない.ただし,メモリ関連資源の 1. を高速化することが可能である.. つである資源「仮想領域」については,他のメモリ関. 第 3 に,走行途中のユーザプロセスを遠隔計算機上. 連資源とは異なり,別計算機上に存在している資源を. に移動させることが可能である.Tender におけるプ. 利用することも可能である.この資源「仮想領域」に.

(8) Vol. 44. No. SIG 10(ACS 2). 位置透過な資源操作方式によるプロセス生成機構. 69. 表 3 プロセス生成,実行,および削除のために資源管理処理部が提供するインタフェース Table 3 Interfaces for process creation, execution and deletion. 通番. 操作内容. (1). プロセス生成. (2). 演算生成. (3) (4). プロセス削除. 演算関連付け. 形式. 機能. creat proc(rsc name, plateid, argv, vmid). plateid で指すロード モジュールプレートをプログラムと して持つプロセスを生成し,資源名 rsc name を付与す る.argv は,プログラムへの引数を指定する.vmid は, プロセスが利用する仮想空間を指定する( 通番 0 の場合 は仮想空間を新規に生成) .. creat execution(rsc name, mips). 演算の程度 mips を 持つ演算を 1 つ生成し ,資源名 rsc name を付与する.. attach execution(execid, pid) delete proc(pid, rflag). execid で指す演算を,pid で指すプロセスに関連付ける. rflag で指定された資源を保留し,プロセスを消滅させる.. 表 4 プロセス生成,実行,および削除を行うカーネルコールインタフェース Table 4 Kernel call interfaces for process creation, execution and deletion. 通番. 操作内容. 形式. 機能. (1). プロセス生成. proccreate(proc name, plate name, argv, vmid). plate name で指すプレートをプログラムとして実行 するプロセスを生成し,資源名 proc name を付与す る.argv は,プログラムへの引数を指定する.vmid は,プロセスが利用する仮想空間を指定する( 通番 0 の場合は仮想空間を新規に生成) .. (2). プロセス実行. procgetexec(pid, mips). 演算の程度 mips を持つ演算を 1 つ生成し,pid で指 すプロセスに生成した演算を関連付ける.. (3). プロセス削除. procdelete(pid). pid で指すプロセスとその構成資源を削除する.. 在する場合は,遠隔手続呼出制御を利用する.その後, プロセス管理処理部に対してプロセス生成処理を要求 する.なお,生成先がリモートの場合も,遠隔手続呼 出制御を利用する.プロセス管理処理部における処理 では,プログラムがリモートに存在する場合,プログ ラムに関する処理を遠隔手続呼出制御を利用して行う.. 4.3.4 プロセス実行法 Tender において,プロセスを実行するためには, 演算を生成し,それを当該プロセスに関連付ける必要 図 8 プロセス生成処理の流れ Fig. 8 A flow of process creation.. がある.ここで,演算の生成と,関連付けのために,. OS 内部で行う処理が利用するインタフェースを表 3 の通番( 2 ) ,および通番( 3 )に示す.これらのイン. ついては,複数の計算機間で共有して利用することに 6). タフェースは,演算管理処理部が提供している.また,. より,分散共有メモリ として利用することができる.. 演算を生成し,プロセスへ関連付けるために,ユーザ. ここで,プロセスを生成するために,OS 内部で行. が利用するカーネルコールのインタフェースを表 4 の. う処理が利用するインタフェースを表 3 の通番( 1 ). 通番( 2 )に示す.表 3,ならびに表 4 に示すインタ. に示す.このインタフェースは,プロセス管理処理部. フェースを利用することにより,演算の生成,ならび. が提供している.また,プロセスを生成するために,. に演算のプ ロセスへの関連付けを位置透過に実行で. ユーザが利用するカーネルコールのインタフェースを. きる.. 表 4 の通番( 1 )に示す.さらに,そのカーネルコー. 4.3.5 プロセス削除法. ルを呼び出すことによって実行されるプロセス生成処. プロセスを削除するために,OS 内部で行う処理が. 理の流れを図 8 に示す.図 8 において,カーネルコー. 利用するインタフェースを表 3 の通番( 4 )に示す.. ルの引数 plate name を利用して,プログラムとして. このインタフェースは,プロセス管理処理部が提供し. 利用するプレートの存在を確認し,そのプレート識別. ている.ここでは,引数 rflag で指定したプロセスの. 子を獲得する.ここで,当該プレートがリモートに存. 構成資源を,再利用可能資源管理表に登録する7) .こ.

(9) 70. July 2003. 情報処理学会論文誌:コンピューティングシステム. の管理表に登録された資源は,以降で,プロセスを生 成する際に構成資源として再利用されることになる. また,プロセスを削除するために,ユーザが利用する カーネルコールインタフェースを表 4 の通番( 3 )に 示す.表 3,ならびに表 4 に示すインタフェースを利. 表 5 資源操作処理時間( µsec. ) Table 5 Resource operation time (µsec.). 処理内容/処理形態 プロセス生成 プロセス削除. ( L1 ) ( L2 ). ( R). 1,801 281. 2,533 966. 1,810 285. <テキスト部:4KB,データ部:なし,BSS 部:なし>. 用することにより,プロセスの削除を位置透過に実行 できる.. 4.4 評価と考察 4.4.1 評価項目と測定環境 Tender に実現した処理について,処理の基本性能 を評価するために,実測による評価を行った.資源操 作処理,ならびにプロセス生成削除処理に要する処理 時間を測定の対象とすることにより,これらを利用す る負荷分散処理に要する処理時間を見積もることがで きる.このため,測定を行った処理対象は,資源操作処 理時間,プロセス生成処理時間,およびプロセス削除 処理時間とした.測定環境として,計算機( PentiumII. 図 9 プロセス生成処理時間 Fig. 9 Process creation time.. 450 MHz )を 2 台,通信路に Myrinet 8)( 1.28 Gbps ) を利用した.測定では,ディスク I/O 処理による測定 結果への影響を除外するために,ディスク I/O は発生. の差に着目すると,プロセス生成処理時における差よ. しない環境とした.また,利用した OS は,Tender. この理由は,プロセス生成時には,文字列による資源. りも,プロセス削除処理時における差の方が小さい.. ver. 7.1 である.ただし,Tender ver. 7.1 では,シス. 名を用いて資源識別を行っているのに対して,プロセ. テム内の特定計算機上で管理している計算機の場所情. ス削除時には,数字による資源識別子を用いて資源識. 報表を共有して利用する機構を実現していない.この. 別を行っているためである.上記と同様なことは,形. ため,資源操作処理の評価において,計算機の場所情. 態( L2 )と形態( R )の処理時間の差からも分かる.. 報表の獲得処理を除外した処理時間の評価を行えるよ うにするために,各計算機上に計算機の場所情報表を. 4.4.3 プロセス生成削除処理 図 9 に,表 4 の通番( 1 )に示しているカーネル. 持たせた状態で行った.また,測定では,資源の事前. コールを利用したプロセス生成処理時間を示す.実測. 用意や保留を利用した資源の再利用は行っていない.. ,形態( RR ) , による測定対象は,表 2 の形態( LL ). 資源の再利用効果については,4.4.4 項で述べる.. 4.4.2 資源操作処理 資源操作処理時間の測定結果を表 5 に示す.測定 を行った資源操作の処理内容は,プ ロセス生成処理 ,ならびにプロセス削除処理( close 系)で ( open 系). および形態( LR )である.測定では,生成プロセス が実行するためのプログラムを,テキスト部の大きさ を可変にして,プログラムの大きさとプロセス生成処 ,ならび 理時間との関係を調べた.なお,形態( RL ) に形態( RR )については,以降で述べる.. ある.また,処理形態は,陽にローカル指定したロー. 測定結果より,プロセス生成処理時間は,プログラ. ,陽にローカル指定しないローカル処 カル処理( L1 ). ムの大きさが同じ場合,形態( LL )が最も高速で,形. ,およびリモート処理( R )である. 理( L2 ). ,形態( LR )の順に遅くなる.この原因とし 態( RR ). 測定結果より,形態( L1 )と形態( L2 )の処理時間. て,各処理における遠隔手続呼出制御の利用回数が考. には大差がない.これは,システム内の特定計算機で. えられる.ちなみに,形態( LL )の利用回数は 0 回,. 管理している計算機の場所情報表を,各計算機上にも. 形態( RR )の利用回数は 1 回(プロセス生成) ,形態. 持たせた状態で測定を行ったためである.したがって,. ( LR )の利用回数は 6 回(プレートの存在確認,プロ. 実際には,形態( L2 ) ,ならびに形態( R )の処理時. グラム確保,プログラム情報獲得,テキスト部の読み. 間には,計算機の場所情報表の獲得処理時間も付加さ. 込み,データ部の読み込み,および BSS 部の読み込. れる.この点を考慮にいれると,形態( L1 )の処理時. み)である.ただし,Tender ver. 7.1 では,プログ. 間は,形態( L2 )の処理時間と比べて高速になること. ラムのデータ部,または BSS 部が存在しない場合で. が分かる.また,形態( L1 )と形態( L2 )の処理時間. も,各部の読み込み処理を呼び出している.このため,.

(10) Vol. 44. No. SIG 10(ACS 2). 位置透過な資源操作方式によるプロセス生成機構. 図 10 プロセス生成時に利用する遠隔手続呼出の処理オーバヘッド Fig. 10 Overhead for remote procedure call in process creation.. 71. 図 11 プロセス削除処理時間 Fig. 11 Process deletion time.. らびに BSS 部の読み込みを行う場合にも当てはまる. 形態( LR )におけるプロセス生成時には,データ部や. ここで,テキスト部,データ部,および BSS 部の読み. BSS 部が存在しなくても,それらの読み込み処理を呼. 込みを行う場合,プロセス生成などの場合と比べて遠. び出すために遠隔手続呼出制御を呼び出している.. 隔手続呼出の処理オーバヘッドが大きいのは,通信処. 次に,グラフの傾きは,形態( LL )と形態( RR ) はほぼ同じなのに対して,形態( LR )は他と比べて 大きい.この原因として,形態( LR )では,通信路. 理時において,読み込むプログラムデータを格納する バッファの確保処理が別途必要なためと考えられる. 図 9 の実測結果,ならびに図 10 の結果より,表 2. を介したプログラムデータの転送を行っているので,. の形態( RL ) ,ならびに形態( RR )におけるプロセ. プログラムの大きさの増加に比例して,その転送時間. ス生成処理時間として想定できる値を算出した.ここ. も増加しているためと考えられる.. で,形態( RL )におけるプロセス生成処理時間につ. ,ならびに形態( RR )にお また,表 2 の形態( RL ). いては,形態( LR )におけるプロセス生成処理要求. けるプロセス生成処理については,Tender ver. 7.1. を,リモートに対して行うことで実現できる.このた. では処理を実現していない.そこで,遠隔手続呼出. め,形態( RL )の生成処理時間は,形態( LR )の生. 処理を個別に実測することにより,これらの処理時間. 成処理時間に,プロセス生成処理要求を行うために利. を推定する.具体的には,形態( RL ) ,ならびに形態. 用する遠隔手続呼出の処理オーバヘッドを加算するこ. ( RR )のプロセス生成処理時間として想定できる値を. とで算出した.また,形態( RR )は,形態( RR )に. 算出するために,プロセス生成処理の中で,図 8 で示. おけるプログラムに関する処理をリモートに対して行. した遠隔手続呼出を利用する可能性のある処理につい. うことで実現できる.このため,形態( RR )の生成. て,それぞれの処理で遠隔手続呼出の処理オーバヘッ. 処理時間は,形態( RR )の生成処理時間に,リモー. ドを実測により調べた.. トのプログラムを利用するための遠隔手続呼出の処理. 図 10 に,プロセス生成時に利用する遠隔手続呼出. オーバヘッド,すなわち,プレートの存在確認,プロ. の処理オーバヘッド の測定結果を示す.図 10 には,. グラム確保,プログラム情報取得,テキスト部の読み. 図 8 で示した遠隔手続呼出を利用する可能性のある. 込み,データ部の読み込み,および BSS 部の読み込. 処理について,遠隔手続呼出を利用してリモートで処. みを行うために利用するそれぞれの遠隔手続呼出の処. 理を行った場合の処理時間から,ローカル内で処理を. 理オーバヘッドを加算することで算出した.以上を基. 行った場合の処理時間を引いたものを,遠隔手続呼出. に,算出した結果を図 9 に示す.. の処理オーバヘッドとして示している.図 10 より,プ. また,図 11 に,プロセス削除処理時間の測定結果. レート存在確認,プロセス生成,プログラム獲得,お. を示す.実測による測定対象は,表 2 の形態( LL ) ,. よびプログラム情報取得を行う場合,遠隔手続呼出の. ,および形態( LR )の各形態でそれぞれ 形態( RR ). 処理オーバヘッドは,プログラムの大きさに関係なく,. 生成したプロセスの削除処理である.ここでは,表 4. ほぼ一定であることが分かる.また,テキスト部の読. の通番( 3 )に示すカーネルコールを利用して,各形. み込みを行う場合,遠隔手続呼出の処理オーバヘッド. 態で生成したプロセスを,当該プロセスを生成したプ. は,読み込むプログラムの大きさに比例して大きくな. ロセスが削除を行ったときの処理時間を測定した.測. ることが分かる.このことは,データ部の読み込み,な. 定では,プロセス生成処理時間の測定と同様に,プロ.

(11) 72. 情報処理学会論文誌:コンピューティングシステム. July 2003. グラムの大きさとプロセス削除処理時間との関係を調 べた.なお,形態( RL ) ,ならびに形態( RR )につ いては,以降で述べる. 測定結果より,プロセス削除処理時間は,プログラ ムの大きさが同じ場合,形態( LL )が最も処理時間が 短く,次いで形態( RR )と形態( LR )がほぼ同じ処 理時間になる.この原因として,プロセス生成処理と 同様に,遠隔手続呼出制御の利用回数が考えられる. ちなみに,形態( LL )の利用回数は 0 回,形態( RR ) ,形態( LR )の利 の利用回数は 1 回(プロセス削除) 用回数は 1 回(プログラム削除)である. 次に,グラフの傾きについては,通信をともなわな. 図 12 プロセス削除時に利用する遠隔手続呼出の処理オーバヘッド Fig. 12 Overhead for remote procedure call in process deletion.. , い形態( LL )の傾きと,通信をともなう形態( RR ) ならびに形態( LR )の傾きがほぼ同じ大きさである.. 除処理時間に,プロセス削除処理要求を行うために利. この原因は,各形態で遠隔手続呼出制御により処理依. 用する遠隔手続呼出の処理オーバヘッドを加算するこ. 頼を行う際,同じ大きさのデータを転送しているため. とで算出した.以上を基に,算出した結果を図 11 に. と考えられる.. 示す.. ,ならびに形態( RR )にお また,表 2 の形態( RL ) では処理を実現していない.そこで,遠隔手続呼出. 4.4.4 資源の再利用効果 Tender では,プロセスの構成要素を資源として分 離し,独立化させている.したがって,プロセスを生. 処理を個別に実測することにより,これらの処理時間. 成する際,すでに生成してある資源を構成資源として. けるプロセス削除処理については,Tender ver. 7.1. ,ならびに形態 を推定する.具体的には,形態( RL ). 再利用することができる.また,プロセスを削除する. ( RR )のプロセス削除処理時間として想定できる値. 際,そのプロセスの構成資源を解放せず,再利用する. を算出するために,プロセス削除処理の中で,遠隔手. ために保留しておくこともできる.このような資源の. 続呼出を利用する可能性のある処理,すなわちプロセ. 再利用効果については,ローカル計算機内に閉じてい. ス削除処理,ならびにプログラム削除処理について,. る場合,すなわち,表 2 の形態( LL )におけるプロ. それぞれの処理で遠隔手続呼出の処理オーバヘッドを. セス生成削除処理の再利用効果を,文献 2) に報告し. 実測により調べた.. ている.. 図 12 に,プロセス削除時に利用する遠隔手続呼出. 文献 2) では,プロセスの構成要素の中で,再利用. の処理オーバヘッドの測定結果を示す.図 12 には,プ. 可能な資源をすべて再利用した場合のプロセス生成削. ロセス削除を行う際,遠隔手続呼出を利用する可能性. 除処理時間は,資源を再利用しない場合の処理時間と. のある処理について,遠隔手続呼出を利用してリモー. 比べて,1/3 以下に短縮できることを明らかにしてい. トで処理を行った場合の処理時間から,ローカル内で. る.したがって,他の形態におけるプロセス生成削除. 処理を行った場合の処理時間を引いたものを,遠隔手. 処理時間は,資源の再利用を行うことにより,計算機. 続呼出の処理オーバヘッド として示している.図 12. 間の通信処理時間を除けば,同程度短縮することが期. より,プロセス削除,ならびにプログラム削除を行う. 待できる.. 場合,遠隔手続呼出の処理オーバヘッドは,プログラ ムの大きさに関係なく,ほぼ一定であることが分かる.. また,文献 2) では,Tender と BSD/UNIX のプ ロセス生成処理時間を比較している.この結果より,. 図 11 の実測結果,ならびに図 12 の結果より,表 2. 資源の再利用効果は,OS カーネルの生成処理,なら. の形態( RL ) ,ならびに形態( RR )におけるプロセ. びに Web サーバとして利用されている Apache のよ. ス削除処理時間として想定できる値を算出した.ここ. うに,同じプログラムを実行するプロセスの生成削除. で,形態( RL )におけるプロセス削除処理,ならびに. が頻発する AP を利用する場合に大きいことを明らか. 形態( RR )におけるプロセス削除処理は,形態( LR ). にしている.. におけるプロセス削除処理要求を,リモートに対して 行うことで実現できる.このため,形態( RL ) ,なら びに形態( RR )の削除処理時間は,形態( LR )の削. 5. 関 連 研 究 分散環境における従来の資源操作方式の例として,.

(12) Vol. 44. No. SIG 10(ACS 2). 位置透過な資源操作方式によるプロセス生成機構. 次の 2 つがある. 第 1 に,分散 OS Sprite 3) は,位置透過なネーミ. 73. の事前用意や保留による再利用で,資源の生成や削除 にともなう処理を高速化できる.さらに,資源操作要. ング機構を実現しており,ファイルシステムと入出力. 求を行う際,陽にローカル指定を行うことで,ローカ. デバイスを透過的に利用できる.また,プロセス移動. ル処理における処理効率の低下を防ぐことができる.. も実現している.しかし,大域的なプロセス識別子が 存在しないため,位置透過なプロセス操作を行うこと. 次に,分散環境における従来のプロセス生成の例と して,次の 3 つがある.. は難しい.具体的には,システム内の任意のプロセス. 第 1 に,UNIX を拡張した OS を利用する方法9) が. が,別計算機上に存在するプロセスを,当該の計算機. ある.UNIX は,スタンドアロン環境を指向して設計. とは別の計算機上に移動させたり,削除したりするこ. され,プロセスの生成実行に fork/exec 方式を用いて. とが自由に行えない.. いる.この方式は,親プロセスの走行環境を子プロセ. 第 2 に,分散 OS V 4) は,マイクロカーネルモデ. スに引き継がせることができるため,入出力の切替え. ルを基にして,本論文で提案した方式のように,OS. 処理が容易に行え,パイプ処理を実現できる長所があ. の制御対象を分割して管理している.具体的には,プ. る.しかし,別計算機上に子プロセスを生成する場合,. ロセス管理やメモリ管理などを,各計算機上に存在す. プロセス生成先の走行環境は,生成元の走行環境に依. るカーネルサーバと呼ばれるサーバの形で実現してい. 存することになる.逆に,生成元では,内部の機能が. る.資源は各サーバ内で管理され,資源操作は,プロ. 他計算機から利用されるようになるため,その機能の. セス間通信を用いて当該サーバに依頼する形式を用い. 一部を動的に変更することが難しくなる.したがって,. ている.しかし,各サーバで管理する資源の粒度が大. 柔軟にシステム内の構成を変更できるという分散環境. きいため,資源操作に要する負荷が大きい.具体的に. の特徴を損なってしまう.. は,さらなる分割が可能な資源の生成削除を行う際に,. 第 2 に,OS のカーネルレベルではなく,ユーザレ. 当該資源から分割可能なすべての構成要素の生成削除. ベルで位置透過なプロセス生成機構を提供する方法10). を行わなくてはならない.このため,構成要素の一部. がある.この方法は,移植性は高いが,処理速度は遅. 分が再利用可能な場合があるにもかかわらず,逐一生. くなってしまう.. 成や削除を行う必要があり,資源の生成削除処理の処. 第 3 に,はじめから分散環境を指向して設計した分. 理負荷が大きくなってしまう.さらに,AP が細かな. 散 OS を利用する方法4),11),12) がある.分散 OS V 4). 資源操作を行うことは難しい.逆に,資源の粒度が小. では,前述したように,OS の制御対象をサーバの形で. さいと,各サーバ間の呼出し処理,ならびにカーネル. 分割して管理している.しかし,資源の粒度が大きい. モードとユーザモード 間の遷移に要するオーバヘッド. ため,プロセスを構成する細かな要素まで,個別に生. が大きくなってしまう問題がある.. 成,識別,および操作することは難しい.また,分散. い場合と比べて,OS が制御する対象をより細かな単. OS Amoeba 11) では,システムが,実行プログラムと 利用プロセッサを直接指定することで,プロセス生成 実行を行うため,処理効率は良い.しかし,プロセッ. 位まで資源として個別に制御できるようになる上,各. サプールモデルに基づき,システム内の負荷情報を利. 資源操作に要する負荷を小さくできる.また,仮想記. 用してシステム側でプロセスを配置するため,ユーザ. 憶空間や実メモリのように,従来,識別や操作が制限. 側からは利用計算機を自由に指定できない.. 一方,本論文で提案した資源操作方式は,資源の粒 度が小さい.したがって,OS は,資源の粒度が大き. され,プロセスの存在を前提に存在していた資源を,. 一方,提案方式に基づいたプロセス生成機構では,. 個別に生成し,操作することを可能にしている.さら. プロセスの構成要素を細分割し,各々を資源として独. に,資源操作を特定の処理プログラムを介するように. 立化させている.これにより,プロセスという資源の. し,資源操作インタフェースを統一することで,AP. 粒度を小さくすることができる.このため,プロセス. による細かな資源操作を可能にしている.. の生成削除処理から,当該プロセスの構成資源の生成. ただし,提案方式では,資源の細分割を行っている. 削除処理を独立化させることができる.したがって,. ため,処理効率の低下が懸念される.しかし,OS の. 資源の再利用により,構成資源の生成削除処理を簡略. 提供機能を,モノリシックカーネルモデルを基にカー. 化することができるため,プロセス生成削除処理を高. ネル内で実現することで,各サーバに相当する資源間. 速化することができる.また,プロセスが利用する資. の呼び出し処理に要するオーバヘッド を低減できる.. 源については,位置透過な資源操作方式を利用するこ. また,資源の単独存在を可能にすることにより,資源. とにより,当該資源の存在場所を意識することなく利.

(13) 74. July 2003. 情報処理学会論文誌:コンピューティングシステム. 用することができる.これにより,資源「仮想領域」 を透過的に共有して利用できるため,NFS のように 外部記憶装置を透過的に利用できるだけでなく,実メ モリについても,分散共有メモリとして透過的に利用 できるようになる.. 6. お わ り に 粒度が小さい資源の位置透過な操作方式を提案した. 本方式では,資源を資源名と資源識別子により一意に 識別できるようにし,同一形式で位置透過に扱えるよ うにしている.また,資源を分割する粒度を小さくす ることで,各資源操作に要する負荷を小さくできる. また,従来のプロセス資源は,その粒度が大きい. したがって,プロセスの生成,移動,および削除に要 する処理負荷が大きくなるため,負荷分散の効果を低 下させてしまうという問題がある.この問題への対処 法として,提案した資源操作方式を基にした位置透過 なプロセス生成機構について述べた.本機構では,プ ロセスの構成資源を分離し,独立化させている特徴を 生かして,プロセスの生成,移動,および削除処理を 高速化できる. さらに,提案した資源操作方式とプロセス生成機構 の実現例として,Tender における実現方式を示し , 資源操作処理とプロセス生成削除処理の性能を示した. その結果,資源操作処理については,陽にローカル指 定した資源操作を行うことで,自計算機内における資 源操作の処理効率を改善できることを示した.また, プロセス生成削除処理時間については,プロセスが利 用するプログラムの大きさに比例して増加することを 示した.さらに,プロセス生成削除処理における資源 の再利用効果について述べた.具体的には,再利用可 能な資源をすべて再利用した場合のプロセス生成削除 処理時間は,計算機間の通信処理時間を除けば,再利 用しない場合の処理時間と比べて,1/3 以下に短縮で きることを示した. 残された課題として,計算機の場所情報表をシステ ム内で共有して利用する機構の実現,計算機間の通 信処理における資源の再利用効果についての評価,既 存方式との比較による評価,および実現した機構を利 用して負荷分散を行ったときの効果についての評価が ある. 謝辞 本研究の一部は,日本学術振興会科学研究費 補助金基盤研究( A ) ( 2) (課題番号 15200002 )によ. 参 考. 文. 献. 1) Milojicic. D.S., Douglis. F., Paindaveine. Y., Wheeler. R. and Zhou. S.: Process Migration, ACM Computing Surveys, Vol.32, No.3, pp.241–299 (2000). 2) 谷口秀夫,青木義則,後藤真孝,村上大介,田端 利宏:資源の独立化機構による Tender オペレー ティングシステム,情報処理学会論文誌,Vol.41, No.12, pp.3363–3374 (2000). 3) Ousterhout, J., Cherenson, A., Douglis, F., Nelson, M. and Welch, B.: The Sprite Network Operating System, IEEE Computer, Vol.21, No.2, pp.23–36 (1988). 4) Cheriton, D.R.: The V Distributed System, Comm. the ACM, Vol.31, No.3, pp.314–333 (1988). 5) 石井陽介,谷口秀夫:分散環境を指向するプロ セス変身機能の提案,情報処理学会 OS 研究会報 告,Vol.2002, No.13, pp.125–132 (2002). 6) 下崎 誠,谷口秀夫:Tender オペレーティン グシステムにおける分散共有メモリの実現と評価, 情報処理学会コンピュータシステムシンポジウム 論文集,Vol.99, No.16, pp.161–168 (1999). 7) 田端利宏,谷口秀夫:プロセス構成資源の効率 的な再利用を目指した資源管理法,情報処理学会 コンピュータシステムシンポジウム,Vol.2002, No.18, pp.21–28 (2002). 8) 中島耕太,下崎 誠,谷口秀夫:Myrinet を用 いた高速データ通信機能の設計と実現,情報処理 学会研究会報告,Vol.2000, No.43, pp.197–204 (2000). 9) 谷口秀夫:UNIX におけるプロセス制御機能の ネットワーク化,情報処理学会マルチメディア通 信と分散処理研究会,29-7 (1986). 10) Brent, C. and David, D.: REXEC: Decentralized, Secure Remote Execution Environment for Clusters, Workshop on Communication, Architecture, and Applications for Networkbased Parallel Computing, pp.1–14 (2000). 11) Mullender, S., Rossum, G., Tanenbaum, A., Renesse, R. and Staveren, H.: Amoeba — A Distributed Operating System fot the 1990s, IEEE Computer, Vol.23, No.5, pp.44–53 (1990). 12) Damein, D.P., Andrzei, M.G., Michael, H. and Philip, J.: Performance Comparison of Process Migration with Remote Process Creation Mechanisms in RHODOS, Proc. 16th International Conference on Distributed Computing Systems (ICDCS ), pp.554–561 (1996).. る補助のもとで行われた.. (平成 14 年 12 月 21 日受付) (平成 15 年 4 月 9 日採録).

(14) Vol. 44. No. SIG 10(ACS 2). 75. 位置透過な資源操作方式によるプロセス生成機構. 石井 陽介( 正会員). 谷口 秀夫( 正会員). 平成 13 年九州大学工学部電気情. 昭和 53 年九州大学工学部電子工. 報工学科卒業.平成 15 年同大学院. 学科卒業.昭和 55 年同大学院修士. システム情報科学府情報工学専攻修. 課程修了.同年日本電信電話公社電. 士課程修了.同年(株)日立製作所. 気通信研究所入所.昭和 62 年同所. システム開発研究所入所.ストレー. 主任研究員.昭和 63 年 NTT デー. ジシステムの開発に従事.オペレーティングシステム, ストレージシステムに興味を持つ.. タ通信(株)開発本部移籍.平成 4 年同本部主幹技師. 平成 5 年九州大学工学部助教授.平成 15 年岡山大学 工学部教授.博士( 工学) .オペレーティングシステ ム,実時間処理,分散処理に興味を持つ.著書「オペ レーティングシステム」 ( 昭晃堂)等.電子情報通信 学会,日本ソフトウェア科学会,ACM 各会員..

(15)

図 2 プロセスの構成要素 Fig. 2 Components of process.
表 1 資源操作のための提供インタフェース Table 1 Interfaces for resource operation.
図 7 プロセスとメモリ管理関連の資源
表 3 プロセス生成,実行,および削除のために資源管理処理部が提供するインタフェース Table 3 Interfaces for process creation, execution and deletion.
+3

参照

関連したドキュメント

4 The maintenance cost which is not considered by traditional model concluding the unscheduled maintenance cost and the wear cost during the operation can be modeled as a function

Mainly, by using the extrapolation method, families of estimates can be derived which are valid for any nonsingular matrix and thus can be used for nonsymmetric problems. In

・「下→上(能動)」とは、荷の位置を現在位置から上方へ移動する動作。

A monotone iteration scheme for traveling waves based on ordered upper and lower solutions is derived for a class of nonlocal dispersal system with delay.. Such system can be used

First main point: A general solution obeying the 4 requirements above can be given for lattices in simple algebraic groups and general domains B t , using a method based on

This problem becomes more interesting in the case of a fractional differential equation where it closely resembles a boundary value problem, in the sense that the initial value

New exactly solvable rationally-extended radial oscillator and Scarf I potentials are generated by using a constructive supersymmetric quantum mechanical method based on

According to the divide and conquer method under equivalence relation and tolerance relation, the abstract process for knowledge reduction in rough set theory based on the divide