JP2010160599A - スケジューラ、情報処理装置およびスケジューリング方法 - Google Patents

スケジューラ、情報処理装置およびスケジューリング方法 Download PDF

Info

Publication number
JP2010160599A
JP2010160599A JP2009001371A JP2009001371A JP2010160599A JP 2010160599 A JP2010160599 A JP 2010160599A JP 2009001371 A JP2009001371 A JP 2009001371A JP 2009001371 A JP2009001371 A JP 2009001371A JP 2010160599 A JP2010160599 A JP 2010160599A
Authority
JP
Japan
Prior art keywords
calculation
time
unit
programs
program
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.)
Pending
Application number
JP2009001371A
Other languages
English (en)
Inventor
Kazuyuki Hoshika
一幸 星加
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.)
Azbil Corp
Original Assignee
Azbil 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 Azbil Corp filed Critical Azbil Corp
Priority to JP2009001371A priority Critical patent/JP2010160599A/ja
Publication of JP2010160599A publication Critical patent/JP2010160599A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】それぞれ演算周期が異なる複数のプログラムを効率的に演算する。
【解決手段】単位時間算出部11が算出する複数プログラムの演算周期の最大公約数を単位時間、完了時間算出部12が算出する各プログラムの演算周期の最小公倍数を全プログラムの演算完了に要する時間として、プログラムを割当てる複数の連続するベース期間を設定し、割り当て部13が各プログラムの演算時間を連続するベース期間に演算周期が短い順に割り当てることにより、演算部20が各プログラムを効率的に演算することができる。また、空き時間更新部14によりベース期間の演算空き時間から割り当てた演算時間を減算して得た演算空き時間が、判定部15によって負であると判定された場合に、出力部16より出力される演算周期内に演算が完了しないプログラムが存在するエラー情報と、ベース期間ごとの各プログラムの演算時間の割合を表示部50により表示して確認できる。
【選択図】図1

Description

本発明は、コンピュータ技術に関し、スケジューラ、情報処理装置およびスケジューリング方法に関する。
プロセス制御器やPLC(Programmable Logic Controller)等のデジタル式コントローラは、離散的に制御処理を行う。そのため、デジタル式コントローラは、所定の演算周期で制御処理を行うプログラムの演算を繰り返し実行している(例えば、下記特許文献1参照)。近年、マイクロプロセッサの高集積化によって、マイクロプロセッサの処理能力の高速化が進み、演算周期の短縮化が進んでいる。しかしながら、一方において、演算周期を短いものから長いものまで用意し、制御処理の用途に応じて適切な演算周期を各プログラムに割り当てることも考案されている。
特開2002−351509号公報
それぞれ演算周期が異なる複数のプログラムは、従来、マルチタスク・オペレーティングシステム(OS)によって実行されていた。しかしながら、マルチタスクOSによる単純なタイムシェアでは、プログラムの厳密な演算周期を守ることまでは保証できない。さらに、複数のプログラムのそれぞれに優先順位を付する煩雑な手順が必要となる。また、マイクロプロセッサの処理能力を、演算周期が短いプログラムと演算周期が長いプログラムとに予め割り当てることも考案されている。しかしながら、予め設定された処理能力の割り当てに、実際に演算されるプログラムの数が対応していない場合が生じ得る。そのため、例えば、演算周期が短いプログラムの数が多く、予め演算周期が短いプログラムの処理に割り当てられたマイクロプロセッサの処理能力が不足する一方で、演算周期が長いプログラムの数が少なく、予め演算周期が長いプログラムの処理に割り当てられたマイクロプロセッサの処理能力に空きが生じて無駄が発生してしまう。
そこで、本発明は、上述した従来技術による問題点を解消するためになされたものであり、それぞれ演算周期が異なる複数のプログラムを効率的に演算することを可能とするスケジューラ、情報処理装置およびスケジューリング方法を提供することを目的とする。
本発明に係るスケジューラは、複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出部と、前記複数のプログラムのそれぞれの演算周期の最小公倍数または最も長い演算周期を、前記複数のプログラムの全ての演算が少なくとも1回完了するために必要な完了時間として算出する完了時間算出部と、前記複数のプログラムのそれぞれの演算時間を、それぞれ前記単位時間を有する複数の連続するベース期間の中に、演算周期が短い順に割り当てる割り当て部と、それぞれのベース期間の演算空き時間から、前記割り当て部によってそれぞれのベース期間に割り当てられた演算時間を減算して、それぞれのベース期間の演算空き時間を更新する空き時間更新部と、更新後の演算空き時間が負であるか否かを判定する判定部と、前記判定部によって演算空き時間が負であると判定された場合に、演算周期内に演算が完了しないプログラムが存在することを示す情報を出力する出力部と、を備える。
また、本発明に係る情報処理装置は、上記スケジューラと、前記複数のベース期間に割り当てられた前記複数のプログラムを演算する演算部と、前記演算部によって演算される前記複数のプログラムの演算時間の割合を、前記ベース期間ごとに表示する表示部と、を備える。
さらに、本発明に係るスケジューリング方法は、複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出ステップと、前記複数のプログラムのそれぞれの演算周期の最小公倍数または最も長い演算周期を、前記複数のプログラムの全ての演算が少なくとも1回完了するために必要な完了時間として算出する完了時間算出ステップと、前記複数のプログラムのそれぞれの演算時間を、それぞれ前記単位時間を有する複数の連続するベース期間の中に、演算周期が短い順に割り当てる割り当てステップと、それぞれのベース期間の演算空き時間から、前記割り当てステップにおいてそれぞれのベース期間に割り当てられた演算時間を減算して、それぞれのベース期間の演算空き時間を更新する空き時間更新ステップと、更新後の演算空き時間が負であるか否かを判定する判定ステップと、前記判定ステップにおいて演算空き時間が負であると判定された場合に、演算周期内に演算が完了しないプログラムが存在することを示す情報を出力する出力ステップと、を含む。
かかる構成を採用することで、複数のプログラムのそれぞれの演算周期の最大公約数に対応するベース期間を連続的に複数設定することができ、この複数のベース期間の中に、複数のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることができるため、それぞれ演算周期が異なる複数のプログラムを効率的に演算することが可能となる。また、ベース期間の演算空き時間が負になった場合には、演算周期内に演算が完了しないプログラムが存在することを示す情報を出力することができるため、それぞれのプログラムの演算時間を割り当てる際に、それぞれのプログラムの演算が演算周期内に完了するか否かを確認することが可能となる。
本発明によれば、それぞれ演算周期が異なる複数のプログラムを効率的に演算することを可能とするスケジューラ、情報処理装置およびスケジューリング方法を提供することができる。
実施形態におけるコントローラの構成を模式的に例示する図である。 演算時間テーブルのデータ構成を例示する図である。 指定プログラムテーブルのデータ構成を例示する図である。 スケジューリング処理の処理手順を説明するための図である。 スケジューリング処理の処理手順を説明するための図である。 スケジューリング処理の処理手順を説明するための図である。 スケジューリング処理の処理手順を説明するための図である。 スケジューリング処理の処理手順を説明するための図である。 スケジューリング処理の処理手順を説明するための図である。 スケジューリング処理の処理手順を説明するための図である。 スケジューリング処理の処理手順を説明するための図である。 スケジューリング処理の処理手順を説明するための図である。 スケジューリング処理の処理手順を説明するための図である。 表示部に表示されるグラフを例示する図である。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。すなわち、本発明は、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は模式的なものであるため、具体的な寸法等は以下の説明を照らし合わせて判断するべきものである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
まず、図1を参照して、実施形態におけるコントローラ1(情報処理装置)の構成について説明する。図1は、実施形態におけるコントローラ1の構成を模式的に例示した図である。
同図に示すように、コントローラ1は、各種プログラムの演算時間をスケジューリングするスケジューラ10と、スケジューリングされたプログラムを実行する演算部20と、各種プログラムおよび各種情報を記憶する記憶部30と、各種情報を入力するための入力部40と、各種情報を表示するための表示部50と、各種情報を外部とやりとりするための通信部60とを有する。これらの要素は信号を伝送するバス70を介して相互に接続されている。
記憶部30は、それぞれ演算周期が異なる複数のプログラムを記憶する。複数のプログラムは、それぞれ複数の機能ブロックを含んでいる。記憶部30は、プログラムごとの演算時間を管理する演算時間テーブルと、使用者によって演算するタイミングが指定された指定プログラムに関する情報を管理する指定プログラムテーブルとを記憶する。
ここで、プログラムの演算時間は、演算するマシンの性能により異なる。本実施形態におけるプログラムの演算時間は、一のプログラムがコントローラで演算されたときに、一のプログラムの演算が1回完了するのに要する時間をいう。また、プログラムの演算周期は、プログラムの仕様や用途により異なる。本実施形態におけるプログラムの演算周期は、一のプログラムの実行が繰り返される場合に、1回の実行が開始されてから終了するまでに許容される最大の期間をいう。
図2を参照して、演算時間テーブルについて説明する。図2は、演算時間テーブルのデータ構成を例示する図である。演算時間テーブルは、データ項目として、例えば、プログラムIDと、演算周期と、機能ブロック数と、演算時間とを有する。図2に示す演算時間テーブルには、例えば、以下に説明する第1〜第4のプログラムに関する情報が格納されている。
第1のプログラムのプログラムIDは“PG001”であり、第1のプログラムには“100ミリ秒”の演算周期で演算される機能ブロックが“25個”含まれており、第1のプログラムを1回演算するために必要な演算時間は“50ミリ秒”である。なお、本実施形態では、1個の機能ブロックを演算するのに要する演算時間を、例示的に2ミリ秒としている。
第2のプログラムのプログラムIDは“PG002”であり、第2のプログラムには“200ミリ秒”の演算周期で演算される機能ブロックが“20個”含まれており、第2のプログラムを1回演算するために必要な演算時間は“40ミリ秒”である。
第3のプログラムのプログラムIDは“PG003”であり、第3のプログラムには“500ミリ秒”の演算周期で演算される機能ブロックが“25個”含まれており、第3のプログラムを1回演算するために必要な演算時間は“50ミリ秒”である。
第4のプログラムのプログラムIDは“PG004”であり、第4のプログラムには“1000ミリ秒”の演算周期で演算される機能ブロックが“50個”含まれており、第4のプログラムを1回演算するために必要な演算時間は“100ミリ秒”である。
図3を参照して、指定プログラムテーブルについて説明する。図3は、指定プログラムテーブルのデータ構成を例示する図である。指定プログラムテーブルは、データ項目として、例えば、プログラムIDと、演算タイミングと、機能ブロック数と、演算時間とを有する。図3に示す指定プログラムテーブルには、例えば、以下に説明する第1および第2の指定プログラムに関する情報が格納されている。
第1の指定プログラムのプログラムIDは“SP001”であり、第1の指定プログラムは、演算開始後“300ミリ秒〜400ミリ秒”の間のタイミングに演算されるように指定されており、第1の指定プログラムには、機能ブロックが“5個”含まれており、第1の指定プログラムを1回演算するために必要な演算時間は10ミリ秒である。
第2の指定プログラムのプログラムIDは“SP002”であり、第2の指定プログラムは、演算開始後“800ミリ秒〜900ミリ秒”の間のタイミングに演算されるように指定されており、第2の指定プログラムには、機能ブロックが“15個”含まれており、第2の指定プログラムを1回演算するために必要な演算時間は30ミリ秒である。
図1に示すスケジューラ10は、記憶部30に記憶されている演算時間テーブルの内容や指定プログラムテーブルの内容が更新されるたびに、後述するプログラムの演算時間割り当て処理(以下、「スケジューリング処理」という。)を実行する。また、スケジューラ10は、入力部40からスケジューリング処理の実行を要求する指示が入力された場合にも、スケジューリング処理を実行する。以下において、スケジューリング処理を実行するスケジューラ10の機能について説明する。
スケジューラ10は、単位時間算出部11と、完了時間算出部12と、割り当て部13と、空き時間更新部14と、判定部15と、出力部16とを有する。
単位時間算出部11は、複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する。これを具体的に説明する。まず、単位時間算出部11は、図2に示す演算時間テーブルから、第1〜第4のプログラムのそれぞれの演算周期を読み出す。続いて、単位時間算出部11は、第1〜第4のプログラムのそれぞれの演算周期の最大公約数を、単位時間として算出する。本実施形態では、第1〜第4のプログラムのそれぞれの演算周期が、100ミリ秒、200ミリ秒、500ミリ秒、1000ミリ秒であるため、単位時間として100ミリ秒が算出される。
なお、二つのプログラムのそれぞれの演算周期が、例えば100ミリ秒と250ミリ秒とである場合には、単位時間として50ミリ秒が算出される。また、第1〜第4のプログラムのそれぞれの演算周期の値が整数でない場合には、例えば単位を換算する等して演算周期の値を整数で表記すればよい。例えば、演算時間テーブルに格納されている演算周期が、0.1秒、0.2秒、0.5秒、1秒である場合には、単位を秒からミリ秒に換算することによって、演算周期の値を整数で表記することができる。
完了時間算出部12は、複数のプログラムのそれぞれの演算周期の最小公倍数を、複数のプログラムの全ての演算が少なくとも1回完了するために必要な完了時間として算出する。これを具体的に説明する。まず、完了時間算出部12は、図2に示す演算時間テーブルから、第1〜第4のプログラムのそれぞれの演算周期を読み出す。続いて、完了時間算出部12は、第1〜第4のプログラムのそれぞれの演算周期の最小公倍数を、第1〜第4のプログラムの全ての演算が少なくとも1回完了するために必要な完了時間として算出する。本実施形態では、第1〜第4のプログラムのそれぞれの演算周期が、100ミリ秒、200ミリ秒、500ミリ秒、1000ミリ秒であるため、完了時間として1000ミリ秒が算出される。
なお、二つのプログラムのそれぞれの演算周期が、例えば100ミリ秒と250ミリ秒とである場合には、完了時間として500ミリ秒が算出される。また、上述したように、第1〜第4のプログラムのそれぞれの演算周期の値が整数でない場合には、例えば単位を換算する等して演算周期の値を整数で表記すればよい。
割り当て部13は、複数のプログラムのそれぞれの演算時間を、それぞれ単位時間を有する複数の連続するベース期間の中に、演算周期が短い順に割り当てる。これを具体的に説明する。まず、割り当て部13は、図2に示す演算時間テーブルから、第1〜第4のプログラムのそれぞれの演算時間および演算周期を読み出す。割り当て部13は、第1〜第4のプログラムのそれぞれの演算時間を、それぞれの演算周期に応じて定められる所定のベース期間群の中に、演算周期が短い順に割り当てる。複数のプログラムの演算時間を割り当てる際の詳細については、後述する。
割り当て部13は、図3に示す指定プログラムテーブルに指定プログラムが登録されている場合には、上記複数のプログラムの演算時間を割り当てる前に、指定プログラムの演算時間を予め指定されているベース期間の中に割り当てる。指定プログラムの演算時間を割り当てる際の詳細については、後述する。
空き時間更新部14は、それぞれのベース期間の演算空き時間から、割り当て部13によってそれぞれのベース期間に割り当てられた演算時間を減算し、それぞれのベース期間の演算空き時間を更新する。なお、ベース期間の演算空き時間は、ベース期間に割り当てられる処理時間のうち、まだプログラムの演算時間が割り当てられていない時間をいう。
判定部15は、更新後の演算空き時間が負であるか否かに応じて、演算周期内に全てのプログラムの演算を完了できるか否かを判定する。具体的に、判定部15は、更新後の演算空き時間が負である場合には、演算周期内に演算が完了しないプログラムが存在すると判定する。一方、判定部15は、更新後の演算空き時間が0以上である場合には、演算周期内に全てのプログラムの演算を完了できると判定する。
出力部16は、判定部によって演算空き時間が負であると判定された場合に、演算周期内に演算が完了しないプログラムが存在することを示すエラー情報を表示部50および/または通信部60に出力する。エラー情報を表示部50に出力した場合には、例えば、表示部50にエラーメッセージが表示される。エラー情報を通信部60に出力した場合には、例えば、通信部60を介して通信可能な外部機器である管理装置等にエラー情報が送信され、管理装置の表示部等にエラーメッセージが表示される。
次に、図4〜図13を参照して、上述したスケジューリング処理について説明する。このスケジューリング処理では、例示的に、図2に示す演算時間テーブルに登録されている第1〜第4のプログラムと、図3に示す指定プログラムテーブルに登録されている第1および第2の指定プログラムとの演算タイミングを割り当てる際のスケジューリング処理について説明する。なお、指定プログラムテーブルに指定プログラムが登録されていない場合には、後述する指定プログラムの演算時間を割り当てる際の処理を省略すればよい。
まず、図4に示すように、割り当て部13は、第1の指定プログラムを四番目のベース期間の先頭に割り当て、第2の指定プログラムを九番目のベース期間の先頭に割り当てる。
続いて、図4および図5に示すように、空き時間更新部14は、割り当て前の四番目のベース期間の演算空き時間である100ミリ秒から、第1の指定プログラムの演算時間である10ミリ秒を減算して、四番目のベース期間の演算空き時間を90ミリ秒に更新する。また、空き時間更新部14は、割り当て前の九番目のベース期間の演算空き時間である100ミリ秒から、第2の指定プログラムの演算時間である30ミリ秒を減算して、九番目のベース期間の演算空き時間を70ミリ秒に更新する。
空き時間更新部14による更新後、判定部15は、更新後の全てのベース期間の演算空き時間が0以上であるか否かを判定する。この場合には、更新後の全ベース期間の演算空き時間が0以上であるため、判定部15は、現時点までに割り当てられている全てのプログラムが演算周期内に演算を完了できると判定する。
続いて、図6に示すように、割り当て部13は、演算周期が最も短い第1のプログラムの演算時間を、ベース期間ごとに、それぞれのベース期間の空き時間領域の先頭にそれぞれ割り当てる。これは、第1のプログラムの演算周期が単位時間と同等の100ミリ秒であるため、単位時間に相当する一つのベース期間ごとに、第1のプログラムの演算時間を割り当てることとしたものである。これにより、第1のプログラムの演算周期である100ミリ秒ごとに第1のプログラムを実行させることができる。
続いて、図6および図7に示すように、空き時間更新部14は、割り当て前の四番目のベース期間の演算空き時間である90ミリ秒から、第1のプログラムの演算時間である50ミリ秒を減算して、四番目のベース期間の演算空き時間を40ミリ秒に更新する。また、空き時間更新部14は、割り当て前の九番目のベース期間の演算空き時間である70ミリ秒から、第1のプログラムの演算時間である50ミリ秒を減算して、九番目のベース期間の演算空き時間を20ミリ秒に更新する。さらに、空き時間更新部14は、割り当て前の残りのベース期間の演算空き時間である100ミリ秒から、第1のプログラムの演算時間である50ミリ秒を減算して、残りのベース期間の演算空き時間を50ミリ秒に更新する。
空き時間更新部14による更新後、判定部15は、更新後の全てのベース期間の演算空き時間が0以上であるか否かを判定する。この場合には、更新後の全ベース期間の演算空き時間が0以上であるため、判定部15は、現時点までに割り当てられている全てのプログラムが演算周期内に演算を完了できると判定する。
続いて、図8に示すように、割り当て部13は、演算周期が二番目に短い第2のプログラムの演算時間を、二つのベース期間からなるベース期間群ごとに、それぞれのベース期間群の空き時間領域の先頭にそれぞれ割り当てる。これは、第2のプログラムの演算周期が単位時間の2倍となる200ミリ秒であるため、単位時間の2倍に相当する二つのベース期間ごとに、第2のプログラムの演算時間を割り当てることとしたものである。これにより、第2のプログラムの演算周期である200ミリ秒ごとに第2のプログラムを実行させることができる。
続いて、図8および図9に示すように、空き時間更新部14は、割り当て前の第二ベース期間群の演算空き時間である90ミリ秒から、第2のプログラムの演算時間である40ミリ秒を減算して、第二ベース期間群の演算空き時間を50ミリ秒に更新する。また、空き時間更新部14は、割り当て前の第五ベース期間群の演算空き時間である70ミリ秒から、第2のプログラムの演算時間である40ミリ秒を減算して、第五ベース期間群の演算空き時間を30ミリ秒に更新する。さらに、空き時間更新部14は、割り当て前の残りのベース期間群の演算空き時間である100ミリ秒から、第2のプログラムの演算時間である40ミリ秒を減算して、残りのベース期間群の演算空き時間を60ミリ秒に更新する。
空き時間更新部14による更新後、判定部15は、更新後の全てのベース期間の演算空き時間が0以上であるか否かを判定する。この場合には、更新後の全ベース期間の演算空き時間が0以上であるため、判定部15は、現時点までに割り当てられている全てのプログラムが演算周期内に演算を完了できると判定する。
続いて、図10に示すように、割り当て部13は、演算周期が三番目に短い第3のプログラムの演算時間を、五つのベース期間からなるベース期間群ごとに、それぞれのベース期間群の空き時間領域の先頭にそれぞれ割り当てる。これは、第3のプログラムの演算周期が単位時間の5倍となる500ミリ秒であるため、単位時間の5倍に相当する五つのベース期間ごとに、第3のプログラムの演算時間を割り当てることとしたものである。これにより、第3のプログラムの演算周期である500ミリ秒ごとに第3のプログラムを実行させることができる。
続いて、図10および図11に示すように、空き時間更新部14は、割り当て前の第一ベース期間群の演算空き時間である120ミリ秒から、第3のプログラムの演算時間である50ミリ秒を減算して、第一ベース期間群の演算空き時間を70ミリ秒に更新する。また、空き時間更新部14は、第二ベース期間群の演算空き時間である140ミリ秒から、第3のプログラムの演算時間である50ミリ秒を減算して、第二ベース期間群の演算空き時間を90ミリ秒に更新する。
空き時間更新部14による更新後、判定部15は、更新後の全てのベース期間の演算空き時間が0以上であるか否かを判定する。この場合には、更新後の全ベース期間の演算空き時間が0以上であるため、判定部15は、現時点までに割り当てられている全てのプログラムが演算周期内に演算を完了できると判定する。
続いて、図12に示すように、割り当て部13は、演算周期が最も長い第4のプログラムの演算時間を、十のベース期間からなるベース期間群の空き時間領域の先頭に割り当てる。これは、第4のプログラムの演算周期が単位時間の10倍となる1000ミリ秒であるため、単位時間の10倍に相当する十のベース期間ごとに、第4のプログラムの演算時間を割り当てることとしたものである。これにより、第4のプログラムの演算周期である1000ミリ秒ごとに第4のプログラムを実行させることができる。
続いて、図12および図13に示すように、空き時間更新部14は、割り当て前のベース期間群の演算空き時間である160ミリ秒から、第4のプログラムの演算時間である100ミリ秒を減算して、ベース期間群の演算空き時間を60ミリ秒に更新する。
空き時間更新部14による更新後、判定部15は、更新後の全てのベース期間の演算空き時間が0以上であるか否かを判定する。この場合には、更新後の全ベース期間の演算空き時間が0以上であるため、判定部15は、現時点までに割り当てられている全てのプログラムが演算周期内に演算を完了できると判定する。
スケジューリング処理の対象である第1〜第4のプログラムと第1および第2の指定プログラムとの演算タイミングの割り当てが全て終了すると、スケジューリング処理は終了する。スケジュール処理が正常終了した場合には、図14に示すグラフが表示部50に表示される。なお、このグラフには、ポインタPが備えられており、このポインタPを操作して移動させることで、ポインタ位置に対応するプログラム(機能ブロック)の内容を確認することもできる。
一方、このスケジューリング処理において、いずれかのベース期間の演算空き時間が負であると判定された場合には、演算周期内に演算が完了しないプログラムが存在する旨のエラーメッセージが表示部50に表示される。
上述してきたように、本実施形態のコントローラ1では、複数のプログラムのそれぞれの演算周期の最大公約数に対応するベース期間を複数設定することができ、この複数のベース期間の中に、複数のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることができる。これにより、それぞれ演算周期が異なる複数のプログラムを効率的に演算することが可能となる。
また、スケジューリング処理を行っている際に、いずれかのベース期間の演算空き時間が負になった場合には、演算周期内に演算が完了しないプログラムが存在することを示す情報を表示させることができるため、それぞれのプログラムの演算時間を割り当てる際に、それぞれのプログラムの演算が演算周期内に完了するか否かを確認することが可能となる。
なお、上述した実施形態では、演算周期ごとに一のプログラムが存在する場合について説明しているが、演算周期ごとに複数のプログラムが存在する場合にも本発明を適用することができる。演算周期ごとに複数のプログラムが存在する場合には、上述した演算周期ごとに一のプログラムが存在する場合と同様に、一のプログラムごとに、プログラムのそれぞれの演算時間を、それぞれの演算周期に応じて定められる所定のベース期間群の中に、演算周期が短い順に割り当てていくこととしてもよいが、これに限定されず、以下のように処理することとしてもよい。
例えば、演算周期ごとに複数のプログラムの総演算時間を予め集計しておき、演算周期ごとの総演算時間を、それぞれの演算周期に応じて定められる所定のベース期間群の中に、演算周期が短い順に割り当てていくこととしてもよい。この場合には、例えば、図2に示す演算時間テーブルのプログラムIDを、演算周期ごとのプログラム群IDに置き換え、演算時間テーブルの機能ブロック数および演算時間に、演算周期ごとに集計した総機能ブロック数および総演算時間をそれぞれ格納することとしてもよい。そして、割り当て部13が、演算周期ごとの総演算時間を、それぞれの演算周期に応じて定められる所定のベース期間群の中に、演算周期が短い順に割り当てることとすればよい。これにより、例えばプログラム数が膨大に存在する場合には、それぞれのプログラムの演算時間を演算周期単位でまとめて割り当てることができるため、処理効率を向上させることができる。また、この場合には、図14に示すグラフは、演算周期ごとの複数のプログラムの総演算時間の割合をベース期間ごとに表示することとしてもよい。
また、上述した実施形態では、複数のプログラムのそれぞれの演算周期の最小公倍数を完了時間としているが、完了時間の設定はこれに限定されない。例えば、複数のプログラムのそれぞれの演算周期の最も長い演算周期を完了時間としてもよい。例えば、二つのプログラムのそれぞれの演算周期が、100ミリ秒と250ミリ秒とである場合には、完了時間は250ミリ秒となる。
1…コントローラ、10…スケジューラ、11…単位時間算出部、12…完了時間算出部、13…割り当て部、14…空き時間更新部、15…判定部、16…出力部、20…演算部、30…記憶部、40…入力部、50…表示部、60…通信部、70…バス。

Claims (7)

  1. 複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出部と、
    前記複数のプログラムのそれぞれの演算周期の最小公倍数または最も長い演算周期を、前記複数のプログラムの全ての演算が少なくとも1回完了するために必要な完了時間として算出する完了時間算出部と、
    前記複数のプログラムのそれぞれの演算時間を、それぞれ前記単位時間を有する複数の連続するベース期間の中に、演算周期が短い順に割り当てる割り当て部と、
    それぞれのベース期間の演算空き時間から、前記割り当て部によってそれぞれのベース期間に割り当てられた演算時間を減算して、それぞれのベース期間の演算空き時間を更新する空き時間更新部と、
    更新後の演算空き時間が負であるか否かを判定する判定部と、
    前記判定部によって演算空き時間が負であると判定された場合に、演算周期内に演算が完了しないプログラムが存在することを示す情報を出力する出力部と、
    を備えることを特徴とするスケジューラ。
  2. 前記割り当て部は、前記複数のプログラムのそれぞれの演算時間を、それぞれの演算周期に応じて定められる所定のベース期間群の中に、演算周期が短い順に割り当てることを特徴とする請求項1記載のスケジューラ。
  3. 前記割り当て部は、前記複数のプログラムのそれぞれの演算時間を、前記複数のベース期間のそれぞれの中に割り当てる前に、予め演算するタイミングが指定されている指定プログラムを、前記複数のベース期間の少なくとも一つの中に割り当てることを特徴とする請求項1または2記載のスケジューラ。
  4. 前記連続するベース期間の合計時間が、前記完了時間であることを特徴とする請求項1〜3のいずれか1項に記載のスケジューラ。
  5. 前記割り当て部は、前記複数のプログラムのそれぞれの演算時間を割り当てる際に、前記演算周期ごとに集計された前記複数のプログラムの総演算時間を割り当てることを特徴とする請求項1〜4のいずれか1項に記載のスケジューラ。
  6. 請求項1〜5のいずれか1項に記載のスケジューラと、
    前記複数のベース期間に割り当てられた前記複数のプログラムを演算する演算部と、
    前記演算部によって演算される前記複数のプログラムの演算時間の割合を、前記ベース期間ごとに表示する表示部と、
    を備えることを特徴とする情報処理装置。
  7. 複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出ステップと、
    前記複数のプログラムのそれぞれの演算周期の最小公倍数または最も長い演算周期を、前記複数のプログラムの全ての演算が少なくとも1回完了するために必要な完了時間として算出する完了時間算出ステップと、
    前記複数のプログラムのそれぞれの演算時間を、それぞれ前記単位時間を有する複数の連続するベース期間の中に、演算周期が短い順に割り当てる割り当てステップと、
    それぞれのベース期間の演算空き時間から、前記割り当てステップにおいてそれぞれのベース期間に割り当てられた演算時間を減算して、それぞれのベース期間の演算空き時間を更新する空き時間更新ステップと、
    更新後の演算空き時間が負であるか否かを判定する判定ステップと、
    前記判定ステップにおいて演算空き時間が負であると判定された場合に、演算周期内に演算が完了しないプログラムが存在することを示す情報を出力する出力ステップと、
    を含むことを特徴とするスケジューリング方法。
JP2009001371A 2009-01-07 2009-01-07 スケジューラ、情報処理装置およびスケジューリング方法 Pending JP2010160599A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009001371A JP2010160599A (ja) 2009-01-07 2009-01-07 スケジューラ、情報処理装置およびスケジューリング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009001371A JP2010160599A (ja) 2009-01-07 2009-01-07 スケジューラ、情報処理装置およびスケジューリング方法

Publications (1)

Publication Number Publication Date
JP2010160599A true JP2010160599A (ja) 2010-07-22

Family

ID=42577729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009001371A Pending JP2010160599A (ja) 2009-01-07 2009-01-07 スケジューラ、情報処理装置およびスケジューリング方法

Country Status (1)

Country Link
JP (1) JP2010160599A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014003128A1 (ja) * 2012-06-28 2014-01-03 株式会社エヌ・ティ・ティ・ドコモ タスク制御装置
JP2014038458A (ja) * 2012-08-15 2014-02-27 Toshiba Corp スケジューリング装置、システム、方法およびプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000047884A (ja) * 1998-07-28 2000-02-18 Toshiba Corp スケジューリング解析装置、スケジューリング解析方法及びスケジューリング解析用プログラムを記録した媒体
JP2002342097A (ja) * 2001-05-17 2002-11-29 Matsushita Electric Ind Co Ltd タスク割当可能時間決定装置及びタスク割当可能時間決定方法
JP2007233930A (ja) * 2006-03-03 2007-09-13 Shimadzu System Solutions Co Ltd 分散制御システム用シミュレータ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000047884A (ja) * 1998-07-28 2000-02-18 Toshiba Corp スケジューリング解析装置、スケジューリング解析方法及びスケジューリング解析用プログラムを記録した媒体
JP2002342097A (ja) * 2001-05-17 2002-11-29 Matsushita Electric Ind Co Ltd タスク割当可能時間決定装置及びタスク割当可能時間決定方法
JP2007233930A (ja) * 2006-03-03 2007-09-13 Shimadzu System Solutions Co Ltd 分散制御システム用シミュレータ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014003128A1 (ja) * 2012-06-28 2014-01-03 株式会社エヌ・ティ・ティ・ドコモ タスク制御装置
JP2014029662A (ja) * 2012-06-28 2014-02-13 Ntt Docomo Inc タスク制御装置
JP2014038458A (ja) * 2012-08-15 2014-02-27 Toshiba Corp スケジューリング装置、システム、方法およびプログラム

Similar Documents

Publication Publication Date Title
JP6799947B2 (ja) スライディングタイムウィンドウを用いてタスクをスケジュール設定するためのシステムおよび方法
US9477521B2 (en) Method and system for scheduling repetitive tasks in O(1)
CN105808328B (zh) 任务调度的方法、装置和系统
CN109992407B (zh) 一种yarn集群gpu资源调度方法、装置和介质
CN109710407A (zh) 分布式系统实时任务调度方法、装置、设备及存储介质
KR100524763B1 (ko) 개선된 edf 스케쥴링 방법
EP2624135A2 (en) Systems and methods for task grouping on multi-processors
US9483247B2 (en) Automated software maintenance based on forecast usage
KR101093286B1 (ko) 정보 처리 장치, 스케쥴러 및 스케쥴링 방법
JP2002342097A (ja) タスク割当可能時間決定装置及びタスク割当可能時間決定方法
CN103873587B (zh) 一种基于云平台实现调度的方法及装置
CN103336714A (zh) 一种作业调度方法和装置
CN103729246A (zh) 一种任务调度方法和装置
CN109800092A (zh) 一种共享数据的处理方法、装置及服务器
JP2015049562A (ja) 情報処理システム、ジョブ管理装置、ジョブ管理装置の制御プログラム、及び、情報処理システムの制御方法
CN111861412A (zh) 面向完成时间优化的科学工作流调度方法及系统
JP2010160599A (ja) スケジューラ、情報処理装置およびスケジューリング方法
CN104461471A (zh) 分簇vliw处理器上统一的指令调度和寄存器分配方法
JP5653333B2 (ja) スケジュール作成方法及びスケジュール作成プログラム、並びにスケジュール作成装置
JPWO2018235124A1 (ja) 分散配置装置、分散配置システム、および、分散配置方法
JP2019012456A (ja) タスク割当て装置、および、タスク割当て方法
CN113407322A (zh) 多终端的任务分配方法、装置、电子设备及可读存储介质
CN111158885B (zh) 作业调度系统中并发度控制方法及装置
JP6170733B2 (ja) 進捗管理支援装置、進捗管理支援方法およびプログラム
JP5686477B2 (ja) スケジュール作成方法及びスケジュール作成プログラム、並びにスケジュール作成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111107

A977 Report on retrieval

Effective date: 20130426

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130502

A521 Written amendment

Effective date: 20130628

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130828