JP2010191575A - 資源排他制御方法および資源排他制御装置 - Google Patents

資源排他制御方法および資源排他制御装置 Download PDF

Info

Publication number
JP2010191575A
JP2010191575A JP2009033698A JP2009033698A JP2010191575A JP 2010191575 A JP2010191575 A JP 2010191575A JP 2009033698 A JP2009033698 A JP 2009033698A JP 2009033698 A JP2009033698 A JP 2009033698A JP 2010191575 A JP2010191575 A JP 2010191575A
Authority
JP
Japan
Prior art keywords
lock
time
determination threshold
resource
threshold 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.)
Granted
Application number
JP2009033698A
Other languages
English (en)
Other versions
JP5349072B2 (ja
Inventor
Toshio Sasaoka
俊男 笹岡
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.)
Panasonic Corp
Original Assignee
Panasonic 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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2009033698A priority Critical patent/JP5349072B2/ja
Priority to CN200980156912.5A priority patent/CN102317918A/zh
Priority to PCT/JP2009/006492 priority patent/WO2010095198A1/ja
Publication of JP2010191575A publication Critical patent/JP2010191575A/ja
Priority to US13/197,544 priority patent/US8463911B2/en
Priority to US13/829,923 priority patent/US9135085B2/en
Application granted granted Critical
Publication of JP5349072B2 publication Critical patent/JP5349072B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】従来のマルチプロセッサシステムでは、プロセッサ間の資源排他制御において無駄なオーバーヘッドが発生し、プロセッサ資源を浪費してしまうという課題があった。
【解決手段】並列処理の実行が可能な複数のプロセッサ(情報処理手段)P1,P2,P3間で排他制御を行う資源排他制御装置Aは、共有資源R1,R2ごとに対応し、各共有資源がどのプロセッサによってロックされているかを管理する複数のロックオブジェクトL1,L2と、ロックオブジェクトのロック獲得を要求するプロセッサがロック獲得に失敗したときに、先行するロック獲得プロセッサのロック継続時間Tを取得するロック継続時間取得手段11と、ロック継続時間Tを判定閾値時間Thと比較し、その比較結果に応じてロック待ち動作を選択するロック待ち動作選択手段12と、ロック待ち動作選択手段12によって選択される複数種類のロック待ち動作機構(スピンロック機構13、サスペンドロック機構14)とを備える。
【選択図】図1

Description

本発明は、並列処理の実行が可能な複数のプロセッサ等の情報処理手段間で排他制御を行う資源排他制御方法および資源排他制御装置にかかわり、特にはロックオブジェクトのロック獲得に失敗した場合に、リソースとしての情報処理手段(プロセッサ)の浪費を極力少なくして情報処理手段(プロセッサ)の使用効率を向上させるための技術に関する。
複数の情報処理手段(プロセッサ)によって並列処理を行うマルチ情報処理システム(マルチプロセッサシステム)において、システム中の資源を複数の情報処理手段間で共有する場合、その一貫性(コンシステンシ:consistency)を保証するために情報処理手段間で共有資源の排他制御(相互排除)を行う必要がある。
共有資源の一貫性を維持する一般的な方法としては、共有資源ごとに対応付けられたロックオブジェクトに対するロックを共有資源の操作前に獲得し、共有資源の操作後にロックオブジェクトのロックを解放(アンロック)するようにして、複数の情報処理手段の同一資源への操作が同時に実行されないようにすることで一貫性を保証している。ロックオブジェクトとは、共有資源がロック状態(プロセスにより取得されている状態)にあるかアンロック状態(プロセスにより取得されていない状態)にあるかを、またどの情報処理手段によってロックされているかを管理する部分のことである。その管理の情報をロック情報という。
排他制御のためのロックオブジェクトのロック獲得の方法としては、大別して、スピンロック方式とサスペンドロック方式とがある。スピンロック方式は、ロックが獲得できるまでチェックを繰り返すロック方式である。サスペンドロック方式は、ロックが獲得できなかった場合に他のプロセスにコンテキストスイッチ(スリープ)し、先行するロック獲得情報処理手段(プロセッサ)でのロックが解放されたときに、ロック獲得を再度試み、元のプロセスに復帰(ウェイクアップ)するロック方式である。サスペンド(suspend)とは、「保留」という意味である。
スピンロック方式では、スピンしている期間はビジーウェイト(busy wait)状態となり、情報処理手段は他の処理を行えず、情報処理手段がリソースとして浪費されることになる。
一方、サスペンドロック方式では、ロックオブジェクトのロックが獲得できなかった場合には他のプロセスに情報処理手段の実行権を渡すため、情報処理手段(プロセッサ)が浪費されるということはない。しかし、プロセスのスリープおよびウェイクアップのためのコンテキストスイッチに、処理時間が余分に掛かってしまう。
スピンロック方式を使用するかサスペンドロック方式を使用するかについては、これを静的に決めている場合と動的(ダイナミック)に決める場合とがある。
ロック方式が静的に決められている場合には、ロックオブジェクトのロックが長時間獲得できないときでもスピンしたり、ロックをすぐに獲得できる場合でもスリープするなど、情報処理手段(プロセッサ)を浪費してしまう問題がある。
ロック方式を動的に決定するロック方式としては、ロックオブジェクトのロックを獲得しているプロセスが実行状態か(情報処理手段の実行権を所有しているか)を判別し、スピンロック方式を用いるかサスペンドロック方式を用いるかを決定するロック方式(特許文献1参照)や、まずはスピンロック方式によるロックを試み、一定時間スピンしてもロックを獲得できなければサスペンドロック方式に切り換えるロック方式(特許文献2参照)などが考案されている。
特開平7−319716号公報 特開平5−225149号公報
従来のロック方式を動的に決定するロック方式では、特許文献1記載の方式の場合、ロックオブジェクトのロックを獲得しているプロセスが実行状態の場合には、ロックが長時間獲得できない場合でもスピンし続けてしまい、情報処理手段(プロセッサ)を浪費する問題がある。
また、特許文献2記載の方式の場合では、一定時間スピンしてもロックが獲得できずにサスペンド方式に切り換え、スリープし始めたところで獲得しようとしているロックオブジェクトのロックが解放された場合には、またすぐにウェイクアップする必要があり、コンテキストスイッチ分のオーバーヘッドが掛かってしまうという問題がある。
本発明は、このような事情に鑑みて創作したものであり、ロックオブジェクトのロック獲得に失敗した場合に、リソースとしての情報処理手段(プロセッサ)の浪費を少なくし、情報処理手段(プロセッサ)の使用効率を向上させることを目的としている。
本発明による資源排他制御方法は、並列処理の実行が可能な複数の情報処理手段間で排他制御を行う資源排他制御方法であって、ロックオブジェクトのロック獲得を要求する情報処理手段がロック獲得に失敗したときに、先行するロック獲得情報処理手段のロック継続時間を判定閾値時間と比較し、その比較結果に応じてロック待ち動作を選択するように制御することを特徴とするものである。
この構成において、ロックオブジェクトのロック獲得を要求している情報処理手段(ロック要求情報処理手段)がロック獲得に失敗したときには、先行してそのロックオブジェクトのロックを獲得している情報処理手段(ロック獲得情報処理手段)についてのロック継続時間を判定閾値時間と比較し、ロック継続時間が判定閾値時間を超過している場合には、ロック獲得情報処理手段におけるロック解放のタイミングが早い(すぐにロック解放される可能性が高い)ものとして、スピンロックなどのロック待ち動作を選択する。また、ロック継続時間が判定閾値時間以下の場合には、ロック獲得情報処理手段によるロックオブジェクトのロックが解放されるタイミングが遅い(すぐにロック解放される可能性は低い)ものとして、スリープなどのロック待ち動作を選択する。これらはいわば、ロック獲得が可能となるまでの時間を予測していることになる。いずれにおいても、先行するロック獲得情報処理手段におけるロック解放を待つが、上記のようにロック継続時間の判定閾値時間に対する比較を通してロック待ち動作を合理的に選択しているため、その待ち時間はいずれも短い時間で済み、リソースとしての情報処理手段の使用効率を向上させることが可能となる。
上記の資源排他制御方法に対応する資源排他制御装置は、その方法に対応する各手段を備えた構成のものである。すなわち、本発明による資源排他制御装置は、並列処理の実行が可能な複数の情報処理手段間で排他制御を行う資源排他制御装置であって、
共有資源ごとに対応し、各共有資源がどの情報処理手段によってロックされているかを管理する複数のロックオブジェクトと、
前記ロックオブジェクトのロック獲得を要求する情報処理手段がロック獲得に失敗したときに、先行するロック獲得情報処理手段のロック継続時間を取得するロック継続時間取得手段と、
前記ロック継続時間取得手段による前記ロック継続時間を判定閾値時間と比較し、その比較結果に応じてロック待ち動作を選択するロック待ち動作選択手段と、
前記ロック待ち動作選択手段によって選択される複数種類のロック待ち動作機構とを備えたものである。
この構成において、ロック要求情報処理手段がロックオブジェクトのロック獲得に失敗したとき、ロック継続時間取得手段は先行するロック獲得情報処理手段についてのロック継続時間を取得し、その取得したロック継続時間をロック待ち動作選択手段に渡す。ロック待ち動作選択手段は受け取ったロック継続時間を判定閾値時間と比較し、ロック継続時間が判定閾値時間を超過している場合には、ロック獲得情報処理手段におけるロック解放のタイミングが早いものとして、それに適した種類のスピンロック機構などのロック待ち動作機構を選択する。また、ロック継続時間が判定閾値時間以下の場合には、ロック獲得情報処理手段によるロックオブジェクトのロックが解放されるタイミングが遅いものとして、それに適した種類のサスペンドロック機構などのロック待ち動作機構を選択する。いずれのロック待ち動作機構においても、先行するロック獲得情報処理手段におけるロック解放を待つが、上記のようにロック継続時間の判定閾値時間に対する比較を通してロック待ち動作を合理的に選択しているため、その待ち時間はいずれも短い時間で済み、リソースとしての情報処理手段の使用効率を向上させることが可能となる。
上記の資源排他制御方法において、前記ロック待ち動作の選択については、前記ロック継続時間が前記判定閾値時間を超えるときはスピンロックを選択し、前記ロック継続時間が前記判定閾値時間以下のときはサスペンドロックを選択するという態様がある。
また上記構成の資源排他制御装置において、前記ロック待ち動作機構は、スピンロック機構とサスペンドロック機構とを保有し、前記ロック待ち動作選択手段は、前記ロック継続時間が前記判定閾値時間を超えるときは前記スピンロック機構を選択し、前記ロック継続時間が前記判定閾値時間以下のときは前記サスペンドロック機構を選択するという態様がある。
スピンロック機構は、ロック要求情報処理手段がロックオブジェクトのロックを獲得するまでロック獲得の動作をし続ける。このスピンしている期間ではビジーウェイト状態となるが、ロック継続時間が判定閾値時間を超えているので、ロック獲得情報処理手段がアンロックするタイミングは近く、ロック要求情報処理手段によるロック獲得の要求は比較的早期に行われることになる。ビジーウェイト状態は存在しても、その期間は短く、リソースとしての情報処理手段の浪費は軽微なものですむことになる。
サスペンドロック機構は、ロック要求情報処理手段をスリープさせ、ロック獲得情報処理手段がアンロック(ロック解放)されるに至ったときにロック要求情報処理手段をウェイクアップさせて(起こして)から、ロックオブジェクトのロックを獲得させに行く。ロック獲得情報処理手段が共有資源の保持をアンロックするに至るまで、他のプロセスに実行権を渡す。そして、先行するロック獲得情報処理手段が共有資源の保持をアンロックするに至ると、ロック要求情報処理手段がウェイクアップする。したがって、ロック要求情報処理手段がリソースとして浪費されるといった事態は免れている。ウェイクアップされたロック要求情報処理手段は、再度の共有資源に対するロック獲得の要求を行う。この場合、共有資源に対するロック獲得の要求が他の情報処理手段から出されていなければ、そのロックオブジェクトのロックが獲得されることになる。この場合のスリープからウェイクアップのためのコンテキストスイッチ動作は、予想される時間を最大限待った上でのウェイクアップであり、不当に処理時間が余分に掛かったということにはならず、合理的な時間待ちといえる。
以上のように、ロックオブジェクトのロックの解放を長時間にわたるスピンロックで無駄に待つことや、すぐにロックオブジェクトのロックが獲得できる場合の無駄なコンテキストスイッチのオーバーヘッド等を回避することができ、リソースとしての情報処理手段の使用効率を向上させることが可能となる。
なお、ロック待ち動作選択手段をスピンロック機構とサスペンドロック機構で構成する代わりに、行いたいロック待ち動作に応じてこれらの構成は変更することが可能である。例えば、情報処理手段のクロック数を低下させる機構や、情報処理手段をスリープモード(クロック供給停止モード)に切り換える機構や、キャッシュのプリフェッチを行う機構等に変更してもよい。なお、ハードウェアを用いなくてもよく、ソフトウェアで同様の構成を用いて実施することもできる。
上記の資源排他制御方法または資源排他制御装置において、前記ロック継続時間については、ロック獲得成功時のシステム時刻をロック開始時刻として保持し、その保持したロック開始時刻から現在のシステム時刻までの経過時間をロック継続時間とするという態様がある。この構成によれば、先行するロック獲得情報処理手段についてロックオブジェクトに保持されているロック開始時刻を読み出し、現在のシステム時刻からロック開始時刻を減算することによりロック継続時間を求めることが可能となる。
また上記の資源排他制御方法または資源排他制御装置において、前記ロック継続時間については、ロック獲得成功時にタイマを起動させ、そのタイマのカウントを読み取ってロック継続時間とするという態様がある。この構成によれば、ロックオブジェクト内にロック開始時刻の保持手段を設けなくても、ロック継続時間を取得することが可能となる。
また上記の資源排他制御方法において、前記判定閾値時間については、実際に消費されたロック時間に応じて動的に変更するという態様がある。また上記構成の資源排他制御装置において、さらに、実際に消費されたロック時間に応じて前記判定閾値時間を動的に変更する判定閾値時間変更手段を備えているという態様がある。この構成によれば、実際に消費されたロック時間に応じて判定閾値時間を新たに設定するので、実動作により適した状態で判定閾値時間を更新でき、より効率の良いロック待ち動作機構を選択することが可能となる。
また上記の資源排他制御方法において、前記判定閾値時間の動的な変更については、実際に消費されたロック時間が現在の判定閾値時間より短いときに限定して変更するという態様がある。また上記構成の資源排他制御装置において、前記判定閾値時間変更手段は、実際に消費されたロック時間が現在の判定閾値時間より短いときに限定して前記判定閾値時間の動的な変更を行うという態様がある。実際に消費されたロック時間が現在の判定閾値時間よりも短いということは、その判定閾値時間が長すぎるということであり、これを是正するために、実際に消費されたロック時間を新たな判定閾値時間として設定する。これは、最小値での設定となる。これにより、実動作により適した状態で判定閾値時間を更新でき、より効率の良いロック待ち動作機構を選択することが可能となる。
また上記の資源排他制御方法において、前記判定閾値時間の動的な変更については、現在までの実際に消費されたロック時間の平均値に変更するという態様がある。また上記構成の資源排他制御装置において、前記判定閾値時間変更手段は、実際に消費されたロック時間が現在の判定閾値時間より短いときに限定して前記判定閾値時間の動的な変更を行うという態様がある。この構成によれば、実動作により適した状態で判定閾値時間を更新でき、より効率の良いロック待ち動作機構を選択することが可能となる。
また上記の資源排他制御方法または資源排他制御装置において、前記判定閾値時間については、情報処理手段ごとに固有の判定閾値時間を保有するという態様がある。この構成によれば、情報処理手段ごとに処理内容に偏りが生じるような場合であっても、その情報処理手段ごとの処理内容に応じて適正な判定閾値時間を用いることにより、実動作により適した状態で、より効率の良いロック待ち動作機構を選択することが可能となる。
また上記の資源排他制御方法または資源排他制御装置において、前記情報処理手段がマルチプロセッサシステムにおけるプロセッサであり、前記ロックオブジェクトが前記マルチプロセッサシステムにおけるプロセッサ間排他制御のロックオブジェクトであるという態様がある。この態様は、本発明の最も好適な適用例の1つである。
なお、共有資源については、共有メモリをはじめとして、各種任意のデバイスが適用可能である。
本発明によれば、ロック獲得に失敗したときには、先行するロック獲得情報処理手段(プロセッサ)についてのロック継続時間を判定閾値時間と比較し、ロック継続時間が判定閾値時間を超過しているか判定閾値時間以下かに応じて、それぞれ最適なロック待ち動作を選択するので、先行するロック獲得情報処理手段におけるロック解放の待ち時間はいずれも短い時間で済み、リソースとしての情報処理手段の使用効率を向上させることができる。
以下、本発明にかかわる資源排他制御方法および資源排他制御装置の実施の形態を図面を用いて詳細に説明する。
(実施の形態1)
図1は本発明の実施の形態1における資源排他制御装置を用いたマルチプロセッサシステムのシステム構成を示すブロック図である。このマルチプロセッサシステムは、複数の情報処理手段としての複数のプロセッサP1,P2,P3と、複数の共有資源R1,R2と、資源排他制御装置Aとから構成されている。資源排他制御装置Aは、資源ロック制御機構10とロックオブジェクト管理テーブル20とから構成されている。30はプロセッサP1,P2,P3と共有資源R1,R2と資源排他制御装置Aを相互に接続するバスである。以下、資源排他制御装置Aの構成要素について説明する。
資源ロック制御機構10は、ロック継続時間取得部11とロック待ち動作選択部12とから構成されている。
ロック継続時間取得部11は、現在すでにロックオブジェクトのロックを獲得しているプロセッサ(ロック獲得プロセッサ)のロック開始からの経過時間であるロック継続時間Tを取得し、取得したロック継続時間Tをロック待ち動作選択部12に送出するように構成されている(詳しくは後述する)。
ロック待ち動作選択部12は、スピンロック機構13とサスペンドロック機構14とを内蔵している。ロック待ち動作選択部12は、ロック継続時間取得部11から取得した先行するロック獲得プロセッサについてのロック継続時間Tの長さに応じて、スピンロック機構13とサスペンドロック機構14のいずれかを選択する。このロック継続時間Tの長さは、その時々の状況に応じてまちまちに変化するものである。このロック継続時間Tは、当該の判断の瞬間において一意に決まっているものであり、判断の過程の中で増大するといった性質のものではない。当該の判断の瞬間において長い場合もあれば、短い場合もある。取得した先行するロック獲得プロセッサについてのロック継続時間Tが判定閾値時間Thを超えているときには、ロック待ち動作選択部12はスピンロック機構13を選択する。一方、先行するロック獲得プロセッサについてのロック継続時間Tが判定閾値時間Th以下のときには、ロック待ち動作選択部12はサスペンドロック機構14を選択する。スピンロック機構13の選択とサスペンドロック機構14の選択との間には優先関係はない(詳しくは後述する)。
スピンロック機構13は、ロックオブジェクトのロック獲得を要求しているプロセッサ(ロック要求プロセッサ)がロックを獲得するまでロック獲得の動作をし続けるスピンロックを行うものとして構成されている(詳しくは後述する)。
サスペンドロック機構14は、現下のロック要求プロセッサで実行されているプロセスをスリープさせ、先行するロック獲得プロセッサがアンロック(ロック解放)されるに至ったときに現下のロック要求プロセッサで実行されていたプロセスをウェイクアップさせて(起こして)からロックオブジェクトのロックを獲得させに行くサスペンドロック(スリープロック)を行うものとして構成されている(詳しくは後述する)。
ロックオブジェクト管理テーブル20は、共有資源R1,R2の数と同数のロックオブジェクトL1,L2を管理している。各ロックオブジェクトL1,L2は、それぞれ各共有資源R1,R2に対応付けられている。ロックオブジェクトL1は、ロック情報21と判定閾値時間Thを保有し、ロック情報21には、ロックオブジェクトのロック獲得を開始した時刻を示すロック開始時刻ts が保持されるようになっている。ロックオブジェクトL2もロックオブジェクトL1と同様の構成となっている。
資源ロック制御機構10は、現下のロック要求プロセッサからロック獲得の要求があったとき、ロックオブジェクト管理テーブル20を参照し、要求にかかわるロックオブジェクトがアンロック状態のときは、直ちにその要求に応答して該当の共有資源にロックをかけるとともに、該当するロックオブジェクト管理テーブル20内のロックオブジェクトにおいてロック情報21にロック開始時刻ts を記録する。ロックオブジェクト管理テーブル20を参照して要求にかかわるロックオブジェクトが既にロック状態のときは、資源ロック制御機構10はロック継続時間取得部11とロック待ち動作選択部12を起動する。
ロック継続時間取得部11は、起動されると、ロックオブジェクト管理テーブル20を参照し、先行するロック獲得プロセッサについてのロック情報21からロック開始時刻ts を読み出し、そのロック開始時刻ts からの現在までの経過時間であるロック継続時間Tを算出し、そのロック継続時間Tをロック待ち動作選択部12に送出する。図2に示すように、現在時刻をt0 とすると、ロック継続時間Tは、T=t0 −ts である。
ロック待ち動作選択部12は、ロック継続時間取得部11から先行するロック獲得プロセッサについてのロック継続時間Tを受け取ると、ロックオブジェクト管理テーブル20を参照して要求にかかわるロックオブジェクトから判定閾値時間Thを読み出し、ロック継続時間Tを判定閾値時間Thと比較する。そして、ロック待ち動作選択部12は、図2(a)のようにT>Thのときはスピンロック機構13を選択し、図2(b)のようにT=Thのとき、および図2(c)のようにT<Thのときはサスペンドロック機構14を選択する。
いま、プロセッサP2が共有資源R1に対応するロックオブジェクトのロック状態を保持しているとする。このとき、資源排他制御装置Aにおけるロックオブジェクト管理テーブル20の共有資源R1に対応したロックオブジェクトL1では、そのロック情報21のロック開始時刻ts が格納されている。このような状態で、プロセッサP1が同じ共有資源R1に対するアクセスを行おうとしたとする。
プロセッサP1による共有資源R1に対するロック獲得の要求がバス30を介して資源排他制御装置Aに送られる。この要求を受けた資源排他制御装置Aは、資源ロック制御機構10を起動し、ロックオブジェクト管理テーブル20を参照する。ここでは、ロック獲得の要求にかかわる共有資源がR1であるので、対応するロックオブジェクトL1を参照する。すると、すでに、プロセッサP2による共有資源R1のロック保持状態であることがわかる。そこで、ロック継続時間取得部11は、ロックオブジェクトL1からロック開始時刻ts を取得する。このロック開始時刻ts は、現在のロック獲得プロセッサP2が共有資源R1のロック保持を開始した時刻である。ロック継続時間取得部11は、取得したロック開始時刻ts を基準にして、ロック獲得プロセッサP2による共有資源R1のロック状態の現在までの経過時間であるロック継続時間Tを算出し(T=t0 −ts )、ロック待ち動作選択部12に渡す。
ロック継続時間Tを受け取ったロック待ち動作選択部12は、ロックオブジェクトL1の判定閾値時間Thを参照し、図2(a)のようにロック継続時間Tがすでに判定閾値時間Thを超えていることを確認したときは、スピンロック機構13を選択し、これを起動するが、図2(b),(c)のようにロック継続時間Tがまだ判定閾値時間Th以下であることを確認したときは、サスペンドロック機構14を選択し、これを起動する。
図2(a)に示すように、現在時刻t0 を基準として、ロック獲得プロセッサP2によるロック開始時刻ts が現在時刻t0 に対して相対的に離れた時刻t-3で、現在時刻t0 においてロック継続時間Tが判定閾値時間Thを超えているとすると、この場合はロック待ち動作選択部12はスピンロック機構13を選択する。
図2(b)に示すように、ロック開始時刻ts が現在時刻t0 により近い時刻t-2で、ロック継続時間Tが判定閾値時間Thに丁度一致したのが現在時刻t0 であるとすると、この場合は、T=Thであるので、ロック待ち動作選択部12はサスペンドロック機構14を選択する。
図2(c),(d)に示すように、ロック開始時刻ts がさらに近い時刻t-1であり、判定閾値時間Thはまだ経過していないとすると、ロック待ち動作選択部12はサスペンドロック機構14を選択する。
なお、図2(a),(b),(c),(d)において判定閾値時間Thの長さは同一で描いてある。
図2(a)に示すように、ロック待ち動作選択部12によりスピンロック機構13が起動された場合、スピンロック機構13はロック要求プロセッサP1をスピンロックする。すなわち、ロックオブジェクトのロックが獲得できるまでチェックを繰り返す。スピンしている期間はビジーウェイト状態となるが、ロック継続時間Tが判定閾値時間Thを超えているので、ロック獲得プロセッサP2がアンロックするタイミングは近く、現下のロック要求プロセッサP1によるロック獲得の要求は比較的早期に行われることになる。ビジーウェイト状態は存在しても、その期間は短く、リソースとしてのプロセッサの浪費は軽微なものですむことになる。
一方、図2(b),(c)に示すように、ロック待ち動作選択部12によりサスペンドロック機構14が起動された場合、サスペンドロック機構14はロック要求プロセッサP1で実行されているプロセスをスリープさせる。すなわち、ロック獲得プロセッサP2が共有資源R1の保持をアンロックするに至るまで、他のプロセスに実行権を渡す。そして、ロック獲得プロセッサP2が共有資源R1の保持をアンロックするに至ると、ロック要求プロセッサP1で実行されていたプロセスがウェイクアップする。したがって、ロック要求プロセッサP1がリソースとして浪費されるといった事態は免れている。ウェイクアップされたロック要求プロセッサP1は、再度の共有資源R1に対するロック獲得の要求を行う。この場合、共有資源R1に対するロック獲得の要求が他のプロセッサから出されていなければ、そのロックオブジェクトのロックが獲得されることになる。この場合のスリープからウェイクアップのためのコンテキストスイッチ動作は、予想される時間を最大限待った上でのウェイクアップであり、不当に処理時間が余分に掛かったということにはならず、合理的な時間待ちといえる。
また、一般的なスリープ、ウェイクアップの方法と同様に、ロック要求プロセッサP1で実行されているプロセスのスリープ時に、そのプロセスを共有資源R1に対応するウェイトキューの末尾に繋ぎ、ロック獲得プロセッサP2が共有資源R1の保持をアンロックするに至ったときには、そのウェイトキューの先頭に繋がっているプロセスに共有資源R1に対応するロックを獲得させ、ウェイトキューから外し、ウェイクアップさせることも考えられる。ウェイトキューに繋がっていても先頭でないプロセスは、この時点ではまだウェイクアップされない。この場合、ウェイクアップしたプロセスは既にロックを獲得した状態になっているため、再度のロック獲得の要求を行う必要がなく、ウェイクアップ後に再びロック獲得に失敗するということを防ぐことができる。
なお、ウェイクアップさせるタイミングについては図2(d)に示すように、ロック開始時刻ts に判定閾値時間Thを加えた時刻に割り込みを発生させるなどしてウェイクアップさせる等でもよく、その後はスピンロックによりロック獲得プロセッサP2が共有資源R1の保持をアンロックするのを待つ等、ロックの待ち方を切り換えることも考えられる。この場合、ロック獲得プロセッサP2が共有資源R1の保持をアンロックしてからウェイクアップさせる場合に比べ、ロック要求プロセッサP1はコンテキストスイッチ処理にかかるオーバーヘッドの時間分、早くロックを獲得することが可能となり、ロック獲得プロセッサP2から見れば、ロック要求プロセッサP1はあたかも最初からずっとスピンロック方式で待っていたかのように見える。すなわち、ロックが解放された際にはスピンロック方式と同等の速さでロックを獲得することができ、かつプロセッサを他のプロセスの実行に使用することも行っており、ロック獲得までの時間を劣化させずにリソースとしてのプロセッサの使用効率を向上させることが可能となる。
次に、上記のように構成された本実施の形態の資源排他制御装置の動作を図3(a),(b)のフローチャートに従って説明する。図3(a)は実施の形態1におけるロックオブジェクトのロック獲得の処理の流れの一例を示し、図3(b)はロック解放(アンロック)の処理の流れの一例を示す。
プロセッサ間排他が必要な共有資源を操作しようとするプロセッサ(ロック要求プロセッサ)は、その共有資源を操作する前に、その共有資源に対応するロックオブジェクトのロック獲得を試みる。このロック獲得の要求が資源排他制御装置Aに伝えられる。
まず、ステップS1において、資源ロック制御機構10は要求のあったロックオブジェクトにつきロックオブジェクト管理テーブル20を参照して、ロックオブジェクトがロック状態か否かをチェックする。すでにロック状態のときは、ロックオブジェクトのロック獲得が失敗であるとしてステップS2に進み、一方、アンロック状態のときはロック獲得が成功であるとしてステップS6に進む。ここでは、説明の順序としてステップS2に進むとする。
ステップS2において、この場合はロック獲得に失敗していて、現在既にロックオブジェクトのロックを獲得しているプロセッサ(ロック獲得プロセッサ)が存在するのであるが、ロック継続時間取得部11によりその先行するロック獲得プロセッサのロックオブジェクトのロック継続時間Tを取得する。このロック継続時間Tの取得においては、ロック獲得プロセッサのロック開始時刻ts を読み出し、現在時刻t0 からロック開始時刻ts を減算して、ロック継続時間Tを求める(T=t0 −ts )。このロック継続時間Tは、既にロックを獲得しているプロセッサがロック獲得に成功したときの時刻から現在までの経過時間である。このロック継続時間Tの長さは、その時々の状況によってまちまちである。図2(a)のようにロック継続時間Tが判定閾値時間Thを超えているときもあれば、図2(b)のように丁度判定閾値時間Thに達したタイミングである場合もあるし、図2(c)のように未だ判定閾値時間Thに達していない場合もある。ロック継続時間取得部11は、演算によって取得したロック継続時間Tをロック待ち動作選択部12に渡す。
次いでステップS3において、ロック待ち動作選択部12は先行するロック獲得プロセッサのロックオブジェクトから判定閾値時間Thを読み出し、ロック継続時間取得部11から受け取ったロック継続時間Tを判定閾値時間Thと比較する。すなわち、ロック継続時間Tが判定閾値時間Thに達しているかを判定する。図2(a)のようにロック継続時間Tが判定閾値時間Thを超過している場合には、ロック待ち動作選択部12がスピンロック機構13を選択するためにステップS4に進む。また図2(b),(c)のようにロック継続時間Tが判定閾値時間Th以下の場合には、ロック待ち動作選択部12がサスペンドロック機構14を選択するためにステップS5に進む。
ステップS4においては、スピンロック機構13を起動し、図3(a)のフローチャートのルーチンを抜ける。このステップS4の場合、ロック獲得プロセッサがロックオブジェクトのロックを獲得してから判定閾値時間Thに相当する一定時間がすでに経過しており、ロック獲得プロセッサは間もなくロックオブジェクトのロックを解放する(図3(b)参照)と予測される。したがって、スピンロックすることは、過剰な時間待ちを意味しない合理的な判断である。
一方、ステップS5においては、サスペンドロック機構14を起動し、図3(a)のフローチャートのルーチンを抜ける。このステップS5の場合、ロック獲得プロセッサがロックオブジェクトのロックを獲得してからそれほど時間が経過しておらず、ロックオブジェクトのロックがすぐに解放される(図3(b)参照)可能性は低いと予測される。したがって、スリープすることは、早すぎるということにはならなくて、むしろ他のプロセスに実行権を渡すので合理的な判断であるといえる。
ステップS4のスピンロックした経緯ののちであるかステップS5のスリープした経緯ののちであるかを問わず、やがてロック獲得プロセッサがアンロックし(図3(b)参照)、ロック要求プロセッサがロックオブジェクトのロック獲得に成功するに至る。この場合は、図3(a)のフローチャートのルーチンにおいて、そのステップS1のロック獲得の成否の判断が成功となり、ステップS6に進む。
ステップS6において、ロックオブジェクト管理テーブル20は要求にかかわるロックオブジェクトにおいて、現在の時刻情報をそのロックオブジェクトの保持するロック開始時刻ts に記録し、図3(a)のフローチャートのルーチンを抜ける(ロック獲得処理の終了)。
図3(b)はロックオブジェクトのロック解放(アンロック)の処理の流れ示す。プロセッサ間排他が必要な共有資源の操作を終えたプロセッサ(ロック要求プロセッサからロック獲得プロセッサとなる)は、その共有資源の操作後に、その共有資源に対応するロックオブジェクトのロックを解放する(ステップS11)。
本実施の形態によれば、ロック獲得に失敗したときには、先行するロック獲得プロセッサについてのロック継続時間Tを判定閾値時間Thと比較し、ロック継続時間Tが判定閾値時間Thを超過しているか判定閾値時間Th以下かに応じて、それぞれ最適なロック待ち動作を選択するので、先行するロック獲得プロセッサにおけるロック解放の待ち時間はいずれも充分に短い時間で済み、リソースとしてのプロセッサの使用効率を向上させることができる。
なお、本実施の形態では、ロック待ち動作選択部12をスピンロック機構13とサスペンドロック機構14で構成しているが、行いたいロック待ち動作に応じてこれらの構成は変更することが可能である。例えば、プロセッサのクロック数を低下させる機構や、プロセッサをスリープモード(クロック供給停止モード)に切り換える機構や、キャッシュのプリフェッチを行う機構等に変更してもよい。なお、特殊な装置を用いなくても、ソフトウェアで同様の構成を用いて実施することもできる。
なお、ステップS6において説明した現在の時刻情報とは、例えばシステム起動からのフリーランタイマのタイムスタンプ値等である。あるいは、これに代えて、ロック獲得に成功した場合に専用のタイマをスタートさせる等すれば、ロック開始時刻ts をロックオブジェクト内に設けなくても、ロック開始からの経過時間であるロック継続時間Tを取得することができる。
(実施の形態2)
図4は本発明の実施の形態2における資源排他制御装置を用いたマルチプロセッサシステムのシステム構成を示すブロック図である。図4において、実施の形態1の図1におけるのと同じ符号は同一構成要素を指しているので、詳しい説明は省略する。本実施の形態に特有の構成は、資源ロック制御機構10において、実際に消費されたロック時間に応じて判定閾値時間Thを動的(ダイナミック)に変更する判定閾値時間変更部15が追加されている点にある。本実施の形態の資源排他制御装置の基本的な動作は、実施の形態1の場合の図3(a)のフローチャートに従う。
図5は実施の形態2におけるロックオブジェクトのロック解放の処理の流れの一例を示すフローチャートである。ステップS11のロックオブジェクトのロック解放に引き続いて、ステップS12において、判定閾値時間変更部15は、実際に消費されたロック時間に応じて判定閾値時間Thを動的に変更し、新たに設定する。例えばロック開始時刻ts からロックを解放する現在までの経過時間(実際に消費されたロック時間)がそのロックオブジェクトを保有していた時間となる。したがって、その時間に応じて判定閾値時間Thを新たに設定すればよい。実際に消費されたロック時間が長ければ判定閾値時間Thも長くし、実際に消費されたロック時間が短ければ判定閾値時間Thも短くする。このような調整を動的(ダイナミック)に行うのである。
本実施の形態によれば、実際に消費されたロック時間に応じて判定閾値時間Thを新たに設定するので、実動作により適した状態で判定閾値時間を更新でき、より効率の良いロック待ち動作機構(スピンロック機構13またはサスペンドロック機構14)を選択することができる。
なお、判定閾値時間Thの動的な変更については、実際に消費されたロック時間が現在の判定閾値時間Thより短いときに(ロック継続時間Tが判定閾値時間Thより短いタイミングで終了した場合に)限定して変更するようにすれば、最小値での設定が可能となる。これにより、ロック獲得速度が要求されるシビアなシステムにおいても対応可能で、実動作により適した状態で判定閾値時間Thを更新でき、より効率の良いロック待ち動作機構(スピンロック機構13またはサスペンドロック機構14)を選択することができる。
あるいは、現在までの実際のロック時間の平均値を設定することなども考えられる。この場合も、実動作により適した状態で判定閾値時間Thを更新でき、より効率の良いロック待ち動作機構(スピンロック機構13またはサスペンドロック機構14)を選択することができる。
(実施の形態3)
図6は本発明の実施の形態3における資源排他制御装置を用いたマルチプロセッサシステムのシステム構成を示すブロック図である。図6において、実施の形態1の図1におけるのと同じ符号は同一構成要素を指しているので、詳しい説明は省略する。本実施の形態に特有の構成は、ロックオブジェクト管理テーブル20のロックオブジェクトL1において、複数のプロセッサP1,P2,P3のそれぞれに応じた固有の判定閾値時間Th1 ,Th2 ,Th3 を保有しているとともに、ロック情報21において、ロックオブジェクトのロックを獲得したプロセッサを示すロック獲得プロセッサPL をさらに保有している点である。ロックオブジェクトL2についても同様の構成となっている。なお、本構成は実施の形態2の構成に適用することもできる。
図7は実施の形態3におけるロック獲得の処理の流れの一例を示すフローチャートである。図7では、実施の形態1の場合の図3(a)において、ロック獲得に成功した場合のステップS6の次に、ステップS7として、ロックオブジェクトのロックを獲得したプロセッサ識別子をそのロックオブジェクトの保持するロック獲得プロセッサPL に記録するようになっている。プロセッサ識別子とは、例えば複数のプロセッサを一意に特定できるプロセッサごとに割り振られたCPU番号等である。
ロック待ち動作選択部12は、ステップS3での先行するロック獲得プロセッサについてのロック継続時間Tが判定閾値時間Thを超えているか否かの判断において、そのロック情報21におけるロック獲得プロセッサPL を参照し、判定閾値時間Th1 ,Th2 ,Th3 の中からそのロック獲得プロセッサPL に対応する判定閾値時間Thi (i=1,2,3)を選択し、ロック継続時間Tと比較する。
本実施の形態によれば、判定閾値時間について、プロセッサPi ごとに(i=1,2,3)、固有の判定閾値時間Thi を持たせていることにより、プロセッサごとに処理内容に偏りが生じるような場合であっても、そのプロセッサごとの処理内容に応じて適正な判定閾値時間Thi を用いるので、実動作により適した状態で、より効率の良いロック待ち動作機構(スピンロック機構13またはサスペンドロック機構14)を選択することができる。
なお、ロック獲得に失敗した場合において、既にそのロックオブジェクトのロック解放を待っているプロセッサが別に存在している場合に、ロック獲得プロセッサおよび既ロック待ちプロセッサのそれぞれの判定閾値時間Thi に応じて、ロック待ち動作機構(スピンロック機構13またはサスペンドロック機構14)を選択するようにしてもよい。例えば、ロック獲得プロセッサおよび既ロック待ちプロセッサのそれぞれの判定閾値時間Thi の総和をロック継続時間Tとを比較し、ロック待ち動作機構を選択することなどが考えられる。具体的には、プロセッサP1がロックを獲得しプロセッサP2が既にロック獲得を待っている状態において、プロセッサP3が新たにロック獲得を試み失敗した場合には、ロック獲得プロセッサP1と既ロック待ちプロセッサP2のそれぞれの判定閾値時間Th1 ,Th2の合計値とロック継続時間Tを比較し、プロセッサP3のロック待ち動作機構を選択するなどである。
以上説明したように本発明の技術を用いることにより、ロック獲得の際に、ロックオブジェクトのロック解放を無駄にスピンロックで長時間待つことや、無駄なコンテキストスイッチのオーバーヘッド等を回避することができ、リソースとしてのプロセッサの使用効率を向上させることができる。
本発明の資源排他制御方法または資源排他制御装置は、複数のプロセッサ間で排他処理が必要となるプロセッサにおいてプロセッサ資源の使用効率の向上が可能となるので、並列処理実行が可能なプロセッサを搭載する家電製品等に有用である。
本発明の実施の形態1における資源排他制御装置を用いたマルチプロセッサシステムのシステム構成を示すブロック図 本発明の実施の形態1における資源排他制御装置の動作原理の説明図 本発明の実施の形態1における資源排他制御装置のロック獲得ルーチンのフローチャート(a)とロック解放ルーチンのフローチャート(b) 本発明の実施の形態2における資源排他制御装置を用いたマルチプロセッサシステムのシステム構成を示すブロック図 本発明の実施の形態2における資源排他制御装置のロック解放ルーチンのフローチャート 本発明の実施の形態3における資源排他制御装置を用いたマルチプロセッサシステムのシステム構成を示すブロック図 本発明の実施の形態3における資源排他制御装置のロック獲得ルーチンのフローチャート
10…資源ロック制御機構
11…ロック継続時間取得部
12…ロック待ち動作選択部
13…スピンロック機構
14…サスペンドロック機構
15…判定閾値時間変更部
20…ロックオブジェクト管理テーブル
21…ロック情報
A…資源排他制御装置
L1,L2…ロックオブジェクト
P1,P2,P3…プロセッサ(情報処理手段)
L …ロック獲得プロセッサ(ロック獲得情報処理手段)
R1,R2…共有資源
T ロック継続時間
Th,Th1 ,Th2 ,Th3 …判定閾値時間
s …ロック開始時刻

Claims (18)

  1. 並列処理の実行が可能な複数の情報処理手段間で排他制御を行う資源排他制御方法であって、ロックオブジェクトのロック獲得を要求する情報処理手段がロック獲得に失敗したときに、先行するロック獲得情報処理手段のロック継続時間を判定閾値時間と比較し、その比較結果に応じてロック待ち動作を選択するように制御することを特徴とする資源排他制御方法。
  2. 前記ロック待ち動作の選択については、前記ロック継続時間が前記判定閾値時間を超えるときはスピンロックを選択し、前記ロック継続時間が前記判定閾値時間以下のときはサスペンドロックを選択する請求項1に記載の資源排他制御方法。
  3. 前記ロック継続時間については、ロック獲得成功時のシステム時刻をロック開始時刻として保持し、その保持したロック開始時刻から現在のシステム時刻までの経過時間をロック継続時間とする請求項1または請求項2に記載の資源排他制御方法。
  4. 前記ロック継続時間については、ロック獲得成功時にタイマを起動させ、そのタイマのカウントを読み取ってロック継続時間とする請求項1または請求項2に記載の資源排他制御方法。
  5. 前記判定閾値時間については、実際に消費されたロック時間に応じて動的に変更する請求項1から請求項4までのいずれかに記載の資源排他制御方法。
  6. 前記判定閾値時間の動的な変更については、実際に消費されたロック時間が現在の判定閾値時間より短いときに限定して変更する請求項5に記載の資源排他制御方法。
  7. 前記判定閾値時間の動的な変更については、現在までの実際に消費されたロック時間の平均値に変更する請求項5に記載の資源排他制御方法。
  8. 前記判定閾値時間については、情報処理手段ごとに固有の判定閾値時間を保有する請求項1から請求項7までのいずれかに記載の資源排他制御方法。
  9. 前記情報処理手段がマルチプロセッサシステムにおけるプロセッサであり、前記ロックオブジェクトが前記マルチプロセッサシステムにおけるプロセッサ間排他制御のロックオブジェクトである請求項1から請求項8までのいずれかに記載の資源排他制御方法。
  10. 並列処理の実行が可能な複数の情報処理手段間で排他制御を行う資源排他制御装置であって、
    共有資源ごとに対応し、各共有資源がどの情報処理手段によってロックされているかを管理する複数のロックオブジェクトと、
    前記ロックオブジェクトのロック獲得を要求する情報処理手段がロック獲得に失敗したときに、先行するロック獲得情報処理手段のロック継続時間を取得するロック継続時間取得手段と、
    前記ロック継続時間取得手段による前記ロック継続時間を判定閾値時間と比較し、その比較結果に応じてロック待ち動作を選択するロック待ち動作選択手段と、
    前記ロック待ち動作選択手段によって選択される複数種類のロック待ち動作機構とを備えた資源排他制御装置。
  11. 前記ロック待ち動作機構は、スピンロック機構とサスペンドロック機構とを保有し、
    前記ロック待ち動作選択手段は、前記ロック継続時間が前記判定閾値時間を超えるときは前記スピンロック機構を選択し、前記ロック継続時間が前記判定閾値時間以下のときは前記サスペンドロック機構を選択する請求項10に記載の資源排他制御装置。
  12. 前記ロック継続時間については、ロック獲得成功時のシステム時刻をロック開始時刻として保持し、その保持したロック開始時刻から現在のシステム時刻までの経過時間をロック継続時間とする請求項10または請求項11に記載の資源排他制御装置。
  13. 前記ロック継続時間については、ロック獲得成功時にタイマを起動させ、そのタイマのカウントを読み取ってロック継続時間とする請求項10または請求項11に記載の資源排他制御装置。
  14. さらに、実際に消費されたロック時間に応じて前記判定閾値時間を動的に変更する判定閾値時間変更手段を備えている請求項10から請求項13までのいずれかに記載の資源排他制御装置。
  15. 前記判定閾値時間変更手段は、実際に消費されたロック時間が現在の判定閾値時間より短いときに限定して前記判定閾値時間の動的な変更を行う請求項14に記載の資源排他制御装置。
  16. 前記判定閾値時間変更手段は、前記判定閾値時間の動的な変更において現在までの実際に消費されたロック時間の平均値に変更する請求項14に記載の資源排他制御装置。
  17. 前記判定閾値時間については、情報処理手段ごとに固有の判定閾値時間を保有する請求項10から請求項16までのいずれかに記載の資源排他制御装置。
  18. 前記情報処理手段がマルチプロセッサシステムにおけるプロセッサであり、前記ロックオブジェクトが前記マルチプロセッサシステムにおけるプロセッサ間排他制御のロックオブジェクトである請求項10から請求項17までのいずれかに記載の資源排他制御装置。
JP2009033698A 2009-02-17 2009-02-17 資源排他制御方法および資源排他制御装置 Expired - Fee Related JP5349072B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2009033698A JP5349072B2 (ja) 2009-02-17 2009-02-17 資源排他制御方法および資源排他制御装置
CN200980156912.5A CN102317918A (zh) 2009-02-17 2009-12-01 资源排他控制方法以及资源排他控制装置
PCT/JP2009/006492 WO2010095198A1 (ja) 2009-02-17 2009-12-01 資源排他制御方法および資源排他制御装置
US13/197,544 US8463911B2 (en) 2009-02-17 2011-08-03 Exclusive control method of resource and exclusive controller of resource
US13/829,923 US9135085B2 (en) 2009-02-17 2013-03-14 Exclusive control method of resource and exclusive controller of resource

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009033698A JP5349072B2 (ja) 2009-02-17 2009-02-17 資源排他制御方法および資源排他制御装置

Publications (2)

Publication Number Publication Date
JP2010191575A true JP2010191575A (ja) 2010-09-02
JP5349072B2 JP5349072B2 (ja) 2013-11-20

Family

ID=42633501

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009033698A Expired - Fee Related JP5349072B2 (ja) 2009-02-17 2009-02-17 資源排他制御方法および資源排他制御装置

Country Status (4)

Country Link
US (2) US8463911B2 (ja)
JP (1) JP5349072B2 (ja)
CN (1) CN102317918A (ja)
WO (1) WO2010095198A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097544A (ja) * 2011-10-31 2013-05-20 Nec Computertechno Ltd マルチプロセッサシステム、及びマルチプロセッサシステムの制御方法
JP2019106066A (ja) * 2017-12-13 2019-06-27 株式会社デンソー 情報処理装置
CN113535415A (zh) * 2021-06-21 2021-10-22 福建天泉教育科技有限公司 一种资源获取方法及终端

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595567B2 (en) * 2010-12-16 2013-11-26 Wind River Systems, Inc. Method and system for spinlock fault recovery
CN102298539A (zh) * 2011-06-07 2011-12-28 华东师范大学 一种用于分布式并行处理的共享资源调度方法及系统
US9733664B1 (en) * 2013-03-14 2017-08-15 Gamesys Ltd. Method for expiring fault-tolerant timers using distributed locks
EP2976696B1 (en) * 2013-03-22 2019-12-04 Nokia Technologies Oy Selecting user interface view
CN104243359B (zh) * 2013-06-20 2018-12-18 中兴通讯股份有限公司 一种获取共享资源的协同仲裁方法及装置
JP5621896B2 (ja) * 2013-10-24 2014-11-12 富士通株式会社 マルチプロセッサシステム、制御プログラム、および制御方法
JP6609552B2 (ja) * 2013-10-25 2019-11-20 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド バスロック及び変換索引バッファの無効化を行う方法及び装置
CN104932933B (zh) * 2014-03-21 2018-11-13 华为技术有限公司 一种获取自旋锁的方法及装置
GB2525215B (en) 2014-04-16 2019-05-08 Ibm A busy lock and a passive lock featuring embedded load management capabilities
CN104808766A (zh) * 2015-03-31 2015-07-29 深圳市金立通信设备有限公司 一种终端
CN104808767A (zh) * 2015-03-31 2015-07-29 深圳市金立通信设备有限公司 一种终端控制方法
JP6295990B2 (ja) * 2015-03-31 2018-03-20 京セラドキュメントソリューションズ株式会社 電子機器および情報処理プログラム
CN105224062A (zh) * 2015-09-28 2016-01-06 深圳市金立通信设备有限公司 一种终端控制方法及终端
US10459909B2 (en) * 2016-01-13 2019-10-29 Walmart Apollo, Llc System for providing a time-limited mutual exclusivity lock and method therefor
US10083068B2 (en) 2016-03-29 2018-09-25 Microsoft Technology Licensing, Llc Fast transfer of workload between multiple processors
CN106200880A (zh) * 2016-07-27 2016-12-07 宇龙计算机通信科技(深圳)有限公司 终端控制方法、终端控制装置和终端
CN107885488B (zh) 2016-09-29 2021-06-01 微软技术许可有限责任公司 意图和具有意图的锁
US9842010B1 (en) * 2016-10-24 2017-12-12 International Business Machines Corporation Adjustment of a sleep duration for a process based on an expected time for securing a spinlock
CN107066324A (zh) * 2017-03-08 2017-08-18 广东欧珀移动通信有限公司 一种指纹处理资源的控制方法及设备
CN106851123B (zh) 2017-03-09 2020-12-22 Oppo广东移动通信有限公司 曝光控制方法、曝光控制装置及电子装置
US10331498B1 (en) * 2017-04-26 2019-06-25 EMC IP Holding Company LLC ColoredLock synchronization object, allowing flow specific policy of lock canceling
JP2019067289A (ja) * 2017-10-04 2019-04-25 ルネサスエレクトロニクス株式会社 半導体装置
JP6529699B1 (ja) * 2018-06-15 2019-06-12 三菱電機株式会社 制御装置及び信号制御方法
US20200151010A1 (en) * 2018-11-10 2020-05-14 Nutanix, Inc. Scheduling of fixed number of non-sharable resources
US20220027464A1 (en) * 2020-07-23 2022-01-27 Nxp Usa, Inc. Systems and methods for constraining access to one time programmable storage elements
CN112947677B (zh) * 2021-02-05 2024-02-27 北京深之度科技有限公司 一种计时器读取方法、计算设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6079460A (ja) * 1983-10-07 1985-05-07 Nec Corp 密結合多重演算装置における制御方式
JPS61250765A (ja) * 1985-04-30 1986-11-07 Toshiba Corp マルチプロセツサシステムの排他制御方式
JPH0381859A (ja) * 1989-08-25 1991-04-08 Nec Corp マルチプロセッサシステム
JPH05225149A (ja) * 1992-02-13 1993-09-03 Toshiba Corp ロック方式
JPH07319716A (ja) * 1994-05-23 1995-12-08 Hitachi Ltd 計算機システムの資源の排他制御方式
JP2001084235A (ja) * 1999-09-10 2001-03-30 Nec Corp ロック粒度統計情報を利用した排他制御方法及びプログラムを記録した機械読み取り可能な記録媒体

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274809A (en) * 1988-05-26 1993-12-28 Hitachi, Ltd. Task execution control method for a multiprocessor system with enhanced post/wait procedure
US20060048160A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Method, apparatus, and computer program product for providing a self-tunable parameter used for dynamically yielding an idle processor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6079460A (ja) * 1983-10-07 1985-05-07 Nec Corp 密結合多重演算装置における制御方式
JPS61250765A (ja) * 1985-04-30 1986-11-07 Toshiba Corp マルチプロセツサシステムの排他制御方式
JPH0381859A (ja) * 1989-08-25 1991-04-08 Nec Corp マルチプロセッサシステム
JPH05225149A (ja) * 1992-02-13 1993-09-03 Toshiba Corp ロック方式
JPH07319716A (ja) * 1994-05-23 1995-12-08 Hitachi Ltd 計算機システムの資源の排他制御方式
JP2001084235A (ja) * 1999-09-10 2001-03-30 Nec Corp ロック粒度統計情報を利用した排他制御方法及びプログラムを記録した機械読み取り可能な記録媒体

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097544A (ja) * 2011-10-31 2013-05-20 Nec Computertechno Ltd マルチプロセッサシステム、及びマルチプロセッサシステムの制御方法
JP2019106066A (ja) * 2017-12-13 2019-06-27 株式会社デンソー 情報処理装置
JP6992471B2 (ja) 2017-12-13 2022-01-13 株式会社デンソー 情報処理装置
CN113535415A (zh) * 2021-06-21 2021-10-22 福建天泉教育科技有限公司 一种资源获取方法及终端
CN113535415B (zh) * 2021-06-21 2023-08-04 福建天泉教育科技有限公司 一种资源获取方法及终端

Also Published As

Publication number Publication date
CN102317918A (zh) 2012-01-11
WO2010095198A1 (ja) 2010-08-26
US8463911B2 (en) 2013-06-11
US20130205057A1 (en) 2013-08-08
US20110296028A1 (en) 2011-12-01
US9135085B2 (en) 2015-09-15
JP5349072B2 (ja) 2013-11-20

Similar Documents

Publication Publication Date Title
JP5349072B2 (ja) 資源排他制御方法および資源排他制御装置
JP4603583B2 (ja) プロセッサ、装置、及び方法
US8108696B2 (en) Optimizing non-preemptible read-copy update for low-power usage by avoiding unnecessary wakeups
CN108920267B (zh) 任务处理装置
US8140823B2 (en) Multithreaded processor with lock indicator
JP5752326B2 (ja) マルチコアコンピューティングデバイスのための動的スリープ
CN100418058C (zh) 管理计算机内的计算机程序的临界区锁的方法
JP5546529B2 (ja) 待機状態にあるプロセッサ実行リソースの共有
KR100708952B1 (ko) 병렬 처리 시스템, 병렬 처리 프로그램을 기록하는 컴퓨터 판독가능한 기록 매체 및 병렬 처리 방법
US20110161540A1 (en) Hardware supported high performance lock schema
US20060069738A1 (en) Multi-processor computer system
CN1402100A (zh) 具有进行本征时钟控制的硬件机构的半导体器件
JP2006031691A (ja) スリープ‐起動機構を用いた比較および交換動作
TW200844749A (en) Direct memory access controller
JP5347451B2 (ja) マルチプロセッサシステム、競合回避プログラム及び競合回避方法
KR20140127341A (ko) 휴대용 컴퓨팅 디바이스에서 요청들을 스케쥴링하기 위한 방법 및 시스템
US10621128B2 (en) Controlling transitions of devices between normal state and quiescent state
US20080104604A1 (en) Apparatus And Method For Increasing The Utilization By The Processors On The Shared Resources
Liang et al. MiSAR: Minimalistic synchronization accelerator with resource overflow management
JPWO2011096163A1 (ja) 情報処理システム、排他制御方法および排他制御用プログラム
Zhang et al. Scalable adaptive NUMA-aware lock
JP2001084235A (ja) ロック粒度統計情報を利用した排他制御方法及びプログラムを記録した機械読み取り可能な記録媒体
WO2015135468A1 (en) Systems and methods for messaging-based fine granularity system-on-a-chip power gating
JP2011175378A (ja) マルチプロセッサシステム、及びマルチプロセッサシステムの動作方法
KR101285665B1 (ko) 수면 모드를 지원하는 멀티 코어 시스템 온 칩

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130627

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130820

R150 Certificate of patent or registration of utility model

Ref document number: 5349072

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees