JP2007305029A - リアルタイムosにおける処理時間配分方法 - Google Patents

リアルタイムosにおける処理時間配分方法 Download PDF

Info

Publication number
JP2007305029A
JP2007305029A JP2006134915A JP2006134915A JP2007305029A JP 2007305029 A JP2007305029 A JP 2007305029A JP 2006134915 A JP2006134915 A JP 2006134915A JP 2006134915 A JP2006134915 A JP 2006134915A JP 2007305029 A JP2007305029 A JP 2007305029A
Authority
JP
Japan
Prior art keywords
processing
time
group
value
processable
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.)
Granted
Application number
JP2006134915A
Other languages
English (en)
Other versions
JP4707603B2 (ja
Inventor
Keita Kobayashi
圭太 小林
Yusuke Ito
祐介 伊藤
Naoya Ichinose
直也 一ノ瀬
Yoko Matsushima
陽子 松島
Ryoko Morita
良子 森田
Toshio Sasaoka
俊男 笹岡
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006134915A priority Critical patent/JP4707603B2/ja
Priority to US11/798,368 priority patent/US20080004782A1/en
Publication of JP2007305029A publication Critical patent/JP2007305029A/ja
Application granted granted Critical
Publication of JP4707603B2 publication Critical patent/JP4707603B2/ja
Expired - Fee Related 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】処理完了までの時間制約がある第1の処理グループAと処理完了までの時間制約がない第2の処理グループBを含んだリアルタイムOSにおいて、第1の処理グループAを制約時間内に処理することを保証しながら、第2の処理グループBを効率良く処理する方法を提供する。
【解決手段】処理完了までの時間制約がある第1の処理グループAと処理完了までの時間制約のない第2の処理グループBのそれぞれの処理開始から処理完了までの処理時間を算出する手段と、第1の処理グループAの制約時間Arと処理完了までの処理時間との差分時間を算出する手段と、差分時間から処理完了までの時間制約がない第2の処理グループBの処理可能値Bvを算出する手段を有し、処理可能値の値によって第2の処理グループBを実行可能状態とするか実行不可能状態とするかを判定し、システム状態変更を行う。
【選択図】図7

Description

本発明は、リアルタイムOSにおける処理時間配分方法にかかわり、特には、処理完了までの時間制約がある第1の処理グループと処理完了までの時間制約がない第2の処理グループとを含んだリアルタイムOSの場合に、システム全体の処理効率を改善するための技術に関する。
組み込みシステムとは、いろいろな機械や機器に組み込まれてその制御を行うコンピュータシステムのことであり、最近は適用分野が急速に広がっている。また、技術の進歩に合わせてソフトウェアの大規模化・複雑化が進んでおり、リアルタイムOSを用いることが不可欠となっている。リアルタイムOSの重要な指標として、リアルタイム性の保証が重要なテーマの一つとなる。
一般的にリアルタイム性とは、一定時間内にある処理を完了しなければならないという制約を満たすことを保証することである。リアルタイム性が求められる処理には、開始された処理が予測可能な時間内に終了することが要件となる。この時間のことを特に制約時間(デッドライン)といい、リアルタイムOSにおいては重要な指標である。
図8は、あるリアルタイムシステムにおける処理の一例を示す。図8のシステムは、タスクT1、タスクT2からなる、処理完了までの時間制約がある第1の処理グループAと、割込みI1からなる、処理完了までの時間制約がない第2の処理グループBが、リアルタイムOS上で処理されるシステムである。
このシステムにおいては、従来、時間制約がない第2の処理グループBの優先度を下げることにより、時間制約がある第1の処理グループAのリアルタイム性を保証していた。しかしこの場合、CPUが有効な処理を行っていないアイドルタスクの実行時間が多く発生してしまい、処理効率が悪いという課題があった。図8において、第2の処理グループBは、第1の処理グループAの処理が完了した時刻T1以降、時刻T6なでの間のみ動作することが許可される。そのため、アイドルタスクがT1−T2,T3−T4,T5−T6の期間の間動作することになり、処理効率が悪いと考えられる。
このような課題を解決する従来技術として、制約時間と実際の実行時間の判定を行い、実際の実行時間が制約時間を超えた場合には異常状態として検知することを行っている(特許文献1参照)。
特開2004−171588号公報
しかしながら、処理完了までの時間制約がある第1の処理グループAと処理完了までの時間制約がない第2の処理グループBを含んだシステムにおいて、従来の技術の場合には、第1の処理グループAの処理が制約時間内に終了するかどうか判定することしかできず、第2の処理グループBの処理効率を向上することは保証できないという課題がある。つまり、第2の処理グループBの処理時間を効率良く配分しながら第1の処理グループAの制約時間を保証する、ということができない。
したがって、本発明の目的は、時間制約のある処理を制約時間内に完了することを保証しながら、時間制約のない処理を効率良く処理する方法を提供することにある。
本発明によるリアルタイムOSにおける処理時間配分方法は、
処理完了までの時間制約がある第1の処理グループと処理完了までの時間制約がない第2の処理グループとを含んだリアルタイムOSにおいて、
前記第1の処理グループと前記第2の処理グループのそれぞれの処理開始から処理完了までの処理時間を算出する第1のステップと、
前記第1の処理グループの制約時間と処理時間との差分時間を算出する第2のステップと、
前記差分時間から第2の処理グループの処理可能値の初期値を設定する第3のステップと、
OS処理時に前記処理可能値を更新する第4のステップと、
OS処理時に前記処理可能値を判定して判定結果が処理可能を示す場合に、前記第2の処理グループを実行可能状態とする第5のステップとを有するものである。
上記において、前記第1のステップでは、前記第1の処理グループと前記第2の処理グループのそれぞれの処理開始から処理完了までの処理時間の最大値を算出し、前記第2のステップでは、前記第1の処理グループの制約時間と処理時間最大値との差分時間を算出することが好ましい。
また、上記において、前記第5のステップの判定は、OS処理時に前記第2の処理グループの処理可能値と処理時間最大値とを比較して、前記処理可能値の方が大きい場合に前記第2の処理グループが実行可能状態と判定するものとするのが好ましい。
上記の処理時間配分方法において、第2の処理グループの処理の実行の都度に第2の処理グループの処理可能値を更新し、この処理可能値に基づいて次の第2の処理グループの処理の実行が可能か否かの判定を行うので、きめの細かい判定が可能となる。その結果、時間制約のある第1の処理グループの制約時間を保証しつつ、時間制約がない第2の処理グループの処理を無駄無くCPUに割り当てることが可能となり、システム全体としての処理効率を改善することができる。
また、上記において、前記第3のステップでは、前記差分時間から前記第2の処理グループの処理可能回数を算出して、この処理可能回数を前記第2の処理グループの前記処理可能値の初期値として設定し、前記第5のステップにおいて、前記処理可能値が0以上のときに前記第2の処理グループが実行可能状態と判定するという態様もある。
この場合、処理可能回数を判定基準とするので、第1の処理グループの処理開始からの割込みまでの処理時間や第2の処理グループの処理時間を計数する必要がなく、より簡易な制御が可能となる。
また、上記において、前記第5のステップにおいて、前記処理可能値の値から前記第2の処理グループが実行可能状態ではなくなった場合に、前記処理可能値の算出方法を変更するという態様もある。すなわち、第2の処理グループの処理の実行ができるだけ可能となるように、処理可能値の算出方法を変更することにより、よりきめの細かい制御を実現するものである。
なお、上記において、前記OS処理時とは、前記第2の処理グループの処理が終了した後に行われる前記第1の処理グループへのコンテキスト変更処理時としてよい。あるいは、前記OS処理時とは、前記第1の処理グループの処理中にサービスコール発行等によりOSに処理を移した時であってもよい。
また、上記において、前記第4のステップでは、前記第2の処理グループの処理開始から処理終了までの実際の処理時間の計測手段を有し、計測された実際の処理時間から前記処理可能値を更新することが好ましい。これによって、よりきめの細かい制御が可能となる。
また、上記において、前記第4のステップでは、前記第1の処理グループの処理開始からサービスコール発行等によりOSに処理を移すポイントまでの第1の処理グループの処理最大値を算出し、前記第1の処理グループの処理開始からサービスコール発行等によりOSに処理を移すポイントまでの実際の処理時間の計測手段を有し、前記第1の処理グループ処理最大値と、前記OSに処理を移すポイントまでの実際の処理時間から前記処理可能値を更新するという態様も好ましい。これによって、さらにきめの細かい制御が可能となる。
本発明によれば、時間制約のある第1の処理グループの制約時間を保証しつつ、時間制約がない第2の処理グループの処理を無駄無くCPUに割り当てることが可能となり、システム全体としての処理効率を改善することが可能となる。
以下、本発明にかかわるリアルタイムOSにおける処理時間配分方法の実施の形態について図面を参照しながら詳細に説明する。なお、実施の形態1〜3のいずれのリアルタイムOSにおける処理時間配分方法も、図7に示す第1のステップS1から第5のステップS5までの5つのステップを有しているものとする。
≪実施の形態1≫
図1は本発明の実施の形態1のリアルタイムOSにおける処理時間配分方法のシステム構成を示している。本構成においては、処理完了までの時間制約がある第1の処理グループAと、処理完了までの時間制約がない第2の処理グループBとがリアルタイムOS10上で動作しているシステムであるとする。
第1の処理グループAは、その処理完了までの制約時間Arと、第1の処理グループAの処理開始から処理完了までの全処理時間最大値Amと、第1の処理グループAの処理開始からの処理時間TAと、第1の処理グループAの処理開始からサービスコール発行等によりOSに処理を移すポイントまでの第1の処理グループAの処理時間の最大値である一部処理時間最大値Anを管理する。また、第2の処理グループBは、その処理可能値Bvと、第2の処理グループBの全処理時間最大値Bmと、第2の処理グループBの処理開始からの処理時間TBを管理する。
リアルタイムOS10は、少なくともコンテキスト切替部10a、割り込み管理部10b、サービスコール10cを含み、特定のサービスコールの発行や割り込みによって第1の処理グループAと第2の処理グループBとを切り替えるものとする。
図2は、本発明の実施の形態1における第1の処理グループAと第2の処理グループBの処理の流れを簡単に示したタイミングチャートである。ここで、第1の処理グループAは2つのタスク(タスクT1、タスクT2)からなり、第2の処理グループBは1つの割込み(割込みI1)からなる。ここで、第1の処理グループAの処理完了までの制約時間Arを60秒(t13)とし、また、第2の処理グループBは7秒毎に起動要求を発生するものとする。つまり、割込みI1の要求は7秒間隔で発生する。
まず、ステップS1において、第1の処理グループAと第2の処理グループBの処理開始から処理完了までの全処理時間最大値Am,Bmを理論上の値や計測データなどから求める。ここで、本実施の形態では、第1の処理グループAの全処理時間最大値Amが46秒、第2の処理グループBの全処理時間最大値Bmが3秒と求められたとする。また、第1の処理グループAの一部処理時間最大値Anについても同様に、理論上の値や計測データなどから求める。ここで、本実施の形態では、第1の処理グループAでは時刻t3と時刻t10でサービスコールが発行され、OSに処理を移すとし、時刻t3までの一部処理時間最大値Anは13秒、時刻t10までの一部処理時間最大値Anは40秒と求められたとする。
次に、ステップS2において、第1の処理グループAの制約時間Arと全処理時間最大値Amの差分時間(Ar−Am)を算出し、ステップS3において、第2の処理グループBの処理可能値Bvに設定する。この例では、第2の処理グループBの処理可能値Bvとして、Bv=Ar−Am=60秒−46秒=14秒が設定される。
処理可能値Bvの設定後、時刻t0より処理を開始する。ここでは、ステップS4における処理可能値Bvの更新は、第2の処理グループBの処理が終了した後に行われる第1の処理グループAへのコンテキスト切替処理時と、第1の処理グループAの処理中にサービスコール発行等によりOSに処理を移した時に行うものとする。時刻t2,t3,t5,t7,t9,t10,t12がそれに当たり、処理可能値Bvを更新するタイミングである。
ステップS5において、時刻t0では処理可能値Bvは14秒であり、第2の処理グループBの全処理時間最大値Bmの3秒よりも大きいため、第2の処理グループBは割込み許可状態とする。
時刻t1で第2の処理グループBの割込み要求が発生すると、第2の処理グループBの処理が実行される。このとき、第2の処理グループBの処理が開始される際には、第1の処理グループAの処理時間TAの計測タイマを一時停止させ、また、第2の処理グループBの処理時間TBの計測タイマを動作させる。
第2の処理グループBの処理完了後、時刻t2では、第2の処理グループBの計測タイマから第2の処理グループBの処理時間TBを算出する。ここで、第2の処理グループBの処理時間TBが3秒であった場合は、ステップS4において、処理可能値Bvの値を3秒だけ減らして11秒に更新し、ステップS5において、第2の処理グループBの全処理時間最大値Bmと処理可能値Bvを比較する。ここでは、第2の処理グループBの全処理時間最大値Bmの3秒に比べて処理可能値Bvの11秒の方が大きいため、第2の処理グループBを割込み許可状態として第1の処理グループAに処理を移す。また、時刻t2では第1の処理グループAの処理時間TAの計測タイマの一時停止を解除する。
次に、時刻t3において第1の処理グループAからサービスコールが発行される。サービスコール発行時には、第1の処理グループAの計測タイマから、第1の処理グループAが処理開始して(時刻t0)からサービスコールが発行される(時刻t3)までの処理時間TAを算出する。ここで、第1の処理グループAが処理開始してからサービスコールが発行されるまでの処理時間TAが13秒であったとすると、時刻t3までの一部処理時間最大値Anが13秒であり、処理時間TAと一部処理時間最大値Anが同じであるため、処理可能値Bvは11秒のまま更新しない。
時刻t4,t6,t8では、時刻t1での処理と同様に、第1の処理グループAの処理時間TAの計測タイマを一時停止させ、また、第2の処理グループBの処理時間TBの計測タイマを動作させ、時刻t5,t7,t9では、時刻t2での処理と同様に、第2の処理グループBの計測タイマから処理時間TBを算出し、処理可能値Bvを更新し、更新された処理可能値Bvと全処理時間最大値Bmを比較して、第2の処理グループBを処理可能状態とするかどうか判定して第1の処理グループAに処理を移す。この間、処理可能値Bvは逐次に更新されて、11秒→8秒→5秒となる(3秒ずつ減算)。
時刻t9において、第2の処理グループBの処理可能値Bvが2秒となり、第2の処理グループBは処理不可能状態となったとする。処理可能値Bvの2秒が全処理時間最大値Bmの3秒を下回るからである。
その後、時刻t10において、第1の処理グループAからサービスコールが発行されると、第1の処理グループAの計測タイマにおいて、第1の処理グループAが処理開始して(時刻t0)からサービスコールが発行される(時刻t10)までの処理時間TAを算出する。ここで、第1の処理グループAが処理開始してからサービスコールが発行されるまでの処理時間TAが38秒であったとする。時刻t10までの一部処理時間最大値Anが40秒であり、処理時間TAが一部処理時間最大値Anよりも2秒短くなっているため、余裕が生じている。そこで、処理可能値Bvにおいて、前述の2秒に余裕の2秒を足して、4秒に更新する。このとき、更新された処理可能値Bvの4秒は第2の処理グループBの全処理時間最大値Bm(3秒)よりも大きいため、第2の処理グループBを割込み許可状態とする。この処理不可能状態から割込み許可状態への切り替えがシステム状態変更である、このシステム状態変更を行うことで、時刻t11において第2の処理グループBの処理が許可され、実行される。
第2の処理グループBの処理実行後、時刻t12では、第2の処理グループBの計測タイマから第2の処理グループBの処理時間TBを算出し、第2の処理グループBの処理時間TBが2秒であった場合は、ステップS4において処理可能値Bvの値を2秒だけ減らして2秒に更新し、ステップS5において、第2の処理グループBの全処理時間最大値Bmと処理可能値Bvを比較する。ここで、第2の処理グループBの全処理時間最大値Bmの3秒に比べて処理可能値Bvの2秒の方が小さいため、第2の処理グループBを割込み許可状態とはせずに、割込み禁止状態として第1の処理グループAに処理を移す。
本実施の形態によれば、第1の処理グループAの制約時間Arと全処理時間最大値Amから第2の処理グループBの処理可能値Bvを“時間”として設定し(Bv=Ar−Am)、処理可能値Bvを更新しながら、その都度、処理可能値Bvと第2の処理グループBの全処理時間最大値Bmと比較することで、第1の処理グループAの制約時間Ar内に第1の処理グループAの処理が完了することを保証しながら、第2の処理グループBを割込み許可状態とすることができる。
≪実施の形態2≫
上記の実施の形態1では、第2の処理グループの処理可能値Bvとして、第1の処理グループAの制約時間Arと全処理時間最大値Amの差分時間(Ar−Am)を設定した。これに対して、本発明の実施の形態2は、差分時間(Ar−Am)から算出した“処理可能回数”を第2の処理グループBの処理可能値Bcとするものである。
図3は本発明の実施の形態2のリアルタイムOSにおける処理時間配分方法のシステム構成を示している。本構成においては、処理完了までの時間制約がある第1の処理グループAと、処理完了までの時間制約がない第2の処理グループBとがリアルタイムOS10上で動作しているシステムであるとする。
第1の処理グループAは、その処理完了までの制約時間Arと、第1の処理グループAの全処理時間最大値Amを管理する。また、第2の処理グループBは、その処理可能値Bcと、第2の処理グループBの全処理時間最大値Bmを管理する。
リアルタイムOS10は、少なくともコンテキスト切替部10a、割り込み管理部10b、サービスコール10cを含み、特定のサービスコールの発行や割り込みによって第1の処理グループAと第2の処理グループBとを切り替えるものとする。
図4は、本発明の実施の形態2における第1の処理グループAと第2の処理グループBの処理の流れを簡単に示したタイミングチャートである。ここで、第1の処理グループAは2つのタスク(タスクT1、タスクT2)からなり、第2の処理グループBは1つの割込み(割込みI1)からなる。ここで、第1の処理グループAの処理完了までの制約時間Arを60秒とし、また、第2の処理グループBは7秒毎に割込み要求を発生するものとする。
まず、ステップS1において、第1の処理グループAと第2の処理グループBの処理開始から処理完了までの処理時間の最大値を理論上の値や計測データなどから求める。ここで、本実施の形態では、第1の処理グループAの全処理時間最大値Amが46秒、第2の処理グループBの全処理時間最大値Bmが3秒と求められたとする。
次に、ステップS2において、第1の処理グループAの制約時間Arと全処理時間最大値Amの差分時間(Ar−Am)を算出し、ステップS3において、差分時間(Ar−Am)から、第2の処理グループBの処理可能値Bcを算出する。第2の処理グループBの処理可能値Bcは、差分時間(Ar−Am)と第2の処理グループBの全処理時間最大値Bmの除算によって求められる。ここでの例では、第2の処理グループBの処理可能値Bcとして、(Ar−Am)÷Bm=(60秒−46秒)/3秒=4余り2となり、商である4は処理可能回数であり、これを処理可能値Bcに設定する。
処理可能値Bcの設定後、時刻t0より処理を開始する。ここでは例として、ステップS4における処理可能値Bcの更新は、第2の処理グループBの処理が終了した後に行われる第1の処理グループAへのコンテキスト切替処理時に行うものとする。時刻t2,t5,t7,t9がコンテキスト切替処理時であり、処理可能値Bcを更新するタイミングである。
ステップS5において、時刻t0では処理可能値Bcは4であり、1以上であるため、第2の処理グループBは割込み許可状態とする。
時刻t1で第2の処理グループBの割込み要求が発生すると、第2の処理グループBの処理が実行される。第2の処理グループBの処理実行後、時刻t2では、第2の処理グループBの処理が1回行われたので、ステップS4において、処理可能値Bcの値を1減らして3に更新し、ステップS5において、この時点ではまだ処理可能値は0ではないので、第2の処理グループBを割込み許可状態として第1の処理グループAに処理を移す。
同様に時刻t4,t6で第2の処理グループBの割込み要求が発生し、時刻t5,t7で処理可能値Bcの値を更新し、それぞれ処理可能値Bcが0かどうか比較して、0にはなっていないので、第2の処理グループBを割込み許可状態として第1の処理グループAに処理を移す。
時刻t8で第2の処理グループBの割込み要求が発生し、第2の処理グループBの処理が実行されると、時刻t9では処理可能値Bvの値を1減らして0に更新する。このとき、処理可能値Bcの値が0になるため、第2の処理グループBを割込み許可状態とはせず、第2の処理グループBを割込み禁止状態として第1の処理グループAに処理を移す。
本実施の形態によれば、第1の処理グループAの制約時間Arと全処理時間最大値Am、第2の処理グループBの全処理時間最大値Bmから、あらかじめ第2の処理グループBの処理可能値Bcを“処理可能回数”として算出することで、第1の処理グループAの制約時間Ar内に第1の処理グループAの処理が完了することを保証しながら、第2の処理グループBを割込み許可状態とすることができる。
≪実施の形態3≫
上記の処理可能回数を処理可能値とする実施の形態2の場合、システムによっては、例えばキャッシュシステム等の場合は、処理実行時間は全処理時間最大値よりも短くなることがある。つまり、あらかじめ算出された処理可能値Bcの回数だけ第2の処理グループBを実行した後に再度第2の処理グループBを割込み許可状態としても、第1の処理グループAの制約時間Arを保証できる場合がある。処理可能回数を判定基準とするからである。具体的には、(Ar−Am)÷Bmとしたときに、余りが生じている可能性があるからである。
そこで、本発明の実施の形態3においては、処理可能値Bcが0となった後に再度第2の処理グループBを割込み許可状態とすることが可能かどうか判定し、可能であれば再度割込み許可状態とする。
図5は本発明の実施の形態3のリアルタイムOSにおける処理時間配分方法のシステム構成を示している。本構成においては、処理完了までの時間制約がある第1の処理グループAと、処理完了までの時間制約がない第2の処理グループBとがリアルタイムOS10上で動作しているシステムであるとする。
第1の処理グループAは、その制約時間Arと第1の処理グループAの全処理時間最大値Am、また、第1の処理グループAの処理中に発行される各サービスコールにおいて、第1の処理グループAの処理開始からの処理時間TAと、第1の処理グループAのサービスコール発行から第1の処理グループAの処理完了までの残処理時間最大値Azを管理する。処理時間TAは、タイマリソースを用いること等により計測する。また第2の処理グループBは、その処理可能値Bcと第2の処理グループBの全処理時間最大値Bmを管理する。
リアルタイムOSは、少なくともコンテキスト切替部10a、割り込み管理部10b、サービスコール10cを含み、特定のサービスコールの発行や割り込みによって、第1の処理グループAと第2の処理グループBとを切り替えるものとする。
図6は、本発明の実施の形態3における第1の処理グループAと第2の処理グループBの処理の流れを簡単に示したタイミングチャートである。ここで、第1の処理グループAは2つのタスク(タスクT1、タスクT2)からなり、第2の処理グループBは1つの割込み(割込みI1)からなる。ここで、第1の処理グループAの処理完了までの制約時間Arを60秒とし、また第2の処理グループBは7秒毎に割込み要求を発生するものとする。
まず、ステップS1において、第1の処理グループAと第2の処理グループBの処理開始から処理完了までの全処理時間最大値と、サービスコール発行から第1の処理グループAの処理完了までの残処理時間最大値Azを理論上の値や計測データなどから求める。ここで、本実施の形態では、第1の処理グループAの全処理時間最大値Amが46秒、第2の処理グループBの全処理時間最大値Bmが3秒、また、時刻t3における残処理時間最大値Azが33秒、時刻t10における残処理時間最大値Azが6秒と求められたとする。
次に、ステップS2において、第1の処理グループAの制約時間Arと全処理時間最大値Amの差分時間(Ar−Am)を算出し、ステップS3において差分時間(Ar−Am)から、第2の処理グループBの処理可能値Bcを算出する。第2の処理グループBの処理可能値Bcは、差分時間(Ar−Am)と第2の処理グループBの全処理時間最大値Bmの除算によって求められる。本実施の形態の場合、(差分時間=14)÷(全処理時間最大値Bm=3)=4余り2となり、商である4を処理可能値Bcに設定する。
処理可能値Bcの設定後、時刻t0より処理を開始する。ここでは、処理可能値Bcが1以上である場合はステップS4における処理可能値Bcの更新は、第2の処理グループBの処理が終了した後に行われる第1の処理グループAへのコンテキスト切替処理時に行うものとする。時刻t2,t5,t7,t9,t12はコンテキスト切替処理時であり、処理可能値Bcを更新するタイミングである。また、処理可能値Bcが0の場合には、ステップS4における処理可能値Bcの更新は、第1の処理グループAの処理中にサービスコール発行等によりOSに処理を移した時に行うものとする。時刻t3,t10はOS処理時であり、処理可能値Bcを更新するタイミングである。
ステップS5において、時刻t0では処理可能値Bcは4であるため、第2の処理グループBは割込み許可状態とする。時刻t0において、第1の処理グループAの処理が開始される際には、第1の処理グループAの処理時間TAの計測タイマを動作させる。
時刻t1で第2の処理グループBの割込み要求が発生すると、第2の処理グループBの処理が実行される。第2の処理グループBの処理実行後、時刻t2では第2の処理グループBの処理が1回行われたので、ステップS4において処理可能値Bcの値を1減らして3に更新し、ステップS5において、この時点ではまだ処理可能値は0ではないので、第2の処理グループBを割込み許可状態として第1の処理グループAに処理を移す。
時刻t3において、サービスコールが発行されたとき、処理可能値Bcは1以上であるため、処理可能値Bcの更新は行わない。
時刻t4、時刻t6で第2の処理グループBの割込み要求が発生したときは、それぞれ時刻t5,t7で処理可能値Bcの値を更新し、それぞれ処理可能値Bcが0かどうか比較して、0にはなっていないので、第2の処理グループBを割込み許可状態として第1の処理グループAに処理を移す。
時刻t8で第2の処理グループBの割込み要求が発生し、第2の処理グループBの処理が実行されると時刻t9では処理可能値Bcの値を1減らして0に更新する。このとき処理可能値Bcの値が0になるため、第2の処理グループBを割込み許可状態とはせず、第2の処理グループBを割込み禁止状態として第1の処理グループAに処理を移す。
その後、第1の処理グループAの処理中に、時刻t10でサービスコールが発行されたとする。このとき、処理可能値Bcは0であるため、処理可能値Bcの更新を行う。まず処理時間TAと制約時間Arを比較し、制約時間までの残りの時間を算出する。ここでは、時刻t10においてサービスコールが発行されたときの処理時間TAは50秒だったとする。このとき、残処理時間最大値Azは6秒であり、制約時間Arは60秒であるため、(制約時間Ar)−(処理時間TA)−(残処理時間最大値Az)=4秒となり、4秒余る計算となる。第2の処理グループBの全処理時間最大値Bmは3秒であるため、第2の処理グループBは再度挿入可能であることが分かるため、割込み禁止状態から割込み許可状態へシステム状態変更を行う。
システム状態変更を行うことで、時刻t11において第2の処理グループBの処理が実行される。第2の処理グループBの処理実行後、時刻t12では第2の処理グループBを割込み許可状態とはせず、第2の処理グループBを割込み禁止状態として第1の処理グループAに処理を移す。
本実施の形態によれば、処理可能回数を処理可能値Bcとする場合の判定基準誤差を解消し、処理完了までの時間制約がない第2の処理グループBの処理の可能性を拡大できるので、よりきめの細かい制御が可能となる。
本発明のリアルタイムOSにおける処理時間配分方法は、処理完了までの時間制約がある第1の処理グループと処理完了までの時間制約がない第2の処理グループとを含んだリアルタイムOSにおいて、時間制約のある第1の処理グループの制約時間を保証しつつ、時間制約がない第2の処理グループの処理を無駄無くCPUに割り当てることが可能となり、システム全体の処理効率を改善するための技術等として有用である。
本発明の実施の形態1のリアルタイムOSにおける処理時間配分方法のシステム構成を示す図 本発明の実施の形態1における処理の流れを示すタイミングチャート 本発明の実施の形態2のリアルタイムOSにおける処理時間配分方法のシステム構成を示す図 本発明の実施の形態2における処理の流れを示すタイミングチャート 本発明の実施の形態3のリアルタイムOSにおける処理時間配分方法のシステム構成を示す図 本発明の実施の形態3における処理の流れを示すタイミングチャート 本発明の実施の形態1〜3のリアルタイムOSにおける処理時間配分方法の処理手順のステップを示すフローチャート 従来の技術におけるリアルタイムOSにおける処理時間配分方法の処理の流れを示すタイミングチャート
符号の説明
A 処理完了までの時間制約がある第1の処理グループ
B 処理完了までの時間制約がない第2の処理グループ
Ar 処理完了までの時間制約がある第1の処理グループの制約時間
Am 第1の処理グループの全処理時間最大値
An 第1の処理グループの一部処理時間最大値
Az 第1の処理グループの残処理時間最大値
Bv,Bc 第2の処理グループの処理可能値
Bm 第2の処理グループの全処理時間最大値
TA 第1の処理グループの処理時間
TB 第2の処理グループの処理時間
10 リアルタイムOS
10a コンテキスト切替部
10b 割り込み管理部
10c サービスコール

Claims (9)

  1. 処理完了までの時間制約がある第1の処理グループと処理完了までの時間制約がない第2の処理グループとを含んだリアルタイムOSにおいて、
    前記第1の処理グループと前記第2の処理グループのそれぞれの処理開始から処理完了までの処理時間を算出する第1のステップと、
    前記第1の処理グループの制約時間と処理時間との差分時間を算出する第2のステップと、
    前記差分時間から第2の処理グループの処理可能値の初期値を設定する第3のステップと、
    OS処理時に前記処理可能値を更新する第4のステップと、
    OS処理時に前記処理可能値を判定して判定結果が処理可能を示す場合に、前記第2の処理グループを実行可能状態とする第5のステップとを有するリアルタイムOSにおける処理時間配分方法。
  2. 前記第1のステップにおいて、前記第1の処理グループと前記第2の処理グループのそれぞれの処理開始から処理完了までの処理時間の最大値を算出し、
    前記第2のステップにおいて、前記第1の処理グループの制約時間と処理時間最大値との差分時間を算出する請求項1に記載のリアルタイムOSにおける処理時間配分方法。
  3. 前記第5のステップの判定は、OS処理時に前記第2の処理グループの処理可能値と処理時間最大値とを比較して、前記処理可能値の方が大きい場合に前記第2の処理グループが実行可能状態と判定する請求項2に記載のリアルタイムOSにおける処理時間配分方法。
  4. 前記第3のステップにおいて、前記差分時間から前記第2の処理グループの処理可能回数を算出して、この処理可能回数を前記第2の処理グループの前記処理可能値の初期値として設定し、
    前記第5のステップにおいて、前記処理可能値が0以上のときに前記第2の処理グループが実行可能状態と判定する請求項1または請求項2に記載のリアルタイムOSにおける処理時間配分方法。
  5. 前記第5のステップにおいて、前記処理可能値の値から前記第2の処理グループが実行可能状態ではなくなった場合に、前記処理可能値の算出方法を変更する請求項1から請求項3までのいずれかに記載のリアルタイムOSにおける処理時間配分方法。
  6. 前記OS処理時とは、前記第2の処理グループの処理が終了した後に行われる前記第1の処理グループへのコンテキスト変更処理時である請求項1から請求項5までのいずれかに記載のリアルタイムOSにおける処理時間配分方法。
  7. 前記OS処理時とは、前記第1の処理グループの処理中にサービスコール発行等によりOSに処理を移した時である請求項1から請求項5までのいずれかに記載のリアルタイムOSにおける処理時間配分方法。
  8. 前記第4のステップにおいて、前記第2の処理グループの処理開始から処理終了までの実際の処理時間の計測手段を有し、計測された実際の処理時間から前記処理可能値を更新する請求項3に記載のリアルタイムOSにおける処理時間配分方法。
  9. 前記第4のステップにおいて、前記第1の処理グループの処理開始からサービスコール発行等によりOSに処理を移すポイントまでの第1の処理グループの処理最大値を算出し、前記第1の処理グループの処理開始からサービスコール発行等によりOSに処理を移すポイントまでの実際の処理時間の計測手段を有し、前記第1の処理グループ処理最大値と、前記OSに処理を移すポイントまでの実際の処理時間から前記処理可能値を更新する請求項3に記載のリアルタイムOSにおける処理時間配分方法。
JP2006134915A 2006-05-15 2006-05-15 リアルタイムosにおける処理時間配分方法 Expired - Fee Related JP4707603B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006134915A JP4707603B2 (ja) 2006-05-15 2006-05-15 リアルタイムosにおける処理時間配分方法
US11/798,368 US20080004782A1 (en) 2006-05-15 2007-05-14 Method of processing time distribution in real time operating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006134915A JP4707603B2 (ja) 2006-05-15 2006-05-15 リアルタイムosにおける処理時間配分方法

Publications (2)

Publication Number Publication Date
JP2007305029A true JP2007305029A (ja) 2007-11-22
JP4707603B2 JP4707603B2 (ja) 2011-06-22

Family

ID=38838881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006134915A Expired - Fee Related JP4707603B2 (ja) 2006-05-15 2006-05-15 リアルタイムosにおける処理時間配分方法

Country Status (2)

Country Link
US (1) US20080004782A1 (ja)
JP (1) JP4707603B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010103727A1 (ja) * 2009-03-11 2010-09-16 パナソニック株式会社 マルチタスクシステムにおけるシステム起動方法
JP2014130645A (ja) * 2014-04-03 2014-07-10 Fujitsu Ltd マルチプロセッサシステム、制御方法、および制御プログラム
JP2017102518A (ja) * 2015-11-30 2017-06-08 株式会社デンソー 処理装置
WO2024018755A1 (ja) * 2022-07-21 2024-01-25 住友電気工業株式会社 車載装置、サーバ装置、リソース制御方法、リソース制御支援方法、およびコンピュータプログラム

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7852778B1 (en) 2006-01-30 2010-12-14 Juniper Networks, Inc. Verification of network paths using two or more connectivity protocols
US7957330B1 (en) * 2007-11-27 2011-06-07 Juniper Networks, Inc. Failsafe management of periodic communications during system upgrade for a network device
US8902780B1 (en) 2012-09-26 2014-12-02 Juniper Networks, Inc. Forwarding detection for point-to-multipoint label switched paths
US9258234B1 (en) 2012-12-28 2016-02-09 Juniper Networks, Inc. Dynamically adjusting liveliness detection intervals for periodic network communications
US8953460B1 (en) 2012-12-31 2015-02-10 Juniper Networks, Inc. Network liveliness detection using session-external communications
US9769017B1 (en) 2014-09-26 2017-09-19 Juniper Networks, Inc. Impending control plane disruption indication using forwarding plane liveliness detection protocols
US10374936B2 (en) 2015-12-30 2019-08-06 Juniper Networks, Inc. Reducing false alarms when using network keep-alive messages
US10397085B1 (en) 2016-06-30 2019-08-27 Juniper Networks, Inc. Offloading heartbeat responses message processing to a kernel of a network device
DE102017127428B4 (de) * 2016-11-22 2023-11-09 Hyundai Motor Company Verfahren und Vorrichtung zum Wiedergeben von Inhalten basierend auf einer Präsentationszeit im Fahrzeugnetzwerk
US11750441B1 (en) 2018-09-07 2023-09-05 Juniper Networks, Inc. Propagating node failure errors to TCP sockets

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0659915A (ja) * 1992-08-10 1994-03-04 Nippon Telegr & Teleph Corp <Ntt> トランザクションの実行順序制御方法および装置
JP2005157955A (ja) * 2003-11-28 2005-06-16 Internatl Business Mach Corp <Ibm> 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体
JP2005316960A (ja) * 2004-03-29 2005-11-10 Matsushita Electric Ind Co Ltd 処理端末、受信端末及び受信データ処理システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633942B1 (en) * 1999-08-12 2003-10-14 Rockwell Automation Technologies, Inc. Distributed real-time operating system providing integrated interrupt management
JP2004513454A (ja) * 2000-11-09 2004-04-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 周期的タスクのベストケース反応時間を決定する方法および装置
US7360216B2 (en) * 2002-07-03 2008-04-15 Nvidia Corporation Method and system for real-time multitasking

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0659915A (ja) * 1992-08-10 1994-03-04 Nippon Telegr & Teleph Corp <Ntt> トランザクションの実行順序制御方法および装置
JP2005157955A (ja) * 2003-11-28 2005-06-16 Internatl Business Mach Corp <Ibm> 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体
JP2005316960A (ja) * 2004-03-29 2005-11-10 Matsushita Electric Ind Co Ltd 処理端末、受信端末及び受信データ処理システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010103727A1 (ja) * 2009-03-11 2010-09-16 パナソニック株式会社 マルチタスクシステムにおけるシステム起動方法
JP2014130645A (ja) * 2014-04-03 2014-07-10 Fujitsu Ltd マルチプロセッサシステム、制御方法、および制御プログラム
JP2017102518A (ja) * 2015-11-30 2017-06-08 株式会社デンソー 処理装置
WO2024018755A1 (ja) * 2022-07-21 2024-01-25 住友電気工業株式会社 車載装置、サーバ装置、リソース制御方法、リソース制御支援方法、およびコンピュータプログラム

Also Published As

Publication number Publication date
JP4707603B2 (ja) 2011-06-22
US20080004782A1 (en) 2008-01-03

Similar Documents

Publication Publication Date Title
JP4707603B2 (ja) リアルタイムosにおける処理時間配分方法
JP2009294712A (ja) 優先度制御装置及び優先度制御方法
WO2011142031A1 (ja) リソース管理方法、リソース管理装置およびプログラム
JP2017037370A (ja) 計算機、プロセス制御方法およびプロセス制御プログラム
JP2006277634A (ja) 排他制御方法と情報処理装置
JP2008204243A (ja) ジョブ実行制御方法およびシステム
JP5672521B2 (ja) コンピュータシステム、およびそのチェックポイントリスタート方法
TW200905567A (en) Notifying user mode scheduler of blocking events
KR101635816B1 (ko) 결정적 프로그레스 인덱스를 이용한 스레드 프로그레스 트래킹 방법 및 장치
JP2009181466A (ja) 半導体露光装置及びその制御方法、及びコンピュータプログラム
JP2011108140A (ja) データ処理装置
JP2017016219A (ja) 電子機器および給電制御プログラム
CN110737533B (zh) 一种任务调度方法、装置及电子设备和存储介质
JP2006059052A (ja) 仮想計算機システム
JP2007072598A (ja) バス調停方法及びバス調停プログラム
JP6481437B2 (ja) トランザクション処理装置、トランザクション処理方法及び制御プログラム
JP2005293070A (ja) タスク実行システム
US11681527B2 (en) Electronic device and multiplexing method of spatial
JP2008129709A (ja) タスク制御方法、データ処理システム、タスク制御プログラム及びその記憶媒体
US10158580B2 (en) Utilizing access control data structures for sharing computing resources
JP2006146641A (ja) マルチスレッドプロセッサ及びマルチスレッドプロセッサの割込み方法
Zhang et al. Sensitivity analysis of the minimum task period for arbitrary deadline real-time systems
JP2016004508A (ja) 排他制御装置、排他制御方法、排他制御プログラム、及び、オペレーティングシステム
JP2016177331A (ja) 電子制御装置
JP2015170180A (ja) 電子制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090428

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110315

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees