3

次のジョブ/リソース スケジューリングの問題を実装したいと考えています。

  • エッジが優先関係をエンコードするジョブの DAG。
  • 優先関係のないジョブは並列実行可能
  • 複数のリソース プール。各プールには 1 つ以上の同様のリソースが含まれます。
  • ジョブは、1 つまたは複数のプールの 1 つまたは複数のリソースに依存する場合があります。つまり、ジョブ J1 は、「プール P1 から 2 つのリソースが必要で、プール P2 から 7 つのリソースが必要です」のようなことを言います。
  • ジョブは、直前の先行ジョブの 1 つとまったく同じリソースが必要であることを表明する場合があります。つまり、ジョブ J2 は、「プール P1 から 1 つのリソースが必要ですが、それはジョブ J1 が割り当てられたリソースの 1 つでなければなりません」と言うかもしれません。簡単にするために、この種の制約では、ジョブ J2 が J1 の直接の後継者でなければならないと仮定します。
  • リソースの依存関係は、読み取りまたは書き込み、またはその両方、または「ドントケア」のいずれかです。
  • ジョブ J1 がプール P1 からリソースに書き込み、その後のジョブ J2 が「J1 が P1 から取得したのと同じリソース」に読み取り依存関係がある場合。その間、リソースはステートフルであるため、他のジョブで書き込みを行うことはできません。
  • 各ジョブの実行時間は事前にわかりません。また、ジョブには優先順位や締め切りの要件もありません。

を探しています:

  1. この問題を正式なドメインで表現する方法、
  2. 指定された要件と制約でジョブ グラフを実行できるかどうかという質問に答えるオフライン スケジューリング可能性テスト。
  3. オンライン スケジューリング アルゴリズムの提案

リソース プールがなく、各タイプのリソースが 1 つしかない場合、問題はおそらくはるかに単純になります。グラフ理論と単純なデータフロー分析アルゴリズムの基礎に精通しています。

4

1 に答える 1