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

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

Info

Publication number
JP2010160600A
JP2010160600A JP2009001375A JP2009001375A JP2010160600A JP 2010160600 A JP2010160600 A JP 2010160600A JP 2009001375 A JP2009001375 A JP 2009001375A JP 2009001375 A JP2009001375 A JP 2009001375A JP 2010160600 A JP2010160600 A JP 2010160600A
Authority
JP
Japan
Prior art keywords
calculation
time
programs
unit
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
JP2009001375A
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 JP2009001375A priority Critical patent/JP2010160600A/ja
Priority to TW098141841A priority patent/TWI402752B/zh
Priority to US12/649,138 priority patent/US8327366B2/en
Priority to KR1020090132693A priority patent/KR101093286B1/ko
Priority to CN2010100030121A priority patent/CN101799769B/zh
Publication of JP2010160600A publication Critical patent/JP2010160600A/ja
Pending legal-status Critical Current

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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】それぞれ演算周期が異なる複数のプログラムの効率的な演算を可能にする情報処理装置を提供する。
【解決手段】単位時間算出部301により算出した複数プログラムのそれぞれの演算周期の最大公約数を単位時間としてプログラムを割り当てるベース期間を設定し、割り当て部305が複数プログラムの演算時間を連続するベース期間の中に演算周期が短い順に割り当て、かつ、一つのベース期間の中で演算が完了しないプログラムの残りの演算時間を、後のベース期間の中に演算周期が短い順に割り当てることにより、演算部400が複数のプログラムを効率よく演算することができる。
【選択図】図1

Description

本発明はコンピュータ技術に関し、情報処理装置、スケジューラ、及びスケジューリング方法に関する。
プロセス制御器及びPLC(Programmable Logic Controller)等のデジタル式コントローラは、離散的に制御処理を行う。そのため、デジタル式コントローラは、所定の演算周期で、制御処理を実現するプログラムの演算を繰り返している(例えば、特許文献1参照。)。近年、マイクロプロセッサの高集積化により、マイクロプロセッサの処理能力の高速化が進み、演算周期の短縮化も進んでいる。しかし、一方において、演算周期を短いものから長いものまで用意し、制御処理の用途に応じて、適切な演算周期を各プログラムに割り当てることも考案されている。
特開2002−351509号公報
それぞれ演算周期が異なる複数のプログラムは、従来、マルチタスク・オペレーティングシステム(OS)によって実行されていた。しかし、マルチタスクOSによる単純なタイムシェアでは、プログラムの厳密な演算周期を守ることを保証できない。さらに、複数のプログラムのそれぞれに優先順位を付する煩雑な手順が必要であった。また、マイクロプロセッサの処理能力を、予め演算周期が短いプログラムと、演算周期が長いプログラムに割り当てることも考案されていた。しかし、予め設定された処理能力の割り当てに、実際に演算されるプログラムの数が対応していない場合が生じうる。そのため、例えば演算周期が短いプログラムの数が多く、予め演算周期が短いプログラムの処理に割り当てられたマイクロプロセッサの処理能力が足りなくなる一方で、演算周期が長いプログラムの数が少なく、予め演算周期が長いプログラムの処理に割り当てられたマイクロプロセッサの処理能力は空いたままであるという事態が生じうる。その結果、マイクロプロセッサの処理能力に無駄が生じるという問題が生じうる。
そこで本発明は、それぞれ演算周期が異なる複数のプログラムの効率的な演算を可能にする情報処理装置、スケジューラ、及びスケジューリング方法を提供することを目的の一つとする。
本発明の態様は、複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出部と、複数のプログラムのそれぞれの演算時間を、それぞれ単位時間を有する複数の連続するベース期間のそれぞれの中に、演算周期が短い順に割り当て、かつ、複数のベース期間のうちの一のベース期間の中で演算が完了しないプログラムの残りの演算時間を、一のベース期間の後のベース期間の中に、演算周期が短い順に割り当てる割り当て部と、複数のベース期間の中にそれぞれ演算時間が割り当てられた複数のプログラムを演算する演算部と、を備える情報処理装置であることを要旨とする。本発明に係る情報処理装置によれば、複数のベース期間のそれぞれに、それぞれ演算周期の異なる複数のプログラムが、演算周期が短い順に割り当てられるため、複数のプログラムを効率的に演算することが可能となる。
本発明の他の態様は、複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出部と、複数のプログラムのそれぞれの演算時間を、それぞれ単位時間を有する複数の連続するベース期間のそれぞれの中に、演算周期が短い順に割り当て、かつ、複数のベース期間のうちの一のベース期間の中で演算が完了しないプログラムの残りの演算時間を、一のベース期間の後のベース期間の中に、演算周期が短い順に割り当てる割り当て部と、を備えるスケジューラであることを要旨とする。本発明に係るスケジューラによれば、複数のベース期間のそれぞれに、それぞれ演算周期の異なる複数のプログラムが、演算周期が短い順に割り当てられるため、複数のプログラムを効率的にスケジュールすることが可能となる。
本発明の他の態様は、複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出することと、複数のプログラムのそれぞれの演算時間を、それぞれ単位時間を有する複数の連続するベース期間のそれぞれの中に、演算周期が短い順に割り当て、かつ、複数のベース期間のうちの一のベース期間の中で演算が完了しないプログラムの残りの演算時間を、一のベース期間の後のベース期間の中に、演算周期が短い順に割り当てることと、を含むスケジューリング方法であることを要旨とする。本発明に係るスケジューリング方法によれば、複数のベース期間のそれぞれに、それぞれ演算周期の異なる複数のプログラムが、演算周期が短い順に割り当てられるため、複数のプログラムを効率的にスケジュールすることが可能となる。
本発明によれば、それぞれ演算周期が異なる複数のプログラムの効率的な演算を可能にする情報処理装置、スケジューラ、及びスケジューリング方法を提供可能である。
本発明の第1の実施の形態に係る情報処理装置の模式図である。 本発明の第1の実施の形態に係る演算時間の割り当て方法を示す第1の模式図である。 本発明の第1の実施の形態に係る演算時間の割り当て方法を示す第2の模式図である。 本発明の第1の実施の形態に係る演算時間の割り当て方法を示す第3の模式図である。 本発明の第1の実施の形態に係る演算時間の割り当て方法を示す第4の模式図である。 本発明の第1の実施の形態に係る演算時間の割り当て方法を示す第5の模式図である。 本発明の第1の実施の形態に係る演算時間の割り当て方法を示す第6の模式図である。 本発明の第1の実施の形態に係る演算時間の割り当て方法を示す第7の模式図である。 本発明の第1の実施の形態に係る演算時間の割り当て方法を示す第8の模式図である。 本発明の第1の実施の形態に係る演算時間の割り当て方法を示す第9の模式図である。 本発明の第1の実施の形態に係る演算時間の割り当て方法を示す第10の模式図である。 本発明の第2の実施の形態に係る情報処理装置の模式図である。 本発明の第2の実施の形態に係る演算時間の割り当て方法を示す第1の模式図である。 本発明の第2の実施の形態に係る演算時間の割り当て方法を示す第2の模式図である。 本発明の第2の実施の形態に係る演算時間の割り当て方法を示す第3の模式図である。 本発明の第2の実施の形態に係る演算時間の割り当て方法を示す第4の模式図である。 本発明の第2の実施の形態に係る演算時間の割り当て方法を示す第5の模式図である。
以下に本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号で表している。但し、図面は模式的なものである。したがって、具体的な寸法等は以下の説明を照らし合わせて判断するべきものである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
(第1の実施の形態)
第1の実施の形態に係る情報処理装置は、図1に示すように、スケジューラ300を備える。スケジューラ300は、複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出部301を備える。また、スケジューラ300は、複数のプログラムのそれぞれの演算時間を、それぞれ単位時間を有する複数の連続するベース期間のそれぞれの中に、演算周期がより短い順に割り当て、かつ、複数のベース期間のうちの一のベース期間の中で演算が完了しないプログラムの残りの演算時間を、一のベース期間の後のベース期間の中に、演算周期が短い順に割り当てる割り当て部305をさらに備える。また、情報処理装置は、複数のベース期間の中にそれぞれ演算時間が割り当てられた複数のプログラムを演算する演算部400を備える。
スケジューラ300と演算装置400は、電気信号を伝送するデータバス500で接続されている。さらに、データバス500には、それぞれ演算周期が異なる複数のプログラムを保存するプログラム記憶装置330が接続されている。複数のプログラムは、それぞれ、複数の機能ブロックを含む。ここでは、例として、プログラム記憶装置330が、第1乃至第4のプログラムを保存している場合を説明する。
第1のプログラムは、例えば、100ミリ秒の演算周期で演算される機能ブロックを25個含んでいる。第1の実施の形態において、演算装置400で1個の機能ブロックを演算するために必要な演算時間が2ミリ秒である場合、第1のプログラムを一回演算するために必要な演算時間は、50ミリ秒である。第2のプログラムは、例えば、200ミリ秒の演算周期で演算される機能ブロックを30個含んでいる。この場合、第2のプログラムを一回演算するために必要な演算時間は、60ミリ秒である。
第3のプログラムは、例えば、500ミリ秒の演算周期で演算される機能ブロックを25個含んでいる。この場合、第3のプログラムを一回演算するために必要な演算時間は、50ミリ秒である。第4のプログラムは、例えば、1000ミリ秒の演算周期で演算される機能ブロックを50個含んでいる。この場合、第4のプログラムを一回演算するために必要な演算時間は、100ミリ秒である。
単位時間算出部301は、データバス500を介して、プログラム記憶装置330から、第1乃至第4のプログラムのそれぞれの演算周期を読み出す。さらに単位時間算出部301は、第1乃至第4のプログラムのそれぞれの演算周期の最大公約数を、単位時間として算出する。ここでは、第1のプログラム、第2のプログラム、第3のプログラム、及び第4のプログラムの演算周期が、それぞれ、100ミリ秒、200ミリ秒、500ミリ秒、及び1000ミリ秒であるため、単位時間として算出される最大公約数は100ミリ秒である。なお、第1乃至第4のプログラムのそれぞれの演算周期の値が整数でない場合は、演算周期の値を整数で表記できるよう、例えば単位を換算すればよい。例えば、プログラム記憶装置330に、第1乃至第4のプログラムのそれぞれの演算周期が、0.1秒、0.2秒、0.5秒、及び1秒と保存されていた場合は、単位を秒からミリ秒に換算することにより、演算周期の値を整数で表記できる。
スケジューラ300は、完了時間算出部302及び演算回数算出部303をさらに備える。完了時間算出部302及び演算回数算出部303は、データバス500を介して、プログラム記憶装置330から、第1乃至第4のプログラムのそれぞれの演算周期を読み出す。さらに完了時間算出部302は、第1乃至第4のプログラムのそれぞれの演算周期の最小公倍数を、第1乃至第4のプログラムの総ての演算が少なくとも1回完了するために必要な完了時間として算出する。ここでは、完了時間として算出される、第1乃至第4のプログラムのそれぞれの演算周期の最小公倍数は、1000ミリ秒である。また、上述したように、第1乃至第4のプログラムのそれぞれの演算周期の値が整数でない場合は、演算周期の値を整数で表記できるよう、例えば単位を換算すればよい。
演算回数算出部303は、完了時間算出部302から、算出された完了時間を受信する。さらに演算回数算出部303は、受信した完了時間をプログラムの演算周期で割ることにより、完了時間までに、演算装置400がプログラムを演算する合計演算回数を算出する。ここで、完了時間が1000ミリ秒である場合、演算周期が100ミリ秒の第1のプログラムの合計演算回数は10回であり、演算周期が200ミリ秒の第2のプログラムの合計演算回数は5回である。また、演算周期が500ミリ秒の第3のプログラムの合計演算回数は2回であり、演算周期が1000ミリ秒の第4のプログラムの合計演算回数は1回である。
割り当て部305は、データバス500を介して、プログラム記憶装置330から、第1乃至第4のプログラムのそれぞれの演算周期及び1回あたりの演算時間を読み出す。また、割り当て部305は、単位時間算出部301から算出された単位時間を受信し、完了時間算出部302から算出された完了時間を受信し、演算回数算出部303から算出された合計演算回数を受信する。
さらに、割り当て部305は、完了時間を単位時間で割った数を、設定する複数のベース期間の数として算出する。完了時間が1000ミリ秒で、単位時間が100ミリ秒である場合、設定する複数のベース期間の数は、10である。ここで、割り当て部305は、第1乃至第4のプログラムのそれぞれの演算回数が、演算回数算出部303が算出した合計演算回数に達するまで、第1乃至第4プログラムのそれぞれの演算時間を、設定する一番目乃至十番目のベース期間のそれぞれの中に割り当てる。
まず、割り当て部305は、図2に示すように、単位時間算出部301が算出した100ミリ秒の単位時間を有する一番目のベース期間を設け、一番目のベース期間の中に、第1乃至第4のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることを試みる。第1のプログラムの演算周期が最も短いので、割り当て部305は、一番目のベース期間の先頭に、第1のプログラムの演算時間を割り当てる。また、割り当て部305は、演算回数算出部303が算出した第1のプログラムの合計演算回数から1を減じて、第1のプログラムの残りの演算回数を9とする。
第1のプログラムを一回演算するために必要な演算時間は50ミリ秒であるため、第1のプログラムの演算時間を割り当てた後、一番目のベース期間には、空き時間が50ミリ秒残る。そこで、割り当て部305は、一番目のベース期間内の第1のプログラムの演算時間の次に、第1のプログラムの次に演算周期が短い第2のプログラムの演算時間を割り当てることを試みる。しかし、第2のプログラムを一回演算するために必要な演算時間は、60ミリ秒である。そのため、割り当て部305は、一番目のベース期間の中に、第2のプログラムの60ミリ秒の演算時間のうち、最初の50ミリ秒の演算時間のみを割り当てる。また、割り当て部305は、一番目のベース期間内に割り当てることができなかった第2のプログラムの残りの10ミリ秒の演算時間を、後のベース期間の中に割り当てるべき演算時間として保持する。
一番目のベース期間への演算時間の割り当てが終了したので、図1に示す割り当て部305は、図3に示すように、二番目のベース期間を設け、二番目のベース期間の中に、第1乃至第4のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることを試みる。割り当て部305は、まず、二番目のベース期間の先頭に、第1のプログラムの演算時間を割り当てる。また、割り当て部305は、第1のプログラムの残りの演算回数を、1減少させ、8とする。
また、割り当て部305は、二番目のベース期間内の第1のプログラムの演算時間の次に、第2のプログラムの演算時間を割り当てることを試みる。ここで、一番目のベース期間内に割り当てることができなかった第2のプログラムの10ミリ秒の演算時間が、一番目のベース期間より後のベース期間の中に割り当てるべき演算時間として残されている。そのため、割り当て部305は、二番目のベース期間の中に、第2のプログラムの残されていた10ミリ秒の演算時間を割り当てる。これにより、第2のプログラムの1回目の演算が完了するので、割り当て部305は、演算回数算出部303が算出した第2のプログラムの合計演算回数から1を減じて、第2のプログラムの残りの演算回数を4とする。
第2のプログラムの演算時間を割り当てた後、二番目のベース期間には、空き時間が40ミリ秒残る。第2のプログラムの演算周期は200ミリ秒であるため、二番目のベース期間で演算が終了した場合、第2のプログラムの2回目の演算は、三番目のベース周期から開始しなくてはならない。そこで、割り当て部305は、二番目のベース期間内の第2のプログラムの演算時間の次に、第2のプログラムの次に演算周期が短い第3のプログラムの演算時間を割り当てることを試みる。しかし、第3のプログラムを一回演算するために必要な演算時間は、50ミリ秒である。そのため、割り当て部305は、二番目のベース期間の中に、第3のプログラムの50ミリ秒の演算時間のうち、最初の40ミリ秒の演算時間のみを割り当てる。また、割り当て部305は、二番目のベース期間内に割り当てることができなかった第3のプログラムの残りの10ミリ秒の演算時間を、後のベース期間の中に割り当てるべき演算時間として保持する。
二番目のベース期間への演算時間の割り当てが終了したので、図1に示す割り当て部305は、図4に示すように、三番目のベース期間を設け、三番目のベース期間の中に、第1乃至第4のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることを試みる。割り当て部305は、まず、三番目のベース期間の先頭に、第1のプログラムの演算時間を割り当てる。また、割り当て部305は、第1のプログラムの残りの演算回数を、さらに1減少させ、7とする。
また、割り当て部305は、三番目のベース期間内の第1のプログラムの演算時間の次に、第2のプログラムの60ミリ秒の演算時間のうち、50ミリ秒の演算時間を割り当てる。また、割り当て部305は、三番目のベース期間内に割り当てることができなかった第2のプログラムの残りの10ミリ秒の演算時間を、後のベース期間の中に割り当てるべき演算時間として保持する。
三番目のベース期間への演算時間の割り当てが終了したので、図1に示す割り当て部305は、図5に示すように、四番目のベース期間を設け、四番目のベース期間の中に、第1乃至第4のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることを試みる。割り当て部305は、まず、四番目のベース期間の先頭に、第1のプログラムの演算時間を割り当てる。また、割り当て部305は、第1のプログラムの残りの演算回数を、さらに1減少させ、6とする。
また、割り当て部305は、四番目のベース期間内の第1のプログラムの演算時間の次に、三番目のベース期間の中に割り当てることができなかった、第2のプログラムの残されていた10ミリ秒の演算時間を割り当てる。これにより、第2のプログラムの2回目の演算が完了するので、割り当て部305は、第2のプログラムの残りの演算回数を、さらに1減少させ、3とする。その後、四番目のベース期間には、空き時間が40ミリ秒残る。
そこで、割り当て部305は、四番目のベース期間内の第2のプログラムの演算時間の次に、二番目のベース期間の中に割り当てることができなかった、第3のプログラムの残されていた10ミリ秒の演算時間を割り当てる。これにより、第3のプログラムの1回目の演算が完了するので、割り当て部305は、演算回数算出部303が算出した第3のプログラムの合計演算回数から1を減じて、第3のプログラムの残りの演算回数を1とする。その後、四番目のベース期間には、空き時間が30ミリ秒残る。
そこで、割り当て部305は、四番目のベース期間内の第3のプログラムの演算時間の次に、第3のプログラムの次に演算周期が短い第4のプログラムの演算時間を割り当てることを試みる。しかし、第4のプログラムを一回演算するために必要な演算時間は、100ミリ秒である。そのため、割り当て部305は、四番目のベース期間の中に、第4のプログラムの100ミリ秒の演算時間のうち、最初の30ミリ秒の演算時間のみを割り当てる。また、割り当て部305は、四番目のベース期間内に割り当てることができなかった第4のプログラムの残りの70ミリ秒の演算時間を、後のベース期間の中に割り当てるべき演算時間として保持する。
四番目のベース期間への演算時間の割り当てが終了したので、図1に示す割り当て部305は、図6に示すように、五番目のベース期間を設け、五番目のベース期間の中に、第1乃至第4のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることを試みる。割り当て部305は、まず、五番目のベース期間の先頭に、第1のプログラムの演算時間を割り当てる。また、割り当て部305は、第1のプログラムの残りの演算回数を、さらに1減少させ、5とする。
また、割り当て部305は、五番目のベース期間内の第1のプログラムの演算時間の次に、第2のプログラムの60ミリ秒の演算時間のうち、50ミリ秒の演算時間を割り当てる。また、割り当て部305は、五番目のベース期間内に割り当てることができなかった第2のプログラムの残りの10ミリ秒の演算時間を、後のベース期間の中に割り当てるべき演算時間として保持する。
五番目のベース期間への演算時間の割り当てが終了したので、図1に示す割り当て部305は、図7に示すように、六番目のベース期間を設け、六番目のベース期間の中に、第1乃至第4のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることを試みる。割り当て部305は、まず、六番目のベース期間の先頭に、第1のプログラムの演算時間を割り当てる。また、割り当て部305は、第1のプログラムの残りの演算回数を、さらに1減少させ、4とする。
また、割り当て部305は、六番目のベース期間内の第1のプログラムの演算時間の次に、五番目のベース期間の中に割り当てることができなかった、第2のプログラムの残されていた10ミリ秒の演算時間を割り当てる。これにより、第2のプログラムの3回目の演算が完了するので、割り当て部305は、第2のプログラムの残りの演算回数を、さらに1減少させ、2とする。また、割り当て部305は、六番目のベース期間内の第2のプログラムの演算時間の次に、第3のプログラムの50ミリ秒の演算時間のうち、40ミリ秒の演算時間を割り当てる。さらに、割り当て部305は、六番目のベース期間内に割り当てることができなかった第3のプログラムの残りの10ミリ秒の演算時間を、後のベース期間の中に割り当てるべき演算時間として保持する。
六番目のベース期間への演算時間の割り当てが終了したので、図1に示す割り当て部305は、図8に示すように、七番目のベース期間を設け、七番目のベース期間の中に、第1乃至第4のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることを試みる。割り当て部305は、まず、七番目のベース期間の先頭に、第1のプログラムの演算時間を割り当てる。また、割り当て部305は、第1のプログラムの残りの演算回数を、さらに1減少させ、3とする。
また、割り当て部305は、七番目のベース期間内の第1のプログラムの演算時間の次に、第2のプログラムの60ミリ秒の演算時間のうち、50ミリ秒の演算時間を割り当てる。また、割り当て部305は、七番目のベース期間内に割り当てることができなかった第2のプログラムの残りの10ミリ秒の演算時間を、後のベース期間の中に割り当てるべき演算時間として保持する。
七番目のベース期間への演算時間の割り当てが終了したので、図1に示す割り当て部305は、図9に示すように、八番目のベース期間を設け、八番目のベース期間の中に、第1乃至第4のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることを試みる。割り当て部305は、まず、八番目のベース期間の先頭に、第1のプログラムの演算時間を割り当てる。また、割り当て部305は、第1のプログラムの残りの演算回数を、さらに1減少させ、2とする。
また、割り当て部305は、八番目のベース期間内の第1のプログラムの演算時間の次に、七番目のベース期間の中に割り当てることができなかった、第2のプログラムの残されていた10ミリ秒の演算時間を割り当てる。これにより、第2のプログラムの4回目の演算が完了するので、割り当て部305は、第2のプログラムの残りの演算回数を、さらに1減少させ、1とする。
また、割り当て部305は、八番目のベース期間内の第2のプログラムの演算時間の次に、六番目のベース期間の中に割り当てることができなかった、第3のプログラムの残されていた10ミリ秒の演算時間を割り当てる。これにより、第3のプログラムの2回目の演算が完了するので、割り当て部305は、第3のプログラムの残りの演算回数を、さらに1減少させ、0とする。その後、八番目のベース期間には、空き時間が30ミリ秒残る。
そこで、割り当て部305は、八番目のベース期間内の第3のプログラムの演算時間の次に、4番目のベース期間の中に割り当てることのできなかった、第4のプログラムの残されていた70ミリ秒の演算時間を割り当てることを試みる。しかし、八番目のベース期間には、空き時間が30ミリ秒しか残っていないので、割り当て部202は、第4のプログラムの残されていた70ミリ秒の演算時間のうち、最初の30ミリ秒の演算時間のみを割り当てる。また、割り当て部305は、八番目のベース期間内に割り当てることができなかった第4のプログラムの残りの40ミリ秒の演算時間を、後のベース期間の中に割り当てるべき演算時間として、なお保持する。
八番目のベース期間への演算時間の割り当てが終了したので、図1に示す割り当て部305は、図10に示すように、九番目のベース期間を設け、九番目のベース期間の中に、残りの演算回数が0となっていない第1、第2、及び第4のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることを試みる。割り当て部305は、まず、九番目のベース期間の先頭に、第1のプログラムの演算時間を割り当てる。また、割り当て部305は、第1のプログラムの残りの演算回数を、さらに1減少させ、1とする。
また、割り当て部305は、九番目のベース期間内の第1のプログラムの演算時間の次に、第2のプログラムの60ミリ秒の演算時間のうち、50ミリ秒の演算時間を割り当てる。また、割り当て部305は、九番目のベース期間内に割り当てることができなかった第2のプログラムの残りの10ミリ秒の演算時間を、後のベース期間の中に割り当てるべき演算時間として保持する。
九番目のベース期間への演算時間の割り当てが終了したので、図1に示す割り当て部305は、図11に示すように、十番目のベース期間を設け、十番目のベース期間の中に、残りの演算回数が0となっていない第1、第2、及び第4のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることを試みる。割り当て部305は、まず、十番目のベース期間の先頭に、第1のプログラムの演算時間を割り当てる。また、割り当て部305は、第1のプログラムの残りの演算回数を、さらに1減少させ、0とする。
また、割り当て部305は、十番目のベース期間内の第1のプログラムの演算時間の次に、九番目のベース期間の中に割り当てることができなかった、第2のプログラムの残されていた10ミリ秒の演算時間を割り当てる。これにより、第2のプログラムの5回目の演算が完了するので、割り当て部305は、第2のプログラムの残りの演算回数を、さらに1減少させ、0とする。
第2のプログラムの次に演算周期が短い第3のプログラムの残りの演算回数は、既に0となっている。そのため、割り当て部305は、十番目のベース期間の中に第3のプログラムの演算時間の割り当てを行わない。そして、割り当て部305は、十番目のベース期間内の第2のプログラムの演算時間の次に、八番目のベース期間の中に割り当てることができなかった、第4のプログラムの残されていた40ミリ秒の演算時間を割り当てる。これにより、第4のプログラムの1回目の演算が完了するので、割り当て部305は、演算回数算出部303が算出した第4のプログラムの合計演算回数から1を減じて、第4のプログラムの残りの演算回数を0とする。
十番目のベース期間への演算時間の割り当てが終了した時点で、図1に示す完了時間算出部302が算出した完了時間に達する。また、演算回数算出部303が算出した、完了時間までに、演算装置400が第1乃至第4のプログラムのそれぞれを演算する合計演算回数が達せされる。そのため、割り当て部305は、第1乃至第4のプログラムのそれぞれの演算時間の割り当てスケジュールの作成を終了する。
演算装置400は、スケジューラ300から、割り当て部305が作成した図11に示す第1乃至第4のプログラムのそれぞれの演算時間の割り当てスケジュールを受信する。また、図1に示す演算装置400は、プログラム記憶装置330から、第1乃至第4のプログラムを読み出す。さらに演算装置400は、受信した図11に示す割り当てスケジュールに従って、第1乃至第4のプログラムを演算する。また、十番目のベース期間における演算が終了した後は、一番目のベース期間に戻り、第1乃至第4のプログラムの演算を繰り返す。なお、図1に示す演算装置400は、必ずしも、図11に示す割り当てスケジュールの完成を待って第1乃至第4のプログラムを演算しなくともよい。例えば、演算装置400は、スケジューラ300による割り当てスケジュールの作成と並行して、一番目のベース期間の先頭に割り当てられたプログラムから演算を実行してもよい。
図1に示すデータバス500には、一時記憶装置331、入力装置312、及び出力装置313がさらに接続されている。一時記憶装置331には、スケジューラ300及び演算装置400により処理結果が逐次保存される。入力装置312には、プログラム記憶装置330に保存されるプログラム等が入力される。出力装置313は、スケジューラ300が作成したプログラムの割り当てスケジュール、及び演算装置400が演算したプログラムの演算結果等が出力される。
以上説明した第1の実施の形態に係る情報処理装置によれば、複数のプログラムの演算時間を、それぞれの演算周期に従いつつ、効率的にスケジューリングすることが可能となる。さらに、第1の実施の形態に係る情報処理装置によれば、各ベース期間にプログラムの演算時間を連続的に割り付けるため、演算装置400の処理能力の無駄を省くことも可能となる。
(第2の実施の形態)
第2の実施の形態に係る、図12に示す情報処理装置のプログラム記憶装置330には、第1の実施の形態と同じ第1乃至第3のプログラムが保存されている。また、第2の実施の形態に係るプログラム記憶装置330には、第4のプログラムの代わりに、例えば1000ミリ秒の演算周期で演算される機能ブロックを30個含む、第5のプログラムが保存されている。演算装置400で1個の機能ブロックを演算するために必要な演算時間が2ミリ秒である場合、第5のプログラムを一回演算するために必要な演算時間は、60ミリ秒である。
さらに、第2の実施の形態に係るプログラム記憶装置330には、他のプログラムの演算を開始した後、例えば300ミリ秒から400ミリ秒の間のタイミングに演算されるよう、ユーザにより指定された第1のタイミング指定プログラムが保存されている。第1のタイミング指定プログラムは、例えば、機能ブロックを5個含む。この場合、第1のタイミング指定プログラムを一回演算するために必要な演算時間は、10ミリ秒である。
また、第2の実施の形態に係るプログラム記憶装置330には、他のプログラムの演算を開始した後、例えば800ミリ秒から900ミリ秒の間のタイミングに演算されるよう、ユーザにより指定された第2のタイミング指定プログラムが保存されている。第2のタイミング指定プログラムは、例えば、機能ブロックを15個含む。この場合、第2のタイミング指定プログラムを一回演算するために必要な演算時間は、30ミリ秒である。
単位時間算出部301は、第1の実施の形態と同様に、第1乃至第3のプログラム、及び第5のプログラムのそれぞれの演算周期の最大公約数を、単位時間として算出する。ここで、単位時間として算出される最大公約数は、100ミリ秒である。また、演算回数算出部303は、第1乃至第3のプログラム、及び第5のプログラムのそれぞれの演算周期の最小公倍数を、第1乃至第3のプログラム、及び第5のプログラムの総ての演算が少なくとも1回完了するために必要な完了時間として算出する。ここで、完了時間として算出される最小公倍数は、1000ミリ秒である。
演算回数算出部303は、完了時間までに、演算装置400が第1乃至第3のプログラム、及び第5のプログラムのそれぞれを演算する合計演算回数を算出する。ここで、第1のプログラムの合計演算回数は10回であり、第2のプログラムの合計演算回数は5回であり、第3のプログラムの合計演算回数は2回であり、第5のプログラムの合計演算回数は1回である。
第2の実施の形態に係るスケジューラ304は、優先割り当て部304をさらに備える。優先割り当て部304は、単位時間算出部301及び完了時間算出部302から、単位時間及び完了時間をそれぞれ受信する。さらに、優先割り当て部304は、完了時間を単位時間で割った数を、複数のベース期間の数として算出する。ここで、完了時間を単位時間で割った数は10であるので、優先割り当て部304は、図13に示すように、一番目乃至十番目のベース期間を設定する。また、図12に示す優先割り当て部304は、プログラム記憶装置から、第1及び第2のタイミング指定プログラムの指定された演算タイミングと、演算時間を読み出す。
次に、優先割り当て部304は、図13に示す一番目乃至十番目のベース期間の中に、第1乃至第3のプログラム、及び第5のプログラムの演算時間を割り当てる前に、第1及び第2のタイミング指定プログラムの演算時間を割り当てる。ここで、第1のタイミング指定プログラムは、300ミリ秒から400ミリ秒の間のタイミングに演算されるよう指定されている。そのため、優先割り当て部304は、四番目のベース期間の先頭に、第1のタイミング指定プログラムの10ミリ秒の演算時間を割り当てる。また、第2のタイミング指定プログラムは、800ミリ秒から900ミリ秒の間のタイミングに演算されるよう指定されている。そのため、優先割り当て部304は、九番目のベース期間の先頭に、第2のタイミング指定プログラムの30ミリ秒の演算時間を割り当る。
第2の実施の形態において、図12に示す割り当て部305は、優先割り当て部304が、一番目乃至十番目のベース期間の中に、第1及び第2のタイミング指定プログラムのそれぞれの演算時間を割り当てた後、一番目乃至十番目のベース期間の中に、第1乃至第3のプログラム、及び第5のプログラムのそれぞれの演算時間を割り当てる。具体的には、割り当て部305は、図14に示すように、まず一番目乃至三番目のベース期間の中に、第1の実施の形態と同様に、第1乃至第3のプログラムの演算時間を割り当てる。
また、四番目のベース期間の最初の10ミリ秒には、既に第1のタイミング指定プログラムの演算時間が割り当てられているため、割り当て部305は、四番目のベース期間内の第1のタイミング指定プログラムの演算時間の次に、第1乃至第3のプログラム、及び第5のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることを試みる。そこで、割り当て部305は、第1のタイミング指定プログラムの演算時間の次に、まず、第1のプログラムの演算時間を割り当てる。
また、割り当て部305は、四番目のベース期間内の第1のプログラムの演算時間の次に、三番目のベース期間の中に割り当てることができなかった、第2のプログラムの残されていた10ミリ秒の演算時間を割り当てる。また、割り当て部305は、四番目のベース期間内の第2のプログラムの演算時間の次に、二番目のベース期間の中に割り当てることができなかった、第3のプログラムの残されていた10ミリ秒の演算時間を割り当てる。その後、四番目のベース期間には、空き時間が20ミリ秒残る。
そこで、割り当て部305は、四番目のベース期間内の第3のプログラムの演算時間の次に、第3のプログラムの次に演算周期が短い第5のプログラムの演算時間を割り当てることを試みる。しかし、第5のプログラムを一回演算するために必要な演算時間は、60ミリ秒である。そのため、割り当て部305は、四番目のベース期間の中に、第5のプログラムの60ミリ秒の演算時間のうち、最初の20ミリ秒の演算時間のみを割り当てる。また、図12に示す割り当て部305は、四番目のベース期間内に割り当てることができなかった第5のプログラムの残りの40ミリ秒の演算時間を、後のベース期間の中に割り当てるべき演算時間として保持する。
その後、割り当て部305は、図15に示すように、五番目乃至七番目のベース期間の中に、第1の実施の形態と同様に、第1乃至第3のプログラムの演算時間を割り当てる。次に、割り当て部305は、八番目のベース期間の中に、第1の実施の形態と同様に、まず、第1乃至第3のプログラムの演算時間を割り当てる。その後、八番目のベース期間には、空き時間が30ミリ秒残る。
そこで、割り当て部305は、八番目のベース期間内の第3のプログラムの演算時間の次に、4番目のベース期間の中に割り当てることのできなかった、第5のプログラムの残されていた40ミリ秒の演算時間を割り当てることを試みる。しかし、八番目のベース期間には、空き時間が30ミリ秒しか残っていないので、割り当て部202は、第5のプログラムの残されていた40ミリ秒の演算時間のうち、最初の30ミリ秒の演算時間のみを割り当てる。また、図12に示す割り当て部305は、八番目のベース期間内に割り当てることができなかった第5のプログラムの残りの10ミリ秒の演算時間を、後のベース期間の中に割り当てるべき演算時間として、なお保持する。
次に、図16に示すように、九番目のベース期間の最初の30ミリ秒には、既に第2のタイミング指定プログラムの演算時間が割り当てられている。そのため、割り当て部305は、九番目のベース期間内の第2のタイミング指定プログラムの演算時間の次に、第1乃至第3のプログラム、及び第5のプログラムのそれぞれの演算時間を、演算周期が短い順に割り当てることを試みる。そこで、割り当て部305は、第2のタイミング指定プログラムの演算時間の次に、まず、第1のプログラムの演算時間を割り当てる。
また、割り当て部305は、九番目のベース期間内の第1のプログラムの演算時間の次に、第2のプログラムの60ミリ秒の演算時間のうち、20ミリ秒の演算時間を割り当てる。そして、図12に示す割り当て部305は、九番目のベース期間内に割り当てることができなかった第2のプログラムの残りの40ミリ秒の演算時間を、後のベース期間の中に割り当てるべき演算時間として保持する。
次に、割り当て部305は、十番目のベース期間の中に、まず、第1のプログラムの演算時間を割り当て、第1のプログラムの演算時間の次に、九番目のベース期間の中に割り当てることができなかった、第2のプログラムの残されていた40ミリ秒の演算時間を割り当てる。また、割り当て部305は、十番目のベース期間内の第2のプログラムの演算時間の次に、八番目のベース期間の中に割り当てることができなかった、第5のプログラムの残されていた10ミリ秒の演算時間を割り当て、演算時間の割り当てスケジュールの作成を終了する。
第2の実施の形態に係る情報処理装置のその他の構成要素は、第1の実施の形態と同様であるので、説明は省略する。プログラムの演算時間の割り当ては、自動的に行われることが好ましいものの、一部のプログラムについては、演算時間を割り当てるタイミングをユーザが指定したい場合も生じうる。これに対し、第2の実施の形態に係る情報処理装置によれば、タイミング指定プログラムについては、ユーザの指定どおりに演算時間を割り当て、その他のプログラムについては、自動的に、効率的な演算時間の割り当てを実施することが可能となる。
(その他の実施の形態)
上記のように本発明を実施の形態によって記載したが、この開示の一部をなす記述及び図面はこの発明を限定するものであると理解するべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかになるはずである。例えば、図1に示すプログラム記憶装置330に新たなプログラムが追加されたり、保存されていたプログラムの演算周期が変更されたり、保存されていたプログラムが削除されたりした場合、スケジューラ300が自動的に、プログラムの演算時間の割り当てを再スケジューリングしてもよい。また、実施の形態に示した演算周期及び演算時間等はあくまで例示的なものである。例えば、プログラム記憶装置330に、100ミリ秒の演算周期で演算されるプログラムと、250ミリ秒の演算周期で演算されるプログラムが保存されている場合、単位時間は50ミリ秒であり、完了時間は500ミリ秒である。この様に、本発明はここでは記載していない様々な実施の形態等を包含するということを理解すべきである。したがって、本発明はこの開示から妥当な特許請求の範囲の発明特定事項によってのみ限定されるものである。
300・・・スケジューラ
301・・・単位時間算出部
302・・・完了時間算出部
303・・・演算回数算出部
304・・・優先割り当て部
305・・・割り当て部
312・・・入力装置
313・・・出力装置
330・・・プログラム記憶装置
331・・・一時記憶装置
400・・・演算装置
500・・・データバス

Claims (13)

  1. 複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出部と、
    前記複数のプログラムのそれぞれの演算時間を、それぞれ前記単位時間を有する複数の連続するベース期間のそれぞれの中に、前記演算周期が短い順に割り当て、かつ、前記複数のベース期間のうちの一のベース期間の中で演算が完了しないプログラムの残りの演算時間を、前記一のベース期間の後のベース期間の中に、前記演算周期が短い順に割り当てる割り当て部と、
    前記複数のベース期間の中にそれぞれ前記演算時間が割り当てられた前記複数のプログラムを演算する演算部と、
    を備える情報処理装置。
  2. 複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出する単位時間算出部と、
    前記複数のプログラムのそれぞれの演算時間を、それぞれ前記単位時間を有する複数の連続するベース期間のそれぞれの中に、前記演算周期が短い順に割り当て、かつ、前記複数のベース期間のうちの一のベース期間の中で演算が完了しないプログラムの残りの演算時間を、前記一のベース期間の後のベース期間の中に、前記演算周期が短い順に割り当てる割り当て部と、
    を備えるスケジューラ。
  3. 前記複数のプログラムのそれぞれの演算周期の最小公倍数を、前記複数のプログラムの総ての演算が少なくとも1回完了するために必要な完了時間として算出する、完了時間算出部を更に備える、請求項2に記載のスケジューラ。
  4. 前記複数の連続するベース期間の合計時間が、前記完了時間である、請求項3に記載のスケジューラ。
  5. 前記完了時間を、前記複数のプログラムのそれぞれの演算周期で割ることにより、前記完了時間までに、前記複数のプログラムのそれぞれが演算される合計演算回数を算出する、演算回数算出部を更に備える、請求項3又は4に記載のスケジューラ。
  6. 前記割り当て部が、前記複数のプログラムのそれぞれの演算回数が前記合計演算回数に達するまで、前記複数のプログラムのそれぞれの演算時間を、前記複数のベース期間の中に割り当てる、請求項5に記載のスケジューラ。
  7. 前記割り当て部が、前記複数のプログラムのそれぞれの演算時間を、前記複数のベース期間のそれぞれの中に割り当てる前に、演算するタイミングが指定されたタイミング指定プログラムを、前記複数のベース期間の少なくとも一つの中に割り当てる、優先割り当て部を更に備える、請求項2乃至6のいずれか1項に記載のスケジューラ。
  8. 複数のプログラムのそれぞれの演算周期の最大公約数を単位時間として算出することと、
    前記複数のプログラムのそれぞれの演算時間を、それぞれ前記単位時間を有する複数の連続するベース期間のそれぞれの中に、前記演算周期が短い順に割り当て、かつ、前記複数のベース期間のうちの一のベース期間の中で演算が完了しないプログラムの残りの演算時間を、前記一のベース期間の後のベース期間の中に、前記演算周期が短い順に割り当てることと、
    を含むスケジューリング方法。
  9. 前記複数のプログラムのそれぞれの演算周期の最小公倍数を、前記複数のプログラムの総ての演算が少なくとも1回完了するために必要な完了時間として算出することを更に含む、請求項8に記載のスケジューリング方法。
  10. 前記複数の連続するベース期間の合計時間が、前記完了時間である、請求項9に記載のスケジューリング方法。
  11. 前記完了時間を、前記複数のプログラムのそれぞれの演算周期で割ることにより、前記完了時間までに、前記複数のプログラムのそれぞれが演算される合計演算回数を算出することを更に含む、請求項9又は10に記載のスケジューリング方法。
  12. 前記割り当てることにおいて、前記複数のプログラムのそれぞれの演算回数が前記合計演算回数に達するまで、前記複数のプログラムのそれぞれの演算時間を、前記複数のベース期間の中に割り当てる、請求項11に記載のスケジューリング方法。
  13. 前記複数のプログラムのそれぞれの演算時間を、前記複数のベース期間のそれぞれの中に割り当てる前に、演算するタイミングが指定されたタイミング指定プログラムを、前記複数のベース期間の少なくとも一つの中に割り当てることを更に含む、請求項8乃至12のいずれか1項に記載のスケジューリング方法。
JP2009001375A 2009-01-07 2009-01-07 情報処理装置、スケジューラ、及びスケジューリング方法 Pending JP2010160600A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2009001375A JP2010160600A (ja) 2009-01-07 2009-01-07 情報処理装置、スケジューラ、及びスケジューリング方法
TW098141841A TWI402752B (zh) 2009-01-07 2009-12-08 Information processing device, scheduler, and scheduling method
US12/649,138 US8327366B2 (en) 2009-01-07 2009-12-29 Data processing device, scheduling device, and scheduling method for program operation cycle allocation
KR1020090132693A KR101093286B1 (ko) 2009-01-07 2009-12-29 정보 처리 장치, 스케쥴러 및 스케쥴링 방법
CN2010100030121A CN101799769B (zh) 2009-01-07 2010-01-06 信息处理装置、调度器及调度方法

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=42312563

Family Applications (1)

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

Country Status (5)

Country Link
US (1) US8327366B2 (ja)
JP (1) JP2010160600A (ja)
KR (1) KR101093286B1 (ja)
CN (1) CN101799769B (ja)
TW (1) TWI402752B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014006788A (ja) * 2012-06-26 2014-01-16 Azbil Corp 情報処理装置およびプログラム実行方法
JP2014206830A (ja) * 2013-04-11 2014-10-30 富士電機株式会社 プログラマブルコントローラの支援装置、そのプログラム、プログラマブルコントローラシステム
JP2017138814A (ja) * 2016-02-04 2017-08-10 富士電機株式会社 制御システム、および制御装置
JP2021179722A (ja) * 2020-05-12 2021-11-18 株式会社デンソー 電子制御装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009055752A1 (de) * 2009-11-25 2011-05-26 Robert Bosch Gmbh Verfahren zum Ermöglichen einer sequentiellen, nicht blockierenden Abarbeitung von Anweisungen in nebenläufigen Tasks in einer Steuereinrichtung
KR101880452B1 (ko) * 2012-02-06 2018-08-17 삼성전자주식회사 커널 수행 순서 스케줄링 방법 및 장치
JP2014142823A (ja) * 2013-01-24 2014-08-07 Azbil Corp データ作成装置および方法
CN105049173B (zh) * 2015-08-27 2017-12-22 南京南瑞继保电气有限公司 异步装置的同步方法
TWI584667B (zh) 2015-11-27 2017-05-21 財團法人工業技術研究院 多請求的排程方法及排程裝置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02159603A (ja) 1988-12-14 1990-06-19 Japan Tobacco Inc ループ制御装置
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 分散制御システム用シミュレータ

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1050808B1 (en) * 1999-05-03 2008-04-30 STMicroelectronics S.A. Computer instruction scheduling
US7165252B1 (en) * 1999-06-21 2007-01-16 Jia Xu Method of scheduling executions of processes with various types of timing properties and constraints
US7143401B2 (en) * 2000-02-17 2006-11-28 Elbrus International Single-chip multiprocessor with cycle-precise program scheduling of parallel execution
US20020103847A1 (en) * 2001-02-01 2002-08-01 Hanan Potash Efficient mechanism for inter-thread communication within a multi-threaded computer system
JP2002351509A (ja) 2001-05-25 2002-12-06 Mitsubishi Electric Corp プログラミングツール及びプログラミング方法
US7475222B2 (en) * 2004-04-07 2009-01-06 Sandbridge Technologies, Inc. Multi-threaded processor having compound instruction and operation formats
JP2006099332A (ja) * 2004-09-29 2006-04-13 Sony Corp 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP4074296B2 (ja) * 2005-03-25 2008-04-09 株式会社東芝 スケジューリング可能性判定方法、リアルタイムシステム及びプログラム
US8438572B2 (en) * 2006-03-15 2013-05-07 Freescale Semiconductor, Inc. Task scheduling method and apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02159603A (ja) 1988-12-14 1990-06-19 Japan Tobacco Inc ループ制御装置
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014006788A (ja) * 2012-06-26 2014-01-16 Azbil Corp 情報処理装置およびプログラム実行方法
JP2014206830A (ja) * 2013-04-11 2014-10-30 富士電機株式会社 プログラマブルコントローラの支援装置、そのプログラム、プログラマブルコントローラシステム
JP2017138814A (ja) * 2016-02-04 2017-08-10 富士電機株式会社 制御システム、および制御装置
JP2021179722A (ja) * 2020-05-12 2021-11-18 株式会社デンソー 電子制御装置
JP7331774B2 (ja) 2020-05-12 2023-08-23 株式会社デンソー 電子制御装置

Also Published As

Publication number Publication date
CN101799769A (zh) 2010-08-11
CN101799769B (zh) 2013-10-02
KR101093286B1 (ko) 2011-12-14
KR20100081928A (ko) 2010-07-15
US20100175069A1 (en) 2010-07-08
US8327366B2 (en) 2012-12-04
TW201032135A (en) 2010-09-01
TWI402752B (zh) 2013-07-21

Similar Documents

Publication Publication Date Title
JP2010160600A (ja) 情報処理装置、スケジューラ、及びスケジューリング方法
JP6799947B2 (ja) スライディングタイムウィンドウを用いてタスクをスケジュール設定するためのシステムおよび方法
US8621473B2 (en) Constrained rate monotonic analysis and scheduling
CN103729246A (zh) 一种任务调度方法和装置
CN104765640B (zh) 一种智能服务调度方法
EP2839370B1 (en) Time slack pipeline balancing for multicore programmable logic controllers (plc)
US10579036B2 (en) Apparatus for program management of programmable logic controller
CN102667648A (zh) 并行程控
JP2005044326A (ja) 改善されたedfスケジューリング方法
CN103778016A (zh) 多线程处理器
CN110866687A (zh) 任务分配方法及装置
US10452425B2 (en) Apparatus and method for processing a plurality of tasks
JP6464982B2 (ja) 並列化方法、並列化ツール、車載装置
US20090293060A1 (en) Method for job scheduling with prediction of upcoming job combinations
JP7267819B2 (ja) 並列タスクスケジューリング方法
KR101335038B1 (ko) 위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘
JP2010160599A (ja) スケジューラ、情報処理装置およびスケジューリング方法
JP2006099579A (ja) 情報処理装置及び情報処理方法
JPWO2020035975A1 (ja) 数値制御装置
JP2018116389A (ja) 処理装置
JP5686477B2 (ja) スケジュール作成方法及びスケジュール作成プログラム、並びにスケジュール作成装置
JP2007072598A (ja) バス調停方法及びバス調停プログラム
CN111240829A (zh) 一种基于时间片的多核任务调度方法、装置、存储介质及电子设备
JP2006048088A5 (ja)
Tang et al. Dynamic binding and scheduling of firm-deadline tasks on heterogeneous compute resources

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

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130502

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131009

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141126