15.4.ソフトウェア・リソース:Quantitative System Performance

15.3.ローカル・エリア・ネットワーク」の続きです。(目次はこちら

15.4.ソフトウェア・リソース


 待ち行列ネットワーク・モデルを構築する際の普通の見方はサービス・センターがハードウェア・リソースに対応するというものである。しかし、コンピュータ・システム内での待ちが、OSのクリティカル・セクションや、非リエントラント・ソフトウェア・モジュールなど、ソフトウェア・リソースを巡る競合から発生することもまたあり得る。このセクションではソフトウェア・システム構造を評価するために待ち行列ネットワーク・モデルを用いることを考察する。
 我々の方法は、客は通常通りユーザに対応するがサービス・センターがソフトウェア・モジュールに対応するようなソフトウェア・レベル待ち行列ネットワーク・モデルを定義することである。個々のセンターでのサービス要求時間は、対応するソフトウェア・モジュールを実行するのに客が費やす時間に等しくする。個々のセンターでの待ち時間は、モジュールを評価する時に計算されるが、客が対応するソフトウェア・モジュールをアクセスするのを待ってブロックされる時間の見積り値になる。リエントラントなソフトウェア・モジュールはディレイ・センターとして表現される。というのは客はけっして、アクセスを待ってブロックされないからである。非リエントラント・モジュールは、同時に1個の客だけが実行出来るので、キューイング・センターとして表現される。
 明らかに、ソフトウェア・レベル・モデル内の個々のセンターでのサービス要求時間は、コンピュータ・システム上で対応するソフトウェア・モジュールを実行する際に被るさまざまなサービス要求時間と待ち時間を含んでいる。このサービス要求時間は、ソフトウェア・モジュールへのアクセスを一旦許可されたユーザの「応答時間」として考えることが出来る。このサービス要求時間は、より標準的なハードウェア・レベル待ち行列ネットワーク・モデルを用いて評価され、そのモデルでは客はソフトウェア・モジュールを実行するユーザに対応し、センターはハードウェア・リソースに対応する。サービス要求時間はこのハードウェア・レベルのモデルについて容易に得られるが、客の個体数は分からない。というのはハードウェア・レベルでの並列性の程度は、ユーザがソフトウェア・レベルでモジュールへのアクセスを待ってブロックされる程度に依存するからである。よって、繰返しの解法が必要である。そこではハードウェア・レベルのモデルはソフトウェア・レベルのモデルのためにサービス要求時間の見積りを提供し、ソフトウェア・レベルのモデルは今度はハードウェア・レベル・モデルのための客個体数の見積りを提供する。
 ソフトウェア・レベル・モデルの単純な例は図15.4に示される。さまざまなソフトウェア活動に対応するセンターが存在する。エディット、コンパイル、リンク、ロード、実行である。可能なさまざまな「実行順序」が存在する。エディットしてコンパイルコンパイルしてリンクして実行、ロードして実行、など。個々の実行順序は別々の客クラスとして表現される。個々のクラス内の客の数は対応する実行順序を実行するユーザの数である。

  • 図15.4 ソフトウェア・レベル待ち行列ネットワーク・モデル

 ソフトウェア・レベル・モデル内センターのサービス要求時間が一旦判明すれば、モデルを評価することが出来る。その結果から、個々のソフトウェア・モジュールを同時に実行するユーザの数の平均値を見積ることが出来る。もしモジュールがリエントラントであるならば、それはディレイ・センターとして表現され、そのディレイ・センターでの平均個体数はそのモジュールを同時に実行するユーザの数の平均値になる。もしモジュールが非リエントラントであるならばそれはキューイング・センターとして表現され、そのセンターの稼動率は、ユーザがモジュールを実行している時間の割合になる。
 ソフトウェア・レベル・モデル内のセンターのサービス要求時間を見積るために、我々はハードウェア・レベル・モデルを用いる。前述のように、このモデル内の客はソフトウェア・モジュールを実行するユーザに対応する。1つのクラスが個々のモジュールを表す。さまざまなセンターでのさまざまなクラスのサービス要求時間は対応するソフトウェア・モジュールのリソース要求時間によって決定される。このハードウェア・レベル・モデル内のクラスの応答時間は、ソフトウェア・レベル・モデル内の同じソフトウェア・モジュールに対応するセンターでのサービス要求時間を決定する。この繰返しは明らかに進んでいく。(端末作業負荷の考慮時間はこの方法のどちらのレベルでも表現出来るが、ソフトウェア・レベルがより自然な場所である。)
 この方法といくつかの関連する方法は実践において非常にうまくいっていることが判明している。


15.5.データベース並行処理制御(1)」に続きます。