JP7010014B2 - スケジューリング装置 - Google Patents

スケジューリング装置 Download PDF

Info

Publication number
JP7010014B2
JP7010014B2 JP2018006385A JP2018006385A JP7010014B2 JP 7010014 B2 JP7010014 B2 JP 7010014B2 JP 2018006385 A JP2018006385 A JP 2018006385A JP 2018006385 A JP2018006385 A JP 2018006385A JP 7010014 B2 JP7010014 B2 JP 7010014B2
Authority
JP
Japan
Prior art keywords
task
highest priority
time
priority
execution time
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
JP2018006385A
Other languages
English (en)
Other versions
JP2019125242A (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 JP2018006385A priority Critical patent/JP7010014B2/ja
Publication of JP2019125242A publication Critical patent/JP2019125242A/ja
Application granted granted Critical
Publication of JP7010014B2 publication Critical patent/JP7010014B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本開示は、複数のOSで実行されるタスクをスケジューリングする技術に関する。
タスクの優先度に応じて複数のOSで実行されるタスクをスケジューリングする技術が知られている。例えば、特許文献1には、複数のOSにおいて優先度の基準が異なるOSが存在する場合、基準が異なる優先度を共通の優先度に変換し、共通化された優先度に基づいて、最高優先度のタスクを実行させるようにスケジューリングする技術が提案されている。
また、特許文献2には、受け付けた処理要求の処理種別に応じて、複数のOSのそれぞれが処理要求を実行するための負荷が設定されており、負荷の比に基づいて複数のOSのそれぞれがCPUを使用する比率を設定している。
特開2000-242512号公報 特開2013-041485号公報
しかしながら、特許文献1に記載の技術では、複数のOSとして例えば優先度の基準が異なるリアルタイムOSと事務処理OSとにおいて共通化された優先度について、最高優先度が同じ場合、リアルタイムOSのタスクが優先して実行される。したがって、実行を優先されない事務処理OSのタスクの最高優先度が実行を優先されるリアルタイムOSのタスクの最高優先度よりも高くなるまで、事務処理OSの最高優先度のタスクは実行されないという課題がある。
また、特許文献2に記載の技術では、例えば、処理要求AについてOS1とOS2との負荷が1:1、処理要求BについてOS2とOS3との負荷が1:1の場合、処理要求Aと処理要求Bとについて処理負荷をOS毎に加算した1:2:1の比率でOS1とOS2とOS3とがCPUを使用する。
しかし、処理要求Aにおいて比率の1が1msに対応し、処理要求Bにおいて比率の1が100msに対応する場合、処理要求Bの比率と時間との対応関係に合わせると、100ms:200ms:100msでOS1とOS2とOS3とがCPUを使用することになる。
この場合、OS1はCPUを1ms使用して処理要求Aの実行を終了するので、残りの99msの間CPUはアイドル状態になり、無駄な時間が発生するという課題がある。
本開示は、複数のOSにおいてタスクの最高優先度が同じ場合、いずれかのOSで最高優先度のタスクが実行されないことを抑制し、タスクに設定された優先度に基づき最高優先度のタスクが存在するOSに適切な実行時間を設定する技術を提供することが望ましい。
本開示の一態様は、複数のOS(40、50)で実行されるタスク(42~46、52、54)をスケジューリングするスケジューリング装置(2)であって、優先度取得部(62、S400、S440、S460)と、時間設定部(64、S406、S410、S412、S420~S436)と、スケジューリング部(66、S442~S450、S462~S472)と、を備える。
本開示の他の一態様は、複数のOS(40、50)で実行されるタスクをスケジューリングするスケジューリングプログラムであって、優先度取得部62、S400、S440、S460)と、時間設定部(64、S406、S410、S412、S420~S436)と、スケジューリング部(66、S442~S450、S462~S472)と、としてコンピュータを機能させる。
優先度取得部は、複数のOSのそれぞれから実行可能なタスクの優先度を取得する。時間設定部は、優先度取得部が取得する優先度を比較し、複数のOSのうち2個以上のOSに最高優先度が同じタスクが存在する場合、最高優先度が同じタスクが存在するOSにおいて実行可能なタスクの優先度に基づいて、OS毎に最高優先度のタスクを実行する時間の長さを表す実行時間を設定する。
スケジューリング部は、時間設定部が設定する実行時間に基づいて、最高優先度のタスクの実行をスケジューリングする。
このような構成によれば、OS毎に最高優先度のタスクを実行する実行時間が設定されるので、実行時間が設定されたOSにおいて最高優先度のタスクが実行される。したがって、いずれかのOSで最高優先度のタスクが実行されないことを抑制できる。
さらに、タスクに設定された優先度に基づき、OS毎に最高優先度のタスクを実行するための適切な実行時間を設定することができる。
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
スケジューリング装置の構成を示すブロック図。 実行時間係数の算出処理のフローチャート。 実行時間の設定処理のフローチャート。 スケジューリング処理のフローチャート。 スケジューリング処理の他のフローチャート。 スケジューリング処理の例を示すタイムチャート。
以下、図を参照しながら、本開示の実施形態を説明する。
[1.構成]
図1に示すスケジューリング装置2は、複数のOSのそれぞれで実行可能なタスクの優先度に基づいて、最高優先度のタスクが存在するOSに、最高優先度のタスクを実行する時間の長さを表す実行時間を設定するスケジューリングを行う。
スケジューリング装置2は、コア20と、RAM、ROM、フラッシュメモリ等の半導体メモリ30と、を有する周知のマイクロコンピュータを10中心に構成される。スケジューリング装置2の各種機能は、コア20が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、メモリ30が、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムが実行されることで、プログラムに対応する方法が実行される。
なお、スケジューリング装置2は1つのマイクロコンピュータで構成されてもよいし、複数のマイクロコンピュータで構成されてもよい。スケジューリング装置2が複数のマイクロコンピュータで構成される場合、マイクロコンピュータ毎に独立してタスクのスケジューリングが行われる。
メモリ30は、OS40、50と、OS40上で実行されるタスク42~46と、OS50上で実行されるタスク52、54と、OS40、50上のタスクの実行をスケジューリングするハイパーバイザ60等のプログラムとデータとを記憶している。これらのプログラムは、コア20により実行される。
ハイパーバイザ60は、コア20がハイパーバイザ60を実行することで実現される機能の構成として、優先度取得部62と時間設定部64とスケジューリング部66とを備える。
優先度取得部62は、OS40、50のそれぞれからOS40、50で実行可能なタスクの数とタスクの優先度とをあらわす優先度情報を取得する。
時間設定部64は、優先度取得部62がOS40、50のそれぞれから取得するOS40、50で実行可能なタスクの数とタスクの優先度とを表す優先度情報に基づいて、優先度を比較する。そして、時間設定部64は、OS40、50において同じ最高優先度のタスクが存在する場合、OS40、50のそれぞれにおいて最高優先度のタスクを実行する実行時間を設定する。実行時間が設定されたOSだけがコア20を使用してタスクを実行できる。実行時間の設定の詳細については後述する。
なお、本実施形態では、時間設定部64が最高優先度のタスクが存在する複数のOSであるOS40、50に設定する実行時間の合計を、1つのスケジューリング周期とする。
スケジューリング部66は、時間設定部64が設定した実行時間に基づいて、OS40、50のそれぞれが実行する最高優先度のタスクをスケジューリングする。スケジューリング部66は、OS40、50において同じ最高優先度のタスクが存在しない場合、OS40、50に存在する実行可能なOSのうち最高優先度のタスクを実行させる。
[2.処理]
次に、スケジューリング装置2が実行する処理について、図2~図5のフローチャートを用いて説明する。
(1)実行時間係数の算出処理
スケジューリング装置2が実行する実行時間係数の算出処理について、図2のフローチャートに基づいて説明する。実行時間計数は、最高優先度のタスクが複数のOSに存在する場合、該当する各OSに実行時間を設定するための割合を表す計数である。図2の実行時間係数の算出処理は、後述する図4または図5のフローチャートにおいて、実行時間計数の算出が必要と判定されると実行される。
S400において優先度取得部62は、全OSから実行可能なタスク数と、各タスクの優先度とを表す優先度情報を取得する。例えば、図1において、優先度取得部62は、OS40については、実行可能なタスク数が3個であり、タスク42~46のそれぞれの優先度が3である優先度情報を取得する。優先度取得部62は、OS50については、実行可能なタスク数が2個であり、タスク52の優先度が3であり、タスク54の優先度が1である優先度情報を取得する。
S402において時間設定部64は、全OSで優先度の基準が同じか否かを判定する。S402の判定がYesである、つまり全OSで優先度の基準が同じ場合、処理はS406に移行する。図1の例では、OS40とOS50とで優先度の基準は同じである。
S402の判定がNoである、つまり複数のOSに優先度の基準が異なるOSが存在する場合、S404において時間設定部64は、優先度の基準を統一する。例えば、時間設定部64は、各OSに応じて設定された優先度の変換テーブルに基づいて、各OSの基準で設定された各OSに固有の優先度を、全OSで共通の基準で統一された優先度に変換し、処理をS406に移行する。
尚、各OSが優先度の変換テーブルを記憶しており、各OSが各OSに固有の優先度を全OSで共通の優先度に変換して時間設定部64に通知してもよい。
S406において時間設定部64は、取得した優先度を比較し、最高優先度が同じタスクが2個以上の複数のOSに存在するか否かを判定する。S406の判定がNoである、つまり最高優先度が同じタスクが複数のOSに存在しない場合、S408において時間設定部64は、実行時間係数を算出せず、本処理を終了する。この場合、最高優先度のタスクが存在する1つのOSが実行される。
S406の判定がYesである、つまり最高優先度が同じタスクが複数のOSに存在する場合、S410において時間設定部64は、各OSに存在するタスクの優先度の平均値を算出する。図1の例では、OS40、50の最高優先度は同じ3であるから、S406の判定はYesである。そして、OS40に存在するタスクの優先度の平均値は3であり、OS50に存在するタスクの優先度の平均値は2である。
S412において時間設定部64は、S410で算出した平均値に基づいて、最高優先度が同じタスクが存在するOSにおいて最高優先度のタスクを実行する実行時間を算出するための実行時間係数を算出する。
具体的には、時間設定部64は、次式(1)に基づいて実行時間係数を算出する。
実行時間係数=(各OSの優先度の平均値/全OSの優先度の平均値の合計)×100
・・・(1)
図1の例では、OS40の優先度の平均値は3であり、OS50の優先度の平均値は2であり、全OSの優先度の合計は5である。
したがって、OS40の実行時間係数は、(3/5)×100=60であり、OS50の実行時間係数は、(2/5)×100=40である。
(2)実行時間の設定処理
スケジューリング装置2が実行する実行時間の設定処理について、図3のフローチャートに基づいて説明する。図3の実行時間の設定処理は、図2に示す実行時間係数の算出処理の実行後に実行される。
S420において時間設定部64は、全OSの処理周期と、図2の実行時間計数の算出処理で算出または取得された実行時間係数と各OSの最高優先度と最高優先度のタスク数とを取得する。OSの処理周期は、各OSが処理を実行するために予め設定された単位時間を表す周期を表している。例えば、図1のOS40の処理周期は180ms、OS50の処理周期は40msに設定されている。
S422とS424とは図2のS402とS404と同じ処理であるから説明を省略する。S426の判定がNoである、つまり最高優先度が同じタスクが複数のOSに存在しない場合、処理はS432に移行する。例えば、図1において、OS50のタスク52の優先度が3ではなく2の場合、OS40とOS50とに最高優先度が同じタスクが存在しないので、S426の判定はNoになる。
S426の判定がYesである、つまり最高優先度が同じタスクが複数のOSに存在する場合、S428において時間設定部64は、各OSの処理周期が実行時間係数に基づいて算出された実行時間以下であるか否かを判定する。具体的には、時間設定部64は、次式(2)が成立するか否かを判定する。図1の例では、OS40とOS50とに最高優先度が3の同じタスクが存在するので、S426の判定はYesになる。
各OSの処理周期≦実行時間係数×最高優先度のタスク数×単位実行時間
・・・(2)
式(2)において、単位実行時間は、例えば予め1msに設定されている。S428の判定がNoである、つまり式(2)において、各OSの処理周期が式(2)の右辺よりも大きい場合、処理はS436に移行する。
例えば、図1のOS40について、処理周期=180ms、実行時間係数=60、最高優先度のタスク数=3、単位実行時間=1msであるから、式(2)の右辺の値は、60×3×1ms=180msとなり、式(2)の左辺の処理周期と同じになるので、式(2)は成立する。
また、図1のOS50について、処理周期=40ms、実行時間係数=40、最高優先度のタスク数=1、単位実行時間=1msであるから、式(2)の右辺の値は、40×1×1ms=40msとなり、式(2)の左辺の処理周期と同じになるので、式(2)は成立する。
S428の判定がYesである、つまり式(2)が成立する場合、S430において時間設定部64は、式(2)の右辺である実行時間係数に基づいて算出された実行時間と、対応するOSの処理周期との最小公倍数を算出し、各OSの実行時間として設定する。この場合、最小公倍数は厳密に算出するのではなく、例えばOSの処理周期が50ms、式(2)の右辺の乗算結果が109msであれば、最小公倍数を100msとし、100msをOSの実行時間として設定する。
例えば、図1のOS40について、処理周期=180msであり、式(2)の右辺の値は180msであるから、式(2)の右辺の値と、対応するOS40の処理周期との最小公倍数は180msになる。
また、図1のOS50について、処理周期=40msであり、式(2)の右辺の値は40msであるから、式(2)の右辺の値と対応するOSの処理周期との最小公倍数は40msになる。
S426の判定がNoである、つまり最高優先度が同じタスクが複数のOSに存在しない場合、S432において時間設定部64は、最高優先度のタスクが存在するOSについて、OSの処理周期が単位時間数に基づいて算出された実行時間以下であるか否かを判定する。具体的には、時間設定部64は、次式(3)が成立するか否かを判定する。式(3)において、単位時間数は、例えば予め100に設定されている。
OSの処理周期≦単位時間数×最高優先度のタスク数×単位実行時間 ・・・(3)
S432の判定がNoである、つまり式(3)において、最高優先度のタスクが存在するOSの処理周期が式(3)の右辺よりも大きい場合、処理はS436に移行する。
S432の判定がYesである、つまり式(3)が成立する場合、S434において時間設定部64は、式(3)の右辺である単位時間数に基づいて算出された実行時間と、最高優先度のタスクが存在するOSの処理周期との最小公倍数を算出し、最高優先度のタスクが存在するOSの実行時間として設定する。
S428の判定がNoであるか、S432の判定がNoである場合、S436において時間設定部64は、最高優先度のタスクが存在するOSの処理周期を実行時間として設定する。
尚、S430、S434、S436において最高優先度のタスクが存在するOSにだけ実行時間が設定され、最高優先度のタスクが存在しない他のOSの実行時間には0が設定される。つまり、最高優先度のタスクが存在しない他のOSは、最高優先度が同じタスクが存在するまで実行されない。
(3)スケジューリング処理1
スケジューリング装置2が実行するスケジューリング処理1について、図4のフローチャートに基づいて説明する。図4のスケジューリング処理1は、各OSの処理周期が終了したときに実行される。
例えば、図1の例では、OS40であれば処理周期180msが経過する毎に、OS50であれば処理周期40msが経過する毎に図4のフローチャートは起動される。尚、後述するように実行中のタスクの処理が早く終了すると、処理周期が短縮されることがある。
図1の例では、OS40の処理周期と設定される実行時間とが同じ180msであり、OS50の処理周期と設定される実行時間とが同じ40msであった。これに対し、設定される実行時間よりも処理周期が短いこともある。その場合にも、最高優先度が同じタスクが存在するOSについて、処理周期が経過する毎に図4のフローチャートは起動される。
S440において優先度取得部62は、全OSから実行可能なタスクの最高優先度を取得する。図3の実行時間設定処理が実行されて各OSに実行時間が設定されてから、新しく実行可能なタスクが発生すると、新しく発生したタスクも含めた実行可能なタスクの最高優先度を取得する。
S442においてスケジューリング部66は、S440において優先度取得部62が全OSから取得するタスクの最高優先度が、前回、時間設定部64がOSの実行時間を設定してスケジューリング周期が開始されたときの最高優先度よりも高いか否かを判定する。
S442の判定がYesである、つまりS440において優先度取得部62が全OSから取得するタスクの最高優先度が、スケジューリング周期が開始されたときの最高優先度よりも高い場合、処理はS450に移行する。
S442の判定がNoである、つまりS440で優先度取得部62が取得するタスクの最高優先度が、スケジューリング周期が開始されたときの最高優先度以下の場合、S444においてスケジューリング部66は、実行中のOSに設定されている実行時間の残り時間が0であるか否かを判定する。
S444の判定がNoである、つまり実行中のOSに設定されている実行時間の残り時間が0ではない場合、本処理は終了する。この場合、実行中のOSは処理を継続する。
S444の判定がYesである、つまり実行中のOSに設定されている実行時間の残り時間が0の場合、S446においてスケジューリング部66は、最高優先度のタスクが存在する全OSの残り実行時間が0であるか否か、つまりスケジューリング周期が経過したか否かを判定する。S446の判定がYesである、つまり全OSの残り実行時間が0の場合、処理はS450に移行する。
S446の判定がNoである、つまり実行中のOSに設定されている実行時間の残り時間は0であるが、他に実行時間が残っているOSが存在する場合、S448においてスケジューリング部66は、実行中のOSから他のOSに切り替える。
スケジューリング部66は、S442において、S440で優先度取得部62が取得するタスクの最高優先度がスケジューリング周期が開始されたときの最高優先度よりも高いと判定するか、あるいはS446において、全OSの残り実行時間が0であると判定すると、実行時間を再設定する必要があると判断する。そこで、S450においてスケジューリング部66は、図2の実行時間係数の算出処理と図3の実行時間の設定処理とを実行するように時間設定部64に指令する。
(4)スケジューリング処理2
スケジューリング装置2が実行するスケジューリング処理2について、図5のフローチャートに基づいて説明する。図5のスケジューリング処理2は、実行中のタスクの処理が終了したときに実行される。
S464以外のS460、S462、S466~S472は、図4のS440~S450の処理と実質的に同一であるから説明を省略する。
S462の判定がNoである、つまりS460において優先度取得部62が全OSから取得するタスクの最高優先度が、スケジューリング周期が開始されたときの最高優先度以下の場合、S464においてスケジューリング部66は、次式(4)によりOSの残り実行時間を更新し、次式(5)により、処理周期の残り時間を更新する。
OSの残り実行時間=OSの現在の残り実行時間-実行を終了したタスクに設定されたタスク時間の残り時間 ・・・(4)
OSの処理周期の残り時間=処理周期の現在の残り時間-実行を終了したタスクに設定されたタスク時間の残り時間 ・・・(5)
図1の例において、図6のタイムチャートが示すように、タスク42が、OS40に設定された実行時間のうちタスク42に設定された実行時間であるタスク時間の60msが経過する前に、40msが経過したときに実行を終了すると、OS40の現在の残り実行時間は、180ms-40ms=140msである。
そして、実行を終了したタスク42に設定されたタスク時間の残り時間は、60ms-40ms=20msである。したがって、式(4)から、OS40の残り実行時間は、140ms-20ms=120msである。尚、図6では、OS50よりも実行時間係数の大きいOS40が先に処理されている。
同様に、OS40の処理周期の残り時間は、OS40の残り実行時間と同様に、式(5)から140ms-20ms=120msである。
つまり、タスク42が設定されたタスク時間60msよりも20ms早く実行を終了したので、OS40の実行時間と処理周期とは20ms短くなり、タスク42の実行が終了した時点で120msになる。したがって、OS40については、スケジューリング周期が開始されてから160ms経過すると処理周期が経過するので、ハイパーバイザ60が起動され、図4のスケジューリング処理1が実行される。
[3.効果]
以上説明した上記実施形態によれば、以下の効果を得ることができる。
(1)最高優先度が同じタスクが複数のOSに存在する場合、最高優先度が同じタスクが存在する各OSに実行時間が設定され、いずれかのOSに設定された実行時間が経過すると、他のOSに処理が切り替えられる。したがって、最高優先度が同じタスクが存在する複数のOSのうち、特定のOSが常に実行されることを抑制できる。
これにより、最高優先度が同じタスクが存在する複数のOSのうち、いずれかのOSで最高優先度のタスクが実行されないことを抑制できる。
例えば、スケジューリング装置2が車両に搭載され、車両制御を複数のOSで処理する場合、最高優先度が同じ車両制御のタスクが存在する複数のOSのうち、いずれかのOSで最高優先度の車両制御のタスクが実行されないことを抑制できる。これにより、最高優先度の車両制御のタスクを極力速やかに実行できる。
(2)スケジューリング周期中に、スケジューリング周期が開始されたときの最高優先度よりも高い優先度のタスクが実行可能にならないかぎり、OSの実行時間は再設定されない。したがって、各OSにおいて、スケジューリング周期が開始されたときの最高優先度のタスクの実行は停止されずに継続される。
(3)最高優先度が同じタスクが複数のOSで存在する場合、該当するOSのすべての実行可能なタスクに設定された優先度の平均値に基づき、各タスクに適切な実行時間を設定できる。
(4)設定された実行時間よりもタスクが早く実行を終了すると、タスクに設定された実行時間の残り時間をOSの残り実行時間と処理周期の残り時間とから減算するので、実行が終了したタスクに設定された実行時間の残り時間でOSがアイドル状態になったりすることを抑制する。これにより、OSに設定された実行時間を無駄なく有効に使用できる。
上記実施形態において、S400、S440、S460が優先度取得部の処理に対応し、S406、S410、S412、S426~S436が時間設定部の処理に対応し、S442~S450、S462~S472がスケジューリング部の処理に対応する。
[4.他の実施形態]
以上、本開示の実施形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
(1)上記実施形態では、最高優先度が同じタスクが存在する複数のOSについて、各OSの全タスクの優先度の平均値に基づいて実行時間係数を算出した。これに対し、最高優先度が同じタスクが存在する複数のOSについて、最高優先度のタスクの数に基づいて実行時間係数を算出してもよい。
(2)上記実施形態では、OS50よりも実行時間係数の大きいOS40が先に処理されている。これに対し、最高優先度が同じタスクが存在するOSであれば、OSの処理序を実行時間係数の大きさに拘わらず適宜決定してもよい。
(3)上記実施形態では、マイクロコンピュータ10のコア20は1つであったが、コアの数は複数でもよい。
(4)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
(5)上述したスケジューリング装置2の他、当該スケジューリング装置2を構成要素とするシステム、当該スケジューリング装置2としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、スケジューリング方法など、種々の形態で本開示を実現することもできる。
2:スケジューリング装置、62:優先度取得部、64:時間設定部、66:スケジューリング部、42~46、52、54:タスク

Claims (7)

  1. 複数のOS(40、50)で実行されるタスクをスケジューリングするスケジューリング装置(2)であって、
    複数のOSのそれぞれから実行可能なタスク(42~46、52、54)の優先度を取得するように構成された優先度取得部(62、S400、S440、S460)と、
    前記優先度取得部が取得する前記優先度を比較し、前記複数のOSのうち2個以上のOSに最高優先度が同じタスクが存在する場合、前記最高優先度が同じタスクが存在するOSにおいて実行可能なタスクの優先度に基づいて、OS毎に前記最高優先度のタスクを実行する時間の長さを表す実行時間を設定するように構成された時間設定部(64、S406、S410、S412、S426~S436)と、
    前記時間設定部が設定する前記実行時間に基づいて、前記最高優先度のタスクの実行をスケジューリングするように構成されたスケジューリング部(66、S442~S450、S462~S472)と、
    を備えるスケジューリング装置。
  2. 請求項1に記載のスケジューリング装置であって、
    前記時間設定部(S410、S412)は、前記最高優先度が同じタスクが存在するOSにおいて実行可能なタスクの優先度の平均値に基づいて、前記実行時間を設定するように構成されている、
    スケジューリング装置。
  3. 請求項1または2に記載のスケジューリング装置であって、
    前記時間設定部(S410、S412、S430)は、前記最高優先度が同じタスクが存在するOSにおいて実行可能なタスクの優先度に基づいてOS毎に前記実行時間の係数を設定し、前記実行時間の係数から前記実行時間を設定するように構成されている、
    スケジューリング装置。
  4. 請求項1から3のいずれか1項に記載のスケジューリング装置であって、
    前記スケジューリング部(S450、S472)は、前記最高優先度が同じタスクが存在するOS毎に設定した前記実行時間がすべて終了すると、前記実行時間を再設定するように前記時間設定部に指令するように構成されている、
    スケジューリング装置。
  5. 請求項1から4のいずれか1項に記載のスケジューリング装置であって、
    前記最高優先度が同じタスクが存在するOSに設定されている、各OSが処理を実行するための単位時間を表す処理周期が終了するか、あるいは前記最高優先度のタスクのいずれかの実行が終了すると、前記スケジューリング部(S444、S446、S450、S466、S468、S472)は、前記実行時間を再設定して前記最高優先度のタスクの実行をスケジューリングするか否かを決定するように構成されている、
    スケジューリング装置。
  6. 請求項5に記載のスケジューリング装置であって、
    前記最高優先度のタスクのいずれかの実行が、前記実行時間のうちタスク毎に設定されたタスク時間よりも早く終了すると、前記スケジューリング部(S464)は、前記タスク時間よりも早くタスクが終了したOSの残りの前記実行時間から、早く終了した前記タスクの前記タスク時間の残り時間を減算して残りの前記実行時間を更新するように構成されている、
    スケジューリング装置。
  7. 複数のOS(40、50)で実行されるタスク(42~46、52、54)をスケジューリングするスケジューリングプログラムであって、
    複数のOSのそれぞれから実行可能なタスク(42~46、52、54)の優先度を取得するように構成された優先度取得部(62、S400、S440、S460)と、
    前記優先度取得部が取得する前記優先度を比較し、前記複数のOSのうち2個以上のOSに最高優先度が同じタスクが存在する場合、前記最高優先度が同じタスクが存在するOSにおいて実行可能なタスクの優先度に基づいて、OS毎に前記最高優先度のタスクを実行する時間の長さを表す実行時間を設定するように構成された時間設定部(64、S406、S410、S412、S420~S436)と、
    前記時間設定部が設定する前記実行時間に基づいて、前記最高優先度のタスクの実行をスケジューリングするように構成されたスケジューリング部(66、S442~S450、S462~S472)と、
    としてコンピュータを機能させるスケジューリングプログラム。
JP2018006385A 2018-01-18 2018-01-18 スケジューリング装置 Active JP7010014B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018006385A JP7010014B2 (ja) 2018-01-18 2018-01-18 スケジューリング装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018006385A JP7010014B2 (ja) 2018-01-18 2018-01-18 スケジューリング装置

Publications (2)

Publication Number Publication Date
JP2019125242A JP2019125242A (ja) 2019-07-25
JP7010014B2 true JP7010014B2 (ja) 2022-01-26

Family

ID=67398913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018006385A Active JP7010014B2 (ja) 2018-01-18 2018-01-18 スケジューリング装置

Country Status (1)

Country Link
JP (1) JP7010014B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210101055A (ko) 2020-02-07 2021-08-18 삼성전자주식회사 어플리케이션 실행 시 태스크 스케줄링을 위한 전자 장치, 그 동작 방법 및 저장 매체

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242512A (ja) 1999-02-19 2000-09-08 Hitachi Ltd 複数のオペレーティングシステムを実行する計算機
JP2000347883A (ja) 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd 仮想計算機装置
JP2013041485A (ja) 2011-08-18 2013-02-28 Mitsubishi Electric Corp 仮想計算機システムおよび資源割り当て制御方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10177489A (ja) * 1996-12-17 1998-06-30 Matsushita Electric Ind Co Ltd タスクのスケジュール方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242512A (ja) 1999-02-19 2000-09-08 Hitachi Ltd 複数のオペレーティングシステムを実行する計算機
JP2000347883A (ja) 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd 仮想計算機装置
JP2013041485A (ja) 2011-08-18 2013-02-28 Mitsubishi Electric Corp 仮想計算機システムおよび資源割り当て制御方法

Also Published As

Publication number Publication date
JP2019125242A (ja) 2019-07-25

Similar Documents

Publication Publication Date Title
CA2474477C (en) Method of setting priority levels in a multiprogramming computer system with priority scheduling, multiprogramming computer system and program therefor
US20070113231A1 (en) Multi processor and task scheduling method
AU2002230272A1 (en) Method of setting priority levels in a multiprogramming computer system with priority scheduling, multiprogramming computer system and program therefor
JP4707603B2 (ja) リアルタイムosにおける処理時間配分方法
US20110016247A1 (en) Multiprocessor system and multiprocessor system interrupt control method
JP2010286898A (ja) マルチスレッド実行装置、マルチスレッド実行方法
JPWO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
KR100959548B1 (ko) 인터럽트 스케줄링 방법
CN101499041A (zh) 一种避免主机在访问共享设备造成异常死锁的方法
CN105204938A (zh) 一种内存访问的数据密集型进程调度方法
JP7010014B2 (ja) スケジューリング装置
US8954774B2 (en) Preventing starting of the current user operation to save power based on combined most recent operation time
CN104199739A (zh) 一种基于负载均衡的推测式Hadoop调度方法
JP5887846B2 (ja) 電力制御システムおよび電力制御方法
JP6464982B2 (ja) 並列化方法、並列化ツール、車載装置
JP2012181578A (ja) 更新制御装置及びプログラム
US20050050541A1 (en) Method of and apparatus for task control, and computer product
KR20160061422A (ko) 소프트웨어 프로그램의 연산 블록을 멀티-프로세서 시스템의 코어에 할당하는 방법 및 시스템
CN103810037A (zh) 一种作业调度方法和计算装置
CN109189581B (zh) 一种作业调度方法和装置
JP6806065B2 (ja) 仮想計算機システムの性能予測装置、性能予測方法およびコンピュータプログラム
JP2000056989A (ja) タスク設計方法
JP3005562B1 (ja) タスク管理装置及びタスクスケジューリング方法
JP5056346B2 (ja) 情報処理装置、情報処理システム、仮想サーバの移動処理の制御方法、及び、プログラム
JP2003345406A (ja) 制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211208

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211227