JP5614699B2 - マルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラム - Google Patents

マルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラム Download PDF

Info

Publication number
JP5614699B2
JP5614699B2 JP2009092917A JP2009092917A JP5614699B2 JP 5614699 B2 JP5614699 B2 JP 5614699B2 JP 2009092917 A JP2009092917 A JP 2009092917A JP 2009092917 A JP2009092917 A JP 2009092917A JP 5614699 B2 JP5614699 B2 JP 5614699B2
Authority
JP
Japan
Prior art keywords
task
tag
core
executed
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.)
Expired - Fee Related
Application number
JP2009092917A
Other languages
English (en)
Other versions
JP2010244332A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2009092917A priority Critical patent/JP5614699B2/ja
Publication of JP2010244332A publication Critical patent/JP2010244332A/ja
Application granted granted Critical
Publication of JP5614699B2 publication Critical patent/JP5614699B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明はマルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラムに関する。
プロセッサの動作周波数の向上が停滞し、プロセッサの性能向上は複数のプロセッサコアを搭載することによるマルチコア化によって進むようになってきている。このため、従来シングルコアプロセッサを利用していた用途にもマルチコアプロセッサが利用されるようになってきている。
OS(Operating System)を用いて複数のタスクを処理するマルチタスクシステムでは、OSのタスクスケジューラが実行可能なタスクをプロセッサコア(以下単にコアと呼ぶ)に割り当てて実行する。マルチコアは複数のコアを持つため、実行可能なタスクが複数ある場合は、タスクは異なるコアに割り当てられて同時に動作する。従って、タスク自体が並列化されていなくても性能向上が期待できるため、シングルコア用に開発されたソフトウェアをマルチコアで実行したいという要求がある。
例えば、ある時刻1で実行可能なタスクが三つある場合、シングルコアでは、図1に示すように、一つのタスクが選ばれコアに割り当てられて実行される(図ではタスク0)。次の時刻2でタスク0が停止すると、次のタスクが割り当てられ実行される。このように、シングルコアでは逐次的に実行が行われる。
一方、マルチコアでは、図2に示すように、時刻1ではタスク0とタスク1が同時に異なるコアに割り当てられて実行される。
一方、一般にタスクの処理内容によっては、他のタスクと同時に動作すると不具合を起こす可能性がある。マルチコアでは複数のコアでタスクが同時に実行されるため、シングルコアでは不具合が起こらなかったタスクでも、他のタスクと同時に実行されることによって不具合が生じる可能性がある。
例えば、前述の例で、タスク0とタスク2が同時に実行すると不具合を起こす部分を含んでいるとする。このタスクが図3の様に実行されると、不具合を起こす部分(図中の斜線部分)が同時に実行されるため、不具合を起こす。
同時実行によって不具合を起こす可能性を考慮すると、シングルコア用に開発されたソフトウェアをマルチコアで動作させる場合は、同時に実行される可能性があるタスク間で、同時に実行しても問題がないか確認し、必要に応じて同時実行を禁止するための指定を行う必要がある。
既存の指定方法としてセマフォアがある。セマフォアを利用すると、クリティカルセクションを定義し、同時にクリティカルセクションに入るタスクを一つに制限することができる。
図4に、前述の例でセマフォアを用いて、同時実行を禁止した場合のスケジューリング結果を示す。同時実行をすると不具合を起こす部分をクリティカルセクションと定義し、クリティカルセクションに入る前にはロックを取得する必要があるようにする。これにより、時刻1でタスク2がクリティカルセクションを実行するためにロックを取得しようとすると、コア0のタスク0がクリティカルセクションを実行中のためロックが取得できず、タスク0がロックを解除する時刻2まで、実行を停止する。
セマフォアを利用する場合は、各タスクの同時実行をさせない部分を調べ出し、タスクのソースコードの該当部分を囲むようにAPIコールを挿入することで、該当部分をクリティカルセクションと定義する。従って、セマフォアには全てのタスク間で同時に実行可能かの確認を行い、必要ならばソースコードを修正するという膨大な手間がかかることが問題である。
又、関連技術には指定方法としてプロセッサaffinityを用いることができる。プロセッサaffinityは、タスク毎に利用可能なコアを指定する機能である。プロセッサaffinityを用いると、同時に実行されるべきではないタスクを同一のコアに割り当てることによって、同時に動作することがないようにできる。しかしながら、別コアに割り当てるために、そのほかのコアで動く可能性のある全てのタスクと同時に実行しても良いかを確認する必要がある。
図5に、前述の例でプロセッサaffinityを用いてタスク0とタスク2をコア0に割り当て、タスク1をコア1に割り当てた場合のスケジューリング結果を示す。この場合は、タスク0とタスク2は同じコアに割り当てられているため、同時に実行されない。しかし、タスク1はタスク0とタスク2のどちらとも同時に実行される可能性があるため、例えばタスク0とタスク1のみ同時に動かしたい場合でも、タスク1とタスク2が同時に動いても問題ないかを確認しなければならず、余計な手間がかかるという問題がある。
そのため、特許文献1には、マスタプロセッサ内のタスク割り当て管理部が、各スレーブプロセッサ割り当てるべきタスク量を決定し、タスクキューに保持されているタスクを各スレーブプロセッサに供給し、タスク割り当て管理部は、タスクキューに保持されているタスク残存量を監視し、タスク残存量に応じて割り当てるタスク量を決定する発明が開示されている。
特開平11−195007号公報
しかしながら、特許文献1に開示されている発明は、タスクの同時実行を許可するか禁止するかを指定する手段を開示していないという問題点がある。
本発明は上記に鑑みてなされたもので、タスクの同時実行を許可するか禁止するかを指定することにより、シングルコア用に開発されたソフトウェアをマルチコアに移行する場合のコストを軽減することができる、マルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラムを提供することを目的とする。
上述の問題を解決するため、本発明に係るタスク割り当て関連方法は、マルチコアを用いたマルチタスクシステムにおける各コアへのタスクの割り当てに関連した処理をするタスク割り当て関連方法であって、或るコアに割り当てる予定である1以上の割り当て候補タスクのそれぞれについて、他のコアで実行中のタスクと同時実行可能であるか否かを、それぞれの候補タスクに対応するタグの値と、他のコアで実行中のタスクに対応するタグの値と、タグの値の間の関係に応じた所定の規則に基づいて判断し、実行可能であると判断されたそれぞれの割り当て候補タスクを割り当て可能タスクとし、前記候補タスクと、前記他のコアで実行中のタスクの内、少なくとも一つのタスクに対応するタグが複数存在し、該複数のタグの値の全てと他のタスクのタグの値の全てとを比較することを特徴とする。
上述の問題を解決するため、本発明に係るタスク割り当て関連装置は、マルチコアを用いたマルチタスクシステムにおける各コアへのタスクの割り当てに関連した処理をするタスク割り当て関連装置であって、或るコアに割り当てる予定である1以上の割り当て候補タスクのそれぞれについて、他のコアで実行中のタスクと同時実行可能であるか否かを、それぞれの候補タスクに対応するタグの値と、他のコアで実行中のタスクに対応するタグの値と、タグの値の間の関係に応じた所定の規則に基づいて判断し、実行可能であると判断されたそれぞれの割り当て候補タスクを割り当て可能タスクとし、前記候補タスクと、前記他のコアで実行中のタスクの内、少なくとも一つのタスクに対応するタグが複数存在し、該複数のタグの値の全てと他のタスクのタグの値の全てとを比較することを特徴とする。
上述の問題を解決するため、本発明に係るタスク割り当てに関連した処理をするタスク割り当て関連装置としてコンピュータを機能させるためのプログラムは、マルチコアを用いたマルチタスクシステムにおける各コアへのタスクの割り当てに関連した処理をするタスク割り当て関連装置としてコンピュータを機能させるためのプログラムであって、或るコアに割り当てる予定である1以上の割り当て候補タスクのそれぞれについて、他のコアで実行中のタスクと同時実行可能であるか否かを、それぞれの候補タスクに対応するタグの値と、他のコアで実行中のタスクに対応するタグの値と、タグの値の間の関係に応じた所定の規則に基づいて判断し、実行可能であると判断されたそれぞれの割り当て候補タスクを割り当て可能タスクとし、前記候補タスクと、前記他のコアで実行中のタスクの内、少なくとも一つのタスクに対応するタグが複数存在し、該複数のタグの値の全てと他のタスクのタグの値の全てとを比較することを特徴とするタスク割り当て関連装置としてコンピュータを機能させることを特徴とする。
本発明によれば、タスクにタグを設定し、一のコアへ割り当てる予定のタスクに設定されたタグと他のコアで実行中のタグとのタグ間の関係性に基づいて、割り当てる予定のタスクが一のコアで実行可能かを判定させることにより、シングルコア用に開発されたソフトウェアをマルチコアに移行する場合のコストを軽減することができる、マルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラムを提供することができる。
本発明の背景を説明するための図面である。 本発明の背景を説明するための図面である。 本発明の背景を説明するための図面である。 本発明の関連技術を説明するための図面である。 本発明の関連技術を説明するための図面である。 本発明の手段を説明するための図面である。 本発明の第1の実施の形態の構成を説明するための図面である。 本発明の第2の実施の形態の構成を説明するための図面である。 本発明の第3の実施の形態の構成を説明するための図面である。 本発明の第1の実施例を説明するための図面である。 本発明の第1の実施例を説明するための図面である。 本発明の第1の実施例を説明するための図面である。 本発明の第1の実施例を説明するための図面である。 本発明の第3の実施例を説明するための図面である。 本発明の第4の実施例を説明するための図面である。 本発明の第5の実施例を説明するための図面である。 本発明の第6の実施例を説明するための図面である。 本発明の第7の実施例を説明するための図面である。 本発明の第7の実施例を説明するための図面である。 本発明の第7の実施例を説明するための図面である。 本発明の第7の実施例を説明するための図面である。 本発明の第7の実施例を説明するための図面である。 本発明の第7の実施例を説明するための図面である。 本発明の第8の実施例を説明するための図面である。 本発明の第8の実施例を説明するための図面である。 本発明の第8の実施例を説明するための図面である。 本発明の第8の実施例を説明するための図面である。 本発明の第8の実施例を説明するための図面である。 本発明の第8の実施例を説明するための図面である。 本発明の第9の実施例を説明するための図面である。 本発明の第9の実施例を説明するための図面である。
次に発明を実施するための最良の形態について図面を参照して詳細に説明する。
本発明は、図6に示すように、
(1)タスクに付けられたタグ1と
(2)タグ同士の同時実行禁止するか許可するかのタグ関係2と
(3)タグと関係を用いてコアへタスクを割り当てるタスクスケジューラ3と
を用いてコアにタスクを割り当てるというものである。
[第1の実施の形態]
図7に本発明の第1の実施の形態の構成を示す。本実施の形態は、タグ設定部11と、タグ表12と、割り当てタスク決定部13と、実行中タグ管理部14と、タグ関係性判定部15とを備える。
タグ設定部11は、タスクにタグを設定する機能を有し、タグ表12はタスクに設定されたタグを記録する機能を有する。
実行中タグ管理部14は、各コアで実行しているタスクのタグ(実行中タグ)を管理する機能を有する。より具体的には、実行中タグを参照する機能と実行中タグを更新する機能と、参照と更新を不可分に行うためのロック機能とを提供する。以下、単に「タグ」と称する場合は、タスクのタグを意味するものとする。
タグ関係性判定部15は、タスクの同時実行を許可するか禁止するかを、これらのタスクに付されたタグ同士のタグ間の関係性から判定する機能を有する。
割り当てタスク決定部13は、タグ表12と実行中タグ管理部14とタグ関係性判定部15とを制御し、タスクにつけられたタグと他のコアで実行中のタスクのタグとのタグ間の関係性に基づいて、コアに割り当てるタスクを決定する機能を有する。
本発明によるタスク割り当て手段は、タグ表12、実行中タグ管理部14とタグ関係性判定部15とを備えることにより、他のコアで実行中のタスクを考慮して、コアに割り当てるタスクを決定することを特徴とする。
次に、本実施の形態の動作について説明する。本発明によるタスク割り当て手段の特徴的な動作は、タスクにタグを設定する動作と、コアに割り当てるタスクを決定する動作であるので、ここではこれらの動作について詳細に説明する。
まず、タスクにタグを設定する動作の手順は以下の様になる。
(1)タグ設定部11が、タスク識別子とタグを指定して呼び出される
(2)タグ設定部11は、タグ表12の指定されたタスク識別子に対応するタスクのタグとして、指定されたタグを記録する。上記の(1)、(2)の手順で、タグ設定部11は、タスク識別子を媒介として、タスクにタグを設定する。
次に、コアに割り当てるタスクを決定する動作について説明する。本動作は、割り当て対象のコアと、割り当て候補のタスクの集合(以下割り当て候補タスク集合と呼ぶ)を指定して開始される。なお、割り当て候補タスク集合とは、タグとタグ関係を考慮する以前のタスクの集合である。前記各コアのうち一のコアに割り当てるタスクを決定する際の、本実施の形態の動作の手順は次の様になる。
(1)割り当てタスク決定部13が、割り当て対象のコアと割り当て候補タスク集合を指定して呼び出される。
(2)割り当てタスク決定部13は、実行中タグ管理部14を呼び出し、実行中タグの更新をロックさせるとともに他のコアで実行中のタスクのタグを参照させる。
(3)割り当てタスク決定部13は、タグ関係性判定部15を呼び出し、割り当て候補タスク集合に含まれるタスクのタグと他コアで実行中のタグとのタグ間の関係性に基づいて、割り当て候補タスク集合に含まれるタスクが、前述の一のコアで実行可能かを判定させる。この場合、割り当て候補タスク集合に含まれるタスクは、前述の一のコアに割り当てる予定のタスクということになる。
(4)割り当てタスク決定部13は、割り当て候補タスク集合に含まれ、前述の一のコアで実行可能なタスクの集合である割り当て可能タスク集合を決定する。
(5)割り当てタスク決定部13は、割り当て可能タスク集合の中から一つのタスクを選び、割り当てタスクとする。なお、集合から一つのタスクを選ぶ方法は本発明の範囲外であることは、当業者には明らかである。
(6)割り当てタスク決定部13は、実行中タグ管理部14を呼び出し、前述の一のコアのタグを割り当てタスクのタグに設定するとともに、ロックを解除する。
(7)割り当てタスク決定部13は、割り当てタスクを決定結果として返す。
決定された割り当てタスクはタスクスケジューラによってコアに割り当てられ実行される。以上の動作により、同時実行が許可されているタグを持つタスクがコアに割り当てられて実行される。従って、タグを用いた同時実行の許可及び禁止を考慮したタスク割り当てを行うことができる。
なお、本動作の説明では、他のコアで実行中のタグの更新をロックしたが、ロックを用いずに、(6)の前述の一のコアのタグを更新する際に、実行中タグ管理部14が、タグ関係性判定部15を呼び出し、実行中タグの更新を許可するかどうかを判定し、許可されなかった場合は、割り当てタスク決定部13が(2)からの処理を再び実行し、他のタスクの割り当てを試みるという動作としてもよい。
[第2の実施の形態]
次に本発明の第2の実施の形態について説明する。図8に本実施の形態の構成を示す。本実施の形態は、第1の実施の形態と同様に、タグ設定部21と、タグ表22と、割り当てタスク決定部23と、実行中タグ管理部24と、タグ関係性判定部25とを備える。
又、本実施の形態は、本発明の第1の実施の形態に加えて、タスク優先度表26と割り込み送信部27とを備えることを特徴とする。
タスク優先度表26は、タスク毎の優先度を記録する表である。タスクのその他の情報を記録する表の一部であっても良いし、タグ表と同一の表としてもよい。又、タスクの優先度はOSのタスクスケジューラで一般的に用いられているので、詳細な説明は省略する。割り込み送信部27は、指定されたコアに対して、再スケジューリングを行うことを指示するために、コア間割り込みを送信する機能を有する。本実施の形態は、割り込みを用いて他のコアに再スケジューリングを指示する事によって、タスクの優先度を考慮したタグを用いた同時実行制御が行えることを特徴とする。
次に本実施の形態の動作について説明する。タスクにタグを設定する場合の動作は本発明の第1の実施の形態と同じであるため、ここでは、コアに割り当てるタスクを決定する場合の動作について説明する。本動作の手順は次の様になる。
(1)割り当てタスク決定部23が、割り当て対象のコアと割り当て候補タスク集合を指定して呼び出される。
(2)割り当てタスク決定部23は、実行中タグ管理部24を呼び出し、実行中タグの更新をロックするとともに他のコアで実行中のタグを参照する。
(3)割り当てタスク決定部23は、割り当て候補タスク集合の中から、タスク優先度表26を参照して最も優先度の高いタスクを抽出し、該抽出されたタスクを候補タスクとする。
(4)割り当てタスク決定部23は、タグ表22を用いて候補タスクのタグを調べる。
(5)割り当てタスク決定部23は、タグ関係性判定部25を呼び出し、他のコアでの実行中タグと候補タスクのタグから、候補タスクが前述の一のコアで実行が許可されているかを判定する。
(6)候補タスクが前述の一のコアで実行が禁止されている場合は、候補タスクと同時実行が禁止されているタグを持つ他のコアで実行中のタスクの中で最も優先度の高いタスクの優先度をタスク優先度表26を参照して調べる。
(7.1)調べた優先度が候補タスクの優先度より高い場合は、候補タスクを割り当て候補タスク集合から外し、(3)に戻る。
(7.2)調べた優先度が候補タスクの優先度より低い場合は、割り込み送信部27を呼び出して、候補タスクと同時実行が禁止されているタグを持つタスクを実行中のコア、すなわち他のコアで実行中のタスクの中で最も優先度の高いタスクを実行中のコアに対して、その実行中のタスクを中断させる割り込み信号を送り、再スケジューリングを行わせる。
(8)割り当てタスク決定部23は、候補タスクを割り当てタスクとし、実行中タグ管理部24を呼び出し、前述の一のコアのタグを割り当てタスクのタグに設定するとともに、タグの更新のロックを解除する。
(9)割り当てタスク決定部23は、割り当てタスクを決定結果として返す。
決定された割り当てタスクはタスクスケジューラによってコアに割り当てられ実行される。又、割り込みを受けたコアは、そのコアに次に割り当てるタスクを決定するためのスケジューリングが行われる。
このスケジューリングでは、割り当てタスク決定部23が呼び出され、上述した動作が行われる。この時、割り込みを受けるまで割り当てられていたタスクは、そのタスクより優先度が高く、かつ同時実行が禁止されているタスクが他のコアで実行されているために、再び割り当てられない。従って、当該コアでは他のタスクが実行されるか、アイドル状態になる。
本実施の形態により、他のコアで優先度が低いが同時実行が禁止されているタスクが動作している場合にも、前述の一のコアに優先度が高いタスクを割り当てることが可能となり、優先度を考慮したタスクのコアへの割り当てが可能となる。
[第3の実施の形態]
次に本発明の第3の実施の形態について説明する。図9に本実施の形態の構成を示す。本実施の形態は、第1の実施の形態と同様に、タグ設定部31と、タグ表32と、割り当てタスク決定部33と、実行中タグ管理部34と、タグ関係性判定部35とを備える。
又、本実施の形態は、本発明の第1の実施の形態に加えて、タグ関係表36とタグ関係設定部37とを備えることを特徴とする。タグ関係表36は、タスクの同時実行を許可するか禁止するかの関係を、これらタスクに設定されたタグに基づいて記述したタグ関係を記録する機能を有する。又、タグ関係設定部37はタグ関係表36にタグ関係を登録し、タグ関係表36を更新する機能を有する。
次に本実施の形態の動作について説明する。本実施の形態のほとんどの動作は本発明の第1の実施の形態から明らかであるため、本実施の形態に特徴的な動作のみ説明する。本実施の形態に特徴的な動作は、タグ関係性を登録する動作とタスクに割り当てるコアを決定する際に前述の一のコアで実行が許可されるタスクを判定する動作の二つである。
前者は以下のような動作である。
(1)タグ関係設定部37は、タグ間の関係性(同時実行を許可するか禁止するか)を指定して呼び出される。
(2)タグ関係設定部37は、指定されたタグ関係をタグ表に記録する。
又、後者の動作は以下のような動作である(割り当てタスク決定動作の関連部分のみを示す)。
(1)割り当てタスク決定部が、他のコアで実行中のタグ集合とタスクのタグを指定してタグ関係性判定部を呼び出す。
(2)タグ関係性判定部は、タグ関係表36を用いて、指定されたタスクが実行可能であるか否かを判定する。
(3)タグ関係性判定部は、判定結果を割り当てタスク決定部33に通知する。
本実施の形態では、タグ関係表36を用いることで、タグの関係性を任意に設定することが可能である。従って、あらかじめ決定されている関係以外の関係を用いることや、複雑なタグ関係性を用いることができるという特徴がある。
[第1の実施例]
次に、具体的な実施例を用いて本発明の第1の実施の形態の動作を説明する。第1の実施例は、本発明の第1の実施の形態に対応する実施例である。ここで、図10に本実施例の構成を示す。
図10によると、本実施例は、OSがタグ設定部1011、タグ表1012、割り当てタスク決定部1013、実行中タグ管理部1014及びタグ関係性判定部1015を備え、その他にユーザーレベルの管理タスク1016、タグ設定表1017及びOSのタスク生成部1018を有する。
タグ設定部1011、タグ表1012、割り当てタスク決定部1013、実行中タグ管理部1014、タグ関係性判定部1015の機能と動作については、本発明の第1の実施の形態の説明から明らかである。
管理タスク1016は、OSのタスク生成部1018を呼び出してタスクを生成するとともに、タグ設定部1011を呼び出して、タスクにタグを付ける機能を有する。
タグ設定表1017は、タスクを識別するタスク識別子であるタスク番号とタグとを関連付けて記録する機能を有し、管理タスク1016はタグ設定表1017を参照して、後述するタスク生成部1018が生成したタスクにタグ設定表1017に記録されたタグを設定する。
又、OSはタグを設定するためのシステムコールを提供している。タグ設定表1017は、例えばシステム管理者やソフトウェア開発者がタスクに設定したいタグを記述したファイルとして、記憶装置に設置することができる。OSのタスク生成部1018は、通常のOSのタスク生成部1018が備えるタスクを生成するタスク生成機能に加えて、タグ設定部1011を呼び出して生成したタスクにタグを付けさせる機能を有する。
次に、本実施例の構成で、タグ関係性判定部1015は、一のコアへの割り当て予定のタスクに付けられたタグと、他のコアで実行中のタスクのタグとでの、これらのタスクの同時実行を禁止するか許可するかのタグ間の関係性において同じタグに対しては同時実行を許可し、異なるタグに対しては同時実行を禁止するという判定を行い、タスク生成部1018は、生成したタスクに対してそれぞれ固有のタグを設定する場合について説明する。
本実施例のタスク生成時の動作の手順を以下に示す。
(1)管理タスク1016が、生成するタスク名を指定して呼び出される。
(2)管理タスク1016は、OSのタスク生成部1018にタスクの生成を指示する。タスク生成の詳細な動作については、当業者には明らかであるため詳細な説明は省略する。
(3)OSのタスク生成部1018はタスクを生成して、タスクを識別するタスク識別子である固有のタスク番号を割り当てる。
(4)OSのタスク生成部1018は、タスク番号とタグを指定してタグ設定部1011を呼び出す。このときタグとして「tag_taskタスク番号」を設定する。ここで「タスク番号」は(3)で設定したタスクを識別する固有の数値が入る。例えばタスク番号が1の場合は、tag_task1を設定する。
(5)タグ設定部1011は、タグ表1012にタスク番号とタグを記録する。
(6)OSのタスク生成部1018は、生成したタスクのタスク番号を管理タスク1016に返す。
(7)管理タスク1016は、生成したタスク番号に対応するタグがタグ設定表1017に記録されているか検索する。
(8)管理タスク1016は、タグ設定表1017にタグが記録されている場合は、タスク番号とタグを指定してタグ設定部1011を呼び出すシステムコールを発行する。記録されていない場合は動作を終了する。
(9)システムコールが発行されると、タスク設定部がタグ表1012で指定されたタスク番号に対応するタグを指定されたタグに更新する。
以上の手順により、タグ設定表1017に記録されていないタスクについては、タスク番号に基づくそれぞれ固有のタグが付けられる。又、タグ設定表1017に記録されているタスクについて、タグ設定表1017中のタグが付けられる。
次に、本実施例の効果について説明する。本実施例では、タグ設定表1017に記録されていないタスクは、タスク生成部1018によってそれぞれ固有のタグを付けられるが、タグ関係性判定部1015は異なるタグに対しては同時実行を禁止と判定するため、本実施例のタスク割り当て手段によって、これらのタスクは同時に実行されない。従って、同時に実行しても問題ないか確認していないタスクについては、タグ設定表1017に記録しないことによって、同時に実行されないようにすることができる。
一方、同時に動作しても問題ないことが確認できたタスクに対しては、タグ設定表1017に同じタグを記録することによって、同じタグを付けることで、同時実行を許可できる。これにより、マルチコアの複数のコアを利用した性能向上が期待できる。
従って、シングルコア用に開発されたほとんどのタスク間で同時に実行しても問題ないか確認ができていない場合にも、本発明を用いることにより、同時に実行したいタスク間のみを確認することによって、マルチコアを利用することができる。このため、シングルコアからマルチコアに移行する際のコストを低く抑えることができる。
次に本実施例の動作を具体的に説明するため、三つのタスク0、タスク1、タスク2に対してコア割り当てを行う場合を例に説明する。説明では、タスク0とタスク2は同時に実行しても問題がないことが確認されており、それ以外のタスク間については確認が行われていない場合を想定する。
まず、本動作例のタグ設定表1017を図11に示す。前述したようにタスク0とタスク2のみが同時実行の確認がされているため、これのタスクにはタグとしてtag0が記録されている。
各タスクが生成された後のタグ表1012を図12に示す。タスク0とタスク2に対しては、タグ設定表1017に基づきtag0が付けられ、task1に対しては、タスク生成部1018が付与したtag_task1が付けられている。なお、ここではタスク生成部1018によって、タスク0のタスク番号として0、タスク1のタスク番号として1、タスク2のタスク番号として2が割り当てられたとしている。
次に本動作例でのタスクスケジューリング動作について説明する。ここでは、図13の時刻1に示すように、二つのコアを持つマルチコアで、コア0でタスク0を実行中に、コア1に割り当てるタスクを決定するスケジューリング動作について説明する。この時、割り当て候補タスクはタスク1とタスク2であるとする。この時のスケジューリング動作は以下の様になる。なお、説明を簡略にするため実行中タグのロックと更新については省略する。
(1)割り当てタスク決定部1013が、コア番号としてコア1と割り当て候補タスク集合として{タスク1、タスク2}を指定されて呼び出される。
(2)割り当てタスク決定部1013は、実行中タグ管理部に問い合わせて、他のコアで実行中のタグとしてtag0を得る。
(3)割り当てタスク決定部1013は、タグ関係性判定部1015を用いて、tag_task1のタグを持つタスク1はコア1で実行中のtag0とは同時実行禁止、tag0を持つタスク2はコア0で実行中のtag0と同時実行許可であることを得る。
(4)割り当てタスク決定部1013は、タスク2がコア1への割り当て可能タスクであることが分かり、コア1への割り当てタスクと決定する。
次に、コア0でタスク0が停止し、次に割り当てるタスクを決定する場合について説明する(図13の時刻2)。この時、コア1ではタスク1が実行中で、割り当て候補タスク集合は{タスク1}とする。同様にスケジューリング動作が行われると、割り当て可能タスク集合は空となるため、タスクは割り当てられない。
次に、時刻2でコア1でタスク1が停止し、コア0で割り当て候補タスク集合を{タスク1}としてスケジューリング動作が行われたとする。このとき、同様にスケジューリング動作が行われると、割り当て可能タスク集合は{タスク1}となり、コア0には、タスク1が割り当てられる。
[第2の実施例]
次に本発明の第2の実施例について説明する。本実施例は本発明の第1の実施の形態に対応する実施例であり、図10に示した第1の実施例の構成において、タグ関係性判定部1015は、前述のタグ間の関係性において同じタグに対しては同時実行を禁止し、異なるタグに対しては同時実行を許可するという判定を行い、タスク生成部1018は、生成したタスクに対してそれぞれ固有のタグを設定する場合の実施例である。
本実施例の動作については、第1の実施例から明らかであるため、ここでは本実施例の効果について説明する。本実施例でも、タグ設定表1017に記録されていないタスクに対しては、それぞれ固有のタグが設定され、記録されているタスクに対してはタグ設定表中1017のタグが設定されるのは同様である。
一方、タグ関係性判定部1015の関係が第1の実施例と逆になっているため、タグ設定表中1017に記録されていないタスクに対しては、同時実行が許可される。又、タグ設定表中1017を利用し、タスクに同じタグを付けることによってタスクの同時実行を禁止することができる。
従って、シングルコア用に開発されたソフトウェアにおいて、多くのタスクは同時に実行しても問題がなく、いくつかのタスクについては同時に実行すると問題があると分かっている場合に、同時に実行すると問題があるタスクが同じタグを持つようにタグ設定表1017に記録することによって、マルチコア上で問題なく実行することができる。このため、本実施例を用いると上記のような特徴を持つソフトウェアの場合に、タグ設定表中1017への記録を少なくすることができるという効果がある。
[第3の実施例]
次に本発明の第3の実施例について説明する。本実施例の構成を図14に示す。本実施例は、第1の実施例に対して、タスク生成部1018がタグ設定部1011を呼び出さない構成となっていることが特徴である。このため、本実施例ではタスクが生成されると、タグが設定されていないことを意味するあらかじめ決められた共通のタグが設定される。以下の説明ではこのタグを共通タグと呼ぶことにする。
又、本実施例のタグ関係性判定部1015は、以下のような判定を行う。
・共通タグ同士は同時実行を禁止
・異なるタグは同時実行を禁止
・同じタグは同時実行を許可
本実施例のその他の構成要素の機能と動作については、第1の実施例と同様である。
次に、本実施例の効果を説明する。本実施例では、タスク生成部1018によるタグ設定が行われないため、タグ設定表1017に記録されていないタスクには、管理タスク1016によるタグ設定が行われないため、管理タスク1016がタグ設定部1011を呼び出して共通タグを設定することになる。共通タグを持つタスクは、その他のタグを持つタスクと同時実行を禁止と判定されるため、同時に動作しても問題ないか確認できていないタスクはタグ設定表1017に記録しないことによって、同時実行されないようにすることができる。
一方で、同時実行が問題ないことが確認できたタスクに対しては、共通タグとは異なる同じタグを割り当てることによって、それらのタスク間でのみ同時実行を行わせる事ができる。このため、本実施例では、第1の実施例と同様に、シングルコア用に開発されたソフトウェアで、少数のタスクに対してのみ同時実行しても問題ないことが確認できている場合に、シングルコアからマルチコアへ移行するコストを少なくすることができる。
又、本実施例の別の形態として、タグ関係性判定部1015の動作を、
・共通タグ同士は同時実行を許可
・異なるタグは同時実行を許可
・同じタグは同時実行を禁止
とすることによって、第2の実施例と同様に、多くのタスクは同時に実行しても問題がなく、いくつかのタスクについては同時に実行すると問題があると分かっている場合に、同時に実行すると問題があるタスクが共通タグとは異なる同じタグを持つようにタグ設定表1017に記録することによって、マルチコア上で問題なく実行することができる。
本実施例はこれらの効果に加えて、タスク生成部1018がタグ設定部1011を呼び出さないため、本発明によるタスク割り当て手段を既存のOSに実装する際に、タスク生成部1018を修正する必要が無く、OSの修正箇所を少なくすることができるという効果がある。
[第4の実施例]
次に、本発明の第4の実施例について説明する。図15に本実施例の構成を示す。本実施例は、管理タスク1016がタグ設定表1017を参照して、タスク生成部1018が生成したタスクに設定するタグを指定してタスク生成部1018を呼び出すことを特徴とする。
タスク生成部1018は、新しく生成したタスクに指定されたタグを設定するように、タグ設定部1011を呼び出す。その他の構成要素については、第1の実施例と同様である。
本実施例が、第1の実施例及び第2の実施例と同様に、シングルコアからマルチコアへの移行コストを少なくすることができるという効果を持つことは明らかである。この効果に加えて、本実施例では、管理タスク1016がタスク生成部1018への呼び出しとは別に、タグ設定部1011を呼び出す必要がないため、処理を減らすことができるという効果がある。
又、タスク生成と同時に指定したタグに設定できるため、生成されたタスクに指定したタグが設定されるまで遅延を無くすことができるという効果もある。
[第5の実施例]
次に、本発明の第5の実施例について説明する。図16に本実施例の構成を示す。本実施例は、タスクの動作を記述したプログラムが記録されたファイルにタグを記録しておき、タスク生成部1018がこのタスクの動作とタグとを記述したプログラムファイル1601からタスクを生成する時に、プログラムファイル1601からタグを読み出し、タグ設定部1011を呼び出してタグを設定するという動作をすることを特徴とする。
一般に、タスク生成部1018は、タスクの動作を記述したプログラムが記録されたファイル名を指定して呼び出される。そこで、このファイル中にタグを記録しておくことによって、タスク生成部1018が直接タグを設定することを可能とし、管理タスクを用いてタスクにタグを設定する必要がなくなる。このため、本実施例では管理タスクが不要になるという効果がある。
又、本実施例の別形態として、プログラムファイル1601ではなく、異なる方法にタグを記録しておき、タスク生成部1018がその記憶手段を参照して、タグを設定するという構成をとっても良い。この構成では、タスク生成部1018が当該方法を参照するように変更する必要があるが、プログラムファイル1601中にタグを記録する必要がなく、プログラムファイル1601を修正することが困難な場合にも用いることができるという効果がある。
[第6の実施例]
次に、本発明の第6の実施例について説明する。図17に本実施例の構成を示す。本実施例は、タスク1701が自らシステムコールを発行してタグ設定部1011を呼び出し、タグを設定することを特徴とする。
タスク1701が設定するタグは、プログラムのオプションとして与える方法や、実行時にタスク1701が参照する設定情報に記録する方法や、あらかじめタグをプログラムに記述しておくと言った方法がある。これらのいずれの方法をとった場合でも、タスク1701が実行中に自らタグ設定部1011を呼び出すことによって、タスク1701にタグを設定することができる。
本実施例においても、これまでの実施例で説明したようにタグを設定することで、シングルコアからマルチコアへの移行のコストを少なく抑えることができることは明らかである。
これに加えて、本実施例では、タスク1701の動作を記述したプログラムを修正して、タグ設定を行う様にする必要があるが、それが許される場合は、管理タスクが不要であること、タスク生成部がタグ設定部1011を呼び出したり、第5の実施例の様にプログラムファイル中にタグを読み出すように修正する必要がないと言う効果がある。
又、本実施例の別形態として、タスク1701が実行途中にタグ設定部1011を呼び出してタグを変更しても良い。例えば、タスク1701の動作フェーズによって同時に実行すると問題があるタスク1701が変わる場合に、タグを変更することによって対応できる。
このため、各動作フェーズで同時に実行すると問題がある全てのタスク1701と同時実行を禁止するようにタグを設定する場合に比べて、他のタスクと同時に実行する機会を増やし、マルチコアをより有効に利用することができるという効果がある。
[第7の実施例]
次に、本発明の第7の実施例について説明する。図18に本実施例の構成を示す。本実施例は、本発明の第2の実施の形態に対応する実施例で、OSが第2の実施の形態の構成要素であるタグ設定部1821、タグ表1822、割り当てタスク決定部1823、実行中タグ管理部1824、タグ関係性判定部1825、タスク優先度表1826及び割り込み送信部1827を備えている。これらに加えて、第1の実施例に対応するユーザーレベルの管理タスク1016、タグ設定表1017及びOSのタスク生成部1018を有する。
又、タグ関係性判定部1825は、第1の実施例と同様に以下の様に判定し、タスク生成部1018は各タスクに固有のタグを設定するとする。
・同じタグに対しては同時実行を許可
・異なるタグに対しては同時実行を禁止
各構成要素については、第2の実施の形態の説明と第1の実施例の説明から明らかであるため、ここではタスクをコアに割り当てる例を用いて、動作と効果を説明する。
以下の説明では、二つのコアに三つのタスクを割り当てる場合を想定する。図19に、管理タスク1016によるタグ設定が終了した後のタグ表1822を示す。このタグ表1822を見ると分かるようにタスク0とタスク2は同時実行許可で、その他の組み合わせは同時実行禁止である。
図20に、本実施例でのタスク優先度表1826を示す。優先度の数値が小さいほど優先度が高いことを示しており、本実施例ではタスク0、タスク1、タスク2の順番に優先度が高い。
ここで、図21の時刻1に示すように、コア0にタスク0、コア1にタスク2が割り当てられて同時に実行されている状態でタスク0が停止して、コア0へのタスク割り当てを行う場合を想定する。又、このときの割り当て候補タスク集合は{タスク1}であるとする。
本実施例と他の実施例の効果の違いをわかりやすく説明するため、まず第1の実施例によって割り当てを行う場合について説明する。図22に、第1の実施例によるスケジューリング結果を示す。
第1の実施例の割り当て方法では、コア1でtag0を持つタスク1が実行されているため、異なるタグtag_task1を持つタスク1は、同時実行が禁止される。したがって割り当て可能タスク集合は空になるため、この時点ではコア0にはタスクは割り当てられず、コア0はアイドル状態となる。
次に、図22に示す時刻2において、タスク2が停止し、コア1に割り当てるタスクを決定するためのスケジューリングが起こったとする。この時の割り当て候補タスク集合は{タスク1}とする。この時、他のコアで実行中のタスクは無いため、割り当て可能タスク集合は{タスク1}となり、タスク1がコア1に割り当てられる。このスケジューリング結果では、タスク1の開始が優先度の低いタスク2のために遅れるという結果になっている。
次に、本実施例によるスケジューリング結果を図23に示す。本実施例では、時刻1で同様のスケジューリングが起きたときに、タスク優先度表1826を参照してタスク1はタスク2より優先度が高いことが分かるため、コア1に割り込みを送信して、タスク1の実行を止め、コア0にタスク2を割り当てる。この時割り込みを受けたコア1では、次のタスクを割り当てるためのスケジューリングが行われるが、コア0でタスク1が実行中のため、同時実行が禁止されているタスク2は割り当てられず、アイドル状態となる。
次に、時刻3において、タスク1が停止し、次に割り当てるタスクを決定するためのスケジューリングが行われると、タスク2が割り当てられる。本実施例のスケジューリング結果では、タスク1は優先度が低いタスク2に待たされること無く、コア0に割り当てられて実行される。この様に、本実施例では、優先度を考慮したコア割り当てができるという効果がある。
本実施例は、第2の実施の形態とタグ設定部1821を呼び出す手段として第1の実施例の管理タスク1016、タスク生成部1018、タスク設定表を組み合わせた実施例であるが、第2の実施の形態と第2の実施例乃至6に示したタグ設定部1821を呼び出す手段を組み合わせる構成をとっても良い。
[第8の実施例]
次に、本発明の第8の実施例について説明する。図24に本実施例の構成を示す。本実施例は、本発明の第3の実施の形態に対応する実施例であり、タグ設定部2431、タグ表2432、割り当てタスク決定部2433、実行中タグ管理部2434、タグ関係性判定部2435、タグ関係表2436及びタグ関係設定部2437を備えている。又、本実施例では、ユーザーレベルの管理タスク2416、タグ設定表2417及びタグ関係設定表2438を備える。
本実施例に特徴的な動作は、タグ関係表2436の設定動作である。この動作は、例えばシステムの起動時に管理タスク2416が起動されると、管理タスク2416が、タスクの同時実行を許可するか禁止するかの関係を、該タスクに設定されたタグに基づいて記述したタグ関係として記録しているタグ関係設定表2438からタグ関係を読み出すことによって行われる。タグ関係設定表2438は、第1の実施例で説明したタグ設定表2417と同様に、システム開発者などがファイルとして記憶装置に設置することができる。
本実施例の効果を説明するため、二つのコアへの四つのタスクの割り当てを行う例を用いて説明する。この例では、タスク間で同時実行しても問題ないかの確認が、
・タスク0とタスク1は問題ない
・タスク0とタスク2は確認できていない
・タスク0とタスク3は確認できていない
・タスク1とタスク2は問題ない
・タスク1とタスク3は確認できていない
・タスク2とタスク3は確認できていない
となっているとする。
まず、この時に、
・異なるタグは同時実行禁止
・同じタグは同時実行許可
というタグ関係を用いる場合について説明する。
この場合に、タスク0とタスク1の同時実行を許可するために同じタグとしてtag0を付けたとする。従って、タスク2とタスク3はタスク0と同時実行が許可されていないので、別のタグを付けることになり、またタスク2とタスク3も同時実行は許可されていないので、それぞれをtag2、tag3と設定する。このタグ設定を図25に示す。
このタグを設定ではタスク1とタスク2は異なるタグを持つことになり、同時に実行が許可されない。この場合のスケジューリング結果の例を図26に示す。
この図26の例では、タスク0とタスク1が同時に実行中に、時刻1でコア0で実行中のタスク0が停止した場合である。この時、タスク2が実行中であったとしても、タスク1とタスク2は同時実行が許可されていないので、タスク2はコア0に割り当てられない。時刻2でタスク1が停止すると、タスク2の実行が開始される。従って、タスク2が実行開始が遅れることになる。
次に、本実施例では、タグ設定表2417、タグ関係設定表2438をぞれぞれ図27の様に作成することができる。ここでは、タグ関係設定表2438を用いて、管理タスク2416によって、同じ内容のタグ関係表2436が作成されている。
この場合、管理タスク2416は、タグ関係設定表2438に記録されているタグ関係を読み出し、タグ関係設定部2437を呼び出して読み出したタグ関係をタグ関係表2436に設定させる。
この場合に、三つのタスクの同じ状況のスケジューリング結果を図28に示す。まず、この例ではタスク0はtag0を持ち、タスク1はtag1を持つが、タグ関係としてtag0とtag1は同時実行が許可されているため、同時に実行される。
時刻1でタスク0が停止すると、コア1ではtag1が実行されており、タスク2tag2を持つが、タグ関係としてtag1とtag2は同時実行が許可されているため、コア1にはタスク2が割り当てられる。従って、タスク2は時刻1で実行を開始することができる。
以上の例で明らかなように、本実施例では、タスク間の同時実行許可、禁止の設定をより柔軟に行えるため、コアの利用効率が向上するといった効果や、タスクの実行開始を早くすることができるという効果がある。
又、第1の実施例から第8の実施例の別形態として、タグ設定部がタスクに複数のタグを設定しても良い。図29にタスクが複数のタグを持つ例を示す。
この例では、例えばタグ関係性判定部2435が、
・同じタグを含むタスクは同時実行許可
・同じタグを含まないタグは同時実行禁止
と判定することによって、タスク0とタスク1は同時実行許可し、タスク1とタスク2は同時実行許可、タスク0とタスク2は同時実行禁止と設定することができる。
このように、複数のタグを設定することによって、柔軟な同時実行の関係性の設定が出きるという効果がある。
[第9の実施例]
次に、本発明の第9の実施例について説明する。本実施例は、本発明によるタスク割り当て手段とセマフォアを合わせて利用した場合の実施例である。本実施例では、三つのタスクを二つのコアに割り当てる場合の例について説明する。
本例では、タスク0とタスク1は、同時に実行すると問題がある部分を含むことが確認できており、排他制御手段としてセマフォアが用いられているとする。又、タスク0とタスク2、タスク1とタスク2は同時実行を行っても問題がないか確認できていないとする。この場合のタグ表を図30に示す。
本実施例のスケジューリング結果を図31に示す。本実施例では、タスク0とタスク1が同時に実行中の時刻1で、コア0のタスク0がロックを獲得してクリティカルセクション(同時に実行すると問題がある部分)の実行を始める。
時刻2でコア1のタスク1がクリティカルセクションを実行するためにロックを獲得しようとするが、タスク0が獲得しているため獲得することができず、実行を停止する。この時、コア1に割り当てる次のタスクを決めるためのスケジューリングが行われるが、タスク2はタスク0とは同時実行が禁止されているため、コア1には割り当てられない。
次に時刻3で、タスク0がロックを解除すると、タスク1が実行可能になり再びコア1で実行される。最後に時刻4でタスク0とタスク1ともに停止すると、タスク2が実行される。
セマフォアを用いない場合は、タスク0とタスク1のクリティカルセクションが同時に実行されないように、タスク0とタスク1を同時実行禁止となるように、異なるタグを設定することができる。しかし、この場合は、クリティカルセクション以外の部分でも同時実行が禁止されるため、実行効率が落ちる。従って、本実施例のように、本発明によるタスク割り当て手段とセマフォアを同時に利用することで、コアの利用効率を向上させることができる。
本発明の各実施例は、第2の実施例を除いて、一のコアへの割り当て予定のタスクに付けられたタグと、他のコアで実行中のタスクのタグとでの、これらのタスクの同時実行を禁止するか許可するかのタグ間の関係性において同じタグに対しては同時実行を許可し、異なるタグに対しては同時実行を禁止するという判定を原則とする。しかし、これらの実施例においても、第2の実施例と同様に、タグ間の関係性が、異なるタグに対しては同時実行を許可し、同じタグに対しては同時実行を禁止するというものでもよい。
なお、本発明は、物の発明である手段のみならず、方法の発明及びプログラムの発明として実施できる。
本発明は、PCやサーバーや組み込み機器などの機器でマルチコアを利用する用途に適用できる。特にシングルコアからマルチコアへの移行コストを低く抑えたい場合に好適である。
1 タグ
2 タグ関係
3 タスクスケジューラ
11 タグ設定部
12 タグ表
13 割り当てタスク決定部
14 実行中タグ管理部
15 タグ関係性判定部
21 タグ設定部
22 タグ表
23 割り当てタスク決定部
24 実行中タグ管理部
25 タグ関係性判定部
26 タスク優先度表
27 割り込み送信部
31 タグ設定部
32 タグ表
33 割り当てタスク決定部
34 実行中タグ管理部
35 タグ関係性判定部
36 タグ関係表
37 タグ関係設定部
1011 タグ設定部
1012 タグ表
1013 割り当てタスク決定部
1014 実行中タグ管理部
1015 タグ関係性判定部
1016 管理タスク
1017 タグ設定表
1018 タスク生成部
1601 プログラムファイル
1701 タスク
1821 タグ設定部
1822 タグ表
1823 割り当てタスク決定部
1824 実行中タグ管理部
1825 タグ関係性判定部
1826 タスク優先度表
1827 割り込み送信部
2416 管理タスク
2417 タグ設定表
2418 タスク生成部
2431 タグ設定部
2432 タグ表
2433 割り当てタスク決定部
2434 実行中タグ管理部
2435 タグ関係性判定部
2436 タグ関係表
2437 タグ関係設定部
2438 タグ関係設定表

Claims (9)

  1. マルチコアを用いたマルチタスクシステムにおける各コアへのタスクの割り当てに関連した処理をするタスク割り当て関連方法であって、
    或るコアに割り当てる予定である1以上の割り当て候補タスクのそれぞれについて、他のコアで実行中のタスクと同時実行可能であるか否かを、それぞれの候補タスクに対応するタグの値と、他のコアで実行中のタスクに対応するタグの値と、タグの値の間の関係に応じた所定の規則に基づいて判断し、実行可能であると判断されたそれぞれの割り当て候補タスクを割り当て可能タスクとし、
    前記候補タスクと、前記他のコアで実行中のタスクの内、少なくとも一つのタスクに対応するタグが複数存在し、該複数のタグの値の全てと他のタスクのタグの値の全てとを比較することを特徴とするタスク割り当て関連方法。
  2. 請求項1に記載のタスク割り当て関連方法であって、
    1以上の割り当て可能候補タスクをタスクスケジューラに渡すことを特徴とするタスク割り当て関連方法。
  3. 請求項1又は2に記載のタスク割り当て関連方法であって、
    前記所定の規則とは、比較されるタグの値が同一であれば、それらに対応したタスクが同時実行可能であるとする規則であることを特徴とするタスク割り当て関連方法。
  4. 請求項1又は2に記載のタスク割り当て関連方法であって、
    前記所定の規則とは、比較されるタグの値が異なれば、それらに対応したタスクが同時実行可能であるとする規則であることを特徴とするタスク割り当て関連方法。
  5. 請求項1又は2に記載のタスク割り当て関連方法であって、
    前記所定の規則を、複数の前記タグの値の間の関係の各々に応じて設定し、更新することを特徴とするタスク割り当て関連方法
  6. 請求項1乃至の何れか1項に記載のタスク割り当て関連方法であって、
    前記候補タスクと、前記他のコアで実行中のタスクの内、少なくとも一つのタスクに対応するタグが複数存在し、タグの間の関係性を同時実行許可とするタグと、同時実行禁止とするタグが存在し、該複数のタグの値の全てと他のタスクのタグの値の全てとを比較することを特徴とするタスク割り当て関連方法。
  7. マルチコアを用いたマルチタスクシステムにおける各コアへのタスクの割り当てに関連した処理をするタスク割り当て関連装置であって、
    或るコアに割り当てる予定である1以上の割り当て候補タスクのそれぞれについて、他のコアで実行中のタスクと同時実行可能であるか否かを、それぞれの候補タスクに対応するタグの値と、他のコアで実行中のタスクに対応するタグの値と、タグの値の間の関係に応じた所定の規則に基づいて判断し、実行可能であると判断されたそれぞれの割り当て候補タスクを割り当て可能タスクとし、
    前記候補タスクと、前記他のコアで実行中のタスクの内、少なくとも一つのタスクに対応するタグが複数存在し、該複数のタグの値の全てと他のタスクのタグの値の全てとを比較することを特徴とするタスク割り当て関連装置。
  8. 請求項に記載のタスク割り当て関連装置を備えるマルチタスクシステム。
  9. マルチコアを用いたマルチタスクシステムにおける各コアへのタスクの割り当てに関連した処理をするタスク割り当て関連装置としてコンピュータを機能させるためのプログラムであって、
    或るコアに割り当てる予定である1以上の割り当て候補タスクのそれぞれについて、他のコアで実行中のタスクと同時実行可能であるか否かを、それぞれの候補タスクに対応するタグの値と、他のコアで実行中のタスクに対応するタグの値と、タグの値の間の関係に応じた所定の規則に基づいて判断し、実行可能であると判断されたそれぞれの割り当て候補タスクを割り当て可能タスクとし、前記候補タスクと、前記他のコアで実行中のタスクの内、少なくとも一つのタスクに対応するタグが複数存在し、該複数のタグの値の全てと他のタスクのタグの値の全てとを比較することを特徴とするタスク割り当て関連装置としてコンピュータを機能させることを特徴とするプログラム。
JP2009092917A 2009-04-07 2009-04-07 マルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラム Expired - Fee Related JP5614699B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009092917A JP5614699B2 (ja) 2009-04-07 2009-04-07 マルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009092917A JP5614699B2 (ja) 2009-04-07 2009-04-07 マルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラム

Publications (2)

Publication Number Publication Date
JP2010244332A JP2010244332A (ja) 2010-10-28
JP5614699B2 true JP5614699B2 (ja) 2014-10-29

Family

ID=43097280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009092917A Expired - Fee Related JP5614699B2 (ja) 2009-04-07 2009-04-07 マルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラム

Country Status (1)

Country Link
JP (1) JP5614699B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6428476B2 (ja) * 2015-05-14 2018-11-28 株式会社デンソー 並列化コンパイル方法、及び並列化コンパイラ
CN105045658B (zh) * 2015-07-02 2018-10-23 西安电子科技大学 一种利用多核嵌入式dsp实现动态任务调度分发的方法
JP6428557B2 (ja) * 2015-10-09 2018-11-28 株式会社デンソー 並列化方法、並列化ツール
KR102497255B1 (ko) * 2020-12-15 2023-02-06 현대오토에버 주식회사 멀티 코어 환경에서 코어 연동 시스템 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2769367B2 (ja) * 1989-09-28 1998-06-25 株式会社日立製作所 マルチプロセッサスケジューリング方法
JP4756749B2 (ja) * 2001-02-08 2011-08-24 キヤノン株式会社 デバイス製造装置およびデバイス製造方法

Also Published As

Publication number Publication date
JP2010244332A (ja) 2010-10-28

Similar Documents

Publication Publication Date Title
EP3425502B1 (en) Task scheduling method and device
KR100898315B1 (ko) 인핸스드 런타임 호스팅
JP5015665B2 (ja) カーネル間でカーネル・サービスを共用するための方法、装置、およびコンピュータ・プログラム
KR101626378B1 (ko) 병렬도를 고려한 병렬 처리 장치 및 방법
WO2012066640A1 (ja) 計算機システム、マイグレーション方法及び管理サーバ
JP5295228B2 (ja) 複数のプロセッサを備えるシステム、ならびにその動作方法
US8255911B2 (en) System and method for selecting and assigning a basic module with a minimum transfer cost to thread
US20110119674A1 (en) Scheduling method, scheduling apparatus and multiprocessor system
US8375390B2 (en) Scheduling method and scheduling apparatus
US9378069B2 (en) Lock spin wait operation for multi-threaded applications in a multi-core computing environment
JP2008234191A (ja) ハードウエアモニタ管理装置及びハードウエアモニタ機能の実行方法
JP5614699B2 (ja) マルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラム
KR20070090649A (ko) 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
JP2007188523A (ja) タスク実行方法およびマルチプロセッサシステム
US9336049B2 (en) Method, system, and program for scheduling jobs in a computing system
Krishnamurthy et al. The design and implementation of real-time CORBA 2.0: Dynamic scheduling in TAO
US20200310937A1 (en) Device, system lsi, system, and storage medium storing program
Richardson et al. An admission control protocol for real-time OSGi
JP6774147B2 (ja) 制御装置
JP2005149312A (ja) タスク管理システム
JP4830164B2 (ja) 情報処理装置及びベクトル型情報処理装置
JP2016051395A (ja) 画像形成装置およびリソース管理方法
JP7054688B2 (ja) 同期制御システムおよび同期制御方法
JP2005327007A (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JP6617511B2 (ja) 並列化方法、並列化ツール、車載装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120313

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131015

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131210

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140520

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140801

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

R150 Certificate of patent or registration of utility model

Ref document number: 5614699

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140831

LAPS Cancellation because of no payment of annual fees