10.2.非RPS I/Oサブシステムにおけるチャネル競合(3):Quantitative System Performance

10.2.非RPS I/Oサブシステムにおけるチャネル競合(2)」の続きです。(目次はこちら

 例として、平均マルチプログラミング・レベルが10であり、ジョブの平均総サービス要求時間が15秒であるようなCPUと、1個のチャネルと5つの負荷が等しい非RPSディスクで、それらの平均総サービス要求時間が8秒のシーキング(つまりV_kseek_k=8)と1秒のサーチ(レイテンシー)と2秒のデータ転送であるようなもの、を持つバッチ・コンピュータ・システムを考察しよう。(アルゴリズム10.1を適用するためには「訪問」レベルまで降りていく必要がないことに注意しよう。我々はやがて来るセクションとの一貫性のために我々の開発でこのようにした。) このシステムを、10個の客と、CPUと5つのディスクに対応する6つのサービス・センターを持つ待ち行列ネットワークを用いて解析する。個々のディスクでの最初のサービス要求時間は11秒である。(均等に負荷されたディスクは本質的ではないが、この例を簡略化するために用いられている。それらは、全てのディスクについて用いるために U_{ch}(k)D_kの1つの計算で済むことを可能にしている。) 表10.1はこの繰返しを示している。

 最初の繰返しで用いたパラメータ値は、チャネル競合を無視した解析に対応している。その結果(スループットは0.056、チャネル稼動率は84%)は、繰返しの最後で得られた、チャネル競合が考慮された場合の結果(スループットは0.044、チャネル稼動率は65%)とかなり異なっている。
 アルゴリズム10.1は各々がCPUと、ディスクの特定の集合とを接続している複数のチャネルを持つコンピュータ・システムに適用出来る。個々のチャネル・サブシステムはこのアルゴリズムないで別々に考慮されなければならない。ステップ2.1と2.2で、個々のチャネルについて別々の稼動率が計算される。ステップ2.3で、個々のディスクの実行サービス要求時間が、それが接続されているチャネルの稼動率を用いて見積られる。
 このモデルを複数クラス待ち行列ネットワークへ一般化するために2つの単純な修正が必要である。ステップ2.1で、ディスクkについての要求によるチャネル稼動率は以下のように見積られなければならない。

  • U_{ch}(k)=\Bigsum_{c=1}^C\left[X_cV_{c,k}\left(latency_k+transfer_k\right)\right]

ステップ2.3で改訂された実効サービス要求時間は個々のクラス毎に以下のように見積らなければならない。

  • D_{c,k}=V_{c,k}\left[seek_{c,k}+\frac{(latency_{c,k}+transfer_{c,k})(1-U_{ch}(k))}{1-U_{ch}}\right]

 アルゴリズム10.1は単純で、効率的で、充分正確である。さらに、その精度が疑問視されるような状況が容易に特定される。すなわち、チャネルの稼動率が高い、確かに50%より高い、大部分の適用において出会うよりも稼動率の高い状況である。この誤差の原因は我々がチャネルをオープン・システム内のセンターと見ていることである。それを我々はディクスkから到着する要求がチャネルで出会う待ち行列長の期待値を計算するのに用いた。実際には、チャネルで待つ要求の数は、オープン・システム近似が意味するように無制限ではなく、制限がある。与えられた稼動率について、オープン待ち行列ネットワーク内のサービス・センターはクローズド・ネットワーク内のサービス・センターより長い待ち行列長を持つ。よって、オープン・システム近似はチャネルでの待ち行列長を多めに見積り、よってチャネル滞在時間を多めに見積もる傾向がある。


10.3.RPS I/Oサブシステムにおけるチャネル競合(1)」に続きます。