11.3.優先度スケジューリング規律(2):Quantitative System Performance

11.3.優先度スケジューリング規律(1)」の続きです。(目次はこちら

 アルゴリズム11.1はシャドウCPU技法をより精密に記述している。さまざまなクラスのCPU稼動率は事前に知られていないので、繰返しを使用することが必要である。最初に、個々のクラスのスループットはゼロであると見積もる。これは個々のクラスのCPU稼動率がゼロであると見積もることに対応している。モデルが評価され、個々のクラスのスループットの、よってCPU稼動率の、改善された見積りがもたらされる。新しいモデル入力はこれらの改善された見積りに基づいて計算される。繰返しは個々のクラスのスループットの連続する見積りが充分近くなるまで続ける。アルゴリズム11.1の、複数センターが優先度スケジュールである場合への拡張は簡単である。

  • 1.
    • 優先度スケジュールCPUを持つK個のセンターのモデルが与えられたとして、元々のCPUセンターをC個のFCFSシャドウCPUセンターで置き換えることによりK+C-1個のセンターを作成する。これらのセンターの各々には1つのクラスだけが訪問する。クラスはより大きい数のクラスがより小さい数のクラスに対して優先度を持つように並んでいると仮定する。最初に、個々のクラスcスループットX_cがゼロに等しいと仮定する。
  • 2.
    • 以下のように繰り返す。
    • 2.1.
      • 個々のクラスcのCPU稼動率を以下のように見積もる。
        • U_{c,CPU}=X_cD_{c,CPU}
        • ただしD_{c,CPU}はクラスcの「現実の」CPU要求時間である。
    • 2.2.
      • j番目のシャドウCPUでのクラス cのサービス要求時間を以下のように設定する。
        • c=jならば
          • D_{c,CPU_j}=\frac{D_{c,CPU}}{1-\Bigsum_{k=c+1}^CU_{k,CPU}}
        • c{\neq}j ならば
          • D_{c,CPU_j}=0
    • 2.3.
    • 個々のクラスcについてX_cの連続する見積が充分近くなるまでステップ2を繰り返す。
  • 3.
    • 全体としてのシステムについての、そしてCPU以外の個々のセンターについての最終性能尺度は、最後の繰返しから直接得られる。CPUでの個々のクラスの滞在時間R_{c,CPU}と、個々のクラスの待ち行列Q_{c,CPU}は直接得られる。しかし、個々のクラスの稼動率はU_{c,CPU}=X_cD_{c,CPU}として得られる。(C 個のシャドウCPUについて報告される稼動率は、サービス要求時間を水増しした仕方のために、意味がない。)

アルゴリズム11.1  CPUでの優先度スケジューリング


 表11.1は特定の例へアルゴリズム11.1を適用した結果を示す。我々は4台のディスクと1台の優先度スケジュールCPUを持つシステムを考察する。2つのクラスが存在する。クラスAは端末タイプであるが、バッチ・タイプであるクラスBより高い優先度を持つ。

  • モデル入力
    • N_A=変動、Z_A=10   N_B=6Z_B=0
        • (全ての時間の単位は秒)
  • クラスA応答時間
        • (全ての時間の単位は秒)
  • 表11.1 優先度スケジューリング


 アルゴリズム11.1の価値を評価するために我々はその結果が、優先度スケジューリングを無視して(つまり、プロセッサ・シェアリングを用いると仮定して)得られた結果より顕著によいかどうかを知りたい。あいにく我々は、我々の例の正確な性能尺度を決定出来ない。それがたった5つのセンターと2つのクラスしか持たなくても、(セクション8.5.1で記述した)大域バランス技法を用いて解析するにはそれは大きすぎる。正確な性能尺度の見積もりを得るために我々はシミュレーションを用いてきた。セクション8.5.2に示すように、コンピュータ・システム解析についてシミュレーションは待ち行列ネットワーク・モデル化よりもそれを魅力あるものに出来ないような2つの重要な欠点がある。第1に、シミュレーションの確率的な性格はその結果の精度をシミュレーション期間に依存させることになる。(ここと、セクション11.511.6で用いる期間について、得られた見積りの誤差は5%から10%の間でなければならない。) 第2に、シミュレーションの計算コストはそれを常時用いるには大きすぎる。
 表において我々は5つの異なるクラスA個体数について、クラスAユーザが経験する応答時間を示す。優先度スケジューリングを無視して、直接、平均値解析を適用して得られた結果は表では「MVA」と書かれており、アルゴリズム11.1を用いて得られた結果は「アルゴリズム11.1」と書かれており、シミュレーションによって得られた結果は「シミュレーション」と書かれている。
 MVAとアルゴリズム11.1の結果を比較すると、優先度スケジューリングを無視するよりもアルゴリズム11.1の結果を用いることのメリットが明らかになる。アルゴリズム11.1とシミュレーションの結果を比較すると、考察中の特定の例についてのアルゴリズム11.1の精度が明らかになる。アルゴリズム11.1は常に、シミュレーションの結果とのこのような近い一致を示すわけではないであろう。しかし幸いに、アルゴリズムが信頼出来ない場合は簡単に特定出来る。大部分のシステムでは、優先度スケジューリングはCPUサービスの短いバーストを要求する客がCPUサービスの長いバーストを要求する客によって過度に遅れさせられないことを確認するために用いられる。(FCFSスケジューリングに比べてプロセッサ・シェアリングはこの方向における第一歩であるが、この優先度スケジューリングはさらに一歩先であることに注意しよう。) このセクションで提示した技法はこの状況でうまくいくように設計されている。それは高優先度の客による中断を反映するために低優先度のサービス要求時間の引き伸ばしに基づいている。この引き伸ばしは高優先度の客のサービス・バーストが、低優先度の客のバーストに比較して非常に短く、かつ非常に頻繁な時に適切である。しかし、低優先度のサービス・バースト長が高優先度のサービス・バーストよりも充分に長くない時にはいつも、このセクションで提案したアルゴリズムは慎重に使用しなければならない。


11.4.優先度スケジューリングのバリエーション」に続きます。