JP5347451B2 - マルチプロセッサシステム、競合回避プログラム及び競合回避方法 - Google Patents
マルチプロセッサシステム、競合回避プログラム及び競合回避方法 Download PDFInfo
- Publication number
- JP5347451B2 JP5347451B2 JP2008300896A JP2008300896A JP5347451B2 JP 5347451 B2 JP5347451 B2 JP 5347451B2 JP 2008300896 A JP2008300896 A JP 2008300896A JP 2008300896 A JP2008300896 A JP 2008300896A JP 5347451 B2 JP5347451 B2 JP 5347451B2
- Authority
- JP
- Japan
- Prior art keywords
- resource
- waiting time
- avoidance target
- avoidance
- conflict
- 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
Links
Images
Landscapes
- Multi Processors (AREA)
Description
また、各プロセスは、マルチプロセッサ上で処理を実行する過程において、様々なリソース(メモリ、ディスク、ネットワーク又はバッファ等)を必要とする。
また、従来の共有リソースの競合回避方法は、割込み処理やプロセス切替えを実行する度に生じるオーバーヘッドの影響が大きくなる可能性が高いという課題があった。
図1は第1の実施形態に係るマルチプロセッサシステムの主要な構成を示す概略図、図2(a)はプロセス実行格納部に記録される情報の一例を示す説明図、図2(b)はリソース排他情報格納部に記録される情報の一例を示す説明図、図2(c)はCPUプロセス情報格納部に記録される情報の一例を示す説明図、図3はマルチプロセッサシステムにおける競合回避前のプロセス稼動例を示す説明図、図4はリソース排他情報格納部及びCPUプロセス情報格納部の更新手順を示すシーケンス図、図5はプロセス実行格納部の更新手順を示すシーケンス図、図6はマルチプロセッサシステムにおける競合回避後のプロセス稼動例を示す説明図、図7(a)はプロセス実行格納部に記録される情報の他の例を示す説明図、図7(b)はリソース排他情報格納部に記録される情報の他の例を示す説明図、図7(c)はCPUプロセス情報格納部に記録される情報の他の例を示す説明図、図8はマルチプロセッサシステムにおけるプロセス起床時の競合回避の手順を示すフローチャートである。
待ちキュー2は、CPUが割り当てられていないプロセスのデータを先入れ先出し(FIFO:First In First Out)のリスト構造で保持するものである。
なお、以下の説明においては、本実施形態に係るマルチプロセッサシステム100として、計3個のプロセッサ5(CPU#0、CPU#1、CPU#2)を搭載した場合について説明するが、このプロセッサの個数に限られるものではない。
この排他処理として、本実施形態に係るマルチプロセッサシステム100においては、以下に示すようなスピンロックの仕組みを採用している。
このスピンロック関数では、リソースを必要としたプロセスが、グローバルな(どのプロセスからも参照可能な)排他フラグを参照し、現時点において、リソースを獲得しているプロセスの有無をチェックする。
ここで、新たに追加した処理を説明するにあたり、例えば、図3に示すような、各プロセスによるCPUの実行権の獲得状態及びリソースの占有状態を想定する。
特に、プロセスBに関してその動きを説明すると、プロセスBは、CPU#1上で動作しており、時刻T2の時点で、リソースαのロック取得要求を出している。
やがて、プロセスAが時刻T3の時点でリソースαのロックを開放すると、プロセスBはリソースαのロックを取得でき、プロセスBはリソースαの使用が可能になる。
そして、CPU上で動作した図3に示すプロセスA〜Gは、目的の処理をそれぞれ終えると、他のプロセスにCPUの実行権を譲り渡した後に、休止プロセス6となる。
まず、プロセス起床部1は、任意のイベントの契機により、他のプロセスからの命令に基づき、実行CPU決定部7を起動して、実行キュー3の接続要求を送信する(ステップS201)。
実行CPU決定部7は、リソース排他情報格納部11を参照し(ステップS202)、回避対象のリソース(ここでは、リソースα)を認識する(ステップS203)。
そして、プロセス(ここでは、プロセスB)は、プロセスを終了し(ステップS218)、休止状態になる。
回避対象候補リソースを使用するプロセスを起床する場合には、当然ながら、CPUの集約対象となるが、以下の処理を行なうものとする。
まず、プロセス起床部1は、任意のイベントの契機により、他のプロセスからの命令に基づき、実行CPU決定部7を起動して、実行キュー3の接続要求を送信する(ステップS1)。
実行CPU決定部7は、リソース排他情報格納部11を参照し(ステップS2)、所定の基準値を超えるリソースが存在するか否かを判断する(ステップS3)。
ステップS7において、超過しているリソースを使用するプロセスでないと判断した場合には、前述したステップS4に進む。
ステップS11において、回避対象候補リソースの合計待ち時間が、現回避対象リソースの対象値以上でないと判断した場合には、前述したステップS4に進む。
図9は第2の実施形態に係るマルチプロセッサシステムの主要な構成を示す概略図、図10(a)はプロセス実行格納部に記録される情報の一例を示す説明図、図10(b)はリソース排他情報格納部に記録される情報の一例を示す説明図、図10(c)はCPUプロセス情報格納部に記録される情報の一例を示す説明図である。図9及び図10において、図1〜図8と同じ符号は、同一又は相当部分を示し、その説明を省略する。
図11は第3の実施形態に係るマルチプロセッサシステムのプロセス実行格納部の更新手順を示すシーケンス図、図12は第3の実施形態に係るマルチプロセッサシステムにおけるプロセス起床時の競合回避の手順を示すフローチャートである。図11及び図12において、図1〜図10と同じ符号は、同一又は相当部分を示し、その説明を省略する。
これに対し、本実施形態においては、プロセスBが固定に割り付けられているCPU#1に、他のプロセス(プロセスB、プロセスC)を集約するように動作する。
2 待ちキュー
3 実行キュー
4 実行キュー接続部
5 プロセッサ
6 休止プロセス
7 実行CPU決定部
8 プロセス実行格納部
9 排他情報収集部
10 合計待ち時間算出部
10a 平均待ち時間算出部
11,11a リソース排他情報格納部
12,12a 競合検知部
13,13a 回避対象特定部
14 CPUプロセス情報格納部
100 マルチプロセッサシステム
Claims (5)
- 複数のプロセッサのうち一のプロセッサの実行権を占有して動作するプロセスが、任意のリソースを使用し、当該複数のプロセッサによる並列処理を実行するマルチプロセッサを備えたマルチプロセッサシステムにおいて、
前記複数のプロセッサのうち一のプロセッサ上で動作する一のプロセスがリソースを使用している場合に、他のプロセッサ上で動作する他のプロセスが当該使用されているリソースに対するロックの要求及び/又はロックの要求後の待ち時間に基づいて、リソースの競合を検知する競合検知部と、
前記検知したリソース競合における競合対象であるリソースを、リソース競合を回避すべき回避対象として特定する回避対象特定部と、
各プロセスの起床にあたり、当該各プロセスが前記回避対象のリソースを使用するプロセスであるかを判定し、当該判定結果に基づき、前記起床される各プロセスに対して、前記複数のプロセッサのうち、一のプロセッサを割り当てる実行プロセッサ決定部と、
前記待ち時間に基づき、リソース毎に当該待ち時間を積算する合計待ち時間算出部と、
リソース毎のテーブルを有し、当該各テーブルのリソースに対応するプロセッサ情報及び待ち時間情報を格納する情報格納部と、
を備え、
前記回避対象特定部が、前記合計待ち時間算出部によるリソース毎の積算結果に基づき、合計待ち時間が所定の基準値を超えたリソースを回避対象のリソースとして特定し、
前記実行プロセッサ決定部は、前記特定された回避対象のリソースに基づき、前記起床されるプロセスが使用するリソースに対して当該プロセスが回避対象のリソースを使用するプロセスであるかを判断し、当該起床されるプロセスが回避対象のリソースを使用する場合に、当該回避対象のリソースに対応する待ち時間のうち、前記情報格納部に格納される所定の待ち時間に対応するプロセッサを、当該起床されるプロセスに対して割り当てることを特徴とするマルチプロセッサシステム。 - 複数のプロセッサのうち一のプロセッサの実行権を占有して動作するプロセスが、任意のリソースを使用し、当該複数のプロセッサによる並列処理を実行するマルチプロセッサを備えたマルチプロセッサシステムにおいて、
前記複数のプロセッサのうち一のプロセッサ上で動作する一のプロセスがリソースを使用している場合に、他のプロセッサ上で動作する他のプロセスが当該使用されているリソースに対するロックの要求及び/又はロックの要求後の待ち時間に基づいて、リソースの競合を検知する競合検知部と、
前記検知したリソース競合における競合対象であるリソースを、リソース競合を回避すべき回避対象として特定する回避対象特定部と、
各プロセスの起床にあたり、当該各プロセスが前記回避対象のリソースを使用するプロセスであるかを判定し、当該判定結果に基づき、前記起床される各プロセスに対して、前記複数のプロセッサのうち、一のプロセッサを割り当てる実行プロセッサ決定部と、
前記待ち時間に基づき、リソース毎に当該待ち時間の平均時間を算出する平均待ち時間算出部と、
リソース毎のテーブルを有し、当該各テーブルのリソースに対応するプロセッサ情報及び待ち時間情報を格納する情報格納部と、
を備え、
前記回避対象特定部が、前記平均待ち時間算出部によるリソース毎の算出結果に基づき、平均待ち時間が所定の基準値を超えたリソースを回避対象のリソースとして特定し、
前記実行プロセッサ決定部は、前記特定された回避対象のリソースに基づき、前記起床されるプロセスが使用するリソースに対して当該プロセスが回避対象のリソースを使用するプロセスであるかを判断し、当該起床されるプロセスが回避対象のリソースを使用する場合に、当該回避対象のリソースに対応する待ち時間のうち、前記情報格納部に格納される所定の待ち時間に対応するプロセッサを、当該起床されるプロセスに対して割り当てることを特徴とするマルチプロセッサシステム。 - 前記請求項1又は2に記載のマルチプロセッサシステムにおいて、
前記回避対象のリソースを使用するプロセスを動作させるプロセッサのうち、前記所定の待ち時間に対応するプロセッサ以外のプロセッサが、特定のプロセスを動作させるプロセッサとして固定で割り付けられている場合であり、前記起床されるプロセスが回避対象のリソースを使用する場合に、前記実行プロセッサ決定部は、前記所定の待ち時間に対応するプロセッサの替わりに、前記固定で割り付けられたプロセッサを、前記起床されるプロセスに対して割り当てることを特徴とするマルチプロセッサシステム。 - 複数のプロセッサのうち一のプロセッサの実行権を占有して動作するプロセスが、任意のリソースを使用し、当該複数のプロセッサによる並列処理を実行するマルチプロセッサと、リソース毎のテーブルを有し、当該各テーブルのリソースに対応するプロセッサ情報及び待ち時間情報を格納する情報格納部と、を備えたマルチプロセッサシステムの競合回避方法であって、
前記複数のプロセッサのうち一のプロセッサ上で動作する一のプロセスがリソースを使用している場合に、他のプロセッサ上で動作する他のプロセスが当該使用されているリソースに対するロックの要求及び/又はロックの要求後の待ち時間に基づき、リソース毎に当該待ち時間を積算する合計待ち時間算出ステップと、
前記合計待ち時間算出ステップによるリソース毎の積算結果に基づいて、リソースの競合を検知する競合検知ステップと、
前記検知したリソース競合における競合対象であるリソースを、リソース競合を回避すべき回避対象として特定する回避対象特定ステップと、
各プロセスの起床にあたり、当該各プロセスが前記回避対象のリソースを使用するプロセスであるかを判定し、当該判定結果に基づき、前記起床される各プロセスに対して、前記複数のプロセッサのうち、一のプロセッサを割り当てる実行プロセッサ決定ステップと、
を含み、
前記回避対象特定ステップが、前記合計待ち時間算出ステップによるリソース毎の積算結果に基づき、合計待ち時間が所定の基準値を超えたリソースを回避対象のリソースとして特定し、
前記実行プロセッサ決定ステップは、前記特定された回避対象のリソースに基づき、前記起床されるプロセスが使用するリソースに対して当該プロセスが回避対象のリソースを使用するプロセスであるかを判断し、当該起床されるプロセスが回避対象のリソースを使用する場合に、当該回避対象のリソースに対応する待ち時間のうち、前記情報格納部に格納される所定の待ち時間に対応するプロセッサを、当該起床されるプロセスに対して割り当てることを特徴とする競合回避方法。 - 複数のプロセッサのうち一のプロセッサの実行権を占有して動作するプロセスが、任意のリソースを使用し、当該複数のプロセッサによる並列処理を実行するマルチプロセッサと、リソース毎のテーブルを有し、当該各テーブルのリソースに対応するプロセッサ情報及び待ち時間情報を格納する情報格納部と、を備えたマルチプロセッサシステムの競合回避方法であって、
前記複数のプロセッサのうち一のプロセッサ上で動作する一のプロセスがリソースを使用している場合に、他のプロセッサ上で動作する他のプロセスが当該使用されているリソースに対するロックの要求及び/又はロックの要求後の待ち時間に基づき、リソース毎に当該待ち時間の平均時間を算出する平均待ち時間算出ステップと、
前記平均待ち時間算出ステップによるリソース毎の算出結果に基づいて、リソースの競合を検知する競合検知ステップと、
前記検知したリソース競合における競合対象であるリソースを、リソース競合を回避すべき回避対象として特定する回避対象特定ステップと、
各プロセスの起床にあたり、当該各プロセスが前記回避対象のリソースを使用するプロセスであるかを判定し、当該判定結果に基づき、前記起床される各プロセスに対して、前記複数のプロセッサのうち、一のプロセッサを割り当てる実行プロセッサ決定ステップと、
を含み、
前記回避対象特定ステップが、前記平均待ち時間算出ステップによるリソース毎の算出結果に基づき、平均待ち時間が所定の基準値を超えたリソースを回避対象のリソースとして特定し、
前記実行プロセッサ決定ステップは、前記特定された回避対象のリソースに基づき、前記起床されるプロセスが使用するリソースに対して当該プロセスが回避対象のリソースを使用するプロセスであるかを判断し、当該起床されるプロセスが回避対象のリソースを使用する場合に、当該回避対象のリソースに対応する待ち時間のうち、前記情報格納部に格納される所定の待ち時間に対応するプロセッサを、当該起床されるプロセスに対して割り当てることを特徴とする競合回避方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008300896A JP5347451B2 (ja) | 2008-11-26 | 2008-11-26 | マルチプロセッサシステム、競合回避プログラム及び競合回避方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008300896A JP5347451B2 (ja) | 2008-11-26 | 2008-11-26 | マルチプロセッサシステム、競合回避プログラム及び競合回避方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010128664A JP2010128664A (ja) | 2010-06-10 |
JP5347451B2 true JP5347451B2 (ja) | 2013-11-20 |
Family
ID=42329026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008300896A Expired - Fee Related JP5347451B2 (ja) | 2008-11-26 | 2008-11-26 | マルチプロセッサシステム、競合回避プログラム及び競合回避方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5347451B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8453150B2 (en) * | 2010-06-08 | 2013-05-28 | Advanced Micro Devices, Inc. | Multithread application-aware memory scheduling scheme for multi-core processors |
JP5655403B2 (ja) * | 2010-07-13 | 2015-01-21 | 富士通株式会社 | マルチコアプロセッサシステム,スケジュール管理プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 |
EP2615548B1 (en) * | 2010-09-08 | 2016-12-28 | Hitachi, Ltd. | Computing device |
JP5150699B2 (ja) * | 2010-10-05 | 2013-02-20 | 株式会社バッファロー | フェイルオーバ情報管理装置、記憶処理装置及びフェイルオーバ制御方法 |
JP5492066B2 (ja) * | 2010-12-20 | 2014-05-14 | 株式会社東芝 | ワークフロー処理システム |
JP2013149108A (ja) * | 2012-01-19 | 2013-08-01 | Canon Inc | 情報処理装置及びその制御方法、プログラム |
JP6252259B2 (ja) * | 2014-03-07 | 2017-12-27 | 株式会社デンソー | 電子制御装置 |
JP6251417B2 (ja) | 2014-10-27 | 2017-12-20 | 株式会社日立製作所 | ストレージシステム、及び、記憶制御方法 |
US10585800B2 (en) | 2017-06-16 | 2020-03-10 | International Business Machines Corporation | Reducing cache transfer overhead in a system |
CN109783241A (zh) * | 2018-12-03 | 2019-05-21 | 惠州市德赛西威汽车电子股份有限公司 | 一种抢占***的资源抢占冲突检测方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02122365A (ja) * | 1988-10-31 | 1990-05-10 | Hitachi Ltd | プロセッサ割当て方式 |
JP2769367B2 (ja) * | 1989-09-28 | 1998-06-25 | 株式会社日立製作所 | マルチプロセッサスケジューリング方法 |
JPH1063516A (ja) * | 1996-08-20 | 1998-03-06 | Nec Corp | ボトルネック検出方法及びボトルネック検出装置 |
JP4453823B2 (ja) * | 2004-05-31 | 2010-04-21 | 日本電気株式会社 | 性能ボトルネック解析システム及び性能ボトルネック解析方法 |
-
2008
- 2008-11-26 JP JP2008300896A patent/JP5347451B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010128664A (ja) | 2010-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5347451B2 (ja) | マルチプロセッサシステム、競合回避プログラム及び競合回避方法 | |
US9823946B2 (en) | Processor and program execution method capable of efficient program execution | |
KR101686010B1 (ko) | 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법 | |
US7318128B1 (en) | Methods and apparatus for selecting processes for execution | |
CN108920267B (zh) | 任务处理装置 | |
US9858115B2 (en) | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium | |
US8056083B2 (en) | Dividing a computer job into micro-jobs for execution | |
JP2008084009A (ja) | マルチプロセッサシステム | |
JP2013232207A (ja) | コンピュータマイクロジョブを中断せずに実行するようスケジュールするための方法、システムおよび装置 | |
JP2010271930A (ja) | マルチコアプロセッサシステム | |
US20150242254A1 (en) | Method and apparatus for processing message between processors | |
JP2011059777A (ja) | タスクスケジューリング方法及びマルチコアシステム | |
US8892819B2 (en) | Multi-core system and external input/output bus control method | |
US20130097382A1 (en) | Multi-core processor system, computer product, and control method | |
JP2008090546A (ja) | マルチプロセッサシステム | |
JP5605131B2 (ja) | ジョブスケジューリングプログラム,方法,および装置 | |
JPWO2009150815A1 (ja) | マルチプロセッサシステム | |
JP2009541851A (ja) | リソースに基づいたスケジューラ | |
JP2013152636A (ja) | 情報処理装置、タスクスケジューリング方法 | |
JP2005092780A (ja) | リアルタイムプロセッサシステム及び制御方法 | |
JP2006146758A (ja) | コンピュータシステム | |
JP5299869B2 (ja) | コンピュータマイクロジョブ | |
JP2005149312A (ja) | タスク管理システム | |
JP2008225641A (ja) | コンピュータシステム、割り込み制御方法及びプログラム | |
JPWO2011161831A1 (ja) | マルチプロセッサシステムおよびスケジューリング方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110808 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121017 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121113 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130319 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130520 |
|
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: 20130723 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130805 |
|
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 |