スケジューラの資源選択の最適化

スケジューラの資源要求キューの処理パフォーマンスを向上させるために、このトピックで説明されている資源選択ルールを使用できます。
  • 初期ロード
  • 最初の n ロード
  • 最小段取(1 番目のロード)
  • 最小段取(最初の n ロード)
  • 閾値

上記のルールは、スケジューラの要求キュー内で考えられる負荷の要求の一部分のみを考慮するので、より高速です。

上記のルールを使用することにより、予期しない動作が生じる場合があります。

たとえば、資源が解除され、その結果として選択ルールを使用した要求キューのソートが生じ、割付の失敗により資源がアイドルのままになる場合があります。この状況では、次のいずれかの処理が生じるまで、資源はアイドルのままです:

  • 負荷がその資源を必要とする作業を処理します。
  • 資源は、シフト外に移動した後、シフト内に戻ります。

別の負荷が資源を必要とせず、資源がシフトしないので、スケジューラ実行の以降で資源はアイドルのままです。これに関連して問題が発生します。選択ルール「最初のロード」および「最初の n ロード」を使用するたびに、要求キューの先頭の負荷要求がキュー内の以降の負荷要求を「ブロック」する可能性があります。たとえば、次の場合にこの問題が発生します。

  • 「最初のロード」が資源 RES1 の選択ルールです。
  • RES1 要求キュー内の最初の負荷が資源 RES1 および RES2 を必要とします。
  • RES1 は解除されていますが、RES2 は解除されていません。

システムが待機中の負荷に RES2 を割付けることが可能になるか、別の負荷が RES1 を必要とする作業を処理するか、または RES1 がシフト外に移動した後シフト内に戻るまで、資源 RES1 はアイドルのままです。