JP2011198346A - スケジューリング方法,スケジューリングプログラム,スケジューリング装置 - Google Patents
スケジューリング方法,スケジューリングプログラム,スケジューリング装置 Download PDFInfo
- Publication number
- JP2011198346A JP2011198346A JP2010224215A JP2010224215A JP2011198346A JP 2011198346 A JP2011198346 A JP 2011198346A JP 2010224215 A JP2010224215 A JP 2010224215A JP 2010224215 A JP2010224215 A JP 2010224215A JP 2011198346 A JP2011198346 A JP 2011198346A
- Authority
- JP
- Japan
- Prior art keywords
- task
- time
- execution right
- priority
- tasks
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 221
- 238000012545 processing Methods 0.000 claims description 44
- 238000012217 deletion Methods 0.000 claims description 33
- 230000037430 deletion Effects 0.000 claims description 33
- 239000000725 suspension Substances 0.000 claims description 23
- 230000007717 exclusion Effects 0.000 claims description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 43
- 230000006870 function Effects 0.000 description 29
- 238000012937 correction Methods 0.000 description 7
- 230000007423 decrease Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000012552 review Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000000737 periodic effect Effects 0.000 description 5
- 230000001771 impaired effect Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012806 monitoring device Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling 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
【解決手段】A〜Cタスクは、1msの各タイムスライス(TS)において、個別に設定された1TS内動作時間(0.2ms,0.3ms,0.3ms)にわたり必ず実行権が付与される。一方、D,Eタスクは、A〜Cタスクの動作終了後からTSの終了までの空き時間(0.2ms)を利用したスケジューリングが行われる。D,Eタスクには、1TS内動作時間(0.2ms,0.1ms)と、TSの終了時に、該TSにて1TS内動作時間にわたり動作したかに応じて更新される優先度が設けられており、上記空き時間において、優先度の高いものから順に1TS内動作時間にわたり実行権が付与される。
【選択図】図12
Description
ところで、動作中のタスクにて何らかの条件が成立した場合には、現タイムスライスにて、これ以上、該タスクの動作を継続する必要が無くなるといった場合が想定される。
そこで、請求項3に記載のスケジューリング方法では、タスクは、該タスクに対し予め定められたイベント待ち条件が成立すると、付与されている実行権を自発的に手放すと共に、該タスクに対し予め定められたイベントの発生を待ち、実行権が付与されているタスクがイベントの発生を待ち始めると、該タスクを実行権の付与の対象から除外して待機中とする除外ステップと、イベントが発生すると、待機中のタスクを実行権の付与の対象として復帰させる復帰ステップと、をさらに有する。そして、特定ステップにおいて、待機中でないタスクを対象として、特定処理を行い、 さらに、除外ステップにてタスクが実行権の付与の対象から除外された時に、特定処理を行う。
すなわち、請求項6に記載されているように、それぞれの非時間保証タスクに設定されている第二優先度は、実行権を付与する優先度を示す固定値である固定優先度と、該非時間保証タスクが、それぞれのタイムスライスにおいて動作が完了しなかった度合いを示す休止度とに基づき算出され、更新ステップにおいて、それぞれの非時間保証タスクについて、現タイムスライスにて該非時間保証タスクの動作が完了したか否かに応じて、該非時間保証タスクに設定されている第二優先度に係る休止度を更新することにより、該第二優先度を更新しても良い。
すなわち、請求項8に記載のスケジューリング方法のように、スケジューリングの対象となっているタスクを、スケジューリングの対象から削除する削除ステップと、スケジューリングの対象となっていないタスクを、スケジューリングの対象として新たに追加する追加ステップと、をさらに有し、タイムスライス設定ステップと、稼働時間設定ステップとは、定期的なタイミングで実施されても良い。
こうすることにより、各タスクの動作が一巡した時点でタイムスライスや各タスクの稼働時間を設定することができ、タスクの動作時間を適切に確保することが可能となる。
また、請求項11に記載されているように、タスクのうちの少なくともいずれか一つは、ある装置において実現される機能を再現するためのプログラムである仮想マシンとして構成されていても良い。
以上、請求項1〜11に記載されているスケジューリング方法について述べたが、このスケジューリング方法をコンピュータで実現させるための仮想マシン制御プログラムとして市場に流通させても良い(請求項12)。また、このスケジューリング方法を実現するためのスケジューリング装置として市場に流通させても良い(請求項13)。このような場合であっても、上述したスケジューリング方法と同様の効果を得ることができる。
なお、タスクとは、上述した仮想マシンであっても良いし、所定の機能を実現するためのアプリケーションであっても良い。
すなわち、上述のスケジューリング方法は、スケジューリングの対象となっているタスクを、該対象から削除する削除ステップと、スケジューリングの対象となっていないタスクを、該対象として新たに追加する追加ステップと、をさらに有し、タイムスライス設定ステップと、稼働時間設定ステップとは、定期的なタイミングで実施されてもよい。
こうすることにより、各タスクの動作が一巡した時点でタイムスライスや各タスクの稼働時間を設定することができ、タスクの動作時間を適切に確保することが可能となる。
そこで、上述のスケジューリング方法において、スケジューリングの対象となるタスクのうちの少なくともいずれか一つは、リアルタイム性が要求されるものであり、該タスクにおいて、最長動作周期とは、リアルタイム性を確保するうえで許容される最長の動作周期であり、必要動作時間とは、ぞれぞれの最長動作周期において、リアルタイム性を確保するために最低限必要となる動作時間であっても良い。
なお、上述のスケジューリング方法をコンピュータで実現させるためのスケジューリングプログラムや、該方法を実現する装置としてとして市場に流通させても良い。このような場合であっても、上述したスケジューリング方法と同様の効果を得ることができる。
[構成の説明]
第一実施形態の車載装置は、自車両と先行車両との距離を監視し、先行車両との車間距離が狭まった場合には、車速を低下させて車間距離を確保するACC(Adaptive Cruise Control)機能と、自車両が走行中に道路の車線からはみだしそうになった場合に、ドライバへの警告や、ステアリング操作の補助を行うLKA(Lane Keeping Assist)機能と、カメラやレーダ等により自車両周辺を監視し、自車両周辺の障害物を検知してドライバに報知する周辺監視機能と、自車両の現在位置の報知や目的地までの経路案内を行うカーナビ機能と、音楽コンテンツや映像コンテンツの再生や、各種放送の視聴を行うためのオーディオ機能とを有している。
また、仮想CPU14は、APL11,OS12等のバイナリコードを解析し、これらの稼動させるプログラムである。
制御管理部60は、A〜Eタスク10〜50に対し順次実行権を付与し、これらのタスクのスケジューリングを行うスケジューリング部61と、タスク(タスクが仮想マシンとして構成されている場合であれば該タスクの仮想デバイス)からの指示に応じて物理デバイス120を制御すると共に、物理デバイス120からの信号をタスク(或いは該タスクの仮想デバイス)に通知するデバイス制御部62と、を有している。
次に、第一実施形態の制御プログラム1の動作について説明する。
(1)概要について
(a)スケジューリングの概要について
まず、スケジューリング部61にて行われる各タスクのスケジューリングの概要について説明する。
次に、タスクの挙動や動作状態について説明する。
スケジューラ設定部61bによりタスクに実行権が付与されると、スケジューラ実行部61cにより該タスクの動作が開始される。このとき、実行中のタスクは、予め定められた放棄条件が成立した場合には自発的に実行権を放棄する。なお、放棄条件とは、例えば、物理デバイス120から動作中のタスクに特定の信号が入力される等といったものでも良い。ここで、仮にこのタスクが仮想マシンである場合には、該仮想マシンの仮想デバイスが、デバイス制御部62を経由して物理デバイス120から特定の信号を受け取ることで、該タスクへの特定の信号の入力が検知される。
次に、TSの設定等について説明する。
図2に記載されているように、車載装置100は、図示しない携帯電話等を介して外部サーバ150と無線通信を行い、外部サーバ150から新たなタスクをダウンロードして記憶部に記憶させると共に、ダウンロードしたタスクを、スケジューリングの対象に追加することができる。また、ユーザからの指示に応じて、記憶部に記憶されているタスクをスケジューリングの対象として新たに追加することや、スケジューリングの対象となっているタスクを対象から削除することができる。そして、スケジューリングの対象となるタスクの追加或いは削除が行われた場合には、TSや、DSの対象のタスクの1TS内動作時間が設定される。
次に、A〜Eタスクの1TS内動作時間等を示すタスク管理テーブルについて説明する。図3には、タスク管理テーブルの一例が記載されている。なお、このタスク管理テーブルは、スケジューリング部61のスケジューラ設定部61bが有している。
次に、実行権を付与するタスクを定めるサブルーチンである実行タスク特定処理について、図4に記載のフローチャートを用いて説明する。本処理はスケジューリング部61にて行われる処理であり、基準サイクルが到来した際(つまり、新たなTSが開始された際)や、タスクが実行完了状態やイベント待ち状態となった際等にコールされる。なお、以後、スケジューリング部61を構成する各部位にてどのような処理が行われるかという観点で説明を行うが、これらの処理は、車載装置100のCPU110が、プログラムである上記部位を実行することにより実現されるということを、念のため付言しておく。
次に、TSにおける動作時間が1TS内動作時間に達したタスクから実行権を剥奪すると共に、他のタスクに対し新たに実行権を付与する実行完了処理について、図5(a)のフローチャートを用いて説明する。なお、本処理は、各TSにおけるタスクの動作時間が1TS内動作時間に達した際に実行される処理である。
(5)放棄処理について
次に、タスクが実行権を自発的に放棄した際に他のタスクに対し新たに実行権を付与する放棄処理について、図5(b)のフローチャートを用いて説明する。なお、本処理は、実行中状態のタスクにて放棄条件が成立し、スケジューリング部61のタスク状態受付部61aが、該タスクから、自発的に実行権を放棄した旨の通知を受け取った際に実行される処理である。
(6)イベント待ち処理について
次に、イベントの発生を待ち始めたタスクを実行権の付与の対象から除外すると共に、他のタスクに対し新たに実行権を付与するイベント待ち処理について、図5(c)のフローチャートを用いて説明する。なお、本処理は、実行中のタスクにてイベント待ち条件が成立し、タスク状態受付部61aが、該タスクから、イベントの発生を待ち始めた旨の通知を受け取った際に実行される処理である。
(7)イベント発生処理について
次に、予め定められたイベントが発生した際に、該イベントの発生を待つタスクを実行権の付与の対象として復帰させる処理であるイベント発生処理について、図5(d)のフローチャートを用いて説明する。なお、本処理は、イベント待ち状態であるタスクに対応するイベントが発生したことが検知された際に実行される処理である。
次に、新たなTSが開始された際に実行権が付与されているタスクから実行権を剥奪すると共に、DSの対象のタスクに対し新たに実行権を付与するTS経過処理について、図6のフローチャートを用いて説明する。本処理は、新たなTSが開始された際に実行される処理である。
TSS休止度が更新されると、S435に処理が移行される。
S420では、スケジューラ設定部61bによりタスク管理テーブルが参照され、選択中のTSSの対象のタスクの「動作状態」が、実行中状態或いは実行可能状態であるか否かが判定される。そして、肯定判定の場合は(S420:Yes)、S425に処理が移行され、否定判定の場合は(S420:No)、S440に処理が移行される。
TSS休止度が更新されると、S435に処理が移行される。
S435では、スケジューラ設定部61bにより、選択中のタスクについてのタスク管理テーブルにおける「TSS優先度」が更新される。具体的には、該タスクの「TSS固定優先度」が示す値と「TSS休止度」が示す値との和が算出され、「TSS優先度」に設定される。そして、S440に処理が移行される。
次に、TSや、タスク管理テーブルの「1TS内動作時間」等を設定する処理であるスケジューラ初期化処理について、図7に記載のフローチャートを用いて説明する。本処理は、制御プログラム1が起動された場合や、動作させるタスクの追加或いは削除が行われた場合に、スケジューラ設定部61bにて実行される処理である。
すなわち、DSの対象のタスクについては、
1TS内動作時間=(必要動作時間/最長動作時間)×TS
という式を用いて、1TS内動作時間を算出する。なお、(必要動作時間/最長動作時間)×TSに対し所定のマージンを加えた値を1TS内動作時間としても良い。
S515では、スケジューラ設定部61bは、DSの対象のタスクに関して、タスク管理テーブルの「DS優先度」を設定する。具体的には、以下のルールに従い「DS優先度」が設定される。
(a)DSの対象のタスクのうち、最長動作周期が短いタスクから順に高い優先度を設定する。
(b)最長動作周期が同じ場合は、必要動作時間が長いタスクから順に高い優先度を設定する。
(c)最長動作周期,必要動作時間が同一である場合には、タスク管理テーブルにおける先頭側のレコードに対応するタスクから順に高い優先度を設定する。
S520では、スケジューラ設定部61bは、スケジューラ初期化フラグをOFFし、本処理を終了する。
次に、スケジューリングの対象となるタスクを新たに追加する処理であるタスク追加処理について、図8(a)に記載のフローチャートを用いて説明する。本処理は、例えば、ユーザから車載装置100の記憶部に保存されていたタスクの追加が要求された場合や、既に述べたように新たなタスクがダウンロードされた際等に、タスク追加・削除受付部61dにて実行される処理である。
タスクの追加が不可能である場合に移行するS625では、タスク追加・削除受付部61dは、図示しない表示装置等を介してタスクの追加が不可能である旨を報知し、本処理を終了する。
次に、タスクをスケジューリングの対象から削除する処理であるタスク削除処理について、図8(b)に記載のフローチャートを用いて説明する。本処理は、例えば、ユーザの操作や外部からの信号等に応じて、タスク追加・削除受付部61dにて実行される処理である。
(12)定期見直し処理について
次に、タスク管理テーブルの設定を見直す処理である定期見直し処理について、図8(c)に記載のフローチャートを用いて説明する。本処理は、基準サイクルに係るタイミングが到来した際に、スケジューラ設定部61bにて実行される処理である。
[具体例について]
次に、スケジューリング部61によるA〜Eタスクのスケジューリングの具体例について説明する。
まず、Bタスクがイベント待ち状態に遷移した後から、イベントの発生により実行権を付与されるまでのA〜Eタスクの動作について、図9に記載のタイミングチャートと、図10(a)〜(d)に記載のタスク管理テーブルを用いて説明する。なお、TSは1msに設定されているものとする。
次に、Bタスクが実行権を放棄した場合のA〜Eタスクの動作について、図11に記載のタイミングチャートを用いて説明する。なお、ここでは、A〜Eタスクは、図10(a)に記載のタスク管理テーブルに基づきスケジューリングがなされる。
次に、A〜Eタスクの1TS内動作時間の総和がTSを越える場合のA〜Eタスクの動作について、図12に記載のタイミングチャートと、図13(a)〜(d)に記載のタスク管理テーブルを用いて説明する。
次に、スケジューリングの対象となるタスクの追加や削除が行われた場合における、各タスクの実行タイミングについて、図14を用いて説明する。
第一実施形態の制御プログラム1における制御管理部60のスケジューリング部61によれば、DSの対象となるA〜Cタスクについては、各TSにおいて必ず1TS内動作時間にわたり動作させることができ、一定周期あたりの動作時間を保証することができる。また、TSSの対象となるD,Eタスクについては、A〜Cタスクの動作が全て完了した後、次の基準サイクルが到来するまでの期間に順次実行権が付与される。したがって、A〜Eタスクを並行して動作させつつ、A〜Cタスクについてのリアルタイム性を確保することができる。
[構成の説明]
次に、第二実施形態の車載装置について説明する。
(1)概要について
スケジューリング部741のスケジューラ設定部741bは、周期的に到来するタイミングを生成して基準サイクルとすると共に、後述するタスク管理テーブルに基づき、該基準サイクルの1周期であるTSにおいて、A〜Cタスク710〜730に順次実行権を付与することで、これらのタスクを並行して動作させる。
次に、上述のタスク管理テーブルについて説明する。図15(b)には、タスク管理テーブルの一例が記載されている。このタスク管理テーブルは、スケジューリング部741のスケジューラ設定部741bが有している。
次に、タスク管理テーブルに登録されているタスクのスケジューリングについて説明する。
次に、TSや、各タスクに実行権を割り当てる際に用いられるタスク管理テーブルの「1TS内動作時間」等を設定する処理であるスケジューラ初期化処理について、図16に記載のフローチャートを用いて説明する。本処理は、制御プログラム700が起動された場合や、スケジューリングの対象となるタスクの追加或いは削除が行われた場合に、スケジューラ設定部741bにて実行される処理である。
S910では、スケジューラ設定部741bは、サブルーチンである1TS内動作時間設定処理をコールし、タスク管理テーブルに登録されている各タスクの1TS内動作時間を算出する。そして、S915に処理を移行する。
(a)最長動作周期が短いタスクから順に高い優先度を設定する。
(b)最長動作周期が同じ場合は、必要動作時間が長いタスクから順に高い優先度を設定する。
(c)最長動作周期,必要動作時間が同一である場合には、タスク管理テーブルにおける先頭側のレコードに対応するタスクから順に高い優先度を設定する。
S920では、スケジューラ設定部741bは、スケジューラ初期化フラグをOFFし、本処理を終了する。
次に、各タスクの1TS内動作時間を設定するサブルーチンである1TS内動作時間処理について、図17に記載のフローチャートを用いて説明する。
最短動作時間=(必要動作時間/最長動作時間)×TS
また、タスク管理テーブルに登録されている各タスクについて、以下の式を用いて仮動作時間を算出する。
なお、このとき、例えば、TSの数十分の1程度の時間をマージンとして設定し、最長動作周期を、上記最長動作周期の総和にマージンを加えた時間で除算しても良い。
S1010では、スケジューラ設定部741bは、仮動作時間が最短動作時間を下回るタスクを時間不足タスクとし、タスク管理テーブルに登録されている時間不足タスクのうち、対応するレコードが最も先頭側に配置された時間不足タスクを特定する。そして、この時間不足タスクについて、仮動作時間と最短動作時間との差分である不足時間を算出し、S1015に処理を移行する。
次に、スケジューリングの対象となるタスクを新たに追加する処理であるタスク追加処理について、図18に記載のフローチャートを用いて説明する。本処理は、例えば、ユーザから車載装置100の記憶部に保存されていたタスクの追加が要求された場合や、第一実施形態で述べたように新たなタスクがダウンロードされた際等に、タスク追加・削除受付部741aにて実行される処理である。
タスクの追加が不可能である場合に移行するS1120では、タスク追加・削除受付部741aは、図示しない表示装置等を介してタスクの追加が不可能である旨を報知し、本処理を終了する。
第二実施形態では、例えば、ユーザの操作や外部からの信号等に応じて、タスク追加・削除受付部741aにより、第一実施形態と同様のタスク削除処理が行われる。また、基準サイクルに係るタイミングが到来した際に、スケジューラ設定部741bにより、第一実施形態と同様の定期見直し処理が行われる。なお、タスク削除処理,定期見直し処理の内容については、説明を省略する。
第二実施形態の制御プログラム700における制御管理部740のスケジューリング部741では、最長動作周期を最長動作周期総和時間で除算した値にTSを乗算した時間を各タスクの仮動作時間とするため、余り時間を生じさせること無くTSを分割して各タスクに割り振ることができる。そして、仮動作時間が最短動作時間を上回るタスクから仮動作時間が最短動作時間を下回るタスクに仮動作時間を分けることにより、各タスクに最短動作時間以上の時間が割り当てられる。このため、いずれのタスクも実行されない空白期間を生じさせること無く、TSを各タスクの動作時間として割り振ることができ、より効率良くタスクを稼動させることができる。
(1)第一実施形態のTSSでは、DSの終了後からTSの終了までの期間に、TSSの対象の各タスクに1回ずつ実行権が付与されるが、該期間においてこれらのタスクに対し繰り返し実行権を付与し、TSが終了するまでTSSの対象のタスクを常時動作させても良い。こうすることにより、各TSにおいていずれのタスクも動作していない空白期間が生じてしまうことを防ぐことができ、より効率良くタスクを動作させることができる。
(a)タスク管理テーブルに登録されているタスクの最短動作時間を算出する。
(b)各タスクの最短動作時間の総和とTSとの差分である余り時間を算出する。なお、このとき、例えば、TSの数十分の1程度の時間をマージンとして設定し、各タスクの最短動作時間の総和とTSとの差分からマージンを減じた時間を、余り時間としても良い。
(c)余り時間を、例えば、タスク管理テーブルに登録されているタスクの数で均等に分割し、各タスクについて、分割した時間と最短動作時間とを加算した時間を1TS内動作時間として設定する。
(4)また、第一実施形態では、TSSの対象のタスクが1TS内動作時間にわたり動作したか否かに応じてTSS休止度が変更され、TSS固定優先度とTSS休止度との和によりTSS優先度が算出されるが、TSS優先度の算出方法は、これに限定されることは無い。例えば、TSS休止度を更新するのではなく、TSSの対象のタスクが1TS内動作時間にわたり動作したか否かに応じてTSS優先度を増加或いは減少させても良い。このような場合であっても、同様の効果を得ることができる。
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。
実行完了処理のS305が完了ステップに、放棄処理のS315が放棄ステップに、イベント待ち処理のS325が除外ステップに、イベント発生処理のS335が復帰ステップに相当する。
また、スケジューラ初期化処理のS505がタイムスライス設定ステップに、S510が稼働時間設定ステップに相当する。
また、タスク削除処理のS640が削除ステップに相当する。
Claims (13)
- 周期的に到来するタイミングを生成して基準サイクルとし、該基準サイクルの1周期であるタイムスライスにおいて、複数のタスクに順次実行権を付与する装置におけるスケジューリング方法であって、
それぞれの前記タスクには稼働時間が設定されており、前記タスクとして、それぞれの前記タイムスライスで前記稼働時間にわたり必ず前記実行権が付与される時間保証タスクと、それぞれの前記タイムスライスで前記稼働時間にわたり前記実行権が付与されるとは限らない非時間保証タスクとが存在し、それぞれの前記時間保証タスクに設定されている前記稼働時間の総和は、前記タイムスライスよりも小さく、
前記時間保証タスクには、前記実行権を付与する優先度である第一優先度が設定されていると共に、前記非時間保証タスクには、前記実行権を付与する優先度である第二優先度が設定されており、
前記タスクに前記実行権を付与した時間が前記稼働時間に達すると、該タスクから前記実行権を剥奪すると共に、最後に到来した前記基準サイクルから始まる前記タイムスライスである現タイムスライスにおける該タスクの動作が完了したものとする完了ステップと、
前記基準サイクルの到来時、或いは前記タスクの動作完了時に、前記現タイムスライスにおいて動作が完了していない前記時間保証タスクが存在する場合には、該時間保証タスクのうち前記第一優先度が最大のものを特定すると共に、該時間保証タスクが存在しない場合には、前記現タイムスライスにて動作が完了していない前記非時間保証タスクのうち、前記第二優先度が最大のものを特定する特定処理を行う特定ステップと、
前記特定ステップにて特定された前記タスクに前記実行権を付与する付与ステップと、
を有することを特徴とするスケジューリング方法。 - 請求項1に記載のスケジューリング方法において、
前記タスクは、該タスクに対し予め定められた放棄条件が成立すると、付与されている前記実行権を自発的に放棄し、
前記タスクが前記実行権を自発的に放棄すると、前記現タイムスライスにおいて、該タスクの動作が完了したものとする放棄ステップをさらに有すること、
を特徴とするスケジューリング方法。 - 請求項1または請求項2に記載のスケジューリング方法において、
前記タスクは、該タスクに対し予め定められたイベント待ち条件が成立すると、付与されている前記実行権を自発的に手放すと共に、該タスクに対し予め定められたイベントの発生を待ち、
前記実行権が付与されている前記タスクが前記イベントの発生を待ち始めると、該タスクを前記実行権の付与の対象から除外して待機中とする除外ステップと、
前記イベントが発生すると、待機中の前記タスクを前記実行権の付与の対象として復帰させる復帰ステップと、
をさらに有し、
前記特定ステップにおいて、
待機中でない前記タスクを対象として、前記特定処理を行い、
さらに、前記除外ステップにて前記タスクが前記実行権の付与の対象から除外された時に、前記特定処理を行うこと、
を特徴とするスケジューリング方法。 - 請求項3に記載のスケジューリング方法において、
前記特定ステップにおいて、さらに、前記復帰ステップにて待機中の前記タスクが前記実行権の付与の対象として復帰させられた時に前記特定処理を行い、
前記特定ステップにより、前記復帰ステップにて前記実行権を付与する対象として復帰させられた前記タスクが特定されると、前記実行権が付与されている前記タスクから前記実行権を剥奪する剥奪ステップをさらに有すること、
を特徴とするスケジューリング方法。 - 請求項1から請求項4のうちのいずれか1項に記載のスケジューリング方法において、
それぞれの前記非時間保証タスクについて、前記現タイムスライスにて該非時間保証タスクが完了したか否かに応じて、該非時間保証タスクに設定されている前記第二優先度を更新する更新ステップをさらに有すること、
を特徴とするスケジューリング方法。 - 請求項5に記載のスケジューリング方法において、
それぞれの前記非時間保証タスクに設定されている前記第二優先度は、前記実行権を付与する優先度を示す固定値である固定優先度と、該非時間保証タスクが、それぞれの前記タイムスライスにおいて動作が完了しなかった度合いを示す休止度とに基づき算出され、
前記更新ステップにおいて、それぞれの前記非時間保証タスクについて、前記現タイムスライスにて該非時間保証タスクの動作が完了したか否かに応じて、該非時間保証タスクに設定されている前記第二優先度に係る前記休止度を更新することにより、該第二優先度を更新すること、
を特徴とするスケジューリング方法。 - 請求項1から請求項6のうちのいずれか1項に記載のスケジューリング方法において、
前記時間保証タスクには、該時間保証タスクにより実現される機能を正常に稼動させるうえで許容される最長の動作周期である最長動作周期と、ぞれぞれの前記最長動作周期において、前記機能に稼動させるうえで最低限必要となる前記実行権の付与時間である必要動作時間とが個別に設定されており、
スケジューリングの対象となる前記時間保証タスクの前記最長動作周期のうちの最短の前記最長動作周期を、前記タイムスライスとして設定するタイムスライス設定ステップと、
スケジューリングの対象となるそれぞれの前記時間保証タスクについて、該時間保証タスクに設定された前記必要動作時間を、該時間保証タスクに設定された前記最長動作周期で除算した値を算出し、さらに、該値に前記タイムスライスを乗算した値を最短動作時間として算出し、それぞれの前記時間保証タスクについて、該時間保証タスクの前記最短動作時間以上の時間を前記稼働時間として設定する稼働時間設定ステップと、
を有し、
前記稼働時間設定ステップでは、全ての前記時間保証タスクの前記稼働時間の総和が前記タイムスライスを越えない範囲で、それぞれの前記時間保証タスクの前記稼働時間を設定すること、
を特徴とするスケジューリング方法。 - 請求項7に記載のスケジューリング方法において、
スケジューリングの対象となっている前記タスクを、スケジューリングの対象から削除する削除ステップと、
スケジューリングの対象となっていない前記タスクを、スケジューリングの対象として新たに追加する追加ステップと、
をさらに有し、
前記タイムスライス設定ステップと、前記稼働時間設定ステップとは、定期的なタイミングで実施されること、
を特徴とするスケジューリング方法。 - 請求項8に記載のスケジューリング方法において、
新たな前記時間保証タスクをスケジューリングの対象として追加する際に、該時間保証タスクの前記最長動作周期及び前記最短動作時間と、スケジューリングの対象となっている前記時間保証タスクの前記最長動作周期及び前記最短動作時間とに基づき、新たな前記時間保証タスクをスケジューリングの対象として追加可能か否かを判定する判定ステップをさらに有し、
前記追加ステップにおいて、前記判定ステップにて肯定判定が得られた場合に、該判定に係る新たな前記時間保証タスクをスケジューリングの対象として追加すること、
を特徴とするスケジューリング方法。 - 請求項8または請求項9に記載のスケジューリング方法において、
前記タイムスライス設定ステップと前記稼働時間設定ステップとは、前記基準サイクルに係る前記タイミングが到来した際に実施されること、
を特徴とするスケジューリング方法。 - 請求項1から請求項10のうちのいずれか1項に記載のスケジューリング方法において、
前記タスクのうちの少なくともいずれか一つは、ある装置において実現される機能を再現するためのプログラムである仮想マシンであること、
を特徴とするスケジューリング方法。 - 周期的に到来するタイミングを生成して基準サイクルとし、該基準サイクルの1周期であるタイムスライスにおいて、複数のタスクに順次実行権を付与するスケジューリングプログラムであって、
それぞれの前記タスクには稼働時間が設定されており、前記タスクとして、それぞれの前記タイムスライスで前記稼働時間にわたり必ず前記実行権が付与される時間保証タスクと、それぞれの前記タイムスライスで前記稼働時間にわたり前記実行権が付与されるとは限らない非時間保証タスクとが存在し、それぞれの前記時間保証タスクに設定されている前記稼働時間の総和は、前記タイムスライスよりも小さく、
前記時間保証タスクには、前記実行権を付与する優先度である第一優先度が設定されていると共に、前記非時間保証タスクには、前記実行権を付与する優先度である第二優先度が設定されており、
前記タスクに前記実行権を付与した時間が前記稼働時間に達すると、該タスクから前記実行権を剥奪すると共に、最後に到来した前記基準サイクルから始まる前記タイムスライスである現タイムスライスにおける該タスクの動作が完了したものとする完了ステップと、
前記基準サイクルの到来時、或いは前記タスクの動作完了時に、前記現タイムスライスにおいて動作が完了していない前記時間保証タスクが存在する場合には、該時間保証タスクのうち前記第一優先度が最大のものを特定すると共に、該時間保証タスクが存在しない場合には、前記現タイムスライスにて動作が完了していない前記非時間保証タスクのうち、前記第二優先度が最大のものを特定する特定処理を行う特定ステップと、
前記特定ステップにて特定された前記タスクに前記実行権を付与する付与ステップと、
をコンピュータに実行させることを特徴とするスケジューリングプログラム。 - 周期的に到来するタイミングを生成して基準サイクルとし、該基準サイクルの1周期であるタイムスライスにおいて、複数のタスクに順次実行権を付与するスケジューリング装置であって、
それぞれの前記タスクには稼働時間が設定されており、前記タスクとして、それぞれの前記タイムスライスで前記稼働時間にわたり必ず前記実行権が付与される時間保証タスクと、それぞれの前記タイムスライスで前記稼働時間にわたり前記実行権が付与されるとは限らない非時間保証タスクとが存在し、それぞれの前記時間保証タスクに設定されている前記稼働時間の総和は、前記タイムスライスよりも小さく、
前記時間保証タスクには、前記実行権を付与する優先度である第一優先度が設定されていると共に、前記非時間保証タスクには、前記実行権を付与する優先度である第二優先度が設定されており、
前記タスクに前記実行権を付与した時間が前記稼働時間に達すると、該タスクから前記実行権を剥奪すると共に、最後に到来した前記基準サイクルから始まる前記タイムスライスである現タイムスライスにおける該タスクの動作が完了したものとする完了ステップと、
前記基準サイクルの到来時、或いは前記タスクの動作完了時に、前記現タイムスライスにおいて動作が完了していない前記時間保証タスクが存在する場合には、該時間保証タスクのうち前記第一優先度が最大のものを特定すると共に、該時間保証タスクが存在しない場合には、前記現タイムスライスにて動作が完了していない前記非時間保証タスクのうち、前記第二優先度が最大のものを特定する特定処理を行う特定ステップと、
前記特定ステップにて特定された前記タスクに前記実行権を付与する付与ステップと、
を実行することを特徴とするスケジューリング装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010224215A JP5423635B2 (ja) | 2009-11-09 | 2010-10-01 | スケジューリング方法,スケジューリングプログラム,スケジューリング装置 |
US12/927,142 US8595746B2 (en) | 2009-11-09 | 2010-11-08 | Method and apparatus for scheduling tasks to control hardware devices |
DE102010043569.4A DE102010043569B4 (de) | 2009-11-09 | 2010-11-08 | Verfahren und Vorrichtung zum Planen von Aufgaben zur Steuerung von Hardwareeinrichtungen |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009256467 | 2009-11-09 | ||
JP2009256467 | 2009-11-09 | ||
JP2010042655 | 2010-02-26 | ||
JP2010042655 | 2010-02-26 | ||
JP2010224215A JP5423635B2 (ja) | 2009-11-09 | 2010-10-01 | スケジューリング方法,スケジューリングプログラム,スケジューリング装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011198346A true JP2011198346A (ja) | 2011-10-06 |
JP5423635B2 JP5423635B2 (ja) | 2014-02-19 |
Family
ID=43902237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010224215A Active JP5423635B2 (ja) | 2009-11-09 | 2010-10-01 | スケジューリング方法,スケジューリングプログラム,スケジューリング装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8595746B2 (ja) |
JP (1) | JP5423635B2 (ja) |
DE (1) | DE102010043569B4 (ja) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014006788A (ja) * | 2012-06-26 | 2014-01-16 | Azbil Corp | 情報処理装置およびプログラム実行方法 |
JP2015210688A (ja) * | 2014-04-28 | 2015-11-24 | 株式会社日立製作所 | サーバ仮想化システム |
WO2015182295A1 (ja) * | 2014-05-26 | 2015-12-03 | 日立オートモティブシステムズ株式会社 | 車両制御装置 |
KR101621280B1 (ko) | 2015-02-02 | 2016-05-17 | 서울대학교산학협력단 | 최악 응답 시간 분석 방법 및 컴퓨터 프로그램 |
WO2018055907A1 (ja) * | 2016-09-21 | 2018-03-29 | 日立オートモティブシステムズ株式会社 | 車両制御装置および車両制御システム |
JP2019153144A (ja) * | 2018-03-05 | 2019-09-12 | オムロン株式会社 | 制御装置、システムプログラム、制御方法 |
US10474494B2 (en) | 2016-09-16 | 2019-11-12 | Kabushiki Kaisha Toshiba | Information processing apparatus, information processing method, and computer program product |
CN112959926A (zh) * | 2021-03-05 | 2021-06-15 | 广西双英集团股份有限公司 | 一种面向动态多任务汽车座舱平台的时分控制方法 |
JP2021179722A (ja) * | 2020-05-12 | 2021-11-18 | 株式会社デンソー | 電子制御装置 |
WO2023140093A1 (ja) * | 2022-01-18 | 2023-07-27 | 株式会社オートネットワーク技術研究所 | 車載制御装置、制御方法及びコンピュータプログラム |
WO2023140094A1 (ja) * | 2022-01-18 | 2023-07-27 | 株式会社オートネットワーク技術研究所 | 車載制御装置、制御方法及びコンピュータプログラム |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5099188B2 (ja) * | 2010-08-18 | 2012-12-12 | コニカミノルタビジネステクノロジーズ株式会社 | 処理順決定装置、処理順決定方法および処理順決定プログラム |
KR20120067825A (ko) * | 2010-12-16 | 2012-06-26 | 한국전자통신연구원 | 임베디드 리눅스를 위한 적응형 프로세스 스케쥴링 방법 |
US8863136B2 (en) * | 2011-05-19 | 2014-10-14 | International Business Machines Corporation | Lock control in multiple processor systems |
JP5696603B2 (ja) * | 2011-06-29 | 2015-04-08 | 富士通株式会社 | 計算機システム、計算機システムの電力制御方法およびプログラム |
KR102497258B1 (ko) * | 2020-12-16 | 2023-02-06 | 현대오토에버 주식회사 | 차량용 운영체제의 태스크 실행 시스템 및 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10161890A (ja) * | 1996-11-27 | 1998-06-19 | Mitsubishi Electric Corp | スケジューラ |
JP2001202258A (ja) * | 2000-01-20 | 2001-07-27 | Yaskawa Electric Corp | リアルタイム処理装置 |
JP2008276666A (ja) * | 2007-05-07 | 2008-11-13 | Sony Corp | 情報処理装置および方法、並びにプログラム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590323A (en) * | 1994-05-13 | 1996-12-31 | Lucent Technologies Inc. | Optimal parallel processor architecture for real time multitasking |
JP3543441B2 (ja) | 1995-09-19 | 2004-07-14 | 株式会社日立製作所 | 大域的なリソースキャッピング方法 |
US6757897B1 (en) | 2000-02-29 | 2004-06-29 | Cisco Technology, Inc. | Apparatus and methods for scheduling and performing tasks |
US6964049B2 (en) * | 2001-07-18 | 2005-11-08 | Smartmatic Corporation | Smart internetworking operating system for low computational power microprocessors |
US7075422B2 (en) | 2003-12-24 | 2006-07-11 | Nattel Group, Inc. | Method for intelligent crescendo system |
JP2008234116A (ja) | 2007-03-19 | 2008-10-02 | Matsushita Electric Ind Co Ltd | 仮想計算機制御装置 |
JP2009110404A (ja) | 2007-10-31 | 2009-05-21 | Toshiba Corp | 仮想計算機システム及び同システムにおけるゲストosスケジューリング方法 |
JP4985662B2 (ja) | 2009-01-22 | 2012-07-25 | 株式会社デンソー | プログラム、及び制御装置 |
-
2010
- 2010-10-01 JP JP2010224215A patent/JP5423635B2/ja active Active
- 2010-11-08 US US12/927,142 patent/US8595746B2/en active Active
- 2010-11-08 DE DE102010043569.4A patent/DE102010043569B4/de active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10161890A (ja) * | 1996-11-27 | 1998-06-19 | Mitsubishi Electric Corp | スケジューラ |
JP2001202258A (ja) * | 2000-01-20 | 2001-07-27 | Yaskawa Electric Corp | リアルタイム処理装置 |
JP2008276666A (ja) * | 2007-05-07 | 2008-11-13 | Sony Corp | 情報処理装置および方法、並びにプログラム |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014006788A (ja) * | 2012-06-26 | 2014-01-16 | Azbil Corp | 情報処理装置およびプログラム実行方法 |
JP2015210688A (ja) * | 2014-04-28 | 2015-11-24 | 株式会社日立製作所 | サーバ仮想化システム |
US10642658B2 (en) | 2014-05-26 | 2020-05-05 | Hitachi Automotive Systems, Ltd. | Vehicle control apparatus |
JP2015225396A (ja) * | 2014-05-26 | 2015-12-14 | 日立オートモティブシステムズ株式会社 | 車両制御装置 |
WO2015182295A1 (ja) * | 2014-05-26 | 2015-12-03 | 日立オートモティブシステムズ株式会社 | 車両制御装置 |
KR101621280B1 (ko) | 2015-02-02 | 2016-05-17 | 서울대학교산학협력단 | 최악 응답 시간 분석 방법 및 컴퓨터 프로그램 |
US10474494B2 (en) | 2016-09-16 | 2019-11-12 | Kabushiki Kaisha Toshiba | Information processing apparatus, information processing method, and computer program product |
WO2018055907A1 (ja) * | 2016-09-21 | 2018-03-29 | 日立オートモティブシステムズ株式会社 | 車両制御装置および車両制御システム |
JP2018049405A (ja) * | 2016-09-21 | 2018-03-29 | 日立オートモティブシステムズ株式会社 | 車両制御装置および車両制御システム |
JP2019153144A (ja) * | 2018-03-05 | 2019-09-12 | オムロン株式会社 | 制御装置、システムプログラム、制御方法 |
JP2021179722A (ja) * | 2020-05-12 | 2021-11-18 | 株式会社デンソー | 電子制御装置 |
JP7331774B2 (ja) | 2020-05-12 | 2023-08-23 | 株式会社デンソー | 電子制御装置 |
CN112959926A (zh) * | 2021-03-05 | 2021-06-15 | 广西双英集团股份有限公司 | 一种面向动态多任务汽车座舱平台的时分控制方法 |
WO2023140093A1 (ja) * | 2022-01-18 | 2023-07-27 | 株式会社オートネットワーク技術研究所 | 車載制御装置、制御方法及びコンピュータプログラム |
WO2023140094A1 (ja) * | 2022-01-18 | 2023-07-27 | 株式会社オートネットワーク技術研究所 | 車載制御装置、制御方法及びコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP5423635B2 (ja) | 2014-02-19 |
DE102010043569A1 (de) | 2011-05-26 |
US20110113431A1 (en) | 2011-05-12 |
US8595746B2 (en) | 2013-11-26 |
DE102010043569B4 (de) | 2024-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5423635B2 (ja) | スケジューリング方法,スケジューリングプログラム,スケジューリング装置 | |
JP7241729B2 (ja) | リソーススケジューリング方法、装置、設備、記憶媒体、及びプログラム | |
EP3008594B1 (en) | Assigning and scheduling threads for multiple prioritized queues | |
JP6383518B2 (ja) | 仮想マシンモニター及び仮想マシンモニターのスケジューリング方法 | |
US20170269967A1 (en) | Quality of service classes | |
EP2300910B1 (en) | Scheduler instances in a process | |
KR102182295B1 (ko) | 하드웨어 기반 태스크 스케쥴링 장치 및 방법 | |
US8607239B2 (en) | Lock mechanism to reduce waiting of threads to access a shared resource by selectively granting access to a thread before an enqueued highest priority thread | |
MX2013013951A (es) | Notificaciones de aplicacion. | |
KR20070083460A (ko) | 다중 커널을 동시에 실행하는 방법 및 시스템 | |
CN111782295B (zh) | 一种应用程序的运行方法、装置、电子设备及存储介质 | |
CN111831410A (zh) | 任务处理方法、装置、存储介质及电子设备 | |
CN107391279B (zh) | 一种消息队列容器创建方法、装置及消息队列容器 | |
CN113986534A (zh) | 任务调度方法、装置、计算机设备和计算机可读存储介质 | |
CN111897637A (zh) | 作业调度方法、装置、主机及存储介质 | |
CN111831411B (zh) | 任务处理方法、装置、存储介质及电子设备 | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN114816709A (zh) | 任务调度方法、装置、服务器及可读存储介质 | |
CN113032119A (zh) | 一种任务调度方法、装置、存储介质及电子设备 | |
JP2020024636A (ja) | スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム | |
US7797473B2 (en) | System for executing system management interrupts and methods thereof | |
JP4112511B2 (ja) | タスク管理プログラムおよびタスク管理装置 | |
CN114691376A (zh) | 一种线程执行方法、装置、电子设备和存储介质 | |
CN112269658B (zh) | 一种复合资源申请方法、系统及电子设备和存储介质 | |
JP2008225641A (ja) | コンピュータシステム、割り込み制御方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130703 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130716 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130912 |
|
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: 20131029 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131111 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5423635 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |