JP5486034B2 - スケジュール作成方法、そのシステムおよびプログラム - Google Patents
スケジュール作成方法、そのシステムおよびプログラム Download PDFInfo
- Publication number
- JP5486034B2 JP5486034B2 JP2012068034A JP2012068034A JP5486034B2 JP 5486034 B2 JP5486034 B2 JP 5486034B2 JP 2012068034 A JP2012068034 A JP 2012068034A JP 2012068034 A JP2012068034 A JP 2012068034A JP 5486034 B2 JP5486034 B2 JP 5486034B2
- Authority
- JP
- Japan
- Prior art keywords
- layer
- task
- tasks
- relationship
- event
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 190
- 238000010586 diagram Methods 0.000 claims description 51
- 238000012545 processing Methods 0.000 claims description 39
- 238000006243 chemical reaction Methods 0.000 claims description 34
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 122
- 230000006870 function Effects 0.000 description 71
- 238000007726 management method Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 125000002015 acyclic group Chemical group 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000011056 performance test Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
前記タスク配置手段が、前記最大マッチングのマッチング数が前記レイヤLの1つ前のレイヤであるレイヤ内のタスク数より少ない場合、最大マッチングのマッチング数が前記レイヤLの1つ前のレイヤであるレイヤ内のタスク数と一致するまで、マッチング数とタスク数の差の数、前記レイヤLおよび前記レイヤLの1つ前のレイヤであるレイヤに空タスクを生成し、空タスクを配置するために新たなレベルの領域を作成し、前記後続タスク候補の集合を判定するステップ、および前記最大マッチングを取得するステップを繰り返す、ステップと、前記タスク配置手段が、前記レイヤLのレイヤを当該レイヤ内に存在するタスク数のレベルで分割し、前記レイヤLの1つ前のレイヤであるレイヤ内の各タスクとその後続タスクとが、同一レベルになるように分割した領域にタスクを配置するステップと、前記システムのイベント識別手段が、前記レイヤLの1つ前のレイヤであるレイヤ内のタスクxの後続として前記レイヤL内に配置できなかったタスクyを識別し、先行、後続として配置できなかったタスク間の先行関係を、前記同期機構イベントを使って表現するため、前記タスクxと前記タスクyとイベント識別子を前記イベント記憶手段に記憶するステップと、前記タスク配置手段が、前記レイヤLに1を加算することにより現在処理中のレイヤの次のレイヤを処理対象のレイヤとしてセットするステップを行い、前記レイヤLが前記フィニッシュ時間に対応するレイヤtであるか否か判定するステップに戻す、ステップとを含むことを特徴とする。
初めに、CDPプログラムについて説明する。CDPは、イベント駆動プログラミング(EDP)の一部である。従って、CDPは、EDPをサポートする任意のプログラミング言語、およびOSで実践できる。本実施形態では、C言語、およびWindows(登録商標)を用いるが、これに限定されるものではない。
CDPのタスクを、図2のプログラム記述例に基づいて説明する。CDPのタスクは、以下の要素を用いて定義される。
内部変数:ステート間で値を引継ぐために使用する1以上の変数
インタフェース関数:内部変数を他のタスクが参照または更新するための0以上の関数
リセット関数:内部変数を初期化するための関数
タスク本体関数:タイマーイベントハンドラーによって呼び出される関数
図2の行番号L18に示されるように、taskAはstateがfreeである場合のみ、計算要求を受け入れる。つまり、taskAが先行する計算要求を受け入れ、計算を実行している間は、他のタスクからの計算要求を受け入れることはできない。そこで、同時に複数の計算要求を処理したい場合には、同一機能を持つ複数のタスクを用意するために、タスクを配列化したタスク配列を定義する。図4に、図2に記載のtaskAを配列化したタスク配列のプログラム記述例を示す。
タスクを記述したら、次にタスク間の先行関係を把握しPERT図を作成する。タイマーイベントハンドラーが呼び出すのは、タスク本体関数であり、タスク間の先行関係とは、タスク本体関数間の先行関係である。あるタスクは、そのタスク本体関数において、他のタスクのインタフェース関数を呼び出して、他のタスクの処理結果を取得する。例えば、図3に示すtaskBは、タスク本体関数において、taskAのget_resultメソッドを呼び出して、taskAの処理結果F(x)yを取得する。このインタフェース関数の静的呼び出し関係を示したものが、図5のコールグラフである。
R(f) ∩ W(g) = φ・・・(1)
R(g) ∩ W(f) = φ・・・(2)
W(f) ∩ W(g) = φ・・・(3)
同時実行され得るタスクがBernstein's conditionsを満たさない場合、書き替え技法を用いてプログラムを修正する必要がある。代表的な3つの書き換え技法を以下で紹介する。
PERT図が得られたら、次にスケジュールを作成する。スケジュールは、どのタイミングでどのリソースにタスクを割り当てるかを、PERT図で与えられた先行関係を満たすように定めたものである。利用可能なリソースの制約の元で、完了時間が最小となるスケジュールを作成することが望ましい。図14に示すPERT図に基づいて、スケジュールを作成する。
逐次実行する場合、PERT図を既知のアルゴリズムでトポロジカルソートすることにより、容易にスケジュールを作成することができる。図14のPERT図の場合、以下の3つのスケジュールが作成される。taskX、taskY、taskZ、taskWのタスク本体関数が、それぞれ、taskX_CLK()、taskY_CLK()、taskZ_CLK()、taskW_CLK()であるものとする。
スケジュール1=taskX_CLK(); taskY_CLK(); taskW_CLK(); taskZ_CLK();
スケジュール2=taskX_CLK(); taskY_CLK(); taskZ_CLK(); taskW_CLK();
スケジュール3=taskX_CLK(); taskZ_CLK(); taskY_CLK(); taskZ_CLK();
並列実行する場合、タスク間の先行関係は同期プリミティブを用いて実現する。本実施形態では、同期プリミティブとして、Windowsの提供するEvent Objectを用いる。Event Objectは、2つの状態(シグナル状態/非シグナル状態)を持つ。SetEvent(e)を呼び出すことにより、引数eのハンドルにより特定されるEvent Objectはシグナル状態になる。WaitForSingleObject(e)を呼び出すと、引数eのハンドルにより特定されるEvent Objectが非シグナル状態である場合、シグナル状態になるまでWaitForSingleObject(e)の呼び出し側スレッドは待機し続ける。他のスレッドによりSetEvent(e)が呼ばれ、eにより特定されるEvent Objectがシグナル状態になると、制御が戻され、呼び出し側スレッドは後続の処理を実行することができる。
スケジュール4−0=taskX_CLK(); SetEvent(e1); SetEvent(e2);
スケジュール4−1=WaitForSingleObject(e1); taskZ_CLK();
スケジュール4−2=WaitForSingleObject(e2); taskY_CLK(); SetEvent(e3);
スケジュール4−3=WaitForSingleObject(e3); taskW_CLK();
タスク配列内の各タスク間に先行関係は存在しない。そのため、各タスクをどのような順序でスケジューリングしてもよい。また、タスク配列は、コードは全て同じで、内部変数の場所だけが異なるので、タスク配列内の各タスクの平均の実行時間は、同一であることが期待できる。従って、タスクの多重度がm、利用可能なCPU数がnである場合、各CPUにm/n個ずつタスクを分配する。
スケジュール5−0=taskX_CLK(); SetEvent(e1); SetEvent(e21); SetEvent(e22);
スケジュール5−1=WaitForSingleObject(e1); taskZ_CLK();
スケジュール5−2=WaitForSingleObject(e21); taskY_CLK(0); taskY_CLK(2);
SetEvent(e31);
スケジュール5−3=WaitForSingleObject(e22); taskY_CLK(1); taskY_CLK(3);
SetEvent(e32);
スケジュール5−4=WaitForSingleObject(e31); WaitForSingleObject(e32);
taskW_CLK();
図18のブロック図を参照して、スケジュール作成システム1の構成を詳細に説明する。なお、図18では、単一のコンピュータシステムを想定し、必要な機能構成だけを示しているが、スケジュール作成システム1を、複数のコンピュータシステムによる多機能の分散システムの一部として構成することもできる。
次に、図22のフローチャートを参照して、本実施形態に係るスケジュールを作成する工程を説明する。本実施形態では、図9に示されるPERT図で表される複数のタスクを、そのタスク間の先行関係のみに基づいてスケジューリングする。
次に、図32のフローチャートを参照して、タスク配置記憶手段19のタスク配置構造体およびイベント記憶手段20に基づいて、スケジュールを作成する工程を詳述する。本実施形態では、(スケジュールの作成−並列実行)の章同様、Event Objectを用いるものとする。
スケジュール6−0=task1(); WaitForSingleObject(e0); task4(); SetEvent(e2);
SetEvent(e3); task6(); SetEvent(e4);
スケジュール6−1=task2(); SetEvent(e0); WaitForSingleObject(e2); task7();
SetEvent(e5);
スケジュール6−2=task3(); SetEvent(e1); task5(); WaitForSingleObject(e4);
WaitForSingleObject(e5); WaitForSingleObject(e6); task9();
スケジュール6−3=WaitForSingleObject(e1); WaitForSingleObject(e3); task8();
SetEvent(e6);
Claims (8)
- 先行タスク、後続タスク、タスク間に生じる直接および間接の先行関係タイプを格納する閉包先行関係記憶手段と、先行タスク、後続タスク、タスク間に生じる直接の先行関係タイプを格納する縮退先行関係記憶手段と、タスク間の先行後続関係に基づくスケジューリングを実現するために用いる同期機構イベントの識別子と先行、後続として配置できなかったタスク間の先行関係とを格納するイベント記憶手段と、スケジュールの結果を記憶するタスク配置記憶手段とを備えたシステムにおいて実行される方法であって、
前記システムの先行関係管理手段が、スケジュール作成対象のプログラムのタスク間の先行関係データを受信するステップと、
前記先行関係管理手段が、前記先行関係データに含まれる先行関係から、間接的な先行関係を識別し、前記識別された間接的な先行関係を取り除いた先行関係タイプを前記縮退先行関係記憶手段に記憶させるとともに、前記閉包先行関係記憶手段の先行関係タイプを直接、間接を区別して記憶させるステップと、
前記システムのタスク配置手段が、前記縮退先行関係記憶手段に記録された先行関係に対し、PERT解析を使用して、各タスクの実行時間を1とした場合の各タスクの開始時間を算出するステップと、
前記タスク配置手段が、前記算出した開始時間に基づいて、前記各タスクの開始時間に対応する1以上のレイヤ、およびスケジュール作成対象のプログラムの実行のフィニッシュ時間に対応するレイヤを有するタスク配置構造体を生成するステップと、
前記タスク配置手段が、レイヤ1をレイヤ1内に存在するタスク数のレベルで分割し、
分割した領域にタスクを配置するステップと、
前記タスク配置手段が、処理対象のレイヤを示すレイヤLに、レイヤ2をセットするステップと、
前記タスク配置手段が、前記レイヤLが前記フィニッシュ時間に対応するレイヤtであるか否か判定するステップであって、レイヤtである場合、前記タスク配置構造体および前記イベント記憶手段に基づいて、スケジュールを作成し、レイヤtでない場合、
前記タスク配置手段が、前記レイヤLおよび前記レイヤLの1つ前のレイヤであるレイヤ内のタスク数を比較して、いずれか一方のレイヤ内のタスク数が他方のレイヤ内のタスク数より少ない場合、空タスクを生成して両レイヤ内のタスク数を同一にするステップと、
前記タスク配置手段が、前記閉包先行関係記憶手段に基づいて、前記レイヤLの1つ前のレイヤであるレイヤ内の各タスクに対して、後続となり得る前記レイヤL内のタスク(後続タスク候補)の集合を判定するステップと、
前記タスク配置手段が、グラフの最大マッチングアルゴリズムを用いて、前記レイヤLの1つ前のレイヤであるレイヤ内の各タスクとその後続タスクについて、最大マッチングを取得するステップと、
前記タスク配置手段が、前記最大マッチングのマッチング数が前記レイヤLの1つ前のレイヤであるレイヤ内のタスク数より少ない場合、最大マッチングのマッチング数が前記レイヤLの1つ前のレイヤであるレイヤ内のタスク数と一致するまで、マッチング数とタスク数の差の数、前記レイヤLおよび前記レイヤLの1つ前のレイヤであるレイヤに空タスクを生成し、空タスクを配置するために新たなレベルの領域を作成し、前記後続タスク候補の集合を判定するステップ、および前記最大マッチングを取得するステップを繰り返す、ステップと、
前記タスク配置手段が、前記レイヤLのレイヤを当該レイヤ内に存在するタスク数のレベルで分割し、前記レイヤLの1つ前のレイヤであるレイヤ内の各タスクとその後続タスクとが、同一レベルになるように分割した領域にタスクを配置するステップと、
前記システムのイベント識別手段が、前記レイヤLの1つ前のレイヤであるレイヤ内のタスクxの後続として前記レイヤL内に配置できなかったタスクyを識別し、先行、後続として配置できなかったタスク間の先行関係を、前記同期機構イベントを使って表現するため、前記タスクxと前記タスクyとイベント識別子を前記イベント記憶手段に記憶するステップと、
前記タスク配置手段が、前記レイヤLに1を加算することにより現在処理中のレイヤの次のレイヤを処理対象のレイヤとしてセットするステップを行い、
前記レイヤLが前記フィニッシュ時間に対応するレイヤtであるか否か判定するステップに戻す、ステップと
を含むことを特徴とする方法。 - 前記タスク配置構造体および前記イベント記憶手段に基づいて、スケジュールを作成するステップは、
前記システムのスケジュール変換手段が、前記タスク配置構造体にスケジュール未作成のレベルが存在するか否か判定し、存在する場合に、後続の処理を続けるステップと、
前記スケジュール変換手段が、前記タスク配置構造体のレベルのうち、スケジュールを作成していないレベルを抽出し、かつ、処理対象のレイヤを示すレイヤCに、1をセットするステップと、
前記スケジュール変換手段が、前記レイヤCが前記レイヤtであるか否か判定するステップであって、レイヤtである場合、前記タスク配置構造体にスケジュール未作成のレベルが存在するか否か判定するステップに戻り、レイヤtでない場合、
前記スケジュール変換手段が、前記レイヤCに配置されたタスクを識別するステップと、
前記スケジュール変換手段が、前記イベント記憶手段に基づいて、前記識別したタスクを実行する前に待機すべきイベントが存在するか否かを判定し、存在する場合に、イベントを待機するために待機タスクをスケジュールに挿入するステップと、
前記スケジュール変換手段が、前記識別したタスクが空タスクでない場合、当該タスクの実行をスケジュールとして記述するステップと、
前記スケジュール変換手段が、前記イベント記憶手段に基づいて、前記識別したタスクの完了を通知すべきイベントが存在するか否かを判定し、存在する場合に、イベントを通知する通知タスクをスケジュールに挿入するステップと、
前記スケジュール変換手段が、前記レイヤCに1を加算し現在処理中のレイヤの次のレイヤをセットするステップを行い、
前記レイヤCが前記レイヤtであるか否か判定するステップに戻すステップと
を含むことを特徴とする請求項1に記載の方法。 - 前記先行関係データはPERT図であり、
前記先行関係管理手段が、前記先行関係データからタスクに対応するノードの集合、およびタスク間の先行関係を表す矢印の集合を抽出するステップと、
前記先行関係管理手段が、タスク間に生じる間接の先行関係を識別するステップと
をさらに含むことを特徴とする請求項1または2に記載の方法。 - 前記先行関係管理手段は、直接の先行関係および間接の先行関係を有する場合には、前記閉包先行関係記憶手段に間接の先行関係を優先して登録することを特徴とする請求項1乃至3のいずれかに記載の方法。
- 前記スケジュール変換手段は、同期プリミティブを用いて前記待機すべきイベントおよび前記通知すべきイベントを記述することを特徴とする請求項2に記載の方法。
- 前記タスク配置構造体を、前記システムのタスク配置記憶手段に記憶するステップをさらに含むことを特徴とする請求項1乃至5のいずれかに記載の方法。
- 先行タスク、後続タスク、タスク間に生じる直接および間接の先行関係タイプを格納する閉包先行関係記憶手段と、先行タスク、後続タスク、タスク間に生じる直接の先行関係タイプを格納する縮退先行関係記憶手段と、
タスク間の先行後続関係に基づくスケジューリングを実現するために用いる同期機構イベントの識別子と先行、後続として配置できなかったタスク間の先行関係とを格納するイベント記憶手段と、
スケジュールの結果を記憶するタスク配置記憶手段と、
スケジュール作成対象のプログラムのタスク間の先行関係データを受信し、前記先行関係データに含まれる先行関係から、間接的な先行関係を識別し、前記識別された間接的な先行関係を取り除いた先行関係タイプを前記縮退先行関係記憶手段に記憶させるとともに、前記閉包先行関係記憶手段の先行関係タイプを直接、間接を区別して記憶させる先行関係管理手段と、
前記縮退先行関係記憶手段に記録された先行関係に対し、PERT解析を使用して、各タスクの実行時間を1とした場合の各タスクの開始時間を算出し、前記算出した開始時間に基づいて、前記各タスクの開始時間に対応する1以上のレイヤ、およびスケジュール作成対象のプログラムの実行のフィニッシュ時間に対応するレイヤを有するタスク配置構造体を生成し、レイヤ1をレイヤ1内に存在するタスク数のレベルで分割して、分割した領域にタスクを配置し、処理対象のレイヤを示すレイヤLにレイヤ2をセットし、前記レイヤLが前記フィニッシュ時間に対応するレイヤtであるか否か判定し、レイヤtでない場合、ステップ(1)から(6)を繰り返すタスク配置手段であって、
(1)前記レイヤLおよび前記レイヤLの1つ前のレイヤであるレイヤ内のタスク数を比較して、いずれか一方のレイヤ内のタスク数が他方のレイヤ内のタスク数より少ない場合、空タスクを生成して両レイヤ内のタスク数を同一にし、
(2)前記閉包先行関係記憶手段に基づいて、前記レイヤLの1つ前のレイヤであるレイヤ内の各タスクに対して、後続となり得る前記レイヤL内のタスク(後続タスク候補)の集合を判定し、
(3)グラフの最大マッチングアルゴリズムを用いて、前記レイヤLの1つ前のレイヤであるレイヤ内の各タスクとその後続タスクについて、最大マッチングを取得し、
(4)前記最大マッチングのマッチング数が前記レイヤLの1つ前のレイヤであるレイヤ内のタスク数より少ない場合、最大マッチングのマッチング数が前記レイヤLの1つ前のレイヤであるレイヤ内のタスク数と一致するまで、マッチング数とタスク数の差の数、前記レイヤLおよび前記レイヤLの1つ前のレイヤであるレイヤに空タスクを生成し、空タスクを配置するために新たなレベルの領域を作成し、(2)および(3)を繰り返し、
(5)前記レイヤLのレイヤを当該レイヤ内に存在するタスク数のレベルで分割し、前記レイヤLの1つ前のレイヤであるレイヤ内の各タスクとその後続タスクとが、同一レベルになるように分割した領域にタスクを配置し、
(6)前記レイヤLに1を加算することにより現在処理中のレイヤの次のレイヤをセットし、前記レイヤLがフィニッシュ時間に対応するレイヤtでない場合、(1)に戻す
タスク配置手段と、
前記レイヤLの1つ前のレイヤであるレイヤ内のタスクxの後続として前記レイヤL内に配置できなかったタスクyを識別し、先行、後続として配置できなかったタスク間の先行関係を、前記同期機構イベントを使って表現するため、前記タスクxと前記タスクyとイベント識別子を前記イベント記憶手段に記憶するイベント識別手段と、
前記タスク配置構造体および前記イベント記憶手段に基づいて、スケジュールを作成するスケジュール変換手段と
を備えたことを特徴とするシステム。 - 先行タスク、後続タスク、タスク間に生じる直接および間接の先行関係タイプを格納する閉包先行関係記憶手段と、先行タスク、後続タスク、タスク間に生じる直接の先行関係タイプを格納する縮退先行関係記憶手段と、タスク間の先行後続関係に基づくスケジューリングを実現するために用いる同期機構イベントの識別子と先行、後続として配置できなかったタスク間の先行関係とを格納するイベント記憶手段とスケジュールの結果を記憶するタスク配置記憶手段とを備えたシステムに、タスク間の先行関係に基づいてスケジュールを作成させるためのプログラムであって、
前記システムの先行関係管理手段が、スケジュール作成対象のプログラムのタスク間の先行関係データを受信するステップと、
前記先行関係管理手段が、前記先行関係データに含まれる先行関係から、間接的な先行関係を識別し、前記識別された間接的な先行関係を取り除いた先行関係タイプを前記縮退先行関係記憶手段に記憶させるとともに、前記閉包先行関係記憶手段の先行関係タイプを直接、間接を区別して記憶させるステップと、
前記システムのタスク配置手段が、前記縮退先行関係記憶手段に記録された先行関係に対し、PERT解析を使用して、各タスクの実行時間を1とした場合の各タスクの開始時間を算出するステップと、
前記タスク配置手段が、前記算出した開始時間に基づいて、前記各タスクの開始時間に対応する1以上のレイヤ、およびスケジュール作成対象のプログラムの実行のフィニッシュ時間に対応するレイヤを有するタスク配置構造体を生成するステップと、
前記タスク配置手段が、レイヤ1をレイヤ1内に存在するタスク数のレベルで分割し、分割した領域にタスクを配置するステップと、
前記タスク配置手段が、処理対象のレイヤを示すレイヤLにレイヤ2をセットするステップと、
前記タスク配置手段が、前記レイヤLが前記フィニッシュ時間に対応するレイヤtであるか否か判定するステップであって、レイヤtである場合、前記タスク配置構造体および前記イベント記憶手段に基づいて、スケジュールを作成し、レイヤtでない場合、
前記タスク配置手段が、前記レイヤLおよび前記レイヤLの1つ前のレイヤであるレイヤ内のタスク数を比較して、いずれか一方のレイヤ内のタスク数が他方のレイヤ内のタスク数より少ない場合、空タスクを生成して両レイヤ内のタスク数を同一にするステップと、
前記タスク配置手段が、前記閉包先行関係記憶手段に基づいて、前記レイヤLの1つ前のレイヤであるレイヤ内の各タスクに対して、後続となり得る前記レイヤL内のタスク(後続タスク候補)の集合を判定するステップと、
前記タスク配置手段が、グラフの最大マッチングアルゴリズムを用いて、前記レイヤLの1つ前のレイヤであるレイヤ内の各タスクとその後続タスクについて、最大マッチングを取得するステップと、
前記タスク配置手段が、前記最大マッチングのマッチング数が前記レイヤLの1つ前のレイヤであるレイヤ内のタスク数より少ない場合、最大マッチングのマッチング数が前記レイヤLの1つ前のレイヤであるレイヤ内のタスク数と一致するまで、マッチング数とタスク数の差の数、前記レイヤLおよび前記レイヤLの1つ前のレイヤであるレイヤに空タスクを生成し、空タスクを配置するために新たなレベルの領域を作成し、前記後続タスク候補の集合を判定するステップ、および前記最大マッチングを取得するステップを繰り返す、ステップと、
前記タスク配置手段が、前記レイヤLのレイヤを当該レイヤ内に存在するタスク数のレベルで分割し、前記レイヤLの1つ前のレイヤであるレイヤ内の各タスクとその後続タスクとが、同一レベルになるように分割した領域にタスクを配置するステップと、
前記システムのイベント識別手段が、前記レイヤLの1つ前のレイヤであるレイヤ内のタスクxの後続として前記レイヤL内に配置できなかったタスクyを識別し、先行、後続として配置できなかったタスク間の先行関係を、前記同期機構イベントを使って表現するため、前記タスクxと前記タスクyとイベント識別子を前記イベント記憶手段に記憶するステップと、
前記タスク配置手段が、前記レイヤLに1を加算することにより現在処理中のレイヤの次のレイヤを処理対象のレイヤとしてセットするステップを行い、
前記レイヤLがフィニッシュ時間に対応するレイヤtであるか否か判定するステップに戻す、ステップと
を含むことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012068034A JP5486034B2 (ja) | 2012-03-23 | 2012-03-23 | スケジュール作成方法、そのシステムおよびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012068034A JP5486034B2 (ja) | 2012-03-23 | 2012-03-23 | スケジュール作成方法、そのシステムおよびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013200667A JP2013200667A (ja) | 2013-10-03 |
JP5486034B2 true JP5486034B2 (ja) | 2014-05-07 |
Family
ID=49520880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012068034A Active JP5486034B2 (ja) | 2012-03-23 | 2012-03-23 | スケジュール作成方法、そのシステムおよびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5486034B2 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001282551A (ja) * | 2000-03-29 | 2001-10-12 | Hitachi Ltd | ジョブ処理装置および方法 |
JP4206653B2 (ja) * | 2001-07-13 | 2009-01-14 | 日本電気株式会社 | タスクスケジューリングシステムおよび方法、プログラム |
JP2003296124A (ja) * | 2002-03-29 | 2003-10-17 | Japan Research Institute Ltd | ジョブ実行順序設定装置、ジョブ実行順序設定システムおよびジョブ実行順序設定方法 |
JP2005038332A (ja) * | 2003-07-18 | 2005-02-10 | Matsushita Electric Ind Co Ltd | ジョブスケジュール装置 |
-
2012
- 2012-03-23 JP JP2012068034A patent/JP5486034B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013200667A (ja) | 2013-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8327363B2 (en) | Application compatibility in multi-core systems | |
Singh et al. | Optimizing grid-based workflow execution | |
US20170046201A1 (en) | Backfill scheduling for embarrassingly parallel jobs | |
Carver et al. | In search of a fast and efficient serverless dag engine | |
JP2012511204A (ja) | リソースを最適化するためのタスク再編成方法 | |
JP2011527788A (ja) | 依存問題の効率的並列計算 | |
US20070198628A1 (en) | Cell processor methods and apparatus | |
CN113205417B (zh) | 一种面向联盟链的交易并行处理方法及系统 | |
Becker et al. | Scheduling multi-rate real-time applications on clustered many-core architectures with memory constraints | |
US8484649B2 (en) | Amortizing costs of shared scans | |
Zeng et al. | Mechanisms for guaranteeing data consistency and flow preservation in AUTOSAR software on multi-core platforms | |
Verhoef | Modeling and validating distributed embedded real-time control systems | |
WO2020121292A1 (en) | Efficient data processing in a serverless environment | |
Suzuki et al. | Real-time ros extension on transparent cpu/gpu coordination mechanism | |
WO2016207249A1 (en) | Computer-implemented method of performing parallelized electronic-system level simulations | |
Singh et al. | A non-database operations aware priority ceiling protocol for hard real-time database systems | |
CN113220444B (zh) | Os优化的工作流分配 | |
EP2840513B1 (en) | Dynamic task prioritization for in-memory databases | |
Amer et al. | Improving scientific workflow performance using policy based data placement | |
JP5480322B2 (ja) | 性能制御方法、そのシステムおよびプログラム | |
JP5486034B2 (ja) | スケジュール作成方法、そのシステムおよびプログラム | |
Lázaro-Muñoz et al. | A tasks reordering model to reduce transfers overhead on GPUs | |
CN113094260B (zh) | 一种分布式系统时序关系建模与仿真分析方法 | |
Wong et al. | Priority-based functional reactive programming (P-FRP) using deferred abort | |
JP5465745B2 (ja) | プログラム処理方法およびそのシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131119 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20140109 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140115 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20140109 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140220 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5486034 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |