JP6524064B2 - クリティカル・リアルタイム・システムにおいてタスクを実行する方法 - Google Patents

クリティカル・リアルタイム・システムにおいてタスクを実行する方法 Download PDF

Info

Publication number
JP6524064B2
JP6524064B2 JP2016507024A JP2016507024A JP6524064B2 JP 6524064 B2 JP6524064 B2 JP 6524064B2 JP 2016507024 A JP2016507024 A JP 2016507024A JP 2016507024 A JP2016507024 A JP 2016507024A JP 6524064 B2 JP6524064 B2 JP 6524064B2
Authority
JP
Japan
Prior art keywords
computer
time
node
selectable
processes
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
JP2016507024A
Other languages
English (en)
Other versions
JP2016519821A (ja
Inventor
デイビッド,ヴィンセント
Original Assignee
クロノ−セイフ
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 クロノ−セイフ filed Critical クロノ−セイフ
Publication of JP2016519821A publication Critical patent/JP2016519821A/ja
Application granted granted Critical
Publication of JP6524064B2 publication Critical patent/JP6524064B2/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
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Description

本発明は、タイムベースにより設定された強制的なタイムラインを有するプロセスを実行するよう設計されたクリティカル・リアルタイム・システムに関する。本発明は特に、実装において高レベルの性能を要求するリアルタイム・システムと、システム内の各タスクに割り当てられたハードウェア実行リソースの使用において高レベルのセキュリティが要求されるクリティカル・システムと、に関する。
本発明は特に、輸送(自動車、鉄道、船舶、航空宇宙)、産業オートメーション、エネルギー、および、通信ネットワークにおけるように制御されたリソース割り当てが重要となる他のシステムなどの分野において使用されるシステムなどの、プロセス制御システムに適用される。
クリティカル・リアルタイム・システムでは、タスクはしばしば周期的な活動としてモデル化され、それにより、タスク・スケジューリングに対して固定された優先ポリシーに基づくマルチタスキング・システムが達成され、性能の達成に関する保証がもたらされる。係るシステムについては、例えば[”Scheduling algorithms for Multiprogramming in a hard real−time environment”, C. Liu, J. Layland, Journal of the ACM, vol. 20, no. 1, pp. 46−61]の記事で説明されている。
しかしこのアプローチは、本来は周期的でない特定のリアルタイム活動を周期的なタスクに任意に分割することにより、周期的タスクの非常に簡単なモデルがマルチタスキング・システムの設計を複雑化または制限する場合には、柔軟性に欠ける。実際、非周期的なリアルタイム活動が周期的活動の形態で実装される場合、時間的制約を別個に満足するためには、結果的にタスクの総数が増加することとなるか、または実行ペースが増大することとなる。それにより各タスクは各周期的実行に対してもはや有用ではなくなる場合がある。その結果、マルチタスキング・システムの性能に悪影響が及ぶこととなる。
例えば[“Giotto: A Time−Triggered Language for Embedded Programming”, Thomas A. Henzinger, Benjamin Horowitz, and Christoph Meyer Kirsch, EMSOFT 2001, pp. 166−184, 2001, Springer−Verlag]および[“A method and a technique to model and ensure timeliness in safety critical real−time systems”, C. Aussagues, V. David, Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998]の記事で説明されるアプローチなどの他のアプローチでは、各タスクが一連の一時的活動として説明される、より柔軟なタスク・モデルが提案されている。次にタスクは、時間的制約を有するプロセスのグラフの形態で形式化される。ここでは、米国特許第7,299,383号で提案されるように、プロセスは必要に応じて条件付きであってもよい。
それによりマルチタスキング・システムの高い柔軟性と、高レベルの性能と、さらにはタスクをスケジューリングすることが可能であるという形式的な保証と、を達成することが可能となるが、このことは一般に、システムにおいて動的なスケジューリングが必要となることを保証する。その結果、タスクまたはタスクのプロセスがスケジューリングに対して競合するという点で、および、それによりタスクが並列タスクの前または後に実行され得ることとなるという点で、タスク間で時間的な干渉が生じることとなる。
実行の安全性が最重要課題であるクリティカル・システムでは、すべての可能なスケジューリングの組み合わせを網羅的にテストすること、または障害状況が存在しないことを証明すること、が不可能であるため、システムを動的にスケジューリングすることは避けられる。テストすべき組み合わせが少ないシステムが好適であり、したがってタスク間の時間的干渉を制限するシステムが好適である。それにより通常、静的なアプローチが使用され、その結果、柔軟性が欠落することとなる。
柔軟なタスク・モデルに基づくが、しかし時間的干渉が制限される実装が提供される、リアルタイム・システムを構築することが必要となる。
本発明は、1組の逐次的プロセスおよび選択可能プロセスから構成されるタスクを実行するための方法に関する。この方法は、
a)ハードウェア・リソース要求および時間的制約を各プロセスに割り当てるステップと、
b)プロセスの時間的制約に対応する期間を有する時間スロットを各プロセスに割り当てるステップと、
c)2つの選択可能プロセスのうちの一方または他方の実行が決定される分岐点を特定するステップと、
d)共通の時間スロットを2つの選択可能プロセスに割り当てるステップと、
e)2つの選択可能プロセスのリソース要求のうちの大きい方に等しいリソース要求を共通の時間スロットに割り当てるステップと、
f)各分岐点に対してステップc)以降を反復するステップと、
g)結果的に生成された時間スロットをタスクに関連付けられた実行テンプレートにおいて組織化するステップと、
h)実行テンプレートの時間スロットに割り当てられたリソース要求にしたがってタスクの実行を制約するよう、リアルタイム・マルチタスキング・システムを構成するステップと、
を含む。
この方法は、遷移ノードにより接続された1組のプロセスを定めるグラフの形態でタスクを表現するステップであって、各遷移ノードはマルチタスキング・システム上でタスクを実行するときにタイムベースにしたがって同期点を定める、ステップと、プロセスのソース遷移ノードおよび宛先遷移ノードから各プロセスに割り当てられた時間スロットの範囲を定めるステップと、共通のソース・ノードおよび2つのそれぞれのターゲット・ノードを有する2つの選択可能プロセスに対して、2つのターゲット・ノードを、マージされたターゲット・ノードへとマージするステップと、共通のソース・ノードおよびマージされたターゲット・ノードから両方の選択可能プロセスに対して共通な時間スロットを定めるステップと、を含み得る。
この方法は、ステップc)において異なる時間的制約を有する2つの選択可能プロセスに対して、2つの選択可能プロセスのうちで最長の時間的制約を有する第1選択可能プロセスにおいて、中間遷移ノードを作り、それにより、ソース・ノードと中間ノードとの間に第1部分的選択可能プロセス、および中間ノードと第1選択可能プロセスのターゲット・ノードとの間に第2部分的プロセス、が生成されるステップと、第1リソース要求、および第2選択可能プロセスの時間的制約に等しい時間的制約、を第1部分的選択可能プロセスに割り当てるステップと、第1リソース要求および第2リソース要求の合計が第1選択可能プロセスのリソース要求に等しくなるような第2リソース要求、および2つの選択可能プロセスの時間的制約の差異に等しい時間的制約、を第2部分的プロセスに割り当てるステップと、ステップd)にしたがって第1部分的選択可能プロセスおよび第2選択可能プロセスを進行するステップと、を含み得る。
この方法は、各時間スロットにおいて、進行中のプロセスが時間スロットに割り当てられたリソース要求に適合することをウォッチドッグによりチェックするステップと、進行中のプロセスの実行がリソース要求を超過し、且つ進行中のプロセスが第1部分的選択可能プロセスである場合に、障害に関するウォッチドッグによる通知を省略するするステップと、を含み得る。
この方法は、第1部分的選択可能プロセスの実行時に状態変数を設定するステップと、進行中のプロセスがリソース要求を超過し、且つ状態変数が設定されている場合、障害に関するウォッチドッグによる通知を省略するステップと、マージされたターゲット・ノードに対応する同期点において状態変数をクリアするステップと、を含み得る。
この方法は、グラフの環状部分に対して、より長い時間的スロットを有する各プロセスを、環状分における時間スロットの最大公約数である、より短い時間スロットを有する、1組の部分的プロセスへと分割し、それによりグラフの環状部分が、全部が同一の正規化された時間的制約を有する、一連の全体的プロセスまたは部分的プロセスを画成する正規化された部分グラフへと変形されるステップと、より長い時間的制約を有する各プロセスのリソース要求を対応する部分的プロセス間で分配し、それにより部分的プロセスのリソース要求の合計がより長い時間的制約を有するプロセスのリソース要求と等しくなる、ステップと、を含み得る。
この方法は、部分グラフの第1部分の終端の遷移ノードが部分グラフの第2部分の始端のそれぞれのノードと一致し、それにより2つの連続するペアの一致するノードが、第1ペアの2つのノードをそれぞれの起点として有するプロセスに共通の時間スロットを画成するするよう、部分グラフの第1部分の終端を部分グラフの第2部分の始端上に重ね合わせるステップと、第1ペアのノードに関連付けられたプロセスのリソース要求のうちの最大のものに等しいリソース要求と、正規化された時間的制約に等しい時間的制約と、を、このように画成された共通の時間スロットに対して割り当てるステップと、を含み得る。
他の利点および特徴は、例示目的のためにのみ提供され、且つ添付の図面に表現される、本発明の特定的な実施形態に関する以下の説明から、より明らかとなるであろう。
同一の時間的制約を有する分岐選択肢を有する、フレキシブル・タスク・モデルにしたがうリアルタイム・タスク・グラフの1例である。 図1のグラフの可能な処理順序のうちの1つの部分的実行トレースを示す図である。 並列タスクの実行トレースを示す図である。 図1のグラフの変形を示す図である。 図1のグラフの変形を示す図である。 結果的に生成された静的実行テンプレートを示す図である。 異なる時間的制約を有する分岐選択肢を有する、フレキシブル・タスク・モデルにしたがうリアルタイム・タスク・グラフの1例である。 時間的制約の第1選択肢に対する、図4のグラフの変形を示す図である。 時間的制約の第1選択肢に対する、図4のグラフの変形を示す図である。 結果的に生成された静的実行テンプレートを示す図である。 時間的制約の第2選択肢に対する、図4のグラフの変形を示す図である。 時間的制約の第2選択肢に対する、図4のグラフの変形を示す図である。 時間的制約の第2選択肢に対する、図4のグラフの変形を示す図である。 図5Cの実行テンプレートに対する、最適化ステップを示す図である。 図5Cの実行テンプレートに対する、最適化ステップを示す図である。
図1はフレキシブル・タスク・モデルにしたがう代表的なリアルタイム・タスク・グラフである。このグラフでは、以下で説明する他のグラフと同様に、タスクを構成する各プロセスは、2つの遷移ノード(ソース・ノードおよびターゲット・ノード)間の有向弧により表される。これらのノードは、プロセスの起動を組織化するためにタスクの実行時にオペレーティング・システムにより使用される同期点である。各プロセスには、対応する同期点間の期間を示す時間的制約が割り当てられる。
加えて、時間的制約の範囲内でプロセスが実行されるためには、各プロセスは物理的なリソース要求(CPU占有、メモリ・フットプリント)も有する。
グラフの各弧(またはプロセス)は、x+Nという情報が注釈されている。ここでxはリソース要求の指標であり、Nは時間的制約の指標である。リソース要求xは時間(すなわち、全てのハードウェア・リソースが存在するものと仮定して、プロセスを完了するために必要となる時間)として表現され得る。時間的制約は、時間単位を定める整数であり得る。したがってxおよびNを同一の時間の単位で表すならば、xおよびNの値はx≦Nとなるよう選択される。x=Nである場合、プロセスは、時間的制約により定められる時間スロット全体を通して、全てのハードウェア・リソースを要求し、そのため他のプロセスを同一スロット内で並列して実行することは不可能である(リソース要求および時間的制約の計算は本開示の主題ではないため、詳細には説明しない)。
以後、リソース要求を示すために使用される文字はプロセスも指すものとする。
このグラフまたはタスクは、任意に組織化された分岐およびループを含むため、「フレキシブル・モデル」にしたがうものとみなされる。各分岐は実行時に、動的、且つ予測不可能な様式で、決定され、プロセスの実行シーケンスは一般に非周期的である。その結果は、以下で理解されるであろう。
図2Aは図1のグラフの代表的な実行トレースを示す。実行時に交差されるノードが、プロセスの時間的制約により定められるステップで時間軸上に示される。このようにノードは、固定された同期点に配置され、オペレーティング・システムは対応するプロセスを同期点において起動する。
各プロセスの実行には、そのリソース要求と、実際に利用可能なリソースと、にしたがって可変の時間が必要となり得る。オペレーティング・システムはウォッチドッグ・プロセスも実行し、ウォッチドッグ・プロセスは各プロセスによる実行に費やされる時間を計るよう構成されている。当該プロセスに割り当てられた時間的要求をプロセスが超過した場合、ウォッチドッグが異常を通知する。したがって時間的要求は実行時間割当量とみなされ得る。
図1のグラフのタスクの実行はノード1で開始される。ノード1において、2つの選択可能プロセスaとbとの間の第1分岐が生じる。ノード2に至るプロセスbが実行のために選択される。プロセスdがノード2とノード4との間で実行される。ノード4において、新規分岐がプロセスfとプロセスgとの間で発生し、ノード2に至るプロセスgが実行のために選択される。プロセスcがノード3とノード5との間で実行される。ノード5において、新規分岐がプロセスeとプロセスhとの間で発生し、ノード2に至るプロセスhが実行のために選択される。
一般に、プロセスに対して設定されるリソース要求は時間的制約よりも著しく小さい。このことは、タスクを実行した後に、他のタスクを並列して実行するにあたり利用可能なリソースが残されることを意味する。
図2Bは、図2Aのタスクと並列して実行されるタスクの実行トレースを示す。この並列タスクは一連のプロセスm、n、p、q、およびrを含み、これらのプロセスm、n、p、q、およびrは、同一のラベルを用いて定められるリソース要求を有する。理解を支援するために、このタスクは、時間的制約については異なるが同期点については図2Aのタスクの同期点と整列した状態で、示されている。このタスクが図2Aのタスクと並列してスケジューリングされるためには、同期点間の任意の間隔において、プロセスのリソース要求の合計が時間的制約と適合することが望ましい。この事例に対して満足されるべき不等式の可能な組み合わせが時間軸の下に示されている。
したがって2つのタスクを並列的にスケジューリングするためには、プロセスの順序を知り、それにより必要なパラメータを導き出すことが必要となる。この順序がオフラインで判定可能ならば、スケジューリングもオフラインで(すなわち静的に)実行可能となる。タスクがフレキシブル・モデルにしたがうならば、すなわちタスクが特に分岐を含むならば、順序をオフラインで知ることは一般に不可能である。スケジューリングは従来は動的に(すなわち実行時に)達成されるものであり、実行時に分岐条件の特定が可能となる。
クリティカル・リアルタイム・システムでは、システムがあらゆる可能なスケジューリングの組み合わせに対して安全であることを検証することがさらに望ましい。係る検証は従来、全部の組み合わせをテストすることにより達成された。スケジューリングが動的に達成される場合には、テストすべき組み合わせの個数は実際的には不可能な数値となる。
フレキシブル・モデルにしたがうタスクの静的またはオフラインのスケジューリングのための方法体系について、ここで開示する。この方法体系は、スケジューリングの組み合わせの個数を制限し、それにより従来のツールを使用して係る個数を網羅的に検証することを可能にすることを目指すものである。各タスクに対して、いわゆる静的な「実行テンプレート」を確立することについて検討する。係る実行テンプレートはオフライン・スケジューリング・ツールにより開発可能である。
この目的のために単一の時間スロットが、実行テンプレートにおいて、分岐に後続し得る2つの選択可能プロセスに割り当てられる。単一のスロットに割り当てられるリソース要求は、2つの選択可能プロセスのうちのより大きいリソース要求に等しくなるよう定められる。しかしスロットに割り当てられた時間的制約、すなわちスロットの境界は、まだ定められていない。
第1のアプローチでは、選択可能プロセスが同一の時間的制約を有する状況が解決されるであろう。より一般的な場合では、以下で論じるように、任意の状況を、2つの選択可能プロセスが同一の時間的制約を有する状況へと変える変形を見出すことが可能である。
図1のグラフでは、各分岐(ノード1、ノード4、およびノード5)に後続する選択可能プロセスは偶然、同一の時間的制約を有する。
図3Aは図1のグラフを変形することにおける第1のステップを示す。2つの選択可能プロセスaおよびbの2つのターゲット・ノード2および3は、単一のノード2_3へとマージされる。ノード2およびノード3をノード4およびノード5に接続していた弧は全部、ノード2_3に接続される。ノード1からノード2およびノード3に至っていた2つの弧は単一の弧へとマージされる。この一意的な弧は、プロセスaおよびプロセスbのいずれも表す「アンビバレント」なプロセスに関連付けられ、a|b+2と表記される。この表記により示されるように、プロセスaおよびプロセスbの共通の時間的制約(+2)がアンビバレントなプロセスの時間的制約である。アンビバレントなプロセスのリソース要求はプロセスaおよびプロセスbのリソース要求の最大値max(a,b)に等しくなるよう定められる。
プロセスcおよびプロセスd(これらは分岐選択肢ではなかった)が、マージされたノード2_3から始まる選択肢となった点に注意すべきである。ノード2およびノード3がマージされたため、ノード4およびノード5のそれぞれからノード2およびノード3へと至る選択肢fおよびgと、eおよびhと、が一緒にクループ化されている点にも注意すべきである。この段階において、これらの選択肢物は単一の弧(弧a|b+2)により表され得る。
図3Bは図1のグラフを変形することにおける最終のステップを示す。選択可能プロセスcおよびdのターゲット・ノード4および5はノード4_5へとマージされる。ノード2_3からノード4_5へと至る同一の時間的制約(+4)を有する2つのプロセスcおよびdが存在し、逆方向に進む同一の時間的制約(+2)を有する4つのプロセスe、f、g、およびhが存在する。選択可能プロセスaおよびbに当てはまるルールによれば、同一のソース・ノードから同一のターゲット・ノードに進み且つ同一の時間的制約を有する全部の弧は、アンビバレントなプロセスに割り当てられる単一の弧へとマージされる。アンビバレントなプロセスは時間的制約を保持し、アンビバレントなプロセスのリソース要求は、マージされた弧のリソース要求のうちの最大のものに等しく設定される。したがって、ノード2_3からノード4_5に進み且つリソース要求max(c,d)を有する単一のアンビバレントなプロセスc|d+4と、逆方向に進み且つリソース要求max(e,f,g,h)を有する単一のアンビバレントなプロセスe|f|g|h+2と、が取得される。このようにしてグラフにおける全部の選択肢を除去することが可能であり、それにより、環状に実行される環状部分により終端される線形経路を有するグラフがもたらされる。
図3Cは、図2Aの実行トレースと同じフォーマットにおける、図3Bの変形されたグラフから決定された実行テンプレートを示す。テンプレートとトレースとの間の顕著な差異は、テンプレートが図3Bの変形されたグラフを使用してオフラインで決定され得るという点である。
時間t=0において、選択可能プロセスaおよびbのうちの一方の実行が、ノード1において決定される。選択肢がいずれであったとしても、選択肢は、ノード1とノード2_3との間で画成される単一のスロットにおいて実行され、スロットの期間は両方の選択肢に適合する。したがってプロセスcおよびdのうちの任意の一方が、ノード2_3と4_5との間で画成される次のスロットにおいて実行される。最終的に、プロセスe、f、g、およびhのうちの1つがノード4_5とノード2_3との間で画成されるスロットで実行される。次に実行はノード2_3以降で新規サイクルRにおいて再開される。
ノード1、2_3、4_5、および2_3間のスロットに割り当てられるリソース要求は、それぞれmax(a,b)、max(c,d)、およびmax(e,f,g,h)である。
この実行テンプレートは、タスクのグラフを定めるソース・コードを処理するコンパイル用ツール群の中間生成物であり得る。テンプレートは、オペレーティング・システムがタスクを実行することと、その安全な動作(特に時間スロットに割り当てられたリソース要求)をチェックすることと、を行うことを可能にするパラメータを提供する。係るリソース要求は、対応するプロセスが時間通りに完了することを確保するウォッチドッグを構成するために使用され得る。
この方法体系がタスクの実行には影響を及ぼさず、しかしプロセスの実行制約を変更することに注意すべきである。なぜならウォッチドッグが、正確なリソース要求ではなく、最大化されたリソース要求を評価するよう構成されているためである。
さらにテンプレートは任意の時間において、タスクがリソース要求および時間的制約についてどのように変化していくかを予測することを可能にする。実際、図3Cのテンプレートの環状部分Rは、図2Aの第1ノード2以降、所望により反復され得る。それにより、いずれの選択肢が分岐の後に実行されたとしても、実行トレースの任意の時点におけるリソース要求および時間的制約を予測することが可能となる。唯一のマイナス面は、リソース要求の値が正確な値ではなく、最大化されている点である。
各タスクがシステム上で実行されるよう、同様のテンプレートが生成される。これらのテンプレートにおいて定められた時間スロットの期間および対応するリソース要求は、オフライン・スケジューリング・ツールにより使用可能である。オフライン・スケジューリング・ツールは、オペレーティング・システムに対して静的スケジューリング・パラメータを生成することができる。
図4は、異なる時間的制約を有する選択可能プロセスを含む代表的なグラフである。係る時間的制約は、図1のグラフよりも、より一般的な状況に対応する。実行はノード1で開始され、プロセスはノード2へと至る。ノード2において、時間的制約が+1であるプロセスbまたは時間的制約が+4であるプロセスcの間の分岐が生じる。プロセスbはノード3へと至り、その一方でプロセスcはノード4へと至る。時間的制約が+3であるプロセスdはノード3からノード4へと至る。最終的に、プロセスeはノード4からノード1へと至る。
図1のグラフのように変形させて、それにより静的な実行テンプレートが画成されるよう、このグラフを変更することについて検討する。図5A〜図5Cはこのための方法体系を示す。
図5Aは図4グラフについての第1の変形ステップを示す。最長の時間的制約を有する選択可能プロセス、すなわちプロセスcにおいて、中間ノード3bが挿入される。ノード2およびノード3bを接続する弧はプロセスcの部分c1を表すものとみなされ、部分c1は、選択可能プロセスbと同一の時間的制約+1が割り当てられる。ノード3bおよびノード4を接続する弧はプロセスcの残余の部分c2を表し、部分c2はプロセスcの時間的制約の補数である+3が割り当てられる。部分的プロセスc1およびc2のリソース要求についてはc1+c2=cが成り立つ。リソース要求c1とリソース要求c2との間のリソース要求cの分配は任意であり得る。この分配は、例えば選択可能プロセスのリソース要求と、それらの最大値と、の間の偏差を最小化するために、最適化され得る。例えばc=2、b=0.8、およびd=1である場合、値c1=0.9およびc2=1.1の値が0.1の最大偏差をもたらす。
リソース要求(c1)を追加する事実は、ウォッチドッグにより監視するべき実行制約(本来は不必要である制約)を追加することに対応することについて、ここで注意されたい。初期の制約が、プロセスcの実行がリソース要求cを満足することであるのに対して、特定的な方策が講じられないかぎりウォッチドッグはポイント2以降、部分的プロセスc1の実行がリソース要求c1を満足することをチェックするであろう。
これらの制約を満足する第1のアプローチは、開発者またはツール群が、適応された部分的プロセスc1およびc2へとプロセスcを分割することである。このことは、タスクの変更された実行特性が返されることにより、既存のオペレーティング・システムを未変更で使用することを可能にする。
好適なアプローチはオペレーティング・システムの簡単な変更を含む。図5Aに示すようにノード2の分岐の2つの選択可能プロセスは、実行時に採られた選択肢を特定するために状態変数またはフラグBが割り当てられている。実行される選択肢が未変更の弧(b)に対応する場合、フラグBはデフォルトのクリアされた値(例えば0)に保たれる。選択肢が変更された弧(c1)に対応する場合、フラグBはプロセス自体により、またはオペレーティング・システムにより、設定される。このフラグの使用については、図5Cとの関連で、より詳細に説明する。
図5Bは、図5Aのグラフの最終的な変形を示す。ノード3bが挿入され、それにより同一の時間的制約を有する2つの選択可能プロセスが作られたことにより、これらの選択可能プロセスのターゲット・ノード3および3bは、図3Aに関連して説明した方法体系にしたがって、マージされ得る。これにより、アンビバレントなプロセスb|c1がノード2とマージされたノード3_3bとの間に作られる。プロセスb|c1は時間的制約+1、およびリソース要求max(b,c1)を有する。
フラグBを使用して、アンビバレントなプロセスはb(B=0)|c1(B=1)と示される。
同一の時間的制約+3を有するノード3および3bからノード4へと至るプロセスdおよびc2は、時間的制約+3およびリソース要求mac(c2|d)を有する単一のアンビバレントなプロセスc2|dへとマージされ得る。
図5Cは図5Bの変形されたグラフから決定された実行テンプレートを示す。このテンプレートは一連のノード1、2、3_3b、4の順序にしたがって反復可能である。
フラグBが使用されず、部分的プロセスc1がその対応するスロットにおいて実行される場合、ウォッチドッグはポイント2以降、プロセスc1がそのリソース要求c1に適合することをチェックする。このことは、最初に強制されたものではないが、部分的プロセスc1がこの制約を満足するよう指定されることを伴う。
フラグBは、係る部分的プロセスに対する制約が緩和されるよう、この状況においてウォッチドッグを無効化するために使用される。
選択可能プロセスbが実行される場合、フラグBは本来のクリア状態に保たれる。これにより、プロセスについての通常監視を実施するようウォッチドッグに通知される。
選択可能部分的プロセスc1が実行される場合、フラグBが(プロセス自体により、またはオペレーティング・システムにより)設定される。この場合、リソース要求c1に超過が発生したとしてもウォッチドッグが障害を報告することはない。フラグBはポイント3_3bでクリアされ、それによりウォッチドッグはポイント3_3b以降、通常の動作を実施する。
このようにフラグBを使用することにより、プロセスcを2つの部分的プロセスへと実際に分割することは不要となる。本来のプロセスcがポイント2において起動され得、その実行は、障害が通知されることなく、ポイント3_3bを越えて継続し得る。プロセスcの実行がリソース要求c1+c2を超過した場合にのみ、障害が通知されるであろう。これは、本来のグラフの制約に対応する。スケジューリングの目的のために、プロセスcのリソース要求を2つの値c1およびc2に分配することについて考える。
上述のように、中間ノード3bが挿入された後、プロセスc2およびdは同一の時間的制約を有する。これらの値は、説明の簡略化のために選択されたものである。一般的な場合では、時間的制約は異なる値となるであろう。その場合には以下の事例で示すように、プロセスcに対して使用された技法を反復するとよい。
図6A〜図6Cは、プロセスdの異なる値の時間的制約に対する、図4のグラフの変形ステップを示す。ここでは時間的制約は、+3に代わって、+6となっている。
図6Aは図5Aのステップに対応する。唯一の相違点はプロセスdの時間的制約の値である。
図6Bではノード3および3dがマージされている。ノード3_3Bおよび4が2つの弧c2+3およびd+6により接続される。これらの弧は異なる時間的制約を有する。
図6Cでは、ノード4が2つのノードに分割される。これら2つのノードのうちの一方のノード4’はプロセスc2+3のターゲットを形成し、他方のノード4”はプロセスd+6のターゲットを形成する。ノード4’および4”のそれぞれはプロセスe+1によりノード1に接続される。
このステップ以降、最長の時間的制約を有するプロセス、すなわちd+6に中間ノードを挿入して、同一の時間的制約を有する2つの選択可能プロセス、すなわちc2+3およびd1+3を作り、以下同様の操作を繰り返し、その結果、グラフを、環状グラフまたは環状部分により終端されるグラフへと変形することにより、図6Aまたは図5Aのステップの手順が反復される。
任意のグラフから、この方法により、環状部分を含む有限個の異なる期間の時間スロットから形成された実行テンプレートが生成される。いくつかのタスクを並列的にスケジューリングするために、専用ツールは、テンプレート内に含まれるリソース要求およびスロット期間を使用して、それにより、並列に実行可能であるテンプレートの組み合わせを、したがって並列に実行可能なタスクを、見出すであろう。このようにしてスケジューリングは、プロセスの順序をマッチングすること(1タスク毎に複数)に代わって、テンプレートをマッチングすること(1タスク毎に1つ)へと低減される。
システム検証テストをさらに簡略化するために、同一の時間スロットを有する短い実行テンプレートを有することが望ましい。
図7Aおよび図7Bは、時間スロットの長さを正規化し、テンプレートを短縮するための方法体系を示す。
図7Aは1例として図5Cのテンプレートの処理ステップを示す。テンプレートの環状部分において、より長いスロットを、いくつかのより短いスロットに分割することについて検討する。なお、より短いスロットの長さは環状部分のスロットの最大公約数である。図7Aのテンプレートでは、長さが3であるノード3_3bとノード4との間のスロットは、長さが1である3つのスロットに分割される。これは結果的に、中間遷移ノード4aおよび4bをグラフの弧c2|dに挿入することとなる。
したがってアンビバレントなプロセスc2|dは3つの部分的なアンビバレントなプロセス[c2|d]0〜[c2|d]2に分割される。これらの部分的なアンビバレントなプロセスは同一の時間的制約1を有する。プロセスc2|dの初期のリソース要求、すなわちmax(c2,d)は、重みp0、p1、およびp2を使用して3つの部分的プロセスに分配される。なおp0、p1、およびp2については、p0+p1+p2=1が成り立つ。
図5Aの中間ノード3bに関して、中間ノード4aおよび4bは同期点となる。この同期点以降、ウォッチドッグはプロセスの実行時間を監視する。プロセスc2|dを実際に分割することを避けるために、フラグSを使用することが好適である。フラグSはフラグBのように、プロセスがそのリソース要求を超過した場合に報告を省略するよう、ウォッチドッグに対して指示する。フラグSは、プロセスc2|d(すなわち基本的にプロセスcおよびdのうちのいずれかの開始点)以降、無条件に設定され、次に最後の中間同期点(4d)においてクリアされる。
この技法は時間スロットの期間を正規化する。この正規化は検証テストを簡略化するための第1の改善である。
図7Bは、図7Aの正規化された実行テンプレートを短縮するためのステップを示す。テンプレートの第2の半体は、ノード4a、4bおよび4がそれぞれノード1、2、および3_3bとマージするよう、第1の半体上に重ね合わされている。したがって期間が1の、3つの時間スロットのみが残っている。第1の時間スロットでは、フラグBおよびSが使用される場合、プロセスaおよび[c2|d]1のうちのいずれかが実行され得、実際は、プロセスa、c、およびdのいずれかが実行される。第2の時間スロットでは、プロセスb、c1、および[c2|d]2のうちのいずれかが実行され得、実際は、プロセスb、c、およびdのいずれかが実行される。最後の時間スロットでは、プロセスeおよび[c2|d]0のうちのいずれかが実行され得、実際は、プロセスe、c、およびdのいずれかが実行される。
これらのスロットのリソース要求は、選択可能プロセスに対するのと同一の決定ルールにしたがう。これらのリソース要求は、それぞれmax{a,p1・max(c2,d)}、max{b,c1,p2・max(c2,d)}、およびmax{e,p0・max(c2,d)}に等しい。
検討された代表的なテンプレート(偶数個のスロットを有して、完全に環状である)に対しては、テンプレートのサイズは1/2になる。任意の状況では、テンプレートは線形部分を含み、係る線形部分には、偶数個のスロットを含み得る環状部分(図3B、図3C)が後続する。重ね合わせの方法は正規化された環状部分に適用される。正規化された環状部分が奇数個のスロットを有する場合でさえも、重ね合わせの方法は適用可能である。係る場合には、事実、重ね合わせは部分的に行われ得る。それにより、テンプレートのサイズ低減はわずかに犠牲になる。

Claims (7)

  1. リアルタイム・マルチタスキング・システムのためにフレキシブル・モデルに合致するタスクのプロセスをオフライン・スケジューリングすることをコンピュータに行わせるための方法であって、前記コンピュータは、前記タスクを定めるソースコードをコンパイルするためのツール群により指令され、前記方法は
    a)前記コンピュータにより、ハードウェア・リソース要求および時間的制約を各プロセスに割り当てるステップと、
    b)前記コンピュータにより、前記プロセスの時間的制約に対応する期間を有する時間スロットを各プロセスに割り当てるステップと、
    c)前記コンピュータにより、2つの選択可能プロセス(a,c)のうちの一方または他方の実行が決定される分岐点を特定するステップと、
    d)前記コンピュータにより、共通の時間スロット(+2)を前記2つの選択可能プロセスに割り当てるステップと、
    e)前記コンピュータにより、前記2つの選択可能プロセスのリソース要求のうちの大きい方に等しいリソース要求(max(a,b))を前記共通の時間スロットに割り当てるステップと、
    f)前記コンピュータにより、各分岐点に対してステップc)以降を反復するステップと、
    g)前記コンピュータにより、前記結果的に生成された時間スロットを前記タスクに関連付けられた実行テンプレートにおいて組織化するステップであって、結果的に生成されたテンプレートは、少なくとも1つのプロセスおよびリソース要求にそれぞれ関連付けられた一連の連続する時間スロットにより定められるステップと、
    h)前記コンピュータにより、前記リアルタイム・マルチタスキング・システムのための静的なスケジューリング・パラメータを、前記実行テンプレートから生成するステップであって、前記時間スロットは、対応するプロセスを実行するために使用される、前記リアルタイム・マルチタスキング・システムの同期点を構成し、各時間スロットに関連付けられたリソース要求は、前記対応するプロセスが時間内に実行に移されることをチェックするために使用される、前記リアルタイム・マルチタスキング・システムのウォッチドッグを構成するステップと、
    を含む、方法。
  2. 前記ソースコードは、前記タスクを表現するグラフの遷移ノードにより接続された1組のプロセスを定め、各遷移ノードはマルチタスキング・システム上で前記タスクを実行するときにタイムベースにしたがって同期点を定め、前記方法は、
    前記コンピュータにより、各プロセスに割り当てられた前記時間スロットの範囲を、前記プロセスのソース遷移ノードおよび宛先遷移ノードから定めるステップと、
    前記コンピュータにより、共通のソース・ノード(1)および2つのそれぞれのターゲット・ノード(2、3)を有する2つの選択可能プロセスに対して、前記2つのターゲット・ノードをマージされたターゲット・ノード(2_3)へとマージするステップと、
    前記コンピュータにより、両方の選択可能プロセスに共通する前記時間スロットを、前記共通のソース・ノードおよび前記マージされたターゲット・ノード(2_3)から定めるステップと、
    を含む、請求項1に記載の方法。
  3. ステップc)において異なる時間的制約を有する2つの選択可能プロセス(b+1、c+4)に対して、
    前記コンピュータにより、前記2つの選択可能プロセス(c+4)のうちの最長の時間的制約を有する第1選択可能プロセス(c)において中間遷移ノード(3b)を作り、それにより前記ソース・ノードと前記中間遷移ノードとの間に第1部分的選択可能プロセス(c1)、および前記中間遷移ノードと前記第1選択可能プロセスのターゲット・ノードとの間に第2部分的プロセス(c2)、が形成されるステップと、
    前記コンピュータにより、前記第1部分的選択可能プロセスに対して、第1リソース要求(c1)および前記第2選択可能プロセスの時間的制約に等しい時間的制約(1)を割り当てるステップと、
    前記コンピュータにより、前記第2部分的プロセスに対して、第2リソース要求(c2)であって、前記第1リソース要求および前記第2リソース要求の合計が前記第1選択可能プロセスのリソース要求に等しくなるような第2リソース要求(c2)、および、前記2つの選択可能プロセスの時間的制約の差異に等しい時間的制約(c2)、を割り当てるステップと、
    前記コンピュータにより、ステップd)にしたがって、前記第1部分的選択可能プロセス(c1+1)および前記第2選択可能プロセス(b+1)を続行するステップと、
    を含む、請求項2に記載の方法。
  4. 前記マルチタスキング・システムにおいて実行される、
    前記コンピュータにより、それぞれの時間スロットにおいて、進行中のプロセスの実行が前記時間スロットに割り当てられた前記リソース要求に適合することを前記ウォッチドッグを使用してチェックするステップと、
    前記コンピュータにより、前記進行中のプロセスの実行が前記リソース要求を超過し、前記進行中のプロセスが前記第1部分的選択可能プロセス(c1)である場合、障害についての通知を省略するように前記ウォッチドッグを構成するステップと、
    を含む、請求項3に記載の方法。
  5. 前記コンピュータにより、前記第1部分的選択可能プロセス(c1)の実行時に状態変数を設定(B=1)するステップと、
    前記コンピュータにより、前記進行中のプロセスの実行が前記リソース要求を超過し、前記状態変数が設定されている場合、障害についての通知を省略するように前記ウォッチドッグを構成するステップと、
    前記コンピュータにより、マージされたターゲット・ノード(2_3)に対応する同期点において前記状態変数をクリアするステップと、
    を含む、請求項4に記載の方法。
  6. 各時間的制約は時間単位を定める整数であり、前記方法は、前記グラフの環状部分に対する、
    前記コンピュータにより、より長い時間的制約を有する各プロセス(c2|d)を、前記環状部分における前記時間的制約の最大公約数である、より短い時間的制約を有する1組の部分的プロセスに分割し、それにより前記グラフの環状部分は、全部が同一の正規化された時間的制約を有する、一連の全体的グラフまたは部分的グラフを画成する正規化された部分グラフへと変形される、ステップと、
    前記コンピュータにより、より長い時間的制約を有する各プロセスのリソース要求を、前記対応する部分的プロセス間に分配し、それにより前記部分的プロセスのリソース要求の合計は前記より長い時間的制約を有する前記プロセスのリソース要求に等しい、ステップと、
    を含む、請求項3に記載の方法。
  7. 前記コンピュータにより、前記部分グラフの第1部分の終端の遷移ノード(1、2、3_3b)が前記部分グラフの第2部分の始端のそれぞれのノード(4a、4b、4)とマージされ、それにより、2つの連続するマージされたノードが、その2つのマージされたノードのうちの第1のものの2つのノードをそれぞれの起点として有する前記プロセスに共通な時間スロットを画成するよう、前記部分グラフの第1部分の終端を前記部分グラフの第2部分の始端上に重ね合わせるステップと、
    前記コンピュータにより、このように定められた前記共通の時間スロットに対して、前記2つのマージされたノードのうちの第1のものに関連付けられた前記プロセスのリソース要求のうちの最大のものに等しいリソース要求と、前記正規化された時間的制約に等しい時間的制約と、を割り当てるステップと、
    を含む、請求項6に記載の方法。
JP2016507024A 2013-04-09 2014-03-17 クリティカル・リアルタイム・システムにおいてタスクを実行する方法 Active JP6524064B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1353203A FR3004274A1 (fr) 2013-04-09 2013-04-09 Procede d'execution de taches dans un systeme temps-reel critique
FR1353203 2013-04-09
PCT/FR2014/050612 WO2014167197A1 (fr) 2013-04-09 2014-03-17 Procédé d'exécution de taches dans un system temps-réel critique

Publications (2)

Publication Number Publication Date
JP2016519821A JP2016519821A (ja) 2016-07-07
JP6524064B2 true JP6524064B2 (ja) 2019-06-05

Family

ID=48906285

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016507024A Active JP6524064B2 (ja) 2013-04-09 2014-03-17 クリティカル・リアルタイム・システムにおいてタスクを実行する方法

Country Status (11)

Country Link
US (1) US9946575B2 (ja)
EP (1) EP2984565B1 (ja)
JP (1) JP6524064B2 (ja)
KR (1) KR102178574B1 (ja)
CN (1) CN105144104B (ja)
AU (1) AU2014252942A1 (ja)
BR (1) BR112015025326B1 (ja)
CA (1) CA2907808C (ja)
FR (1) FR3004274A1 (ja)
RU (1) RU2660614C2 (ja)
WO (1) WO2014167197A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9740529B1 (en) * 2013-12-05 2017-08-22 The Mathworks, Inc. High throughput synchronous resource-constrained scheduling for model-based design
CN105912390A (zh) * 2016-04-07 2016-08-31 四川大学 云计算环境下基于模板的任务调度策略
US11243949B2 (en) 2017-04-21 2022-02-08 Microsoft Technology Licensing, Llc Query execution across multiple graphs
FR3072197B1 (fr) * 2017-10-10 2019-10-11 Krono-Safe Procede d'execution de plans de sequencement assurant une communication a faible latence entre taches temps-reel
FR3084187B1 (fr) * 2018-07-18 2021-01-01 Commissariat Energie Atomique Procede d'acceleration de l'execution d'un programme a chemin unique par execution en parallele de sequences conditionnellement concurrentes
CN109460277B (zh) * 2018-10-30 2022-08-05 北京小米移动软件有限公司 商品抢购流程的展示方法及装置
US11244106B2 (en) * 2019-07-03 2022-02-08 Microsoft Technology Licensing, Llc Task templates and social task discovery
RU2751441C1 (ru) * 2020-09-11 2021-07-13 Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский государственный университет имени М.В.Ломоносова» (МГУ) Способ формирования вычислительного комплекса
US11726817B2 (en) 2020-09-25 2023-08-15 Red Hat, Inc. Scheduling multiple processes with varying delay sensitivity
DE102020214144A1 (de) 2020-11-11 2022-05-12 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Überwachen zyklischer Aufgaben in Maschinensteuerung

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2816730B1 (fr) 2000-11-13 2004-10-15 Commissariat Energie Atomique Procede de securisation rendant deterministe l'execution en temps reel d'applications multitaches du type controle- commande avec confinement d'erreur
RU2239228C2 (ru) * 2001-07-05 2004-10-27 Всероссийский научно-исследовательский институт автоматики Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами
US7614037B2 (en) * 2004-05-21 2009-11-03 Microsoft Corporation Method and system for graph analysis and synchronization
KR20070031307A (ko) * 2004-05-27 2007-03-19 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 신호 스트림 처리 작업의 조합을 실행하기 위한 방법, 장치및 시스템, 실행 파라미터를 계산하는 방법 및 장치,컴퓨터 프로그램 제품
FR2873830B1 (fr) * 2004-07-30 2008-02-22 Commissariat Energie Atomique Procede d'ordonnancement de traitement de taches et dispositif pour mettre en oeuvre le procede
GB0513045D0 (en) * 2005-06-27 2005-08-03 Vidus Ltd Resource scheduling method and system
FR2893156B1 (fr) * 2005-11-04 2008-02-15 Commissariat Energie Atomique Procede et systeme de calcul intensif multitache et multiflot en temps reel.
CN100580632C (zh) * 2008-02-22 2010-01-13 浙江大学 嵌入式系统rm低功耗调度中松弛时间在线重分配方法
US8214245B2 (en) * 2009-05-04 2012-07-03 International Business Machines Corporation Method and system for synchronizing inclusive decision branches
US8606377B2 (en) 2009-07-23 2013-12-10 Biosense Webster, Inc. Preventing disruptive computer events during medical procedures
JP5069325B2 (ja) 2010-03-11 2012-11-07 株式会社豊田中央研究所 タスク実行制御装置及びプログラム
EP2568346B1 (en) * 2011-09-06 2015-12-30 Airbus Operations Robust system control method with short execution deadlines

Also Published As

Publication number Publication date
AU2014252942A1 (en) 2015-11-19
RU2015147897A (ru) 2017-05-16
US20160070600A1 (en) 2016-03-10
US9946575B2 (en) 2018-04-17
CN105144104B (zh) 2020-03-17
BR112015025326A2 (pt) 2017-07-18
WO2014167197A1 (fr) 2014-10-16
KR20150140708A (ko) 2015-12-16
CA2907808A1 (fr) 2014-10-16
WO2014167197A9 (fr) 2015-01-08
RU2660614C2 (ru) 2018-07-06
EP2984565A1 (fr) 2016-02-17
KR102178574B1 (ko) 2020-11-13
EP2984565B1 (fr) 2019-08-21
CA2907808C (fr) 2021-06-08
BR112015025326B1 (pt) 2022-05-03
CN105144104A (zh) 2015-12-09
FR3004274A1 (fr) 2014-10-10
JP2016519821A (ja) 2016-07-07

Similar Documents

Publication Publication Date Title
JP6524064B2 (ja) クリティカル・リアルタイム・システムにおいてタスクを実行する方法
Perez-Gonzalez et al. Single machine scheduling with periodic machine availability
WO2011052030A1 (ja) 事前条件生成装置
Balashov et al. A technology for scheduling of data exchange over bus with centralized control in onboard avionics systems
Naumoski A discrete-event simulator for systems engineering.
Amin et al. Time-triggered scheduling of query executions for active diagnosis in distributed real-time systems
Neukirchner et al. A lazy algorithm for distributed priority assignment in real-time systems
Salmon et al. Scheduling real-time systems with periodic tasks using a model-checking approach
McElvany Guaranteeing deadlines in MAFT
RU2678469C1 (ru) Способ составления и исполнения плана задания последовательности реально-временных задач
Terzimehić Optimization and reconfiguration of iec 61499-based software architectures
Liao et al. Modeling and solving scheduling in overloaded situations with weighted partial MaxSAT
Khalgui et al. An IEC61499-based development approach for distributed industrial control applications
Yang Customer order scheduling in a two machine flowshop
AnousouyaDevi et al. Temporal planning with reference event based temporal relations
Lewis et al. Reengineering real-time embedded software onto a parallel processing platform
Batista et al. Scheduling grid tasks under uncertain demands
Saksena et al. Temporal analysis for hard real-time scheduling
Rostami et al. New benchmark results for the stochastic resource-constrained project scheduling problem
Rihm et al. A mip-based decomposition heuristic for resource-constrained project scheduling
Yépez et al. Ciclic: A tool to generate feasible cyclic schedules
Lowinski et al. Partitioning Embedded Real-Time Control Software based on Communication Dependencies.
Lu et al. Construction a Real-Time Component for Developing Embedded Real-Time Systems
Zhong et al. Proactive Scheduling Procedures for RCPSP with Beta Distributed Durations and Exponential Distributed Resources
Yellanki Simulated Annealing Approach To Flow Shop Scheduling

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160411

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180508

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20181002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190116

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20190313

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190426

R150 Certificate of patent or registration of utility model

Ref document number: 6524064

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