JP7193771B1 - スケジューリング方法及びスケジューリング設計支援装置 - Google Patents

スケジューリング方法及びスケジューリング設計支援装置 Download PDF

Info

Publication number
JP7193771B1
JP7193771B1 JP2022528718A JP2022528718A JP7193771B1 JP 7193771 B1 JP7193771 B1 JP 7193771B1 JP 2022528718 A JP2022528718 A JP 2022528718A JP 2022528718 A JP2022528718 A JP 2022528718A JP 7193771 B1 JP7193771 B1 JP 7193771B1
Authority
JP
Japan
Prior art keywords
schedule
task
time
constraint
evaluation
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
Application number
JP2022528718A
Other languages
English (en)
Other versions
JPWO2023276075A5 (ja
JPWO2023276075A1 (ja
Inventor
涼太 北川
新 平野
大介 川上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP7193771B1 publication Critical patent/JP7193771B1/ja
Publication of JPWO2023276075A1 publication Critical patent/JPWO2023276075A1/ja
Publication of JPWO2023276075A5 publication Critical patent/JPWO2023276075A5/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

複数のプロセッサコアを用いたスケジューリング方法であって、制御ソフトウェアを構成する各タスクの実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定ステップと、すべての制約式を満たすスケジュールを導出するスケジュール導出ステップと、導出したスケジュールの結果を出力するスケジュール結果出力ステップとを備えることを特徴としたスケジューリング方法なので、最適となるスケジュールを提示することができる。

Description

本開示はマルチコアプロセッサを搭載する計算機システムにおけるリアルタイムタスクを対象としたスケジューリング方法およびスケジューリング設計支援装置に関するものである。
マルチコアプロセッサを搭載したリアルタイムシステムにおいて、すべてのタスクの実行完了時刻がデッドライン制約を満たすように適切なプロセッサの実行時間を割り当てるリアルタイムスケジューリング方法が提案されている。例えば、FAドメインにおける組込みシステムでは、コントローラの高性能化に伴って処理するタスク数が増加する中で、異なる実行周期やタスク間において実行順序の依存関係を持つ複数のタスクに対し、すべての制約を満たすようにスケジューリングすることが要求される。その上で、周期が短いタスクにおいては、処理実行時のコンテキストスイッチ等によるオーバヘッドの影響が大きいので削減することが要求される。
従来のスケジューリング方法では、タスクが分割された複数のサブタスクが満たすべき実行順序の依存関係を満たし、かつ、複数の処理装置で実行する複数のサブタスク構成候補を作成し、さらにサブタスク構成候補に別のタスクを配置することによってスケジュール候補を作成し、タスクの周期における実行タイミング、中断時間、遅延時間に基づく有効度が最良となるスケジュール候補を選択している(特許文献1)。
PCT/JP2010/055719
特許文献1では、第1のサブタスク構成候補に第2のタスクを配置する際に、2つのタスク間において暗黙的な優先度を規定しているため、配置の組み合わせパターンが限定される。すなわち、有効度が最良となるスケジュール候補の探索空間が狭まることになり、大域的最適解であるスケジュール候補が求められないという問題点がある。
本開示では、上記のような問題点を解決するためになされたものであり、大域的最適解であるスケジュール候補を求め、すべてのタスクについてデッドライン時間までの余裕時間または処理実行時のオーバヘッドに関して最適化を行うことを目的としている。
この発明に係るスケジューリング方法は、複数のプロセッサコアを用いたスケジューリング方法であって、制御ソフトウェアを構成するタスク毎の実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定ステップと、評価尺度は複数の尺度を定義し、導出するスケジュールに対して評価尺度となる評価値を算出する目的関数を設定する評価尺度設定ステップと、複数の評価尺度に基づく評価値を算出してすべての制約式を満たすパレート最適なスケジュールを導出するスケジュール導出ステップと、導出したスケジュールの結果を出力するスケジュール結果出力ステップとを備えるスケジューリング方法である。
また、この発明に係るスケジューリング方法は、複数のプロセッサコアを用いたスケジューリング方法であって、制御ソフトウェアを構成するタスク毎の実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定ステップと、評価尺度はプロセッサコアにおけるタスクの未割り当て時間、タスク毎に実行される際のプリエンプションの発生数、タスク毎に実行される際のコアマイグレーションの発生数の少なくともいずれか1つによって定義され、導出するスケジュールに対して評価尺度となる評価値を算出する目的関数を設定する評価尺度設定ステップと、評価尺度に関して最適となるスケジュールを線形計画法によりすべての制約式を満たすスケジュールを導出するスケジュール導出ステップと、導出したスケジュールの結果を出力するスケジュール結果出力ステップとを備えるスケジューリング方法である。
また、この発明に係るスケジューリング設計支援装置は、複数のプロセッサコアを有するスケジューリング設計支援装置であって、制御ソフトウェアを構成するタスク毎の実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力する入力I/F部と、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定部と、評価尺度は複数の尺度を定義し、導出するスケジュールに対して評価尺度となる評価値を算出する目的関数を設定する評価尺度設定部と、複数の評価尺度に基づく評価値を算出してすべての制約式を満たすパレート最適なスケジュールを導出するスケジュール導出部と、導出したスケジュールの結果を出力するスケジュール結果出力部とを備えるスケジューリング設計支援装置である。
また、この発明に係るスケジューリング設計支援装置は、複数のプロセッサコアを有するスケジューリング設計支援装置であって、制御ソフトウェアを構成するタスク毎の実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力する入力I/F部と、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定部と、プロセッサコアにおけるタスクの未割り当て時間、タスク毎に実行される際のプリエンプションの発生数、タスク毎に実行される際のコアマイグレーションの発生数の少なくともいずれか1つによって定義され、導出するスケジュールに対して評価尺度となる評価値を算出する目的関数を設定する評価尺度設定部と、評価尺度に関して最適となるスケジュールを線形計画法によりすべての制約式を満たすスケジュールを導出するスケジュール導出部と、導出したスケジュールの結果を出力するスケジュール結果出力部とを備えるスケジューリング設計支援装置である。
この発明によれば、すべてのタスクについての制約を満たした最適化されたタスクスケジューリングを実現できる。
本開示の実施の形態1の基本制約を設定した場合のスケジューリング方法の処理手順を示すフローチャートである。 本開示の実施の形態1におけるスケジューリング方法の入力例を示す図である。 本開示の実施の形態1の評価尺度を設けない条件下でのスケジューリング結果例を示す図である。 本開示の実施の形態2の複数のタスク間における連続実行制約を含む対象タスクセットに関する情報を表したスケジューリング方法の入力例を示す図である。 本開示の実施の形態2の複数のタスク間における連続実行制約を含む対象タスクセットのスケジューリング結果例を示す図である。 本開示の実施の形態3の評価尺度を設定した場合のスケジューリング方法の処理手順を示すフローチャートである。 本開示の実施の形態3のタスクの実行周期における実行終了時点からデッドライン時間までの余裕時間を最大化する目的関数を設定した場合のスケジューリング結果例を示す図である。 本開示の実施の形態4のプロセッサコアにおけるタスク未割り当て時間を最大化する目的関数を設定した場合のスケジューリング結果例を示す図である。 本開示の実施の形態5のタスクのプリエンプション回数を最小化する目的関数を設定した場合のスケジューリング結果例を示す図である。 本開示の実施の形態6のタスクのコアマイグレーション回数を最小化する目的関数を設定した場合のスケジューリング結果例を示す図である。 本開示の実施の形態7の評価尺度および追加制約として希求水準制約を設定した場合のスケジューリング方法の処理手順を示すフローチャートである。 本開示の実施の形態7のタスクの実行周期における実行終了時点からデッドライン時間までの余裕時間とタスクのプリエンプション回数とを組み合わせた場合のスケジューリング結果例を示す図である。 本開示の実施の形態8のタスクの実行周期における実行終了時点からデッドライン時間までの余裕時間とタスクのプリエンプション回数とプロセッサコアにおけるタスク未割り当て時間を組み合わせた場合のスケジューリング結果例を示す図である。 本開示の実施の形態9のタスクの実行周期における実行終了時点からデッドライン時間までの余裕時間とタスクのプリエンプション回数とプロセッサコアにおけるタスク未割り当て時間とコアマイグレーション回数を組み合わせた場合のスケジューリング結果例を示す図である。 本開示の実施の形態10におけるスケジューリング設計支援装置の構成を示す図である。 本開示の実施の形態10における入力I/Fの構成を示す図である。 本開示の実施の形態10における制約設定部の構成を示す図である。 本開示の実施の形態10における追加制約設定テーブルの例を示す図である。
<実施の形態1>
実施の形態1は、リアルタイムシステムで実行される対象であるタスクに対して、リアルタイム要件に由来するすべての制約を満たすようにスケジューリングする方法に関する。このスケジューリング方法は、時間軸をある一定のタイムスロット幅で分割して実行するタスクを割り当てる時分割方法であり、制御ソフトウェアを構成する複数の周期的に実行されるタスクを対象として、制御ソフトウェアが満たすべき制約を定式化し、線形計画問題を解くことで最適なスケジュールを導出し、タイムスロットを最小単位のCPU時間として各タスクにCPU時間を割り当てる。
図1は、実施の形態1における基本制約を設定した場合のスケジューリング方法の処理手順フローチャートである。制御ソフトウェアを構成するタスクに関する情報および制御ソフトウェアが動作する計算機システムのハードウェア構成に関する情報を入力し(ステップS1001)、タスクに関する情報およびハードウェア構成に関する情報に基づいた制約式を設定し(ステップS1002)、すべての制約式を満たすようなスケジュールを求解し(ステップS1003)、求解したスケジュール結果を出力する(ステップS1004)。
ステップS1001は、対象とする制御ソフトウェアを構成するすべてのタスクに関して、タスク名、周期、デッドライン時間、実行時間、依存先タスクの情報を入力として受け付ける。ここでは、各タスクの実行時間は、事前に取得または推定した値を用いることを想定しており、例えば、対象とする計算機システム上で計測した最悪実行時間を用いてもよい。また、対象とする制御ソフトウェアが動作する計算機システムに搭載されたプロセッサのコア数の情報を入力として受け付ける。
ステップS1002は、ステップS1001で取得したタスクに関する情報とリアルタイム制御装置のハードウェア構成に関する情報に基づいて、制御ソフトウェアを計算機システムでリアルタイムに実行するうえで最低限必要となる基本制約を設定する。基本制約は、以下の式で表される実行時間制約(式1)、デッドライン制約(式2)、コア数制約(式3)、依存関係制約(式4-1・式4-2)の4つに分けられる。また、これらの式で用いられる各変数の意味については表にして示す。これら式1~4を総称して基本制約式という。
Figure 0007193771000001
Figure 0007193771000002
Figure 0007193771000003
Figure 0007193771000004
Figure 0007193771000005
Figure 0007193771000006
実行時間制約(式1)は、すべてのタスクが各周期において与えられた実行時間Pi実行されることを保証するものである。デッドライン制約(式2)は、すべてのタスクがデッドラインミスを起こさないことを保証するためのものである。コア数制約(式3)は、ある時刻tに並列実行されるジョブの数が、計算機システムに搭載されているプロセッサのコア数を超えないことを保証するものである。依存関係制約(式4)は、互いに依存関係にある2つのタスク(先行タスクiと後行タスクi’)が誤った実行順序で実行されないことを保証するものである。なお、後行タスクi’の周期は先行タスクiの周期の定数倍とする。
ステップS1003は、ステップS1002で設定したすべての制約式を満たすスケジュールを導出することで、すべてのタスクの開始時間を求める。求めるスケジュールの時間範囲は、例えば、対象とする制御ソフトウェアを構成するすべてのタスクの周期の最小公倍数に等しい時間とする。スケジュールの導出には、商用または非商用の線形計画ソルバを用いてもよいが、これに限定されるわけではない。
ステップS1004は、ステップS1003でスケジュールが導出できた場合には、導出したスケジュール結果であるすべてのタスクの開始時刻を出力する。ステップS1003でスケジュールが導出できなかった場合には、スケジュール不可状態を表す情報を出力する。
図2は、実施の形態1におけるスケジューリング方法の入力例を示す図であり、対象タスクセットに関する情報の入力例を示している。各タスクは、周期、デッドライン時間、実行時間、依存先タスクに関する情報を持つ。このスケジューリング方法は時分割方法であるため、周期、デッドライン時間、実行時間に関しては、タイムスロット数で表現される。タイムスロット幅は、任意の値を設定することが可能であり、例えば、対象とする複数のタスクの最小周期としてもよく、最小周期を整数値で割り切ったより小さい値を設定してもよい。デッドライン時間は、必ずしも周期と一致しなければならないわけではなく、自然数Nを導入して「<周期>N+<オフセット>」の形式で表現する。オフセットは周期と同等か小さい値である必要がある。
タイムスロット幅を2.0[us]に設定した場合、図2の例では、タスクAに関して、周期は12.0[us]、デッドライン時間は周期を起点として12.0[us]後、実行時間は4.0[us]、依存先タスクは無しという情報を表している。タスクBに関しては、周期は12.0[us]、デッドライン時間は周期を起点として12.0[us]後、実行時間は4.0[us]、依存先タスクはタスクAという情報を表している。タスクCおよびタスクDに関しても同様である。タスクBに関しては、周期は16.0[us]、デッドライン時間は周期を起点として16.0[us]後、実行時間は8.0[us]、依存先タスクは無しという情報を表している。タスクDに関しては、周期は24.0[us]、デッドライン時間は周期を起点として24.0[us]後、実行時間は12.0[us]、依存先タスクはタスクBという情報を表している。また、タスクBはタスクAに依存し、タスクDはタスクBに依存している。ここで依存とは、先行タスクの実行完了後に後行タスクが実行されることを意味し、先行タスクと後行タスクとが連続される必要はない。
図3は、実施の形態1における評価尺度を設けない条件下でのスケジューリング結果例を示す図である。24個分のタイムスロット幅(スケジューリング期間を24ステップ)において、コア0とコア1のプロセッサコアで、タスクA~Dを実行するスケジュールである。上段はコアと各タスクのデッドラインの関係を示し、下段は各タスクの実行とデッドラインとの関係を示している。各タスクの実行は、Aを右下がり斜線、Bを右上がり斜線、Cを縦線、Dを横線で示している。また、各タスクのデッドラインを丸で示している。これらの表記方法は、これ以降のスケジューリングの図でも共通している。
ここで、評価尺度を設けない条件下でのスケジューリング結果とは、上記で説明した基本制約式を満たすスケジュールであり、評価尺度に関して最適なスケジュールとは限らない。一方で、タスクA~Dはすべて基本制約として設定した4つの式からなる基本制約式を満たしている。また、A~Dの4つのタスクについてタスク間連続実行を考慮せずにスケジューリングした結果である。さらに、タスクAとタスクB、タスクBとタスクDは依存関係を持っているが、タスクAの実行終了直後にタスクBが、タスクB実行終了直後にタスクDが実行されているとは限らない。
タスクCの実行時間はタイムスロット数4個分である(図2)。ところが、タスクCは連続する4個分にはなっていない(図3。デッドラインを守って同一周期内に実行処理は完了している。一つのタスクにおいて同一周期内での処理実行が分断されるプリエンプションになっている。この分断処理を意味するプリエンプションは、タスクの評価尺度となる。
以上のように、複数のプロセッサコアを用いたスケジューリング方法であって、制御ソフトウェアを構成する各タスクの実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定ステップと、すべての制約式を満たすスケジュールを導出するスケジュール導出ステップと、導出したスケジュールの結果を出力するスケジュール結果出力ステップとを備えるスケジューリング方法であるので、すべてのタスクについての制約を満たした最適化されたタスクスケジューリングを実現できる。
また、求めるスケジュールに対して評価尺度となる評価値を算出する目的関数を設定する評価尺度設定ステップを備え、スケジュール導出ステップは、評価尺度に関して最適となるスケジュールを線形計画法により導出するので、異なる実行時間を持つ複数のリアルタイムタスクをデッドラインミスすることなく、依存関係に矛盾なく、プロセッサコア数制限を満たしてスケジューリングすることが可能となり、システムの信頼性を向上する。
<実施の形態2>
実施の形態2は、各タスクの制約にタスク間連続実行を追加してスケジューリング結果を得る形態である。メモリアクセスの観点などから連続してタスクを実行したい場合には、タスク間連続実行に関する追加制約を満たすことでタスク間連続実行を満たすスケジューリング結果を出力する。
図4は、複数のタスク間における連続実行制約を含む対象タスクセットに関する情報を表したスケジューリング方法の入力例を示す図である。図2と比較して連続実行条件が追加されている。よこの例では、タスクBはタスクAの完了後に連続して実行され、タスクDはタスクB完了後に連続実行されるように連続実行条件を設定している。
図5は、図4の複数のタスク間における連続実行制約を含む対象タスクセットのスケジューリング結果例を示す図である。図3にタスク間連続実行に関する追加制約を課した場合のスケジューリング結果となっており、図4のタスク間連続実行制約を満たしている。以下のタスク実行を説明する際のステップは、例えば、ステップMとは数字Mの時間から始まり、次の(M+1)ステップが開始する直前までの期間を指している。なお、Mは、0から始まる整数である。
図5では、タスクAとタスクBとは、それぞれ周期が6であることから4周期分スケジューリングされている。1つ目の周期(ステップ:0~5)では、ステップ1でタスクAの最後のステップが実行され、直後のステップ2でタスクBの最初のステップが実行されている。2つ目の周期(ステップ:6~11)では、ステップ7でタスクAの最後のステップが実行され、直後のステップ8でタスクBの最初のステップが実行されている。3つ目の周期(ステップ:12~17)では、ステップ13でタスクAの最後のステップが実行され、直後のステップ14でタスクBの最初のステップが実行されている。4つ目の周期(ステップ:18~23)では、ステップ21でタスクAの最後のステップが実行され、直後のステップ22でタスクBの最初のステップが実行されている。
図5では、タスクBとタスクDとは、それぞれ周期が6と12であることからタスクBの1周期目とタスクDの1周期目とで、タスクBの3周期目とタスクDの2周期目とでタスク間連続実行の追加制約が課されている。ステップ3でタスクBの最後のステップが実行され、直後のステップ4でタスクDの最初のステップが実行されている。また、ステップ15でタスクBの最後のステップが実行され、直後のステップ16でタスクDの最初のステップが実行されている。
タスク間連続実行の追加制約を課すことで、追加制約を課されたタスク間で連続にスケジューリングされるので、この制約を適用したスケジューリング結果として出力されることとなる。
以上のように、制御ソフトウェアを構成する各タスクの実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定ステップと、求めるスケジュールに対して評価尺度となる評価値を算出する目的関数を設定する評価尺度設定ステップと、すべての制約式を満たす最適となるスケジュールを線形計画法により導出するスケジュール導出ステップと、導出したスケジュールの結果を出力するスケジュール結果出力ステップとを備える複数のプロセッサコアを用いたスケジューリング方法であって、制約設定ステップは、タスク間に連続して実行する依存関係がある場合には、連続実行に関する制約を制約式に設定するスケジューリング方法であるので、連続実行制約のある2つのタスクに連続してCPU時間を割り当てることで、並列実行タスクを早期に完了することが可能となり、待ち時間を短縮することができる。
<実施の形態3>
実施の形態3は、評価尺度を各タスクの実行終了からデッドラインまでの余裕時間とすることで、制約を満たすスケジューリング結果から各タスクのデッドラインまでの余裕時間が最大となるスケジューリング結果を得ることができる。
ための例を示す。タスクセットの条件は図2と同一である。
図6は、実施の形態3における評価尺度を設定した場合のスケジューリング方法の処理手順フローチャートである。図6は、図1に対してステップS1102が追加されている点で相異している。制御ソフトウェアを構成するタスクに関する情報および制御ソフトウェアが動作する計算機システムのハードウェア構成に関する情報を入力し(ステップS1001)、タスクに関する情報およびハードウェア構成に関する情報に基づいた制約式を設定し(ステップS1102)、評価尺度を含めた制約式を設定し(ステップS1002)、すべての制約式を満たすようなタスクスケジュールを求解し(ステップS1003)、求解したスケジュール結果を出力する(ステップS1004)。なお、図において、同一の符号を付したものは、同一またはこれに相当するものであり、このことは明細書の全文、図面の全図において共通することである。さらに、明細書全文に表れている構成要素の形態は、あくまで例示であってこれらの記載に限定されるものではない。
図3は、A~Dの4つのタスクについて評価尺度を考慮せずにスケジューリング期間を24のステップとしてスケジューリングした結果を示している。タスクAの場合、周期が6であることから4周期分スケジューリングされている。タスクAの1つ目の周期(ステップ:0~5)はステップ0~1で実行され、デッドラインまでに4ステップ分余裕があることからデッドラインまでの余裕時間は4となる。同様に2つ目の周期(ステップ:6~11)、3つ目の周期(ステップ:12~17)も、それぞれ周期の最初の2ステップで実行されているため、デッドラインまでの余裕時間は4となる。4つ目の周期(ステップ:18~23)では、周期の最初とは異なり2ステップ後(ステップ:20~21)に実行されているのでデッドラインまでの余裕時間は2となる。これらを合計するとタスクAのデッドラインまでの余裕時間は合計で14となる。
タスクBの周期は6であり、タスクAと同様に4周期分スケジューリングされている。タスクBは、タスクAと同様にデッドラインまでの余裕時間を求めると1つ目の周期(ステップ:0~5)は2、2つ目の周期(ステップ:6~11)は0、3つ目の周期(ステップ:12~17)は2、4つ目の周期(ステップ:18~23)は2となり、合計で6となる。また、タスクCは周期が8であることから3周期分スケジューリングされている。1つ目の周期(ステップ:0~7)は0、2つ目の周期(ステップ:8~15)は2、3つ目の周期(ステップ:16~23)は0となり、合計で2となる。なお、タスクCの1つ目の周期では処理が途中で中断され、再度実行されている。このような場合における中断中のステップはデッドラインまでの余裕時間には含めない。タスクDは周期が12であることから2周期分スケジューリングされている。1つ目の周期(ステップ:0~11)は0、2つ目の周期(ステップ:12~23)は0となり、合計で0となる。よって、図3のスケジューリング結果の場合には、すべてのタスクのデッドラインまでの余裕時間の合計は22(14+6+2+0)となる。
評価尺度を各タスクの実行終了からデッドラインまでの余裕時間とした場合には、制約を満たすスケジューリング結果からデッドラインまでの余裕時間が最大となるスケジューリング結果を出力する。
図7は、タスクの実行周期における実行終了時点からデッドライン時間までの余裕時間を最大化する目的関数を設定した場合のスケジューリング結果例を示す図である。図7の条件は、図3と同じ図2で示す条件である。下段の各タスクの矢印は、デッドライン余裕時間を示している。各タスクのデッドライン余裕時間の合計は、タスクAが16、タスクBが6、タスクCが12、タスクDは2となり、デッドライン総余裕時間が36(16+6+12+2)となる。同様にして、図3のデッドライン総余裕時間を求めると22となり、共に同じ制約条件を満たしているが、余裕時間には差がある。
評価尺度として余裕時間を用いると、より余裕を持ったスケジューリング結果を出力することができる。
以上のように、制御ソフトウェアを構成する各タスクの実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定ステップと、求めるスケジュールに対して評価尺度となる評価値を算出する目的関数として各タスクのデッドライン時間までの余裕時間を設定する評価尺度設定ステップと、すべての制約式を満たす最適となるスケジュールを線形計画法により導出するスケジュール導出ステップと、導出したスケジュールの結果を出力するスケジュール結果出力ステップとを備える複数のプロセッサコアを用いたスケジューリング方法であるので、各タスクのデッドラインまでの時間を最大化したスケジュールを導出することが可能となり、リアルタイムタスクの信頼性を向上できる。
<実施の形態4>
実施の形態4は、評価尺度をコアの余裕時間とした場合に、制約を満たすスケジューリング結果から1つのコアの余裕時間が最大となるスケジューリング結果を得るものである。コアの余裕時間とは、スケジューリング期間内においてタスクの実行が割り当てられない時間の合計値を指す。タスクセットの条件は図2と同一である。
図3は、A~Dの4つのタスクについて評価尺度を考慮せずにスケジューリング期間を24ステップとしてスケジューリングした結果を示している。コア0は、ステップ14~15の期間にタスクがスケジューリングされていないため余裕時間は2である。コア1は、期間0~1、4~5、18~19の期間にタスクがスケジューリングされていないため、コア1の余裕時間の合計は6である。よって、1つのコアで余裕時間の合計が最大(他のコアよりも余裕時間の合計以上)は、6となる。
図8は、プロセッサコアにおけるタスク未割り当て時間を最大化する目的関数を設定した場合のスケジューリング結果例を示す図である。図3と同じ条件で評価尺度をコアの余裕時間とした場合のスケジューリング結果を示している。コア0の余裕時間は8、コア1の余裕時間は0となる。よって、図3と図8と同じ制約であるが、図3の余裕時間は6に対して、図8の余裕時間は8となり、最大化されている。
プロセッサコアにおけるタスク未割り当て時間を最大化する目的関数を設定して、評価尺度を1つのコアで余裕時間の合計が最大(他のコアよりも余裕時間の合計以上)とした場合には、制約を満たすスケジューリング結果から一つのコアの余裕時間が最大となるスケジューリング結果を出力することができる。
以上のように、制御ソフトウェアを構成する各タスクの実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定ステップと、求めるスケジュールに対して評価尺度となる評価値を算出する目的関数としてプロセッサコアにおけるタスクの未割り当て時間を設定する評価尺度設定ステップと、すべての制約式を満たす最適となるスケジュールを線形計画法により導出するスケジュール導出ステップと、導出したスケジュールの結果を出力するスケジュール結果出力ステップとを備える複数のプロセッサコアを用いたスケジューリング方法であるので、オーバヘッド時間を削減することが可能となり、システム全体のパフォーマンスをより向上させることができる。
<実施の形態5>
実施の形態5は、評価尺度をプリエンプションの回数とした場合に、制約を満たすスケジューリング結果からプリエンプションの回数を最小化したスケジューリング結果を得ることができる。一般にプリエンプションとは、マルチタスクのコンピュータシステムが実行中のタスクを一時的に中断する動作であり、基本的にそのタスク自体の協力は不要で、後でそのタスクを再実行するという意味も含むものである。ここでも、プリエンプションは、一つのタスクにおいて同一周期内での処理実行が分断(中断)されることを指し、分断(中断)される回数が評価尺度となる。タスクセットの条件は図2と同一である。
図3は、A~Dの4つのタスクについて評価尺度を考慮せずにスケジューリング期間を24ステップとしてスケジューリングした結果を示している。タスクA及びタスクBは、各周期においてタスクの実行が分断されていないのでプリエンプション回数は0回となる。タスクCは、1つ目の周期(ステップ:0~7)ではステップ2~3とステップ6~7とに処理が分割されて実行されているのでプリエンプションが1回あり、同様に2つ目の周期(ステップ:8~15)ではステップ8~9とステップ12~13とに処理が分割されて実行されているのでプリエンプションが1回あり、3つ目の周期(ステップ:16~23)ではステップ16~17とステップ22~23とに処理が分割されて実行されているのでプリエンプションが1回あるので、タスクCのプリエンプション回数は合計で3回となる。同様に、タスクDは、1周期目(ステップ:0~11)のプリエンプション回数が1回、2周期目(ステップ:12~23)のプリエンプション回数が1回あるので、タスクDのプリエンプション回数は合計で2回となる。よって、全タスクのプリエンプション回数の総計は、5回になっている。
図9は、図3と同じ条件で、タスクのプリエンプション回数を最小化する目的関数を設定した場合のスケジューリング結果例を示す図である。すべてのタスクにおいてプリエンプションの回数が0となり、プリエンプション合計回数は0回となっている。評価尺度をプリエンプションの回数とした場合、制約を満たすスケジューリング結果から全タスクのプリエンプション回数の合計が最小となるスケジューリング結果を出力することができる。
図3、図9共に基本制約は満たしているが、評価尺度を比較すると、図3ではプリエンプション回数の総計が5回に対して、図9ではすべてのタスクのプリエンプション回数が0となり最小化されているため、この評価尺度を適用すれば図9がスケジューリング結果として出力されることとなる。
以上のように、制御ソフトウェアを構成する各タスクの実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定ステップと、求めるスケジュールに対して評価尺度となる評価値を算出する目的関数として各タスクが実行される際のプリエンプションの発生数に設定する評価尺度設定ステップと、すべての制約式を満たす最適となるスケジュールを線形計画法により導出するスケジュール導出ステップと、導出したスケジュールの結果を出力するスケジュール結果出力ステップとを備える複数のプロセッサコアを用いたスケジューリング方法であるので、プリエンプションによるオーバヘッド時間を削減することが可能となり、リアルタイムタスクの処理性能をより向上させることができる。
以上のように、制御ソフトウェアを構成する各タスクの実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定ステップと、求めるスケジュールに対して評価尺度となる評価値を算出する目的関数として各タスクが実行される際のプリエンプションの発生数を設定する評価尺度設定ステップと、すべての制約式を満たす最適となるスケジュールを線形計画法により導出するスケジュール導出ステップと、導出したスケジュールの結果を出力するスケジュール結果出力ステップとを備える複数のプロセッサコアを用いたスケジューリング方法であるので、プリエンプションによるオーバヘッド時間を削減することが可能となり、リアルタイムタスクの処理性能をより向上させることができる。
<実施の形態6>
実施の形態6は、評価尺度をコアマイグレーションの回数とした場合に、制約を満たすスケジューリング結果からコアマイグレーションの回数を最小化したスケジューリング結果を得るための例を示す。コアマイグレーションとは、一つのタスクにおいて同一周期内での処理実行が複数のコアにまたがることを指し、同一周期内でコアが切り替わる回数が評価尺度となる。タスクセットの条件は図2と同一である。
図3はA~Dの4つのタスクについて評価尺度を考慮せずにスケジューリング期間を24ステップとしてスケジューリングした結果を示している。タスクA、タスクBはすべての周期においてコアマイグレーションは発生していない。タスクCの場合、1周期目はコア0で実行されており、コアマイグレーションは発生しない。2周期目はコア0で実行した後にコア1で実行されているため、コアマイグレーションが1回発生している。同様に3周期目はコア1で実行した後にコア0で実行されているため、コアマイグレーションが1回発生している。タスクDの場合、1周期目、2周期目共にコア0で実行した後にコア1で実行されているため、コアマイグレーションが1回発生しており、合計で2回のコアマイグレーションが発生している。
評価尺度をコアマイグレーションの回数とした場合、制約を満たすスケジューリング結果から全タスクのコアマイグレーション回数の合計が最小となるスケジューリング結果を出力する。
図10は、図3と同じ条件で評価尺度をタスクのコアマイグレーション回数を最小化する目的関数を設定した場合のスケジューリング結果例を示す図である。ここでは、すべてのタスクにおいてコアマイグレーションの回数が0となっている。
図3、図10共に基本制約は満たしているが、評価尺度を比較すると、図10ではすべてのタスクのコアマイグレーション回数が0となり最小化されているため、この評価尺度を適用すれば図10がスケジューリング結果として出力されることとなる。
以上のように、制御ソフトウェアを構成する各タスクの実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定ステップと、求めるスケジュールに対して評価尺度となる評価値を算出する目的関数として各タスクが実行される際のコアマイグレーションの発生数を設定する評価尺度設定ステップと、すべての制約式を満たす最適となるスケジュールを線形計画法により導出するスケジュール導出ステップと、導出したスケジュールの結果を出力するスケジュール結果出力ステップとを備える複数のプロセッサコアを用いたスケジューリング方法であるので、コアマイグレーションによるオーバヘッド時間を削減することが可能となり、リアルタイムタスクの処理性能をより向上させることができる。
<実施の形態7>
実施の形態7は、評価尺度を各タスクの実行終了からデッドラインまでの余裕時間とプリエンプション回数とし、プリエンプション回数に追加制約式を設け、希求水準値を課したスケジューリング結果から各タスクのデッドラインまでの余裕時間が最大となるスケジューリング結果を得るための例を示す。
図11は、評価尺度および追加制約として希求水準制約を設定した場合のスケジューリング方法の処理手順を示すフローチャートである。制御ソフトウェアを構成するタスクに関する情報および制御ソフトウェアが動作する計算機システムのハードウェア構成に関する情報を入力し(ステップS1201)、タスクに関する情報およびハードウェア構成に関する情報に基づいた基本制約式を設定し(ステップS1202)、評価尺度(実施の形態3~6にて説明)を設定し(ステップS1203)、後述する希求水準制約(希求水準値)を追加制約(追加制約式)として設定し(ステップS1204)、すべての制約式を満たすようなタスクスケジュールを求解し(ステップS1205)、求解したスケジュール結果を出力する(ステップS1206)。これによって、追加制約式と希求水準値とを設けることで各評価尺度に最低限満たす基準値を決定することができる。
図12は、タスクの実行周期における実行終了時点からデッドライン時間までの余裕時間とタスクのプリエンプション回数とを組み合わせた場合のスケジューリング結果例を示す図である。各タスクのプリエンプション回数は0回で、総回数も0回である。
A~Dの4つのタスクについてスケジューリング期間を24ステップとしてプリエンプション回数の合計を0回以下としたスケジューリング結果を示している。タスクAの場合には、周期が6であることから4周期分スケジューリングされている。1つ目の周期(ステップ:0~5)ではステップ0~1で実行され、デッドラインまでに4ステップ分の余裕があることからデッドラインまでの余裕時間は4となる。同様に2つ目の周期(ステップ:6~11)、3つ目の周期(ステップ:12~17)も、それぞれ周期の最初のステップで実行されているため、デッドラインまでの余裕時間は4となる。4つ目の周期(ステップ:18~23)では周期の3・4ステップ目(ステップ:20~21)で実行されているため、デッドラインまでの余裕時間は2となる。これらを合計するとタスクAのデッドラインまでの余裕時間は合計で14となる。タスクBの場合には、周期は6であり、タスクAと同様に4周期分スケジューリングされている。タスクAと同様にデッドラインまでの余裕時間を求めると1つ目の周期(ステップ:0~5)は2、2つ目の周期(ステップ:6~11)は2、3つ目の周期(ステップ:12~17)は2、4つ目の周期(ステップ:18~23)は0となり、合計で6となる。タスクCの場合には、周期が8であることから3周期分スケジューリングされている。1つ目の周期(ステップ:0~7)は4、2つ目の周期(ステップ:8~15)は2、3つ目の周期(ステップ:16~23)は4となり、合計で10となる。タスクDの場合には、周期が12であることから2周期分スケジューリングされている。1つ目の周期(ステップ:0~11)は2、2つ目の周期(ステップ:12~23)は2となり、合計で4となる。このスケジューリング結果の場合、すべてのタスクのデッドラインまでの余裕時間の合計は34(=14+6+10+4)となる。
図3、図12共に基本制約は満たしているが、評価尺度を比較すると、プリエンプションを図3での5回から図13では0回と最小化させつつ、デッドライン総余裕時間は図3での22を図13では34となり、この評価尺度を適用すれば図12がスケジューリング結果として出力されることとなる。
以上のように、制御ソフトウェアを構成する各タスクの実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定ステップと、求めるスケジュールに対して評価尺度となる評価値を算出する目的関数を設定する評価尺度設定ステップと、すべての制約式を満たす最適となるスケジュールを線形計画法により導出するスケジュール導出ステップと、導出したスケジュールの結果を出力するスケジュール結果出力ステップとを備える複数のプロセッサコアを用いたスケジューリング方法であって、評価尺度は、複数の尺度を定義し、スケジュール導出ステップは、複数の評価尺度に基づく評価値を算出してパレート最適なスケジュールを導出するので、より厳しい数値目標の制約式になるため、システム全体のパフォーマンス、リアルタイムタスクの信頼性、またはリアルタイムタスクの処理性能をより向上させることができる。
<実施の形態8>
実施の形態8では、評価尺度を各タスクの実行終了からデッドラインまでの余裕時間とプリエンプション回数、コア余裕最大化とし、プリエンプション回数とコア余裕時間に追加制約式を設け、希求水準値を課したスケジューリング結果から各タスクのデッドラインまでの余裕時間が最大となるスケジューリング結果を得るための例を示す。追加制約式と希求水準値を設けることで各評価尺度に最低限満たす基準値を決定することができる。
図13は、タスクの実行周期における実行終了時点からデッドライン時間までの余裕時間とタスクのプリエンプション回数とプロセッサコアにおけるタスク未割り当て時間とを組み合わせた場合のスケジューリング結果例を示す図である。A~Dの4つのタスクについてスケジューリング期間を24ステップとしてプリエンプション回数の合計を0回、コア余裕時間の合計を4回以上としたスケジューリング結果を示している。図12と同様にして各タスクについてデッドラインまでの余裕時間を求めると、すべてのタスクのデッドラインまでの余裕時間の合計は34となる。
図3、図13共に基本制約は満たしているが、評価尺度を比較すると、デッドライン総余裕時間は図3での22が図13では34となり、この評価尺度を適用すれば各タスクのデッドラインまでの余裕時間が最大となるスケジューリング結果として、図13のスケジューリング結果として出力されることとなる。
ここで、プリエンプションは図3での5回が図13では0回となるが、一方、コア余裕最大化は、図3では6であったのが、図13では4になっている。このように評価尺度を複数用いることによって、総ての評価尺度で最適化することができるとは限らない。ここでは、各タスクのデッドラインまでの余裕時間が最大となることを優先する評価尺度としたが、これに限られるとなく他の評価尺度項目、例えば、プリエンプションの回数、コア余裕時間などを優先する評価尺度としてもよい。また、個別の評価尺度に重み付けを行うことでトータル尺度となる式で総合評価してもよい。
以上のように、制御ソフトウェアを構成する各タスクの実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定ステップと、求めるスケジュールに対して評価尺度となる評価値を算出する目的関数を設定する評価尺度設定ステップと、すべての制約式を満たす最適となるスケジュールを線形計画法により導出するスケジュール導出ステップと、導出したスケジュールの結果を出力するスケジュール結果出力ステップとを備える複数のプロセッサコアを用いたスケジューリング方法であって、評価尺度は、複数の尺度を定義し、スケジュール導出ステップは、複数の評価尺度に基づく評価値を算出してパレート最適なスケジュールを導出するので、より厳しい数値目標の制約式になるため、システム全体のパフォーマンス、リアルタイムタスクの信頼性、またはリアルタイムタスクの処理性能をより向上させることができる。
<実施の形態9>
実施の形態9では、実施の形態8に対して、各タスクのデッドラインまでの余裕時間が最大となることを優先する評価尺度としたことは同じであるが、各評価尺度に最低限満たす基準値を設けている点で相違している。評価尺度を各タスクの実行終了からデッドラインまでの余裕時間、プリエンプション回数、コア余裕最大化、コアマイグレーションとし、プリエンプション回数とコア余裕時間に追加制約式を設け、希求水準値を課したスケジューリング結果から各タスクのデッドラインまでの余裕時間が最大となるスケジューリング結果を得るための例を示す。追加制約式と希求水準値を設けることで各評価尺度に最低限満たす基準値を決定することができる。
図14は、タスクの実行周期における実行終了時点からデッドライン時間までの余裕時間とタスクのプリエンプション回数とプロセッサコアにおけるタスク未割り当て時間とコアマイグレーション回数を組み合わせた場合のスケジューリング結果例を示す図である。A~Dの4つのタスクについてスケジューリング期間を12ステップとしてプリエンプション回数の合計を0回以下、コア余裕時間の合計を4回以上、コアマイグレーション回数の合計を0回以下としたスケジューリング結果を示している。各タスクの実行終了からデッドラインまでの余裕時間は、タスクAの場合は順番に4、4、4、2で計14、タスクBの場合は順番に2、2、2、0で計6、タスクCの場合は順番に4、2、4で計10、タスクDの場合は順番に2、2で計4となり、総計は34となる。
図3、図14共に基本制約は満たしているが、評価尺度を比較すると、図3では22、図14では34となるため、この評価尺度を適用すれば図14がスケジューリング結果として出力されることとなる。
ここでも、各タスクのデッドラインまでの余裕時間が最大となることを優先する評価尺度とすることに限られるとなく他の評価尺度項目、例えば、プリエンプションの回数、コア余裕時間などを優先する評価尺度としてもよい。また、個別の評価尺度に重み付けを行うことでトータル尺度となる式で総合評価してもよい。
以上のように、制御ソフトウェアを構成する各タスクの実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定ステップと、求めるスケジュールに対して評価尺度となる評価値を算出する目的関数を設定する評価尺度設定ステップと、すべての制約式を満たす最適となるスケジュールを線形計画法により導出するスケジュール導出ステップと、導出したスケジュールの結果を出力するスケジュール結果出力ステップとを備える複数のプロセッサコアを用いたスケジューリング方法であって、評価尺度は、複数の尺度を定義し、スケジュール導出ステップは、複数の評価尺度に基づく評価値を算出してパレート最適なスケジュールを導出するので、より厳しい数値目標の制約式になるため、システム全体のパフォーマンス、リアルタイムタスクの信頼性、またはリアルタイムタスクの処理性能をより向上させることができる。
また、スケジュール導出ステップでスケジュールが導出できなかった場合には、制約式の制約を緩和するので、各制約式について可能な範囲で最良な設定値を探索することが可能となり、ユーザのスケジュール設計コストを軽減することができる。
<実施の形態10>
実施の形態10は、スケジューリング設計支援装置1000の構成方法について説明する。実施の形態1から9で説明した目的関数、希求水準、制約式緩和を用いたスケジューリング方法を実施の形態10のスケジューリング設計支援装置1000で実施することができる。
図15は、スケジューリング設計支援装置の構成を示す図である。スケジューリング設計支援装置1000は、対象とするタスクセットおよび計算機システムのハードウェア情報を入力する入力I/F部1100と、求めるスケジュールに対する評価値を算出する目的関数を設定する評価尺度設定部1200と、対象とするタスクセットが満たすべき制約式を設定する制約設定部1300と、制約設定部1300で設定したすべての制約式を満たし、かつ評価尺度設定部1200で設定した評価尺度に関して最適となるスケジュールを線形計画法により導出するスケジュール導出部1400と、導出したスケジュール結果を出力するスケジュール結果出力部1500を備える。
図16は、入力I/Fの構成を示す図である。入力I/F部1100は、タスクセット情報入力I/F部1101と、ハードウェア情報入力I/F部1102を備える。タスクセット情報入力I/F部1101は、対象とする制御ソフトウェアを構成する複数のタスクの情報を入力するものであり、入力する情報は各タスクのタスク名、周期、デッドライン時間、実行時間、依存先タスクである。ハードウェア情報入力I/F部1102は、対象とする制御ソフトウェアを実行する計算機システムのハードウェア情報を入力するものであり、入力する情報は計算機システムに搭載されているプロセッサコア数である。
図17は、制約設定部の構成を示す図である。制約設定部1300は、基本制約設定部1301と、追加制約設定部1303、追加制約設定テーブル1304とを備える。基本制約設定部1301は、入力I/F部1100に入力された情報に基づいて、すべてのタスクが実行時間の分だけきちんと実行されることを保証する実行時間制約と、デッドラインミスを起こさないことを保証するデッドライン制約と、ある時間で実行されるタスクの数がプロセッサコア数を超えないことを保証するコア数制約と、互いに依存関係にある2つのタスクが誤った実行順序で実行されないことを保証する依存関係制約を、基本的な制約式として設定する。追加制約設定部1303は、評価尺度設定部1200で設定されていない評価尺度を追加の制約として、望ましいと考えられる値を希求水準値として設定する。追加制約設定テーブル1304は、追加制約設定部1303で設定した追加制約に関して、優先度付けと希求水準値の設定範囲を指定するものである。
図18は、追加制約設定テーブルの例を示す図である。追加制約設定テーブル1304は、追加制約設定部1303で設定した各追加制約に関して、優先度と希求水準値の設定可能な上限値と下限値を格納している。評価尺度設定部1200で設定した評価尺度と、基本制約設定部1301で設定した基本制約と、追加制約設定部1303で設定した追加制約からなる線形計画問題を、スケジュール導出部1400が解けない場合に、追加制約設定テーブル1304に基づいて追加制約を緩和していく。追加制約設定部1303は、優先度が低い追加制約の希求水準値を理想値から許容限界値に向かって1だけインクリメントして追加制約を再設定し、スケジュール導出部1400によって線形計画問題を解く。解けた場合は、スケジュール結果出力部1500によってスケジュール結果を出力する。解けない場合は、同様の手順によりさらなる追加制約の緩和を行う。追加制約の希求水準値が許容限界値に達した場合は、次に優先度が低い追加制約について緩和を行う。すべての追加制約式を許容限界値まで緩和しても解けない場合は、スケジュール結果出力部1500によって不能解状態を示す。
以上のように、制御ソフトウェアを構成する各タスクの実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力する入力I/F部と、すべてのタスクの実行時間及びデッドライン時間、並びにプロセッサコア数に関する制約を制約式として設定する制約設定部と、すべての制約式を満たすスケジュールを導出するスケジュール導出部と、導出したスケジュールの結果を出力するスケジュール結果出力部とを備える複数のプロセッサコアを有するスケジューリング設計支援装置であるので、すべてのタスクについての制約を満たした最適化されたタスクスケジューリングを実現できる。
また、求めるスケジュールに対して評価尺度となる評価値を算出する目的関数を設定する評価尺度設定部を備え、スケジュール導出部は、評価尺度に関して最適となるスケジュールを線形計画法により導出するスケジューリング設計支援装置なので、異なる実行時間を持つ複数のリアルタイムタスクをデッドラインミスすることなく、依存関係に矛盾なく、プロセッサコア数制限を満たしてスケジューリングすることが可能となり、システムの信頼性を向上する。
さらに、複数の評価尺度は、各タスクのデッドライン時間までの余裕時間による定義、プロセッサコアにおけるタスクの未割り当て時間による定義、各タスクが実行される際のプリエンプションの発生数による定義、各タスクが実行される際のコアマイグレーションの発生数による定義であり、これらの定義などから単数又は複数の定義を選択して、評価尺度とすることができる。
1000 スケジューリング設計支援装置、1100 入力I/F部、1101 タスクセット情報入力I/F部、1102 ハードウェア情報入力I/F部、1200 評価尺度設定部、1300 制約設定部、1301 基本制約設定部、1303 追加制約設定部、1304 追加制約設定テーブル、1400 スケジュール導出部、1500 スケジュール結果出力部。

Claims (6)

  1. 複数のプロセッサコアを用いたスケジューリング方法であって、
    制御ソフトウェアを構成するタスク毎の実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、
    すべてのタスクの前記実行時間及び前記デッドライン時間、並びに前記プロセッサコア数に関する制約を制約式として設定する制約設定ステップと、
    評価尺度は複数の尺度を定義し、導出するスケジュールに対して前記評価尺度となる評価値を算出する目的関数を設定する評価尺度設定ステップと、
    複数の前記評価尺度に基づく前記評価値を算出してすべての前記制約式を満たすパレート最適な前記スケジュールを導出するスケジュール導出ステップと、
    導出した前記スケジュールの結果を出力するスケジュール結果出力ステップとを備えることを特徴としたスケジューリング方法。
  2. 請求項1に記載のスケジューリング方法であって、
    複数の前記評価尺度は、前記タスク毎の前記デッドライン時間までの余裕時間による前記定義、前記プロセッサコアにおける前記タスクの未割り当て時間による前記定義、前記タスク毎に実行される際のプリエンプションの発生数による前記定義、前記タスク毎に実行される際のコアマイグレーションの発生数による前記定義のうち少なくとも2つの前記定義を組み合わせたものであることを特徴としたスケジューリング方法。
  3. 複数のプロセッサコアを用いたスケジューリング方法であって、
    制御ソフトウェアを構成するタスク毎の実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力とする入力ステップと、
    すべてのタスクの前記実行時間及び前記デッドライン時間、並びに前記プロセッサコア数に関する制約を制約式として設定する制約設定ステップと、
    評価尺度は前記プロセッサコアにおける前記タスクの未割り当て時間、前記タスク毎に実行される際のプリエンプションの発生数、前記タスク毎に実行される際のコアマイグレーションの発生数の少なくともいずれか1つによって定義され、導出するスケジュールに対して前記評価尺度となる評価値を算出する目的関数を設定する評価尺度設定ステップと、
    前記評価尺度に関して最適となる前記スケジュールを線形計画法によりすべての前記制約式を満たすスケジュールを導出するスケジュール導出ステップと、
    導出した前記スケジュールの結果を出力するスケジュール結果出力ステップとを備えることを特徴としたスケジューリング方法。
  4. 請求項1から請求項3のいずれか1項に記載のスケジューリング方法であって、
    前記スケジュール導出ステップで前記スケジュールが導出できなかった場合には、前記制約式の前記制約を緩和することを特徴としたスケジューリング方法。
  5. 複数のプロセッサコアを有するスケジューリング設計支援装置であって、
    制御ソフトウェアを構成するタスク毎の実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力する入力I/F部と、
    すべてのタスクの前記実行時間及び前記デッドライン時間、並びに前記プロセッサコア数に関する制約を制約式として設定する制約設定部と、
    評価尺度は複数の尺度を定義し、導出するスケジュールに対して前記評価尺度となる評価値を算出する目的関数を設定する評価尺度設定部と、
    複数の前記評価尺度に基づく前記評価値を算出してすべての前記制約式を満たすパレート最適な前記スケジュールを導出するスケジュール導出部と、
    導出した前記スケジュールの結果を出力するスケジュール結果出力部とを備えることを特徴としたスケジューリング設計支援装置。
  6. 複数のプロセッサコアを有するスケジューリング設計支援装置であって、
    制御ソフトウェアを構成するタスク毎の実行時間、デッドライン時間、周期に関する情報、及び少なくともプロセッサコア数を含むハードウェア情報を入力する入力I/F部と、
    すべてのタスクの前記実行時間及び前記デッドライン時間、並びに前記プロセッサコア数に関する制約を制約式として設定する制約設定部と、
    前記プロセッサコアにおける前記タスクの未割り当て時間、前記タスク毎に実行される際のプリエンプションの発生数、前記タスク毎に実行される際のコアマイグレーションの発生数の少なくともいずれか1つによって定義され、導出するスケジュールに対して評価尺度となる評価値を算出する目的関数を設定する評価尺度設定部と、
    前記評価尺度に関して最適となる前記スケジュールを線形計画法によりすべての前記制約式を満たすスケジュールを導出するスケジュール導出部と、
    導出した前記スケジュールの結果を出力するスケジュール結果出力部とを備えることを特徴としたスケジューリング設計支援装置。
JP2022528718A 2021-06-30 2021-06-30 スケジューリング方法及びスケジューリング設計支援装置 Active JP7193771B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/024848 WO2023276075A1 (ja) 2021-06-30 2021-06-30 スケジューリング方法及びスケジューリング設計支援装置

Publications (3)

Publication Number Publication Date
JP7193771B1 true JP7193771B1 (ja) 2022-12-21
JPWO2023276075A1 JPWO2023276075A1 (ja) 2023-01-05
JPWO2023276075A5 JPWO2023276075A5 (ja) 2023-06-06

Family

ID=84534712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022528718A Active JP7193771B1 (ja) 2021-06-30 2021-06-30 スケジューリング方法及びスケジューリング設計支援装置

Country Status (2)

Country Link
JP (1) JP7193771B1 (ja)
WO (1) WO2023276075A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005284351A (ja) 2004-03-26 2005-10-13 Toshiba Corp リアルタイムスケジューリング可能性判定方法およびリアルタイムシステム
WO2011102219A1 (ja) 2010-02-19 2011-08-25 日本電気株式会社 リアルタイムシステム用マルチコア向けタスク配置最適化システム、その方法及びそのプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2723652B1 (fr) * 1994-08-11 1996-09-13 Cegelec Procede pour ordonnancer des taches successives

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005284351A (ja) 2004-03-26 2005-10-13 Toshiba Corp リアルタイムスケジューリング可能性判定方法およびリアルタイムシステム
WO2011102219A1 (ja) 2010-02-19 2011-08-25 日本電気株式会社 リアルタイムシステム用マルチコア向けタスク配置最適化システム、その方法及びそのプログラム

Also Published As

Publication number Publication date
WO2023276075A1 (ja) 2023-01-05
JPWO2023276075A1 (ja) 2023-01-05

Similar Documents

Publication Publication Date Title
US8732714B2 (en) Method for reorganizing tasks for optimization of resources
US7162720B2 (en) Providing predictable scheduling of programs using repeating precomputed schedules on discretely scheduled and/or multiprocessor operating systems
US20200159590A1 (en) Processing method for a multicore processor and multicore processor
Schwarzkopf et al. Omega: flexible, scalable schedulers for large compute clusters
Gregg et al. Dynamic heterogeneous scheduling decisions using historical runtime data
EP2666083B1 (en) Integrated environment for execution monitoring and profiling of applications running on multi-processor system-on-chip
JP4185103B2 (ja) 実行可能プログラムをスケジューリングするためのシステム及び方法
KR101626378B1 (ko) 병렬도를 고려한 병렬 처리 장치 및 방법
Guan et al. Exact schedulability analysis for static-priority global multiprocessor scheduling using model-checking
Liu et al. An O (m) analysis technique for supporting real-time self-suspending task systems
KR20100018289A (ko) 멀티 태스킹 성능 예측 방법 및 시스템
von der Brüggen et al. Hybrid self-suspension models in real-time embedded systems
Simakov et al. Slurm simulator: Improving slurm scheduler performance on large hpc systems by utilization of multiple controllers and node sharing
Wasly et al. Bundled scheduling of parallel real-time tasks
JP7193771B1 (ja) スケジューリング方法及びスケジューリング設計支援装置
JP6156379B2 (ja) スケジューリング装置、及び、スケジューリング方法
US20210374652A1 (en) Storage medium, job scheduling device, and job scheduling method
CN110175073B (zh) 数据交换作业的调度方法、发送方法、装置及相关设备
KR20160076896A (ko) 선점 방식을 선택하는 방법 및 장치.
JP7237245B2 (ja) スケジューリング方法、および、スケジューリングシステム
Tanaka Adaptive EDF: Using predictive execution time
Tekin et al. Pruda: An api for time and space predictible programming in nvdia gpus using cuda
JPWO2018198745A1 (ja) 計算資源管理装置、計算資源管理方法、及びプログラム
Adyanthaya et al. Iterative robust multiprocessor scheduling
Badosa et al. Bio-backfill: A Scheduling Policy Enhancing the Performance of Bioinformatics Workflows in Shared Clusters.

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220517

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220517

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221024

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: 20221108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221121

R151 Written notification of patent or utility model registration

Ref document number: 7193771

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151