JP2010277171A - タスク割当装置、および、タスク割当方法 - Google Patents

タスク割当装置、および、タスク割当方法 Download PDF

Info

Publication number
JP2010277171A
JP2010277171A JP2009126683A JP2009126683A JP2010277171A JP 2010277171 A JP2010277171 A JP 2010277171A JP 2009126683 A JP2009126683 A JP 2009126683A JP 2009126683 A JP2009126683 A JP 2009126683A JP 2010277171 A JP2010277171 A JP 2010277171A
Authority
JP
Japan
Prior art keywords
task
cpu
core
cpu core
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.)
Granted
Application number
JP2009126683A
Other languages
English (en)
Other versions
JP5462529B2 (ja
Inventor
Naoki Furuya
直樹 古家
Yasufumi Suzuki
康文 鈴木
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009126683A priority Critical patent/JP5462529B2/ja
Publication of JP2010277171A publication Critical patent/JP2010277171A/ja
Application granted granted Critical
Publication of JP5462529B2 publication Critical patent/JP5462529B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】マルチコアシステムの各CPUコアに、実行するタスクを割り当てるタスク割当装置において、必要なCPU利用率の大きいタスクが生じた際も、そのタスクが実行できる可能性を確保して、従来よりもリアルタイム性を向上させる。
【解決手段】リアルタイムタスクの発生元のプログラムの必要計算量を計測し、タスクに課せられた時間制約と、そのタスクの発生元のプログラムの必要計算量から、タスクが時間制約を満たすために必要な必要CPU利用率を計算する。そして、各CPUコアの現在のCPU利用率を計測し、必要CPU利用率に基づいて、そのタスクを割り当てたときのCPU利用率(現在のCPU利用率+タスクの必要CPU利用率)が100%以内であり、かつ、最大となるCPUコアをタスク処理の実行の割り当て先として選択する。
【選択図】図4

Description

本発明は、タスク割当装置、および、タスク割当方法に係り、特に、マルチコアシステムの各CPUコアに、実行するタスクを割り当てるときに、必要なCPU利用率の大きいタスクが生じた際も、そのタスクが実行できる可能性を確保して、従来よりもリアルタイム性を向上させる用途に用いて好適なタスク割当装置、および、タスク割当方法に関する。
計算機システムの演算能力を向上させる手段として、特に、並列処理の処理能力を向上させるために有効な技術として、CPUコアを複数有するマルチコアシステムが提案されている。このマルチコアシステムを用いて複数のタスクを実行させる場合には、それぞれのタスクを、どのCPUコアで処理するかを決定するタスク割り当てが必要になる。
組み込みシステムなどの計算機システムでは、処理の開始から終了までの時間に対する制約(以下、「時間制約」という)の課せられたリアルタイムタスクが存在する。例えば、映像表示処理機器においては、一定時間内に映像表示のためのプログラムが実行を終えることができない場合、出力映像の乱れが発生することとなる。
リアルタイムタスクのリアルタイム性を確保するための手法として、資源予約型システムが提案されている。資源予約型システムでは、明示的に設定されたプロセッサの実行時間を確実にタスクへ割り当てる事で、必要な処理量(CPU利用率)を確保し、リアルタイムタスクの時間制約を満足させる事ができる。非特許文献1には、CPU資源管理機能を有し、タスクの周期時間と、周期時間におけるCPU利用率を指定しておくと、タスク実行時にスケジューラによりそれぞれのタスクにCPU資源を割り当てる技術が開示されている。
また、特許文献1に開示されているソフトウェア生成装置では、ソフトウェアを実行するプラットフォームに適したソースコードを生成するために、タスク(スレッド)の実行に必要なCPU資源量として、そのタスクをCPUコアへ割り当てたときのCPU負荷を予め計測し、それに基づいてタスクのマルチコアシステムへの割り当てをおこなうことにより、タスクのリアルタイム性を確保する(マルチコアプラットフォームの場合、特に、段落番号0072)。
特開2008−250838号公報
S. Oikawa, R. Rajkumar, "Portable RK: A Portable Resource Kernel for Guaranteed and Enforced Timing Behavior", rtas, pp.111, Fifth IEEE Real-Time Technology and Applications Symposium (RTAS'99), 1999
特許文献1のソフトウェア生成装置のCPU負荷の計測では、リアルタイムタスクのマルチコアシステムへの割り当て先を、現在のCPU負荷が最も少ないCPUコアとすることで、各CPUコアの負荷が平均化するようにタスクを割り当てていた。しかしながら、この方法では、タスクが生成される順序やタイミングが事前に判明していない場合に、必要なCPU利用率の大きなタスクが生成されたとき、そのタスクをどのCPUコアに割り当てても時間制約を満たせないケースが発生する可能性があった。
本発明では、上記問題点を解決するためになされたもので、その目的は、マルチコアシステムの各CPUコアに、実行するタスクを割り当てるときに、必要なCPU利用率の大きいタスクが生じた際も、そのタスクが実行できる可能性を確保して、従来よりもリアルタイム性を向上させることのできるタスク割当装置を提供することにある。
本発明のタスク割当装置は、リアルタイムタスクの発生元のプログラムの必要計算量を計測する。必要計算量は、そのプログラムを実行したときに、どれくらいの時間で完了できるかを時間単位で表した量である。また、タスクに課せられた時間制約と、そのタスクの発生元のプログラムの必要計算量から、タスクが時間制約を満たすために必要なCPU利用率(以下、「必要CPU利用率」という)を計算する。
そして、各CPUコアの現在のCPU利用率を計測し、必要CPU利用率に基づいて、そのタスクを割り当てたときのCPU利用率(現在のCPU利用率+タスクの必要CPU利用率)が100%以内であり、かつ、最大となるCPUコアをタスク処理の実行の割り当て先として選択する。
上記のタスク割当装置を用いれば、マルチコアシステムへのタスクの割り当て方として、CPU利用率の空きの多いCPUコアを残すように、タスクを割り当てることが可能となる。これにより、必要なCPU利用率の大きいタスクが生じた際も、そのタスクが実行可能となり、従来よりもリアルタイム性を向上することができる。
また、タスクをCPUコアになるべく偏在するように割り当てることにより、タスクが割り当てられていないCPUコアへの電力供給を停止することができ、省電力化を図ることができる。
さらに、時間制約はないが、できる限り早く処理実行を終了することが好ましい応答性タスクについては、現在のCPU利用率が少ないCPUコアで実行する。これにより、応答性タスクの応答性を向上することができる。
本発明によれば、マルチコアシステムの各CPUコアに、実行するタスクを割り当てるときに、必要なCPU利用率の大きいタスクが生じた際も、そのタスクが実行できる可能性を確保して、従来よりもリアルタイム性を向上させることのできるタスク割当装置を提供することができる。
本発明の一実施形態に係るタスク割当装置を組み込んだデジタル放送受信システム10の構成図である。 記憶装置51、マルチコアシステム52、タスク割当装置53におけるハードウェアの関係を示した構成図である。 マルチコアシステム52のハードウェア構成図である。 記憶装置51とタスク割当装置53の内部構成を示した機能ブロック図である。 プログラムの必要計算量リストL1の一例を示す図である。 必要CPU利用率リストL2の一例を示す図である。 現在CPU利用率リストL3の一例を示す図である。 タスク割当先決定部534のおこなう処理を示すフローチャートである。 CPU利用率を説明するための図である。 必要CPU利用率計算部532が、新たに生成されたタスクの必要CPU利用率を計算するアルゴリズムを示すフローチャートである。 CPUコア利用状況監視部533が、各CPUコア521〜523における現在のCPU利用率を監視する処理を示すフローチャートである。 タスク割当先決定部534が、新たに生成されたタスクの割り当て先のCPUコアを決定する処理のアルゴリズムを示すフローチャートである。 各タスクと生成されるタスクの状況を説明する図である。 本発明の一実施形態において、各時刻におけるCPUコアの実行しているタスクとCPU利用率の関係を示す図である。 本発明の一実施形態において、時刻t=4msにおける各タスクを割り当てたときのマルチコアシステム52のタスク割当状況を示す図である。 本発明の一実施形態において、各タスクを割り当てた場合の各CPUコア(521〜523)のCPU利用率の経過を示す図である。 従来技術において、各時刻におけるCPUコアの実行しているタスクとCPU利用率の関係を示す図である。 従来技術において、時刻t=4msにおける各タスクを割り当てたときのマルチコアシステム52のタスク割当状況を示す図である。 従来技術において、各タスクを割り当てた場合の各CPUコア(521〜523)のCPU利用率の経過を示す図である。
以下、本発明に係る一実施形態を、図1ないし図19を用いて説明する。
先ず、図1を用いて本発明の一実施形態に係るタスク割当装置を組み込んだデジタル放送受信システム10の構成を説明する。
図1は、本発明の一実施形態に係るタスク割当装置を組み込んだデジタル放送受信システム10の構成図である。
図1に示されるデジタル放送受信システム10は、リモートコントローラ20、デジタル放送アンテナ30、表示装置40、デジタル放送受信機50からなる。
デジタル放送受信機50は、記憶装置51、マルチコアシステム52、タスク割当装置53、信号受信部54、デジタル放送チューナ55からなる。
記憶装置51には、デジタル放送受信機ソフトウェア511と、図示されていないが、さらに各種資源を管理し、アプリケーションがそれら資源を利用できるようにするためのOSおよびアプリケーションソフトウェアが格納されている。
マルチコアシステム52は、複数のCPUコアを有するプロセッサである。タスク割当装置53は、各タスクを実行するために、各CPUコアに、処理の実行を割り当てる装置である。信号受信部54は、リモートコントローラ20からの信号を受信する部分である。デジタル放送チューナ55は、デジタル放送アンテナ30を介して映像データ、音声データ及び字幕データを受信する。
デジタル放送受信機ソフトウェア511は、リモートコントローラプログラム5111、チューナプログラム5112、映像デコードプログラム5113、音声デコードプログラム5114、データ放送ブラウザプログラム5115を備えている。
記憶装置51に格納されたこれらのプログラムは、マルチコアシステム52により実行される。マルチコアシステム52は、リモートコントローラ20を使用したユーザ操作に対するリモートコントローラプログラム5111による受信処理と、その適切な応答処理を実行する。例えば、選局に伴うチューナプログラム5112は、受信番組の切り替え、映像デコードプログラム5113および音声デコードプログラム5114は、それぞれチューナプログラム5112が受信した映像データおよび音声データのデコードをおこない、データ放送ブラウズプログラム5115はデータ放送コンテンツ取得および復号化をおこなう。
図1に示したデジタル放送受信システムにおいては、映像デコードプログラム5113および音声デコードプログラム5114は、画像および音声を途切れず出力するために画像のフレームレートによって決まる時間内にそのデコード処理を完了させなければならない。また、画像や音声データを受信した放送波から取り出すチューナプログラム5112にも実行時間に対する制約が課される。一方、リモートコントローラプログラム5111やデータ放送ブラウズプログラム5115に関しては、明確に決められた時間内に実行を完了しなければならないという制約は存在しないが、その実行時間が長くなると応答性や操作性の低下を引き起こす。
次に、図2ないし図4を用いてシステムにおける各部の関係と、各部の構成の詳細を説明する。
図2は、記憶装置51、マルチコアシステム52、タスク割当装置53におけるハードウェアの関係を示した構成図である。
図3は、マルチコアシステム52のハードウェア構成図である。
図4は、記憶装置51とタスク割当装置53の内部構成を示した機能ブロック図である。
記憶装置51、マルチコアシステム52、タスク割当装置53は、図2に示されるように、バスにより接続されている。
マルチコアシステム52の内部には、図3に示されるように、三つの同じ性能のCPUコア521〜523、それぞれのCPUコアに接続され、記憶装置51やタスク割当装置52との間でやり取りされるデータを一時保管するキャッシュメモリ、および、各CPUコアに供給する電力を制御する電力制御部524を備えている。ここで、本実施形態が適用されるマルチコアシステム52のCPUコアの個数は、3個に限定されるものではなく、マルチコアシステム52は複数個のCPUコアが接続されたシステムであればよく、いわゆるメニイコアと呼ばれるシステムであってもよい。また、本実施形態は、各CPUコアの性能や構成が同一であるホモジニアス(homogeneous)なマルチコアシステムを想定して記述しているが、各CPUコアの性能や構成が同一ではないヘテロジニアス(heterogeneous)のマルチコアシステムであってもよい。さらに、マルチコアシステムにおいては、CPUコアに特定のOSとタスクを割り当てるAMP(Asymmetric Multiprocessing)と、個々のCPUが対等の条件でメモリーを共有するSMP(Symmetric Multiprocessing)があることが知られており、本実施形態は、SMPを想定して記述しているが、AMPでもよい。
次に、図4により本実施形態に係るタスク割当装置の機能について説明する。
記憶装置51内には、図4に示されるように、デジタル放送受信機ソフトウェア511と、タスクの元プログラムの必要計算量512とが記憶されている。ここで、タスクの元プログラムとは、そのプログラムを実行するときに、タスクを発生させる元になるプログラムである。必要計算量512についての定義は、後に説明する。
また、タスク割当装置53は、必要計算量計測部531、必要CPU利用率計算部532、CPUコア利用状況監視部533、タスク割当先決定部534の各機能ブロックを有する。
必要計算量計測部531は、タスクの元プログラムの必要計算量512を計測する。必要CPU利用率計算部532は、指定された時間制約と必要計算量512に基づき、各タスクが時間制約を満たすための必要CPU利用率を計算する。必要CPU利用率の定義は、後に説明する。CPUコア利用状況監視部533は、マルチコアシステム52内の各CPUコアの現在のCPU利用率を監視する。タスク割当先決定部534は、タスクの必要CPU利用率と、各CPUコア521〜523のCPU利用率を元にタスクの割り当て先を決定する。
次に、図5ないし図7を用いて本実施形態に係るタスク割当装置のタスク割り当てのために用いられるデータ構造について説明する。
図5は、プログラムの必要計算量リストL1の一例を示す図である。
図6は、必要CPU利用率リストL2の一例を示す図である。
図7は、現在CPU利用率リストL3の一例を示す図である。
必要計算量リストL1は、各プログラムごとに、必要計算量を示したリストであり、必要計算量計測部531に計測した結果として、図4に示される必要計算量512の中に格納される。
必要CPU利用率リストL2は、各タスクごとに、関連情報とともに、必要CPU利用率を示したリストであり、必要CPU利用率計算部532が保持する。
現在CPU利用率リストL3は、各CPUコアごとに、CPU利用率と、実行しているタスクの情報を示したリストであり、 CPUコア利用状況監視部533タスク割り当てをおこなうためのシステムの状況を監視した結果として取得して保持する。
次に、図8を用いてタスク割当先決定部534のおこなう処理について説明する。
図8は、タスク割当先決定部534のおこなう処理を示すフローチャートである。
タスク割当先決定部534は、タスク生成要求をマルチコアシステム52より受け取ると、新たに作成されたタスクの必要CPU利用率、タスクの時間制約を必要CPU利用率計算部532(必要CPU利用率リストL2)より取得する(5341)。
次に、CPUコア利用状況監視部533(現在CPU利用率リストL3)より、各CPUコアの現在のタスクのCPU利用率を取得する(5342)。
次に、タスク割当先決定部534は、ステップ5341とステップ5342で取得した情報を参照し、後に説明されるアルゴリズムに基づき、新たに生成されたタスクの割り当て先CPUコアを決定し(5343)、マルチコアシステム52に対して、タスク割当指令を送信する。
次に、図9を用いてCPU利用率の概念について簡単に説明する。
図9は、CPU利用率を説明するための図である。
例えば、非特許文献1に記載されている技術を用いると、ユーザーが予め周期時間およびその周期中におけるタスク実行に必要な時間を指定しておくと、指定した周期時間中のそのタスクの実行時間を制御できることが知られている。図9(a)では、タスクAに周期時間の0.6倍の実行時間を、タスクBに周期時間の0.3倍の実行時間を指定した例を示している。ここで、周期時間が、タスクに与えられた時間制約に対して十分小さいとき、図9(b)のように、タスクAに60%、タスクBに30%のCPU利用率を割り当てて、タスクを実行したと考えることができる。
次に、図10を用いて必要CPU利用率計算部532が、新たに生成されたタスクの必要CPU利用率を計算する処理について説明する。
図10は、必要CPU利用率計算部532が、新たに生成されたタスクの必要CPU利用率を計算するアルゴリズムを示すフローチャートである。
先ず、新たに生成されたタスクの、元プログラムの必要計算量を記憶装置51に格納されている必要計算量リストL1より取得し(5321)、タスクの時間制約をマルチコアシステム52より取得し(5322)、図6に示した必要CPU利用率リストL2に登録する。
各プログラムの必要計算量は、予め計測しておき、記憶装置51に必要計算量リストL1として記憶されている。一方、時間制約は、マルチコアシステム51にてタスク生成要求が生じた際に各タスクに課せられるパラメータである。
ここで、本実施形態における必要計算量は、各プログラムを、マルチコアシステム52内のCPUコア521〜523と同一性能のCPUコアにて、他タスクが動作していない状況(CPU利用率100%)で実行した場合に、実行に要した時間をミリ秒単位で計測した値と定義する。
次に、必要計算量と時間制約に基づき、必要CPU利用率を計算し(5323)、図6に示した必要CPU利用率リストL2に登録する。ここで、必要CPU利用率は、以下の(式1)で定義される。
必要CPU利用率(%)=元プログラムの必要計算量/時間制約×100
…(式1)
なお、時間制約のないタスクについては、マルチコアシステム内で時間制約を∞と定義し、(式1)から、そのタスクの必要CPU利用率を、0%となるものと約束する。
次に、図11を用いてCPUコア利用状況監視部533が、各CPUコア521〜523における現在のCPU利用率を監視する処理について説明する。
図11は、CPUコア利用状況監視部533が、各CPUコア521〜523における現在のCPU利用率を監視する処理を示すフローチャートである。
先ず、マルチコアシステム52から、各CPUコア521〜523に割り当てられているタスクのタスク名の取得をおこない、それを図7に示された現在CPU利用率リストL3に記録する(5331)。また、各CPUコア521〜523の現在のCPU利用率を計測し、現在CPU利用率リストL3に記録する(5331)。
次に、図12を用いてタスク割当先決定部534が、新たに生成されたタスクの割り当て先のCPUコアを決定する処理について説明する。
図12は、タスク割当先決定部534が、新たに生成されたタスクの割り当て先のCPUコアを決定する処理のアルゴリズムを示すフローチャートである。
先ず、図7に示した現在CPU利用率リストL3と図6に示した必要CPU利用率リストL2とを参照し、現在のCPUコアのCPU利用率と、新たに生成されたタスクの必要CPU利用率の和が100%以内となる全CPUコアを探索する(5343a)。そして、現在のCPUコアのCPU利用率と、タスクの必要CPU利用率の和が100%以内となるCPUコアが存在すれば(5343b)、その中でCPUコアのCPU利用率が最大であるCPUコアをタスクの割り当て先とする(5343c)。これは、タスクの時間制約が守れる範囲で、現在のCPUコアの負荷を偏在的にする意義を有する。
また、利用できるCPUの中で、CPUコアのCPU利用率と、タスクの必要CPU利用率の和が100%以内となるCPUコアが存在しない場合は、CPUコアのCPU利用率が最小であるCPUコアをタスクの割り当て先とする(5343d)。この場合は、タスクの時間制約を守れないが、CPU利用率が最小であるCPUコアにタスクの処理を割り当てできるだけ、早くタスクの処理を終了させるという意義を有する。
また、CPU利用率が同じである場合は、例えば、順序づけられたIDの小さいCPUコアを、割り当て先CPUコアとするというように約束しておく。
なお、ステップ5343bにおける、各CPUコアのCPU利用率の上限値を、時間制約を満たすために余裕を取る目的で、100%未満の値(例えば、80%)にすることも可能である。
また、タスクの中には、できる限り早く処理実行を終了することが好ましい応答性タスクがある。応答性タスクの例として、ユーザーがテレビのチャンネル切り替えを入力した際、ユーザーはなるべく早くチャンネルが切り替わることを期待するということが挙げられる。
したがって、このような応答性タスクの性質に鑑み、処理速度を向上させるために、対象となるタスクが応答性タスクの場合には、最も現在の利用率の小さいCPUコアに対して、そのタスクを割り当てるものとする。
このように、応答性タスクをCPUコアに割り当てることにより、応答性タスクの応答性を向上させることができる。
次に、図13ないし図19を用いて本実施形態のタスク割当装置のタスクを割り当てる処理を、従来技術と対比して、具体例により説明する。
図13は、各タスクと生成されるタスクの状況を説明する図である。
図14は、本発明の一実施形態において、各時刻におけるCPUコアの実行しているタスクとCPU利用率の関係を示す図である。
図15は、本発明の一実施形態において、時刻t=4msにおける各タスクを割り当てたときのマルチコアシステム52のタスク割当状況を示す図である。
図16は、本発明の一実施形態において、各タスクを割り当てた場合の各CPUコア521〜523のCPU利用率の経過を示す図である。
図17は、従来技術において、各時刻におけるCPUコアの実行しているタスクとCPU利用率の関係を示す図である。
図18は、従来技術において、時刻t=4msにおける各タスクを割り当てたときのマルチコアシステム52のタスク割当状況を示す図である。
図19は、従来技術において、各タスクを割り当てた場合の各CPUコア(521〜523)のCPU利用率の経過を示す図である。
本実施形態において、始めの状況で、図3に示されたCPUコア(521〜523)のいずれにもタスクは割り当てられていないものとし、図13に示すようにタスクAからタスクE(511a〜511e)が、それぞれ1msの間隔で生成される場合を考える。すなわち、時刻t=0msでタスクA(511a)、t=1msでタスクB(511b)、…、t=4msでタスクE(511e)が生成される。タスクAからタスクE(511a〜511e)の元プログラムの必要計算量、および、各タスクに与えられる時間制約は図13に示す通りであるものとする。
時刻t=0msにおいて、タスクA(511a)の必要CPU利用率は、必要CPU利用率計算部532において、(式1)から、6/10×100=60(%)と計算される。t=0msでは、CPUコア521〜523のいずれのCPUコアにもタスクは割り当てられておいないため、タスクA(511a)の割り当て先は、タスク割当先決定部534において、最も前の番号にあたるCPUコアa(521)と決められる。
次に、時刻t=1msにおいて、タスクB(511b)の必要CPU利用率は、(式1)から6/10×100=60%と計算される。CPUコアa(521)のCPU利用率は60%であり、タスクB(511b)を割り当てると100%を超えるため、CPタスクB(511b)は、図14(a)に示すように、CPUコアbとCPUコアcのうちで前の番号にあたるCPUコアb(522)に割り当てられる。
次に、時刻t=2msにおいて、タスクC(511c)の必要CPU利用率は、(式1)から、(4.5/15)×100=30%と計算される。CPUコアa(521)、およびCPUコアb(522)のCPU利用率は60%であり、これらは、CPU利用率とタスクの必要CPU利用率の和が、90%となり、図14(b)に示すように、タスクC(511c)は、CPUコアaとCPUコアbのうちで前の番号にあたるCPUコアa(521)に割り当てられる。
次に、時刻t=3msにおいて、タスクD(511d)の必要CPU利用率は、(式1)から、(4.5/15)×100=30%と計算される。ここで、CPUコアa(521)のCPU利用率は90%、CPUコアb(522)のCPU利用率は60%、CPUコアc(523)のCPU利用率は0%であり、CPU利用率と必要CPU利用率の和は、CPUコアAでは、120%、CPUコアBでは、90%、CPUコアcでは、30%となる。したがって、図14(c)に示すように、タスクD(511d)は、CPU利用率と必要CPU利用率の和が、100%を超えず、かつ、最大となるCPUコアb(522)に割り当てられる。
次に、時刻t=4msにおいて、タスクE(511e)の必要CPU利用率は、(式1)から、(9.0/15)×100=60%と計算される。CPU利用率と必要CPU利用率の和は、CPUコアa(521)とCPUコアb(522)では、いずれも100%を超過するため、図14(d)に示すように、タスクE(511e)は、CPU利用率と必要CPU利用率の和が、100%を超えないCPUコアc(523)に割り当てられる。
図15には、上述の過程により、タスクAからタスクEを各CPUコア(521〜523)に割り当てたときの時刻t=4msにおけるマルチコアシステム52のタスク割当状況が示されている。また、上述の過程により、タスクAからタスクE(511a〜511e)の各タスクを割り当てた場合の各CPUコア(521〜523)のCPU利用率の経過は、図16に示されるようになる。
一方、従来技術(特許文献1)によるタスクの割当方法によれば、時刻t=2msにおいて、図17(b)に示すように、タスクCは最もCPU利用率の少ないCPUコアc(523)に割り当てられる。
次に、時刻t=3msにおいて、図17(c)に示すように、最もCPU利用率の少ないCPUコアc(523)に、タスクD(511d)が割り当てられる。
そして、時刻t=4msにおいては、図17(d)に示すように、CPUコアaからCPUコアc(521〜523)の全CPUコアのCPU利用率が60%のため、タスクE(511e)をいずれのCPUコアに割り当ててもCPU利用率が100%を超過してしまい、時間制約を満たせなくなる。
図18には、従来技術によりタスクAからタスクEを各CPUコア(521〜523)に割り当てたときの時刻t=4msにおけるマルチコアシステム52のタスク割当状況が示されている。また、従来技術により、タスクAからタスクE(511a〜511e)を割り当てた場合の各CPUコア(521〜523)のCPU利用率の経過は、図19に示されるようになる。
このように、従来技術では、各CPUコアでCPU利用率がかなり大きくなっているときに、必要CPU利用率が大きいタスク(タスクE)が発生したときには、いずれのCPUコアに対しても、CPU利用率とタスクの必要CPU利用率が、100%を超えてしまい、時間制約が満たせなくなる。一方、本実施形態のタスク割り当て方法では、上記の例の場合でも、CPU利用率が小さいCPUコア(CPUコアc)が存在するために、必要CPU利用率が大きいタスク(タスクE)でも、CPU利用率とタスクの必要CPU利用率が、100%を超えることなく、タスクの割り当てが可能になる。
さらに、タスクをCPUコアになるべく偏在するように割り当てることにより、タスクが割り当てられていないCPUコアへの電力供給を停止することができ、省電力化を図ることができる。これにより、例えば、携帯電話であれば電池の長寿命化が図れ、デジタルテレビであれば、放熱を減らすことができ、放熱部分の省スペース化を図ることができる。
本実施形態で示されたように、本発明に係るタスク割当装置を用いれば、マルチコアシステムに対して、時間制約を満たすようにタスクを割り当てることが可能になり、映像音声処理や自動制御システム、医療システムのようなマルチコアシステム、かつ、リアルタイムシステムの開発環境に好適なタスク割当方法を提供することができる。
10…デジタル放送受信システム
20…リモートコントローラ
30…デジタル放送アンテナ
40…表示装置
50…デジタル放送受信機
51…記憶装置
511…デジタル放送受信機ソフトウェア
5111…リモートコントローラプログラム
5112…チューナプログラム
5113…映像デコードプログラム
5114…音声デコードプログラム
5115…データ放送ブラウザプログラム
512…必要計算量
52…マルチコアシステム
53…タスク割当装置
54…信号受信部
55…デジタル放送チューナ
521…CPUコアa
522…CPUコアb
523…CPUコアc
524…電力制御部
531…必要計算量計測部
532…必要CPU利用率計算部
533…CPUコア利用状況監視部
534…タスク割当先決定部
L1…必要計算量リスト
L2…必要CPU利用率リスト
L3…現在CPU利用率リスト。

Claims (6)

  1. 複数のCPUコアを保持するマルチコアシステムの各CPUコアに対して、タスクの処理の実行を割り当てるタスク割当装置において、
    タスク実行の開始から終了までに時間制約が指定されたタスクの前記CPUコアに対する処理の実行の割り当てに際して、
    前記タスクの発生させる元になるプログラムの必要計算量と前記タスクに指定された時間制約とから、各CPUコアで実行するときに、前記タスクの時間制約を満たすために必要な必要CPU利用率を計算する必要CPU利用率計算手段と、
    前記マルチコアシステム中の各CPUコアの現在のCPU利用率を取得するCPUコア利用状況監視手段と、
    各CPUコアの現在のCPU利用率と、前記計算された各CPUコアでのタスクの必要CPU利用率とに基づき、前記タスクの処理を実行するCPUコアの割り当て先を決定するタスク割当先決定手段とを有するタスク割当装置。
  2. 前記タスク割当先決定手段は、
    前記タスクの処理の実行を割り当てたときに、時間制約を満たすことが可能な前記マルチコアシステム中のCPUコアのうち、
    前記タスクの処理の実行を割り当てたときに、CPU利用率が最大となるCPUコアに対して前記タスクの処理の実行を割り当てることを特徴とする請求項1記載のタスク割当装置。
  3. タスク割当先決定手段における応答性タスクの前記CPUコアに対する処理の実行の割り当てに際して、
    前記応答性タスクは、現在のCPU利用率が最も低い前記CPUコアに割り当てることを特徴とする請求項1記載のタスク割当装置。
  4. 複数のCPUコアを保持するマルチコアシステムの各CPUコアに対して、タスクの処理の実行を割り当てるタスク割当方法において、
    タスク実行の開始から終了までに時間制約が指定されたタスクの前記CPUコアに対する処理の実行の割り当てに際して、
    前記タスクの発生させる元になるプログラムの必要計算量と前記タスクに指定された時間制約とから、各CPUコアで実行するときに、前記タスクの時間制約を満たすために必要な必要CPU利用率を計算する必要CPU利用率計算ステップと、
    前記マルチコアシステム中の各CPUコアの現在のCPU利用率を取得するCPUコア利用状況監視ステップと、
    各CPUコアの現在のCPU利用率と、前記計算された各CPUコアでのタスクの必要CPU利用率とに基づき、前記タスクの処理を実行するCPUコアの割り当て先を決定するタスク割当先決定ステップとを有するタスク割当方法。
  5. 前記タスク割当先決定ステップにおいて、
    前記タスクの処理の実行を割り当てたときに、時間制約を満たすことが可能な前記マルチコアシステム中のCPUコアのうち、
    前記タスクの処理の実行を割り当てたときに、CPU利用率が最大となるCPUコアに対して前記タスクの処理の実行を割り当てることを特徴とする請求項4記載のタスク割当方法。
  6. タスク割当先決定手段における応答性タスクの前記CPUコアに対する処理の実行の割り当てに際して、
    前記応答性タスクは、現在のCPU利用率が最も低い前記CPUコアに割り当てることを特徴とする請求項4記載のタスク割当方法。
JP2009126683A 2009-05-26 2009-05-26 タスク割当装置、および、タスク割当方法 Expired - Fee Related JP5462529B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009126683A JP5462529B2 (ja) 2009-05-26 2009-05-26 タスク割当装置、および、タスク割当方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009126683A JP5462529B2 (ja) 2009-05-26 2009-05-26 タスク割当装置、および、タスク割当方法

Publications (2)

Publication Number Publication Date
JP2010277171A true JP2010277171A (ja) 2010-12-09
JP5462529B2 JP5462529B2 (ja) 2014-04-02

Family

ID=43424108

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009126683A Expired - Fee Related JP5462529B2 (ja) 2009-05-26 2009-05-26 タスク割当装置、および、タスク割当方法

Country Status (1)

Country Link
JP (1) JP5462529B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102426544A (zh) * 2011-11-04 2012-04-25 浪潮(北京)电子信息产业有限公司 任务分配方法和系统
WO2013140518A1 (ja) * 2012-03-19 2013-09-26 富士通株式会社 スケジューリングプログラム、マルチコアプロセッサシステム、およびスケジューリング方法
JP2014066165A (ja) * 2012-09-25 2014-04-17 Toyota Motor Corp エンジン制御装置
KR20150002270A (ko) * 2013-06-28 2015-01-07 삼성전자주식회사 멀티 코어 시스템에서 태스크를 분배하기 위한 방법 및 그 전자 장치
WO2015015756A1 (ja) * 2013-08-02 2015-02-05 日本電気株式会社 不揮発性メモリ搭載サーバの省電力制御システム、制御装置、制御方法および制御プログラム
JP2019133291A (ja) * 2018-01-30 2019-08-08 富士通株式会社 情報処理装置,情報処理システムおよび制御プログラム
US10642658B2 (en) 2014-05-26 2020-05-05 Hitachi Automotive Systems, Ltd. Vehicle control apparatus

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628323A (ja) * 1992-07-06 1994-02-04 Nippon Telegr & Teleph Corp <Ntt> プロセス実行制御方法
JPH0668052A (ja) * 1992-08-18 1994-03-11 Nec Corp ジョブ自動割当機能を有する疎結合マルチプロセッサシステム
JPH1027167A (ja) * 1996-07-12 1998-01-27 Hitachi Ltd 並列計算機の負荷分散方法
JP2001092798A (ja) * 1999-09-21 2001-04-06 Matsushita Electric Ind Co Ltd 負荷分散型マルチプロセッサシステム及び方法
JP2004312131A (ja) * 2003-04-03 2004-11-04 Matsushita Electric Ind Co Ltd 無線基地局のリソース割り当て方法および無線基地局
JP2007207072A (ja) * 2006-02-03 2007-08-16 Hewlett-Packard Development Co Lp 処理制御装置およびその方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628323A (ja) * 1992-07-06 1994-02-04 Nippon Telegr & Teleph Corp <Ntt> プロセス実行制御方法
JPH0668052A (ja) * 1992-08-18 1994-03-11 Nec Corp ジョブ自動割当機能を有する疎結合マルチプロセッサシステム
JPH1027167A (ja) * 1996-07-12 1998-01-27 Hitachi Ltd 並列計算機の負荷分散方法
JP2001092798A (ja) * 1999-09-21 2001-04-06 Matsushita Electric Ind Co Ltd 負荷分散型マルチプロセッサシステム及び方法
JP2004312131A (ja) * 2003-04-03 2004-11-04 Matsushita Electric Ind Co Ltd 無線基地局のリソース割り当て方法および無線基地局
JP2007207072A (ja) * 2006-02-03 2007-08-16 Hewlett-Packard Development Co Lp 処理制御装置およびその方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNG200300650012; 谷出新、ほか2名: 'リアルタイムオペレーティングシステムEaselにおけるメモリ管理機構' 情報処理学会研究報告 第2001巻第21号(2001-OS-86), 20010306, pp.91-98, 社団法人情報処理学会 *
CSNG200401947003; 竹房あつ子、ほか1名: 'グリッド計算環境でのデッドラインを考慮したスケジューリング手法の性能' 電子情報通信学会論文誌 Vol.J86-D-I, No.9, 20030901, pp.661-670, 社団法人電子情報通信学会 *
JPN6013031035; 谷出新、ほか2名: 'リアルタイムオペレーティングシステムEaselにおけるメモリ管理機構' 情報処理学会研究報告 第2001巻第21号(2001-OS-86), 20010306, pp.91-98, 社団法人情報処理学会 *
JPN6013031038; 竹房あつ子、ほか1名: 'グリッド計算環境でのデッドラインを考慮したスケジューリング手法の性能' 電子情報通信学会論文誌 Vol.J86-D-I, No.9, 20030901, pp.661-670, 社団法人電子情報通信学会 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102426544A (zh) * 2011-11-04 2012-04-25 浪潮(北京)电子信息产业有限公司 任务分配方法和系统
WO2013140518A1 (ja) * 2012-03-19 2013-09-26 富士通株式会社 スケジューリングプログラム、マルチコアプロセッサシステム、およびスケジューリング方法
JPWO2013140518A1 (ja) * 2012-03-19 2015-08-03 富士通株式会社 スケジューリングプログラム、マルチコアプロセッサシステム、およびスケジューリング方法
US9715407B2 (en) 2012-03-19 2017-07-25 Fujitsu Limited Computer product, multicore processor system, and scheduling method
JP2014066165A (ja) * 2012-09-25 2014-04-17 Toyota Motor Corp エンジン制御装置
KR20150002270A (ko) * 2013-06-28 2015-01-07 삼성전자주식회사 멀티 코어 시스템에서 태스크를 분배하기 위한 방법 및 그 전자 장치
KR102090306B1 (ko) * 2013-06-28 2020-03-17 삼성전자주식회사 멀티 코어 시스템에서 태스크를 분배하기 위한 방법 및 그 전자 장치
WO2015015756A1 (ja) * 2013-08-02 2015-02-05 日本電気株式会社 不揮発性メモリ搭載サーバの省電力制御システム、制御装置、制御方法および制御プログラム
US10642658B2 (en) 2014-05-26 2020-05-05 Hitachi Automotive Systems, Ltd. Vehicle control apparatus
JP2019133291A (ja) * 2018-01-30 2019-08-08 富士通株式会社 情報処理装置,情報処理システムおよび制御プログラム
JP7003692B2 (ja) 2018-01-30 2022-01-20 富士通株式会社 情報処理装置,情報処理システムおよび制御プログラム

Also Published As

Publication number Publication date
JP5462529B2 (ja) 2014-04-02

Similar Documents

Publication Publication Date Title
JP5462529B2 (ja) タスク割当装置、および、タスク割当方法
US9218203B2 (en) Packet scheduling in a multiprocessor system using inter-core switchover policy
JP6005795B2 (ja) 仮想マシンの信頼性のある決定論的ライブ移行
KR100628492B1 (ko) 실시간 동작 수행방법 및 시스템
TWI260543B (en) Performance scheduling method and system, and computer readable medium
Xu et al. Adaptive task scheduling strategy based on dynamic workload adjustment for heterogeneous Hadoop clusters
US20160210174A1 (en) Hybrid Scheduler and Power Manager
RU2697700C2 (ru) Равноправное разделение системных ресурсов в исполнении рабочего процесса
EP3183628A1 (en) Methods and apparatus to manage jobs that can and cannot be suspended when there is a change in power allocation to a distributed computer system
KR20050016170A (ko) 실시간 동작 수행방법 및 시스템
JP2009541848A (ja) コンピュータマイクロジョブを中断せずに実行するようスケジュールするための方法、システムおよび装置
US9304814B2 (en) Determine variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time
US9471387B2 (en) Scheduling in job execution
US20170097854A1 (en) Task placement for related tasks in a cluster based multi-core system
EP3274859B1 (en) Cluster computing service assurance apparatus and method
Moulik RESET: A real-time scheduler for energy and temperature aware heterogeneous multi-core systems
CN115617497B (zh) 线程处理方法、调度组件、监测组件、服务器和存储介质
KR101694302B1 (ko) 이기종 멀티코어 프로세서 시스템의 관리 장치 및 방법
US11422857B2 (en) Multi-level scheduling
WO2014188642A1 (ja) スケジュールシステム、スケジュール方法、及び、記録媒体
JP2008077281A (ja) スーパースケジューラ、処理依頼方法、およびスーパースケジューラプログラム
JP2015164052A (ja) マルチコアプロセッサの制御プログラム、電子機器及び制御方法
JP6191361B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
JP2014078214A (ja) スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム
Yazdanpanah et al. A comprehensive view of MapReduce aware scheduling algorithms in cloud environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130828

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140117

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees