JP2014006788A - 情報処理装置およびプログラム実行方法 - Google Patents

情報処理装置およびプログラム実行方法 Download PDF

Info

Publication number
JP2014006788A
JP2014006788A JP2012143027A JP2012143027A JP2014006788A JP 2014006788 A JP2014006788 A JP 2014006788A JP 2012143027 A JP2012143027 A JP 2012143027A JP 2012143027 A JP2012143027 A JP 2012143027A JP 2014006788 A JP2014006788 A JP 2014006788A
Authority
JP
Japan
Prior art keywords
time
program
scheduler
base period
programs
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
JP2012143027A
Other languages
English (en)
Inventor
Yoshitaka Osawa
義孝 大澤
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 JP2012143027A priority Critical patent/JP2014006788A/ja
Publication of JP2014006788A publication Critical patent/JP2014006788A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】
スケジューラと複数のプログラムを実行する演算装置が、それぞれ独立自律的に動作する情報処理装置。
【解決手段】
複数プログラムの演算周期の最大公約数であるベース時間に、前記演算周期が短い順に順次プログラムを使用可能な時間を指定して呼び出すスケジューラ部と、
前記呼び出されたプログラムを実行後、ベース期間の残り時間をスケジューラに戻す演算部と、を備える情報処理装置

【選択図】 図2

Description

本発明はコンピュータ技術に関し、情報処理装置、およびそのプログラム実行方法に関するものである。
プロセス制御器及びP
L C ( Programmable Logic Controller ) 等のデジタル式コントローラは、離散的に制御処理を行う。そのため、デジタル式コントローラは、所定の演算周期で、制御処理を実現するプログラムの演算を繰り返している。
近年、マイクロプロセッサの高集積化により、マイクロプロセッサの処理能力の高速化が進み、演算周期の短縮化も進んでいる。しかし、一方において、演算周期を短いものから長いものまで用意し、制御処理の用途に応じて、適切な演算周期を各プログラムに割り当てる技術が考案されている。
特に、シングルプロセッサの情報処理装置において、それぞれ演算周期が異なる複数のプログラムの効率的な演算を可能にする情報処理装置の発明が開示されている(特許文献1)。
特開2010−160600号公報
従来は、それぞれ演算周期が異なる複数のプログラムは、従来、マルチタスク・オペレーティングシステム(
O S ) によって実行されていた。しかし、マルチタスクO S による単純なタイムシェアでは、プログラムの厳密な演算周期を守ることを保証できない。さらに、複数のプログラムのそれぞれに優先順位を付する煩雑な手順が必要であった。
また先行技術文献に挙げた情報処理装置では、スケジューラが主体となって、各プログラムのスケジューリング時間を細密に求めて設定していた。そのため、プログラムの仕様が変わった場合にはあらためてスケジューリングをしなおす必要があった。
本発明は、複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出部を備えて、
前記複数のプログラムのそれぞれの演算時間を、それぞれ前記単位時間を有する複数の連続するベース期間のそれぞれの中に、前記演算周期が短い順に割り当て、かつ、
順次プログラムで使用可能な時間を指定して、プログラムを呼び出すスケジューラ部と、
並びに、
前記呼び出されたプログラムにおいて、渡されたベース期間の使用可能な時間を上限として、プログラムを実行した後、ベース期間の残り時間を計算して、残り時間をスケジューラに戻す演算部と、
を備える情報処理装置である。
また本発明は、スケジューラ部が、
複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出ステップと、
前記複数のプログラムのそれぞれの演算時間を、それぞれ前記単位時間を有する複数の連続するベース期間のそれぞれの中に、前記演算周期が短い順に割り当るステップと、
順次プログラムで使用可能な時間を指定して、プログラムを呼び出すステップとを有し、
演算部が、
前記呼び出されたプログラムにおいて、渡されたベース期間の使用可能な時間を上限として、プログラムを実行するステップと、
ベース期間の残り時間を計算して、残り時間をスケジューラに戻すステップとを有することを特徴とするプログラム実行方法である。
このように、プログラムの実行判断はベース期間のランタイムに、残り時間の有無に基づいてベース期間毎に逐次決定されるため、事前のスケジューリングから微妙な変化に柔軟に対応することができ、プログラムを停止させることなく、プログラムの追加、削除、実行周期の変更などを行うことができる。
本発明にかかる情報処理装置の構成図 本発明のプログラム実行方法のフロー図 実施例にかかるプログラム実行タイムチャート
本発明の実施の形態に係る情報処理装置は、図1
に示すように、スケジューラ300 を備える。スケジューラ300 は、複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出部301
を備える。また、スケジューラ300 は、複数のプログラムのそれぞれの演算時間を、それぞれ単位時間を有する複数の連続するベース期間のそれぞれの中に、演算周期がより短い順に割り当て、かつ、複数のベース期間のうちの一のベース期間の中で演算が完了しないプログラムの残りの演算時間を、一のベース期間の後のベース期間の中に、演算周期が短い順に割り当てる割り当て部305
をさらに備える。また、情報処理装置は、複数のベース期間の中にそれぞれ演算時間が割り当てられた複数のプログラムを演算する演算部400 を備える。
スケジューラ300 と演算装置400
は、電気信号を伝送するデータバス500 で接続されている。さらに、データバス500 には、それぞれ演算周期が異なる複数のプログラムを保存するプログラム記憶装置330
が接続されている。
単位時間算出部301 は、データバス500
を介して、プログラム記憶装置330 から、プログラムのそれぞれの演算周期を読み出す。さらに単位時間算出部301 は、プログラムのそれぞれの演算周期の最大公約数を、単位時間として算出する。
スケジューラ300 は、完了時間算出部302
及び演算回数算出部303 をさらに備えてもよい。完了時間算出部302 及び演算回数算出部303 は、データバス500 を介して、プログラム記憶装置330 から、プログラムのそれぞれの演算周期を読み出す。さらに完了時間算出部302
は、プログラムのそれぞれの演算周期の最小公倍数を、プログラムの総ての演算が少なくとも1 回完了するために必要な完了時間として算出する。さらに演算回数算出部303
は、受信した完了時間をプログラムの演算周期で割ることにより、完了時間までに、演算装置400 がプログラムを演算する合計演算回数を算出する。
割り当て部305 は、データバス500
を介して、プログラム記憶装置330 から、プログラムのそれぞれの演算周期及び1 回あたりの演算時間を読み出す。また、割り当て部305 は、単位時間算出部301
から算出された単位時間を受信し、完了時間算出部302 から算出された完了時間を受信し、演算回数算出部303 から算出された合計演算回数を受信する。
以上、設計時(オフライン)にスケジューラ300の各機能が果たすことを説明したが、本発明では実行時(オンライン)にスケジューラ300と演算装置400がそれぞれ動作する処理フローに特徴があるので、以下に詳細に述べる。
図2のフローチャートを参照して説明する。
まずスケジューラは予め定めたところのベース期間の到来を計る(図中ステップS11)。
次に、スケジューラは、新たなベース期間の始まりにより、そのベース期間に登録されたプログラムを演算周期の短い順に指定して、演算可能残り時間(初回はベース期間の時間そのもの)を引数として、演算装置に制御を渡す(S12)。その後スケジューラはSleep状態となる。
ここで、演算装置は制御を渡されると、当該指定されたプログラムを記憶装置330から取り出し、演算可能残り時間を指定して当プログラムを実行に移す(S21)。
続いて、演算装置から実行に移されたプログラムは自律的に、演算可能残り時間を上限として実行に移る(S22)。当プログラムは演算可能残り時間がなくなるまで実行するが、残り時間がなくなった時点で、プログラムの処理を中断する(S23)。なお、演算可能残り時間内にプログラムの実行を完了することができなかった場合、プログラム自身が、次のベース期間での呼び出し時に、前回中断した時点から、残りのプログラムの実行を行うようにその持続ポインタ等を内部にセットする(S23)。
ここで、プログラムの実行時間は、製品にRTC(RealTimeClock)等を搭載することによって実際に計測しても良いし、プログラムごとに予め定めた理論的な実行時間値を用いても良い。
ステップS22またはS23のプログラム実行の終了後、演算装置は当初渡された演算可能残り時間から当プログラムの実行した時間分を減算して、その残り時間をもって制御をスケジューラに戻す(S24)。
さて、制御を戻されたスケジューラは、ベース期間の残り時間が0以下になったかどうかも確認する(S13)。
0以下であった場合は、未完了なプログラムがあったと解して、次のベース期間で実行させるように実行中断または未実行のプログラムを登録に追加しておく(S19)。このようにランタイムに調整することでプログラムの変更等に柔軟に対応できるのである。
そしてステップS11へジャンプし新しいベース期間のタイミングを計る。
まだ残り時間がある場合には、各ベース期間における登録全てのプログラムの実行呼び出しが終わったか確認する(S14)。
まだプログラムの実行分が残っている場合は、そのベース期間の演算可能残り時間をもって、演算装置へ当プログラムを実行するようにステップS12へループする(S14)。全てのプログラムが完了していたら、ステップS11へ戻る。
以上が、スケジューラと演算装置で行なわれる処理である。
次に、具体的な例により本発明の動作を説明する。
表1に、プログラム登録部に登録されるプログラムの一覧を示す。
Figure 2014006788
表1により、単位時間は全てのプログラムの実行周期の最大公約数である100msとなる。
また、表2に、登録されたプログラムの実行周期から求められる実行ベース期間番号を示す。
Figure 2014006788
以下、本実施例のプログラム実行のタイムチャートを図3を参照しながら説明する。
ベース期間0では、
スケジューラは、実行周期の短い順に、PG001、PG002を順次呼び出す。PG001、PG002は処理を実行し、それぞれ20ms、30msを消費するため、ベース期間0の残り時間は50msとなる。次に、スケジューラはPG003を呼び出す。PG003は処理に必要な70msのうち、残り時間である50ms分を実行する。
この時点でベース期間0の残り時間は0になるため、スケジューラは以降のプログラム呼び出しを中断する。
ベース期間1では、
スケジューラは、実行周期の短い順に、PG001、PG002を順次呼び出す。PG001、PG002は処理を実行し、それぞれ20ms、30msを消費するため、ベース期間1の残り時間は50msとなる。次に、スケジューラはPG003を呼び出す。PG003はベース期間1での実行は不要であるが、ベース期間0で処理が完了していないため、未完了である残り20ms分の処理を実行し、ベース期間1の残り時間は30msとなる。
次に、スケジューラはPG004を呼び出す。PG004はベース期間1での実行は不要であるが、ベース期間0で処理が完了していないため、未完了である処理のうち、ベース期間1の残り時間である30ms分の処理を実行する。この時点でベース期間1の残り時間は0になるため、スケジューラは以降のプログラム呼び出しを中断する。
ベース期間2では、
スケジューラは、実行周期の短い順に、PG001、PG002を順次呼び出す。PG001、PG002は処理を実行し、それぞれ20ms、30msを消費するため、ベース期間2の残り時間は50msとなる。次に、スケジューラはPG003を呼び出す。PG003は処理にベース期間2での実行が必要であるため、ベース期間0と同様に、必要な70msのうち、残り時間である50ms分を実行する。
この時点でベース期間2の残り時間は0になるため、スケジューラは以降のプログラム呼び出しを中断する。
ベース期間3では、
スケジューラは、実行周期の短い順に、PG001、PG002を順次呼び出す。PG001、PG002は処理を実行し、それぞれ20ms、30msを消費するため、ベース期間3の残り時間は50msとなる。次に、スケジューラはPG003を呼び出す。PG003はベース期間3での実行は不要であるが、ベース期間2で処理が完了していないため、未完了である残り20ms分の処理を実行し、ベース期間3の残り時間は30msとなる。
次に、スケジューラはPG004を呼び出す。PG004はベース期間0における必要な実行が完了していないため、未完了である処理20ms分を実行し、ベース期間3の残り時間は10msとなる。
最後に、スケジューラはPG005を呼び出す。PG005はベース期間0における必要な実行が完了していないため、未完了である処理40msのうち、ベース期間3の残り時間である10ms分の処理を実行する。
こうして、ベース時間3の残り時間は0になるため、スケジューラはプログラム呼び出しを中断する。
ベース期間4〜8では、
このようにして、ベース期間4〜8においてプログラムの実行が行われる。ここでは説明を省略し、実行されるプログラムの状態だけを示す。
ベース期間9では、
スケジューラは実行周期の短い順に、PG001、PG002、PG003、PG004を順に呼び出す。
PG004はベース期間5において必要な処理が完了しており、ベース期間9では実行が不要であるため、PG001、PG002およびPG003の残り処理(20ms分)が実行され、この時点でベース期間9の残り時間は30msとなる。
次に、スケジューラはPG005を呼び出す。PG005は、ベース期間0で必要な実行処理のうち、20msを実行済みの状態であるため、残り20msを実行し、ベース期間9の残り時間は10msとなる。
この時点で、全てのプログラムの呼び出しが完了したため、ベース期間9については余り時間10msを残して、プログラムの実行は終了する。
(その他の応用例)
プログラムの追加:
本例において、例えば、実行周期が200msであるPG006を追加したとする。
このとき、スケジューラは、PG006が追加された以降のベース期間において、実行周期が200msであるPG003と、実行周期が500msであるPG005の呼び出しの間に、PG006の呼び出しを挿入するだけで良い。
プログラムの削除:
本例において、例えば、PG003を削除したとする。
このとき、スケジューラは、PG003が削除された以降のベース期間において、PG003の呼び出しを行わないようにするだけでよい。
プログラムの実行周期の変更:
本例において、例えば、PG003の実行周期を200msから1secに変更したとする。
このとき、スケジューラは、PG003の実行周期が変更された以降のプログラムの呼び出し順序を以下のように変更するだけで良い。
変更前 PG001⇒PG002⇒PG003⇒PG004⇒PG005
変更後 PG001⇒PG002⇒PG004⇒PG005⇒PG003
なお、その他の種種の変形は、本発明の範囲に入ることに変わりはないことは言うまでもない。


Claims (2)

  1. 複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出部を備え、
    前記複数のプログラムのそれぞれの演算時間を、それぞれ前記単位時間を有する複数の連続するベース期間のそれぞれの中に、前記演算周期が短い順に割り当て、かつ、
    順次プログラムで使用可能な時間を指定して、プログラムを呼び出すスケジューラ部と、
    並びに、
    前記呼び出されたプログラムにおいて、渡されたベース期間の使用可能な時間を上限として、プログラムを実行した後、ベース期間の残り時間を計算して、残り時間をスケジューラに戻す演算部と、
    を備える情報処理装置。
  2. スケジューラ部が、
    複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出ステップと、
    前記複数のプログラムのそれぞれの演算時間を、それぞれ前記単位時間を有する複数の連続するベース期間のそれぞれの中に、前記演算周期が短い順に割り当てるステップと、
    順次プログラムで使用可能な時間を指定して、プログラムを呼び出すステップとを有し、
    演算部が、
    前記呼び出されたプログラムにおいて、渡されたベース期間の使用可能な時間を上限として、プログラムを実行するステップと、
    ベース期間の残り時間を計算して、残り時間をスケジューラに戻すステップと
    を有することを特徴とする情報処理装置におけるプログラム実行方法。
JP2012143027A 2012-06-26 2012-06-26 情報処理装置およびプログラム実行方法 Pending JP2014006788A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012143027A JP2014006788A (ja) 2012-06-26 2012-06-26 情報処理装置およびプログラム実行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012143027A JP2014006788A (ja) 2012-06-26 2012-06-26 情報処理装置およびプログラム実行方法

Publications (1)

Publication Number Publication Date
JP2014006788A true JP2014006788A (ja) 2014-01-16

Family

ID=50104427

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012143027A Pending JP2014006788A (ja) 2012-06-26 2012-06-26 情報処理装置およびプログラム実行方法

Country Status (1)

Country Link
JP (1) JP2014006788A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058601A (ja) * 2005-08-24 2007-03-08 Matsushita Electric Ind Co Ltd タスク実行装置および方法
JP2010160600A (ja) * 2009-01-07 2010-07-22 Yamatake Corp 情報処理装置、スケジューラ、及びスケジューリング方法
JP2011198346A (ja) * 2009-11-09 2011-10-06 Denso Corp スケジューリング方法,スケジューリングプログラム,スケジューリング装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058601A (ja) * 2005-08-24 2007-03-08 Matsushita Electric Ind Co Ltd タスク実行装置および方法
JP2010160600A (ja) * 2009-01-07 2010-07-22 Yamatake Corp 情報処理装置、スケジューラ、及びスケジューリング方法
JP2011198346A (ja) * 2009-11-09 2011-10-06 Denso Corp スケジューリング方法,スケジューリングプログラム,スケジューリング装置

Similar Documents

Publication Publication Date Title
US9477521B2 (en) Method and system for scheduling repetitive tasks in O(1)
KR20110103257A (ko) 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법
WO2019134304A1 (zh) 任务处理方法、装置、电子终端及可读存储介质
US8327366B2 (en) Data processing device, scheduling device, and scheduling method for program operation cycle allocation
JP2020009403A (ja) 産業用サーバのマイクロカーネルアーキテクチャの制御システム及び産業用サーバ
JP2008242510A (ja) ジョブへの資源割当方式、ジョブへの資源割当方法およびプログラム
JP2008171293A (ja) 仮想計算機システムのスケジューリング方法
Yip et al. Relaxing the synchronous approach for mixed-criticality systems
US20190347129A1 (en) User space pre-emptive real-time scheduler
KR20070090649A (ko) 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
JP5542700B2 (ja) Smtプロセッサにおけるプロセッサ使用率の算出方法
JP2007108944A (ja) 半導体集積回路装置
JP2015225396A (ja) 車両制御装置
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
US7225443B2 (en) Stack usage in computer-related operating systems
JP2011253334A (ja) 仮想計算機およびcpu割り当て方法
Casini et al. Addressing analysis and partitioning issues for the Waters 2019 challenge
JP6239400B2 (ja) 制御装置
US20170132030A1 (en) Virtual machine system, control method thereof, and control program recording medium thereof
US20100325635A1 (en) Method for correct-by-construction development of real-time-systems
JP2014006788A (ja) 情報処理装置およびプログラム実行方法
JP2015141584A (ja) 情報処理装置、情報処理方法およびプログラム
CN109426556B (zh) 一种进程调度方法和装置
Jin et al. Preemption-aware kernel scheduling for gpus
JP2020173622A (ja) 並列タスクスケジューリング方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150325

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151023

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160301