JP7147615B2 - タスク管理装置 - Google Patents

タスク管理装置 Download PDF

Info

Publication number
JP7147615B2
JP7147615B2 JP2019025720A JP2019025720A JP7147615B2 JP 7147615 B2 JP7147615 B2 JP 7147615B2 JP 2019025720 A JP2019025720 A JP 2019025720A JP 2019025720 A JP2019025720 A JP 2019025720A JP 7147615 B2 JP7147615 B2 JP 7147615B2
Authority
JP
Japan
Prior art keywords
task
asynchronous
time
queue
execution
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
JP2019025720A
Other languages
English (en)
Other versions
JP2020135214A (ja
Inventor
明男 神谷
毅 紅林
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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2019025720A priority Critical patent/JP7147615B2/ja
Priority to US16/750,362 priority patent/US11221878B2/en
Publication of JP2020135214A publication Critical patent/JP2020135214A/ja
Application granted granted Critical
Publication of JP7147615B2 publication Critical patent/JP7147615B2/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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

Landscapes

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

Description

この明細書における開示は、時間同期タスクおよび非同期タスクの実行順序を管理する、タスク管理装置に関する。
特許文献1には、順次発生するタスクの実行順序を管理する、リアルタイムオペレーティングシステム(以下、RTOSと記載)が記載されている。RTOSにエンキューされてくるタスクは、エンキューされてきた順序に従って実行される。但し、各タスクには優先度が予め設定されている。低優先度タスクの実行中に高優先度タスクがエンキューされてきた場合、RTOSは実行中の低優先度タスクを中断させて高優先度タスクを実行させる。
特開2004-252574号公報
ここで、発生するタスクは、一定の時間周期で起動要求される時間同期タスク、および時間周期とは無関係に起動要求される非同期タスクに分類される。そして、時間同期タスクのインターバル期間中に非同期タスクが大量に発生すると、以下の問題が懸念されるようになる。すなわち、インターバル期間中に大量発生した非同期タスクの優先度と時間同期タスクの優先度が同じである場合、大量発生した非同期タスクの全てが実行完了した後に、時間同期タスクが実行されることになる。そのため、時間同期タスクの実行待ち時間が長くなり、時間同期タスクの起動遅延が生じる。
なお、時間同期タスクの優先度を非同期タスクの優先度より高く設定すれば、非同期タスクの大量発生といった上述の状況であっても、実行中の非同期タスクを中断させて時間同期タスクを実行させることになる。そのため、時間同期タスクの起動遅延は解消される。しかしながら、非同期タスクを中断させることに起因して、非同期タスクで処理されるデータと時間同期タスクで処理されるデータとの不整合が生じるといった、タスク干渉の問題が生じ得る。
開示される1つの目的は、タスク干渉を抑制しつつ時間同期タスクの起動遅延を抑制可能にした、タスク管理装置を提供することである。
上記目的を達成するため、開示された1つの態様は、
一定の時間周期で起動要求される時間同期タスク、および時間周期とは無関係に起動要求される非同期タスクの、実行順序を管理するタスク管理装置において、
タスク登録部(Q1)にエンキューされている時間同期タスクおよび非同期タスクを、エンキュー順序およびタスク優先度に従って実行させる実行制御部(S32)と、
非同期タスクを、タスク登録部へのエンキューに先立ちタスク蓄積部(Q2)へエンキューして蓄積させる蓄積制御部(S21)と、
タスク蓄積部にエンキューされている非同期タスクを、タスク蓄積部からデキューしてタスク登録部へエンキューする蓄積管理部(S23、S23C、S42、S42C)と、を備え
蓄積管理部は、タスク登録部から非同期タスクがデキューされる毎に、タスク蓄積部に蓄積されている非同期タスクを、タスク登録部へ所定数ずつエンキューさせ、
所定数を条件に応じて可変設定するエンキュー数設定部(S23A、S42A)を備えるタスク管理装置とされる。
ここに開示されたタスク管理装置によると、発生直後の非同期タスクを、タスク登録部とは別のタスク蓄積部に溜めておき、その後で、タスク登録部へエンキューさせることができる。つまり、非同期タスクを、発生時点よりも遅れたタイミングでタスク登録部へエンキューさせることができる。そのため、その溜められている期間中に時間同期タスクが発生した場合、溜められている非同期タスクよりも後に発生した時間同期タスクを、その非同期タスクよりも先にタスク登録部へエンキューできる。したがって、時間同期タスクの優先度を非同期タスクの優先度より高くすることなく、非同期タスクよりも後に発生した時間同期タスクを、その非同期タスクよりも先にタスク登録部へエンキューできる。よって、実行中の非同期タスクの中断を要することなく、時間同期タスクの起動遅延を抑制できる。
上記目的を達成するため、開示された1つの態様は、
一定の時間周期で起動要求される時間同期タスク、および時間周期とは無関係に起動要求される非同期タスクの、実行順序を管理するタスク管理装置において、
タスク登録部(Q1)にエンキューされている時間同期タスクおよび非同期タスクを、エンキュー順序およびタスク優先度に従って実行させる実行制御部(S32)と、
非同期タスクをタスク蓄積部(Q2)へエンキューして蓄積させる蓄積制御部(S21)と、
タスク登録部にエンキューされているタスクが存在せず、かつ、タスク蓄積部に非同期タスクが蓄積されている場合に、タスク蓄積部にエンキューされている非同期タスクの実行を要求する実行要求タスクを生成し、実行要求タスクをタスク登録部にエンキューする非同期タスク制御部(S230、S230C、S420、S420C)と、
を備えるタスク管理装置とされる。
ここに開示されたタスク管理装置によると、発生直後の非同期タスクを、タスク登録部とは別のタスク蓄積部に溜めておき、その後で、タスク登録部からデキューして実行させることができる。そのため、タスク蓄積部に溜められている期間中に時間同期タスクが発生した場合、溜められている非同期タスクよりも後に発生した時間同期タスクを、その非同期タスクよりも先にタスク登録部へエンキューして実行できる。したがって、時間同期タスクの優先度を非同期タスクの優先度より高くすることなく、非同期タスクよりも後に発生した時間同期タスクを、その非同期タスクよりも先にタスク登録部へエンキューできる。よって、実行中の非同期タスクの中断を要することなく、時間同期タスクの起動遅延を抑制できる。
尚、上記括弧内の参照番号は、後述する実施形態における具体的な構成との対応関係の一例を示すものにすぎず、技術的範囲を何ら制限するものではない。
第1実施形態に係るタスク管理装置が適用された、制御システムの全体図である。 第1実施形態に係るソフトウェア資源の構成図である。 第1実施形態に係るタスク管理装置による、制御の一例を示すタイムチャートである。 第1実施形態に係るタスク管理装置による、時間同期タスク発生時の処理手順を示すフローチャートである。 第1実施形態に係るタスク管理装置による、非同期タスク発生時の処理手順を示すフローチャートである。 第1実施形態に係るタスク管理装置による、タスク起動の処理手順を示すフローチャートである。 第1実施形態に係るタスク管理装置による、非同期タスクの実行完了時の処理手順を示すフローチャートである。 第2実施形態に係るタスク管理装置による、非同期タスク発生時の処理手順を示すフローチャートである。 第2実施形態に係るタスク管理装置による、非同期タスクの実行完了時の処理手順を示すフローチャートである。 第3実施形態に係るタスク管理装置による、制御の一例を示すタイムチャートである。 第3実施形態に係るタスク管理装置による、非同期タスク発生時の処理手順を示すフローチャートである。 第3実施形態に係るタスク管理装置による、非同期タスクの実行完了時の処理手順を示すフローチャートである。 第4実施形態に係るタスク管理装置による、非同期タスク発生時の処理手順を示すフローチャートである。 第4実施形態に係るタスク管理装置による、非同期タスクの実行完了時の処理手順を示すフローチャートである。 第1実施形態の比較例としてのタスク管理装置による、非同期タスク発生時の処理手順を示すタイムチャートである。
以下、本開示の複数の実施形態を図面に基づいて説明する。尚、各実施形態において対応する構成要素には同一の符号を付すことにより、重複する説明を省略する場合がある。各実施形態において構成の一部分のみを説明している場合、当該構成の他の部分については、先行して説明した他の実施形態の構成を適用することができる。
(第1実施形態)
図1は、制御装置1と、各種入力装置30と、各種出力装置40と、を備える制御システムを示す。これらの制御装置1、各種入力装置30および各種出力装置40は、車両に搭載されている。この車両には、走行駆動源となるエンジン(内燃機関)が搭載されている。制御装置1は、各種入力装置30で検出される値に基づき、各種出力装置40の作動を制御する。
各種出力装置40の具体例としては、エンジンの燃焼に用いられる燃料を噴射するインジェクタや、エンジンの点火に用いられる点火装置のイグナイタ等が挙げられる。各種入力装置30の具体例としては、回転角センサや吸気量センサ、水温センサ等が挙げられる。回転角センサは、エンジンのクランク軸が所定角度回転する毎にパルス状の信号を出力する。吸気量センサは、エンジン燃焼室へ吸入される空気量(吸気量)に応じた検出信号を出力する。水温センサは、エンジンの冷却水温度に応じた検出信号を出力する。
制御装置1は、マイクロコンピュータ(マイコン10)と、入力回路21と、出力回路22と、を備える。入力回路21は、各種入力装置30から入力されてくる信号の波形成形やA/D変換等の処理を行う。出力回路22は、各種出力装置40への駆動電力の供給や、駆動信号の出力等を行う。制御装置1は、車内LAN32を通じて他の制御装置と相互に通信を行う機能を備える。例えば、他の制御装置で何かしらの異常が検知された場合、異常が生じている旨の信号(異常信号)が入力回路21へ入力される。
例えば、マイコン10は、単位時間当たりに回転角センサから出力されたパルス信号の数に基づき、単位時間当たりのクランク軸の回転数(エンジン回転数)を算出する。マイコン10は、吸気量センサから出力された検出信号に基づき吸気量を算出する。このように算出された吸気量は、エンジン負荷を表す指標として用いられる。マイコン10は、水温センサから出力された検出信号に基づき冷却水温度を算出する。
制御装置1は、算出されたエンジン回転数、エンジン負荷および冷却水温度等に基づき、インジェクタの作動を制御(燃料噴射制御)したり、イグナイタの作動を制御(点火制御)したりする。これにより、エンジン出力や排気エミッション等のエンジン運転状態が制御される。燃料噴射制御や点火制御は、クランク軸が所定角度回転する毎に実行される。つまり、高エンジン回転数であるほど、燃料噴射制御や点火制御に要する制御装置1の演算処理負荷は大きくなる。
マイコン10は、プロセッサ(CPU11)、不揮発性メモリ(ROM12)、揮発性メモリ(RAM13)および入出力ポート(I/Oポート)を備える。ROM12およびRAM13に係るメモリは、プロセッサによって読み取り可能な「プログラムおよび/またはデータ」を非一時的に格納する非遷移的かつ実体的な記憶媒体である。記憶媒体は、半導体メモリによって提供される。プログラムは、それ単体で、またはプログラムが格納された記憶媒体として流通する場合がある。
CPU11は、演算結果をRAM13に記憶させながら、ROM12に記憶されている各種プログラムを実行する。各種プログラムの具体例としては、先述した燃料噴射制御および点火制御等の各種出力装置40の制御プログラムや、電気的または機械的な異常を検知するプログラム等が挙げられる。
プログラムの実行等により生成されるタスクは、CPU11のスケジューリング対象となる基本単位である。上記タスクは、プログラムをRAM13に読み込み、CPU11のレジスタ群やRAM13のスタック領域を使用しながら実行される。タスクは、待ち状態、実行可能状態および実行状態に遷移する。
実行状態は、タスクにCPU11が割り付けられて命令が実行されている状態である。実行可能状態は、他のタスクによってCPU11が使用されているため実行されていないが、CPU11が割り付けられれば直ちにCPU11を使用できる状態である。待ち状態は、入出力の完了や他のタスクからのメッセージ到着等、何らかの事象の発生を待っている状態である。待ち状態のタスクには、事象の発生までCPU11は割り付けられない。
図2は、マイコン10により実現されるソフトウェア資源の階層構造を示す。ソフトウェア資源は、リアルタイムオペレーティングシステム(RTOS10a)と、逐次実行ソフト10bと、各種のアプリケーション10cと、を備える。
RTOS10aは、各アプリケーション10cの起動、停止、監視などを含めた制御を行う。RTOS10aは、タスクが生成されてから実行されるまでの時間に制限を持って、タスクをスケジュール管理している。例えば、ハードウェア割り込みが発生してから処理ルーチンを呼出すまでの時間が最悪値を越えないように、RTOS10aはタスクをスケジュール管理している。例えば、高優先度のタスクが確実に実行されることを保証するように、RTOS10aはタスクをスケジュール管理している。
逐次実行ソフト10bは、アプリケーション10cとRTOS10aとの中間に入るソフトウェアであり、ミドルウェアとも呼ばれる。アプリケーション10cはミドルウェアに要求を出すと、ミドルウェアがRTOS10aに必要な要求を出し、結果をアプリケーション10cに返す。あるいはミドルウェア自体が各アプリケーション10cの起動、停止、監視などを含めた制御を行う。
なお、本明細書では、例えば「タスクが・・・する」「RTOSが・・・する」「逐次実行ソフト10bが・・・する」というプログラムを主体とした表現を適宜用いているが、ハードウェア的な視点では上記主体はマイコン10である。
RAM13上には各タスク用のキューのためのバッファ(記憶領域)が確保されている。キューは、先入れ先出し(FIFO)のリスト構造でデータを保持するデータ構造である。図3に示すように、RTOS10aで管理されるキューは、本明細書ではOSキューQ1と呼ばれ、「タスク登録部」に相当する。逐次実行ソフト10bで管理されるキューは、本明細書では蓄積キューQ2と呼ばれ、「タスク蓄積部」に相当する。
発生する各種のタスクは、一定の時間周期で起動要求される時間同期タスクと、時間周期とは無関係に起動要求される非同期タスクとに分類される。各種のタスクには、優先度が設定されている。高優先度のタスクは、低優先度のタスクよりも優先してCPU11に割り付けられる。例えば、低優先度のタスクを実行している最中に高優先度のタスクが発生すると、実行中の低優先度タスクを中断して高優先度タスクを実行するように、タスクの実行順序が管理される。
非同期タスクは、蓄積キューQ2にエンキューされ、その後、蓄積キューQ2からデキューされてOSキューQ1にエンキューされる。OSキューQ1にエンキューされている非同期タスクは、CPU11に割り付けられる順番が到来したタイミングでOSキューQ1からデキューされ、CPU11により実行される。つまり、非同期タスクは、OSキューQ1にエンキューされることに先立ち、蓄積キューQ2にエンキューされる。
蓄積キューQ2にエンキューされている非同期タスクは、OSキューQ1への非同期タスクの登録数が所定登録数以下であることを条件として、OSキューQ1へのエンキューが許可される。そして、本実施形態では所定登録数は1つに設定されている。したがって、短時間で大量の非同期タスクが生じた場合であっても、大量の非同期タスクが短時間で一度にOSキューQ1にエンキューされることはなく、蓄積キューQ2に一旦蓄積される。そして、蓄積された非同期タスクは、蓄積キューQ2から少しずつOSキューQ1にエンキューされる(移動する)ことになる。
蓄積キューQ2からOSキューQ1へ非同期タスクが移動するタイミングは、OSキューQ1から非同期タスクがデキューされて実行されるタイミングに設定されている。したがって、OSキューQ1から非同期タスクがデキューされる毎に、次の非同期タスクがOSキューQ1にエンキューされる。
時間同期タスクは、蓄積キューQ2にエンキューされることなくOSキューQ1にエンキューされる。つまり、時間同期タスクは、蓄積キューQ2に蓄積されることなく、OSキューQ1に直接エンキューされる。時間同期タスクには、異なる時間周期のタスクが含まれる。例えば、10msの時間周期で発生する時間同期タスクや、3msの時間周期で発生する時間同期タスク等が存在する。図3に示す例では、複数種類の時間同期タスクのうち、10msの時間同期タスクだけが記載されている。
次に、図3を用いて、上述したタスクの実行順序管理の一例を説明する。
t10時点で、時間同期タスク(10)の起動要求が発生し、その後10ms経過したt20時点で、次の時間同期タスク(10)の起動要求が発生している。そして、t10時点からt20時点までの期間、つまり時間同期タスク(10)のインターバル期間に、4つの非同期タスク(1)(2)(3)(4)の起動要求が発生している。これらの非同期タスク(1)~(4)および時間同期タスク(10)は、全て同じ優先度に設定されている。なお、本明細書では、タスクの起動要求が発生したことを、単にタスクが発生したと表現する場合がある。
t10時点で発生した時間同期タスク(10)は、直ちにOSキューQ1へエンキューされる。このエンキュー時点では、実行可能状態である他のタスクが1つもOSキューQ1にエンキューされていない状態、かつ、CPU11に割り付けられた実行状態のタスクが存在しない状態である。そのため、OSキューQ1へエンキューされた時間同期タスク(10)は直ちにデキューされ、CPU11に割り付けられて実行される。
この時間同期タスク(10)の実行開始時点t11から実行終了時点t12までの実行期間中に、先述した4つの非同期タスク(1)~(4)が発生している。これらの非同期タスク(1)~(4)は、発生した時点で直ちに蓄積キューQ2へエンキューされる。
非同期タスク(1)が蓄積キューQ2へエンキューされた時点では、実行可能状態である他の非同期タスクが1つもOSキューQ1にエンキューされていない状態である。そのため、蓄積キューQ2へエンキューされた非同期タスク(1)は直ちにデキューされ、OSキューQ1にエンキューされる。
非同期タスク(2)が蓄積キューQ2へエンキューされた時点では、OSキューQ1に非同期タスク(1)がエンキューされている状態である。そのため、蓄積キューQ2にエンキューされた非同期タスク(2)は、OSキューQ1へ移動されずに蓄積キューQ2に蓄積される。非同期タスク(3)(4)についても同様にして、OSキューQ1へ移動されずに蓄積キューQ2に蓄積される。
その後、時間同期タスク(10)の実行終了時点t12で、OSキューQ1にエンキューされている非同期タスク(1)は直ちにデキューされ、CPU11に割り付けられて実行される。
その後、非同期タスク(1)の実行終了時点t13では、他の非同期タスクが1つもOSキューQ1にエンキューされていない状態である。そのため、蓄積キューQ2へエンキューされている非同期タスク(2)は直ちにデキューされ、OSキューQ1にエンキューされる。このエンキュー時点では、実行可能状態である他のタスクが1つもOSキューQ1にエンキューされていない状態である。そのため、OSキューQ1へエンキューされた非同期タスク(2)は直ちにデキューされ、CPU11に割り付けられて実行される。
次の時間同期タスク(10)は、非同期タスク(2)の実行期間中のt20時点で発生している。t20時点で発生した時間同期タスク(10)は、直ちにOSキューQ1へエンキューされる。このエンキュー時点では、非同期タスク(2)が実行状態である。そのため、時間同期タスク(10)は、実行可能状態でOSキューQ1に保持される。
その後、非同期タスク(2)の実行終了時点t21では、他の非同期タスクが1つもOSキューQ1にエンキューされていない状態である。そのため、蓄積キューQ2へエンキューされている非同期タスク(3)は直ちにデキューされ、OSキューQ1にエンキューされる。さらに、非同期タスク(2)の実行終了時点t21では、OSキューQ1にエンキューされている時間同期タスク(10)が直ちにデキューされ、CPU11に割り付けられて実行される。
要するに、非同期タスク(1)の実行期間中には、以降の非同期タスク(2)(3)(4)は、OSキューQ1にエンキューされずに蓄積キューQ2に蓄積される。その蓄積期間中に発生した時間同期タスク(10)、つまり非同期タスク(2)(3)(4)より後に発生した時間同期タスク(10)は、非同期タスク(3)(4)より先にOSキューQ1にエンキューされる。時間同期タスク(10)の発生時点t20から実行開始時点t21までの時間が、時間同期タスク(10)の起動遅延時間Ta(図中の矢印参照)に相当する。
その後、時間同期タスク(10)の実行終了時点t22で、OSキューQ1にエンキューされている非同期タスク(3)は直ちにデキューされ、CPU11に割り付けられて実行される。
その後、非同期タスク(3)の実行終了時点t23では、他の非同期タスクが1つもOSキューQ1にエンキューされていない状態である。そのため、蓄積キューQ2へエンキューされている非同期タスク(4)は直ちにデキューされ、OSキューQ1にエンキューされる。このエンキュー時点では、他のタスクが1つもOSキューQ1にエンキューされていない状態である。そのため、OSキューQ1へエンキューされた非同期タスク(4)は直ちにデキューされ、CPU11に割り付けられて実行される。
次に、図4~図7を用いて、上述したタスク実行順序を制御するための処理手順について説明する。これらの処理は、制御装置1に電源供給されている期間に、所定の演算周期でマイコン10により繰り返し実行される。
図4は、時間同期タスクに対する処理フローを示しており、先ずステップS10では、時間同期タスクが前回発生してから所定時間が経過したか否かが判定される。この所定時間は、先述した時間周期に設定されている。ステップS10の判定は、複数種類の時間同期タスクの各々に対して実行される。所定時間経過したと判定された場合、続くステップS11において、該当する種類の時間同期タスクが、OSキューQ1へエンキューされる。
図5は、非同期タスクに対する処理フローを示しており、先ずステップS20では、非同期タスクが発生したか否かを判定する。例えば、車内LAN32を通じて他の制御装置から異常信号が制御装置1へ入力された場合に、その異常信号入力に起因して発生するタスクが、非同期タスクの具体例として挙げられる。非同期タスクが発生したと判定された場合、続くステップS21において、その発生した非同期タスクが蓄積キューQ2にエンキューされる。続くステップS22では、OSキューQ1にエンキューされている非同期タスクがあるか否かを判定する。非同期タスクなしと判定された場合、続くステップS23において、1つの非同期タスクが、蓄積キューQ2からデキューされてOSキューQ1へエンキューされる。つまり、1つの非同期タスクが蓄積キューQ2からOSキューQ1へ移動される。OSキューQ1にエンキューされている非同期タスクがあると判定された場合には、上記移動が禁止される。
図6は、OSキューQ1をデキューするための処理フローを示しており、先ずステップS30では、実行中のタスクがあるか否かが判定される。実行中タスクなしと判定された場合、続くステップS31において、OSキューQ1にエンキューされているタスクがあるか否かが判定される。タスクありと判定された場合、続くステップS32において、OSキューQ1に最初にエンキューされたタスクが、OSキューQ1からデキューされて起動される。
図7は、蓄積キューQ2をデキューするための処理フローを示しており、先ずステップS40では、非同期タスクの実行が完了したか否かが判定される。実行完了と判定された場合、続くステップS41において、蓄積キューQ2にエンキューされている非同期タスクがあるか否かが判定される。タスクありと判定された場合、続くステップS42において、1つの非同期タスクが、蓄積キューQ2からデキューしてOSキューQ1へエンキューされて移動される。
以上に説明した図4~図7の制御を実行することで、図3に例示されるように、時間同期タスク(10)および非同期タスク(1)~(4)の実行順序が制御される。なお、ステップS32の処理を実行している時のマイコン10は、OSキューQ1にエンキューされているタスクを、エンキュー順序およびタスク優先度に従って実行させる「実行制御部」に相当する。ステップS21の処理を実行している時のマイコン10は、非同期タスクを、OSキューQ1へのエンキューに先立ち蓄積キューQ2へエンキューして蓄積させる「蓄積制御部」に相当する。ステップS23、S42の処理を実行している時のマイコン10は、蓄積キューQ2にエンキューされている非同期タスクを、蓄積キューQ2からデキューしてOSキューQ1へエンキューする「蓄積管理部」に相当する。また、マイコン10が「タスク管理装置」を提供する。
<作用効果>
以下、上述した構成を備えることによる効果について、図15を参照しつつ、本実施形態の比較例としてのタスク管理装置と比較しながら説明する。この比較例は、上述した蓄積キューQ2が廃止されたタスク管理装置であり、発生した非同期タスクは、蓄積キューQ2に蓄積されることなく発生時点でOSキューQ1にエンキューされる。そのため、時間同期タスク(10)の実行期間中に先述した4つの非同期タスク(1)~(4)が発生した場合、これらの非同期タスク(1)~(4)が順次実行された後に、次回の時間同期タスク(10)の実行が開始される。よって、時間同期タスク(10)の起動遅延時間Taが長くなる。
なお、時間同期タスクの優先度を非同期タスクの優先度より高く設定すれば、インターバル期間中に非同期タスクが大量発生するといった図15の状況であっても、実行中の非同期タスク(2)を中断させて時間同期タスク(10)が実行されることになる。よって、時間同期タスク(10)の起動遅延は解消される。しかしながら、非同期タスク(2)を中断させることに起因して、非同期タスク(2)で処理されるデータと時間同期タスクで処理されるデータとの不整合が生じるといった、タスク干渉の問題が生じ得る。
これに対し、本実施形態に係るタスク管理装置は、実行制御部、蓄積制御部および蓄積管理部を備える。そのため、図3に示す通り、非同期タスク(3)(4)よりも後に発生した次回の時間同期タスク(10)の実行が、それら非同期タスク(3)(4)よりも前に開始される。したがって、時間同期タスクの優先度を非同期タスクの優先度より高くすることなく、非同期タスクよりも後に発生した時間同期タスクを、その非同期タスクよりも先にOSキューQ1へエンキューできる。よって、実行中の非同期タスクの中断に起因したタスク干渉を招くことなく、時間同期タスクの起動遅延時間Taを短くできる。
さらに本実施形態では、蓄積管理部は、OSキューQ1から非同期タスクがデキューされる毎に、蓄積キューQ2に蓄積されている非同期タスクが、OSキューQ1へ1つずつエンキューされる。そのため、複数ずつエンキューさせる場合に比べて、起動遅延時間Taをより一層短くできる。
例えば、非同期タスクをOSキューQ1へ2つずつエンキューさせる場合には、1つ目の非同期タスクの実行中に時間同期タスクが発生すると、起動遅延時間Taは次のように長くなる。すなわち、1つ目の非同期タスクの実行が完了した後に、既に発生している時間同期タスクを実行できず、2つ目の非同期タスクを実行させる。そして、これら2つの時間同期タスクの実行が完了するのを待って、時間同期タスクが実行開始される。これに対し、1つずつエンキューさせる場合には、2つ目の非同期タスクよりも先に時間同期タスクが実行されるので、その分だけ起動遅延時間Taが短縮される。
さらに本実施形態では、RTOS10aとは別の階層(ミドルウェア)の逐次実行ソフトが、蓄積キューQ2の記憶領域を管理している。そのため、RTOS10aの機能へ変更させることなく逐次実行ソフトを追加することで、蓄積キューQ2に非同期タスクを溜めるといった機能が追加され得る。
(第2実施形態)
上記第1実施形態では、蓄積キューQ2にエンキューされている非同期タスクは、OSキューQ1から非同期タスクがデキューされる毎に、OSキューQ1へ1つずつ移動される。これに対し本実施形態では、上記移動の数(所定数)が可変設定される。
具体的には、先述した図5および図7の処理を図8および図9の処理に変更することで、上述した可変設定が実現されている。すなわち、図5のステップS23は、図8のステップS23A、S23B、S23Cに変更され、図7のステップS42は、図9のステップS42A、S42B、S42Cに変更されている。
図8のステップS23Aでは、蓄積キューQ2から1回でデキューされる所定数が、条件に応じて設定される。例えば、マイコン10の処理負荷が大きい場合であるほど、上記所定数は多い数に設定される。より具体的には、時間同期タスクおよび非同期タスクを実行する処理の負荷が大きいほど、上記所定数は多い数に設定される。或いは、制御装置1に電源投入されて制御装置1が起動を開始してから所定時期までの期間では、その期間以降に比べて、上記所定数は少ない数(例えば1つ)に設定される。例えば上記所定時期は、制御装置1の起動開始後、回転角センサからの出力信号が制御装置1へ最初に入力された時期である。
続くステップS23Bでは、蓄積キューQ2に所定数以上の非同期タスクがあるか否かが判定される。所定数以上あると判定された場合、続くステップS23Cにおいて、ステップS23Aで設定された所定数の非同期タスクが、蓄積キューQ2からデキューされ、OSキューQ1にエンキューされる。
なお、図9のステップS42A、S43BおよびS43Cによる各処理は、図8のステップS23A、S23BおよびS23Cによる各処理と同じ内容である。ステップS23A、S42Aの処理を実行している時のマイコン10は、上記所定数を条件に応じて可変設定する「エンキュー数設定部」に相当する。
<作用効果>
以上により、本実施形態によれば、マイコン10の処理負荷が大きいほど、上記所定数が多い値に設定される。そして、1回で移動させる非同期タスクの数が多いほど、その移動に伴い生じるマイコン10の処理負荷は軽くなる。この点を鑑み、本実施形態によれば、タスク実行処理等でマイコン10の処理負荷が大きい場合であるほど、非同期タスクの移動に伴い生じる処理負荷が小さくなる。そのため、タスク実行とタスク移動の全体で生じる処理負荷が軽減される。
(第3実施形態)
上記第1実施形態では、蓄積キューQ2にエンキューされている非同期タスクは、OSキューQ1に移動されてから実行される。これに対し本実施形態では、蓄積キューQ2にエンキューされている非同期タスクの実行を要求する実行要求タスクが生成され、その実行要求タスクがOSキューQ1にエンキューされる。そして、実行要求タスクがOSキューQ1からデキューされて実行されることにより、蓄積キューQ2にエンキューされている非同期タスクは、OSキューQ1に移動されることなく実行される。
次に、図10を用いて、上述したタスクの実行順序管理の一例を説明する。
t10時点で発生した時間同期タスク(10)は、直ちにOSキューQ1へエンキューされ、直ちにCPU11に割り付けられて実行される。この時間同期タスク(10)の実行開始時点t11から実行終了時点t12までの実行期間中に、発生した4つの非同期タスク(1)~(4)は、発生した時点で直ちに蓄積キューQ2へエンキューされる。
非同期タスク(1)が蓄積キューQ2へエンキューされた時点では、実行可能状態である他の非同期タスクが1つもOSキューQ1にエンキューされていない状態である。そのため、蓄積キューQ2へエンキューされた非同期タスク(1)の実行を要求する実行要求タスク(q)が直ちに生成され、OSキューQ1にエンキューされる。
その後、時間同期タスク(10)の実行終了時点t12で、OSキューQ1にエンキューされている実行要求タスク(q)が直ちにデキューされ、CPU11に割り付けられて実行される。これにより、蓄積キューQ2へエンキューされている非同期タスク(1)が蓄積キューQ2からデキューされて実行される。
その後、非同期タスク(1)の実行終了時点t13では、他のタスクが1つもOSキューQ1にエンキューされていない状態である。そのため、実行要求タスク(q)が直ちに生成されてOSキューQ1にエンキューされ、その後直ちに実行される。これにより、蓄積キューQ2へエンキューされている非同期タスク(2)が蓄積キューQ2からデキューされて実行される。
次の時間同期タスク(10)は、非同期タスク(2)の実行期間中のt20時点で発生し、直ちにOSキューQ1へエンキューされる。このエンキュー時点では、非同期タスク(2)が実行状態である。そのため、時間同期タスク(10)は、実行可能状態でOSキューQ1に保持される。
その後、非同期タスク(2)の実行終了時点t21では、実行要求タスク(q)がOSキューQ1にエンキューされていない状態である。そのため、実行要求タスク(q)が直ちに生成されてOSキューQ1にエンキューされる。さらに、非同期タスク(2)の実行終了時点t21では、OSキューQ1にエンキューされている時間同期タスク(10)が直ちにデキューされて実行される。
要するに、非同期タスク(1)の実行期間中には、以降の非同期タスク(2)(3)(4)は、OSキューQ1にエンキューされずに蓄積キューQ2に蓄積される。その蓄積期間中に発生した時間同期タスク(10)、つまり非同期タスク(2)(3)(4)より後に発生した時間同期タスク(10)は、非同期タスク(3)(4)より先に実行される。時間同期タスク(10)の発生時点t20から実行開始時点t21までの時間が、時間同期タスク(10)の起動遅延時間Taに相当する。
その後、時間同期タスク(10)の実行終了時点t22で、OSキューQ1にエンキューされている実行要求タスク(q)が直ちに実行される。これにより、蓄積キューQ2へエンキューされている非同期タスク(3)が蓄積キューQ2からデキューされて実行される。
その後、非同期タスク(3)の実行終了時点t23では、実行要求タスク(q)がOSキューQ1にエンキューされていない状態である。そのため、実行要求タスク(q)が直ちに生成されてOSキューQ1にエンキューされて実行され、この実行により、非同期タスク(4)が蓄積キューQ2からデキューされて実行される。
次に、上述したタスク実行順序を制御するための処理手順について、第1実施形態に係る図4~図7との相違点について説明する。
図4および図6の処理内容は、本実施形態でも同じである。図5および図7の処理を図11および図12の処理に変更することで、上述した実行要求タスク生成の制御が実現されている。すなわち、図5のステップS22、S23は、図11のステップS230、S230に変更され、図7のステップS42は、図12のステップS420に変更されている。
図11のステップS220では、OSキューQ1に実行要求タスクがあるか否かが判定される。実行要求タスクがないと判定された場合、次のステップS230において、実行要求タスクを生成し、生成した実行要求タスクをOSキューQ1にエンキューする。実行要求タスクとは、蓄積キューQ2に蓄積されている1つの非同期タスクについて実行を要求するタスクのことである。なお、図12のステップS420による処理は、図11のステップS230による処理と同じ内容である。
要するに、ステップS230、S420の処理によれば、OSキューQ1にエンキューされているタスクが存在せず、かつ、蓄積キューQ2に非同期タスクが蓄積されている場合に、上記実行要求タスクが生成される。そして、この実行要求タスクは、OSキューQ1にエンキューされる。このようなステップS230、S420の処理を実行している時のマイコン10は、実行要求タスクを生成してOSキューQ1にエンキューする「非同期タスク制御部」に相当する。
<作用効果>
以上により、本実施形態によっても、上記第1実施形態と同様の効果が奏される。すなわち、本実施形態に係るタスク管理装置は、実行制御部、蓄積制御部および非同期タスク制御部を備える。そのため、図10に示す通り、非同期タスク(3)(4)よりも後に発生した次回の時間同期タスク(10)の実行が、それら非同期タスク(3)(4)よりも前に開始される。したがって、時間同期タスクの優先度を非同期タスクの優先度より高くすることなく、非同期タスクよりも後に発生した時間同期タスクを、その非同期タスクよりも先にOSキューQ1へエンキューできる。よって、実行中の非同期タスクの中断に起因したタスク干渉を招くことなく、時間同期タスクの起動遅延時間Taを短くできる。
さらに本実施形態では、非同期タスク制御部により生成される実行要求タスクは、OSキューQ1に蓄積されている1つの非同期タスクについて実行を要求するタスクである。そのため、複数ずつ実行させる場合に比べて、起動遅延時間Taをより一層短くできる。
例えば、実行要求タスクが非同期タスクを2つずつ実行させる場合には、1つ目の非同期タスクの実行中に時間同期タスクが発生すると、起動遅延時間Taは次のように長くなる。すなわち、1つ目の非同期タスクの実行が完了した後に、既に発生している時間同期タスクを実行できず、2つ目の非同期タスクを実行させる。そして、これら2つの時間同期タスクの実行が完了するのを待って、時間同期タスクが実行開始される。これに対し、1つずつエンキューさせる場合には、2つ目の非同期タスクよりも先に時間同期タスクが実行されるので、その分だけ起動遅延時間Taが短縮される。
(第4実施形態)
上記第3実施形態では、蓄積キューQ2にエンキューされている非同期タスクは、実行要求タスクが実行される毎に、1つずつデキューされて実行される。これに対し本実施形態では、実行要求タスクが実行される毎に実行される非同期タスクの数(所定数)が可変設定される。
具体的には、先述した図11および図12の処理を図13および図14の処理に変更することで、上述した可変設定が実現されている。すなわち、図11のステップS230は、図13のステップS230A、S230B、S230Cに変更され、図12のステップS420は、図14のステップS420A、S420B、S420Cに変更されている。
図13のステップS230Aでは、上記所定数が条件に応じて設定される。例えば、マイコン10の処理負荷が大きい場合であるほど、上記所定数は多い数に設定される。より具体的には、時間同期タスクおよび非同期タスクを実行する処理の負荷が大きいほど、上記所定数は多い数に設定される。或いは、制御装置1に電源投入されて制御装置1が起動を開始してから所定時期までの期間では、その期間以降に比べて、上記所定数は少ない数(例えば1つ)に設定される。例えば上記所定時期は、制御装置1の起動開始後、回転角センサからの出力信号が制御装置1へ最初に入力された時期である。
続くステップS230Bでは、蓄積キューQ2に所定数以上の非同期タスクがあるか否かが判定される。所定数以上あると判定された場合、続くステップS230Cにおいて、ステップS230Aで設定された所定数の非同期タスクを実行する実行要求タスクが生成される。そして、この実行要求タスクは、OSキューQ1にエンキューされる。このようなステップS230C、S420Cの処理を実行している時のマイコン10は、実行要求タスクを生成してOSキューQ1にエンキューする「非同期タスク制御部」に相当する。
なお、図14のステップS420A、S430BおよびS430Cによる各処理は、図13のステップS230A、S230BおよびS230Cによる各処理と同じ内容である。ステップS230A、S420Aの処理を実行している時のマイコン10は、上記所定数を条件に応じて可変設定する「実行要求数設定部」に相当する。
<作用効果>
以上により、本実施形態によれば、マイコン10の処理負荷が大きいほど、上記所定数が多い値に設定される。そして、実行要求タスクによる1回の起動で実行させる非同期タスクの数が多いほど、マイコン10の処理負荷は軽くなる。この点を鑑み、本実施形態によれば、タスク実行処理等でマイコン10の処理負荷が大きい場合であるほど、実行要求タスクの実行に伴い生じる処理負荷が小さくなるので、マイコン10の処理負荷が軽減される。
(他の実施形態)
以上、本開示の複数の実施形態について説明したが、各実施形態の説明において明示している構成の組み合わせばかりではなく、特に組み合わせに支障が生じなければ、明示していなくても複数の実施形態の構成同士を部分的に組み合わせることができる。そして、複数の実施形態及び変形例に記述された構成同士の明示されていない組み合わせも、以下の説明によって開示されているものとする。
上記第1実施形態では、OSキューQ1から非同期タスクがデキューされる毎に、蓄積キューQ2に蓄積されている非同期タスクが、OSキューQ1へ1つずつエンキューされる。これに対し、同様の状況下における非同期タスクが、OSキューQ1へ複数ずつまとめてエンキューされてもよい。
上記第3実施形態では、実行要求タスクは、OSキューQ1に蓄積されている1つの非同期タスクについて実行を要求するタスクである。これに対し、実行要求タスクは、OSキューQ1に蓄積されている複数の非同期タスクについて実行を要求するタスクであってもよい。
上記第1実施形態は次のように変形されてもよい。すなわち、蓄積キューQ2にエンキューされている非同期タスクは、OSキューQ1への非同期タスクの登録数が所定登録数以下であることを条件として、OSキューQ1へエンキューされてもよい。その所定登録数は、複数であっても1つであってもよい。なお、所定登録数が少なく設定されているほど、時間同期タスクの起動遅延抑制の効果が大きくなる。
上記第1実施形態では、図3に例示する状況において、非同期タスク(2)を蓄積キューQ2からOSキューQ1へ移動させるタイミングは、非同期タスク(1)の実行終了時点である。これに対し、上記タイミングは、非同期タスク(1)がOSキューQ1からデキューされた時点、つまり非同期タスク(1)の実行開始時点t12であってもよい。但し、上記タイミングが非同期タスク(1)の実行終了時点である方が、時間同期タスクの起動遅延抑制の効果が大きくなる。
10…マイコン(タスク管理装置)、Q1…タスク登録部、Q2…タスク蓄積部、S21…蓄積制御部、S32…実行制御部、S23、S23C、S42、S42C…蓄積管理部、S230、S230C、S420、S420C…非同期タスク制御部、S23A、S42A…エンキュー数設定部、S230A、S420A…実行要求数設定部

Claims (5)

  1. 一定の時間周期で起動要求される時間同期タスク、および前記時間周期とは無関係に起動要求される非同期タスクの、実行順序を管理するタスク管理装置において、
    タスク登録部(Q1)にエンキューされている前記時間同期タスクおよび前記非同期タスクを、エンキュー順序およびタスク優先度に従って実行させる実行制御部(S32)と、
    前記非同期タスクを、前記タスク登録部へのエンキューに先立ちタスク蓄積部(Q2)へエンキューして蓄積させる蓄積制御部(S21)と、
    前記タスク蓄積部にエンキューされている前記非同期タスクを、前記タスク蓄積部からデキューして前記タスク登録部へエンキューする蓄積管理部(S23、S23C、S42、S42C)と、を備え
    前記蓄積管理部は、前記タスク登録部から前記非同期タスクがデキューされる毎に、前記タスク蓄積部に蓄積されている前記非同期タスクを、前記タスク登録部へ所定数ずつエンキューさせ、
    前記所定数を条件に応じて可変設定するエンキュー数設定部(S23A、S42A)を備えるタスク管理装置。
  2. 一定の時間周期で起動要求される時間同期タスク、および前記時間周期とは無関係に起動要求される非同期タスクの、実行順序を管理するタスク管理装置において、
    タスク登録部(Q1)にエンキューされている前記時間同期タスクおよび前記非同期タスクを、エンキュー順序およびタスク優先度に従って実行させる実行制御部(S32)と、
    前記非同期タスクをタスク蓄積部(Q2)へエンキューして蓄積させる蓄積制御部(S21)と、
    前記タスク登録部にエンキューされているタスクが存在せず、かつ、前記タスク蓄積部に前記非同期タスクが蓄積されている場合に、前記タスク蓄積部にエンキューされている前記非同期タスクの実行を要求する実行要求タスクを生成し、前記実行要求タスクを前記タスク登録部にエンキューする非同期タスク制御部(S230、S230C、S420、S420C)と、を備えるタスク管理装置。
  3. 前記実行要求タスクは、前記タスク蓄積部に蓄積されている1つの前記非同期タスクについて実行を要求するタスクである請求項に記載のタスク管理装置。
  4. 前記実行要求タスクは、前記タスク蓄積部に蓄積されている複数の前記非同期タスクについて実行を要求するタスクである請求項に記載のタスク管理装置。
  5. 前記実行要求タスクは、前記タスク蓄積部に蓄積されている所定数の前記非同期タスクについて実行を要求するタスクであり、
    前記所定数を条件に応じて可変設定する実行要求数設定部(S230A、S420A)を備える請求項に記載のタスク管理装置。
JP2019025720A 2019-02-15 2019-02-15 タスク管理装置 Active JP7147615B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019025720A JP7147615B2 (ja) 2019-02-15 2019-02-15 タスク管理装置
US16/750,362 US11221878B2 (en) 2019-02-15 2020-01-23 Task management apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019025720A JP7147615B2 (ja) 2019-02-15 2019-02-15 タスク管理装置

Publications (2)

Publication Number Publication Date
JP2020135214A JP2020135214A (ja) 2020-08-31
JP7147615B2 true JP7147615B2 (ja) 2022-10-05

Family

ID=72043281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019025720A Active JP7147615B2 (ja) 2019-02-15 2019-02-15 タスク管理装置

Country Status (2)

Country Link
US (1) US11221878B2 (ja)
JP (1) JP7147615B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12020516B2 (en) 2019-12-20 2024-06-25 Boe Technology Group Co., Ltd. Method and device for processing product manufacturing messages, electronic device, and computer-readable storage medium
CN112231095B (zh) * 2020-09-02 2023-03-28 北京航空航天大学 基于机器学习的面向资源管理的云任务细粒度分类方法
CN114945817A (zh) * 2020-10-30 2022-08-26 京东方科技集团股份有限公司 基于缺陷检测的任务处理方法、装置及设备及存储介质
KR102497258B1 (ko) * 2020-12-16 2023-02-06 현대오토에버 주식회사 차량용 운영체제의 태스크 실행 시스템 및 방법
CN112988352A (zh) * 2021-03-10 2021-06-18 中国建设银行股份有限公司 一种用于切换扫描模式的方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008136254A (ja) 2008-03-05 2008-06-12 Yamaha Corp 通信装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5119374A (en) * 1990-05-29 1992-06-02 Advanced Micro Devices, Inc. Method of and system for implementing multiple levels of asynchronous priority in FDDI networks
EP0537721B1 (en) 1991-10-15 1998-11-25 Hewlett-Packard Company Hardware-configured operating system kernel for a multitasking processor
JP2000013762A (ja) 1998-06-19 2000-01-14 Sony Corp デジタル伝送方法およびデジタル放送受信機
JP2000137621A (ja) 1998-10-30 2000-05-16 Toshiba Corp イベント管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP3882760B2 (ja) 2003-02-18 2007-02-21 株式会社デンソー タスク間通信方法、プログラム、記録媒体、電子機器
KR100800881B1 (ko) * 2006-08-11 2008-02-04 삼성전자주식회사 동기식 이더넷 시스템에서 서비스 품질 보장 방법 및 장치
US20120324462A1 (en) * 2009-10-31 2012-12-20 Rutgers, The State University Of New Jersey Virtual flow pipelining processing architecture
JP6365367B2 (ja) 2015-03-17 2018-08-01 株式会社デンソー 電子制御装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008136254A (ja) 2008-03-05 2008-06-12 Yamaha Corp 通信装置

Also Published As

Publication number Publication date
JP2020135214A (ja) 2020-08-31
US20200264922A1 (en) 2020-08-20
US11221878B2 (en) 2022-01-11

Similar Documents

Publication Publication Date Title
JP7147615B2 (ja) タスク管理装置
JP5816572B2 (ja) 車両用制御装置
US20050216635A1 (en) Interrupt request program and microcomputer
JP2004362100A (ja) 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
US7590990B2 (en) Computer system
JP5817505B2 (ja) 内燃機関の制御装置
WO2014061141A1 (ja) 並列計算装置
JP4985662B2 (ja) プログラム、及び制御装置
JP2009163658A (ja) 入出力制御装置およびそのファームウェア更新方法
US10853133B2 (en) Method and apparatus for scheduling tasks to a cyclic schedule
JP4419943B2 (ja) Cpu間データ転送装置
JP6519515B2 (ja) マイクロコンピュータ
US20050160425A1 (en) Limitation of the response time of a software process
JP7204443B2 (ja) 車両制御装置およびプログラム実行方法
Mishra et al. Dynamic task scheduling on multicore automotive ECUs
JP2002099434A (ja) 制御装置
JP2016184315A (ja) 電子制御装置
Negrean et al. Mastering timing challenges for the design of multi-mode applications on multi-core real-time embedded systems
JP2010196619A (ja) 内燃機関の制御装置
JP2021105368A (ja) エンジン制御装置
JP2020091540A (ja) 情報処理装置
JP2013161363A (ja) 電子制御装置、プログラム実行方法
WO2019044226A1 (ja) アクセス制御装置
Hounsinou et al. Work-in-Progress: Hardware implementation of a multi-mode-aware mixed-criticality scheduler
Hounsinou et al. Hardware implementation of a multi-mode-aware mixed-criticality scheduler: work-in-progress

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210716

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220803

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220905

R151 Written notification of patent or utility model registration

Ref document number: 7147615

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151