JPH064323A - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム

Info

Publication number
JPH064323A
JPH064323A JP18742492A JP18742492A JPH064323A JP H064323 A JPH064323 A JP H064323A JP 18742492 A JP18742492 A JP 18742492A JP 18742492 A JP18742492 A JP 18742492A JP H064323 A JPH064323 A JP H064323A
Authority
JP
Japan
Prior art keywords
lock
state
shared resource
locked
processor cpu
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.)
Pending
Application number
JP18742492A
Other languages
English (en)
Inventor
Tadashi Ogino
正 荻野
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP18742492A priority Critical patent/JPH064323A/ja
Publication of JPH064323A publication Critical patent/JPH064323A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 システムの性能向上が図れたマルチプロセッ
サシステムを得る。 【構成】 第1のプロセッサCPU(1-0)がプロセス2
を実行し、共有資源(3-0)〜(3-2)がロックされているか
否かを対応した手段(4-0)〜(4-2)にてチェックを行な
う。ロックの獲得要求に対応した手段(4-0)がロックさ
れていないことを示していると、共有資源(3-0)をアク
セスして実行処理を行なう。ロックの獲得要求に対応し
た手段(4-1)がロックされていることを示し、ロックを
保持しているプロセス4が第2のプロセッサCPU(1-
1)によって実行中であると手段(5)が判断すると、手段
(5)が第1のプロセッサCPU(1-0)におけるプロセス2
を待ち状態とする。ロックの獲得要求に対応した手段(4
-2)がロックされていることを示し、ロックを保持して
いるプロセス6が現在実行中でないと手段(5)が判断す
ると、手段(5)が第1のプロセッサはCPU(1-0)におけ
るプロセス2を、他のプロセスに切り替える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、複数のプロセッサが
共有資源(共用される情報)を利用するマルチプロセッ
サシステムに係わり、特に、複数のプロセッサが共有資
源に競合を起こさずに制御できるマルチプロセッサシス
テムに関するものである。
【0002】
【従来の技術】この種、マルチプロセッサシステムにお
いては、複数のプロセッサが共有資源を共有するため、
共有資源の利用に競合が起きないように制御しなければ
ならず、この制御の一手法としてロックを用いる方法が
提案されている。図3は例えば、「並列プログラミング
の基礎」(平成2年7月25日発行、丸善株式会社発
行、大森健児翻訳、P.P.76〜77)にて提案され
ている2つのプロセスを実行する時のプロセスの時間経
過を示しているものである。
【0003】この図3に基づいて、同時に走っている
(RUN状態である)2つのプロセス0及びプロセス1
が共有資源ををロックを獲得しあいながら処理を進める
方法について説明する。また、プロセス0が点Aの時点
でスピンロック(spin lock)を呼ぶ(獲得要
求を行なう)と、スピンロックは、アンロックの状態
(ロックが開放されている状態)であるので、ロック状
態になり、ロックを獲得する。すると、プロセス0は共
有資源にアクセスし、保護領域内の文を実行し始める。
【0004】プロセス0が保護領域にいる間に、例えば
点Bの時点でプロセス1がスピンロックを呼んだとする
と、プロセス0が既にロックを獲得しているため、スピ
ンロックがロック状態であり、プロセス1はロックを獲
得できず、プロセス1は待ち状態(スピニング、空回
り)になる。プロセス0の実行処理が点Cの時点で終了
すると、スピンロックをアンロック状態にする。する
と、プロセス1はこの点Cの時点以降の時点D(ほぼ同
時点)でロックを獲得できる。プロセス1は共有資源に
アクセスし、保護領域内の文を実行しはじめる。この様
にしてプロセス0及びプロセス1の処理は競合せずに、
つまり、共有資源の利用に競合が起きないようにして実
行されることになるものである。
【0005】また、例えば、特開平3−30027号公
報には、複数のプロセスにより共用される情報(共有資
源)をアクセスする際にロックを獲得して他のプロセス
からのアクセスを禁止するものにおいて、ロック獲得を
要求した時に現在ロック獲得に成功しているプロセスの
指定占有時間が短いか長いかを判断して、短い時には待
ち状態となり、長い時には待ち状態とならずロック獲得
を不成功とする制御方式が提案されている。
【0006】
【発明が解決しようとする課題】しかるに、図3に示し
たものにおいては、例えば、プロセス1が点Dの時点で
ロックを獲得し保護領域内の処理を実行しはじめ、点E
の時点にてアイドル状態になり、このアイドル状態にな
っている点Fの時点にてプロセス0がスピンロックを呼
んだとすると、プロセス1が既にロックを獲得している
ため、スピンロックがロック状態であり、プロセス0は
ロックを獲得できず、プロセス0は待ち状態(スピニン
グ、空回り)になるが、プロセス1はアイドル状態にな
っているため、プロセス1がアンロック状態になるのに
相当な時間を要し、プロセス0はその間有効な処理を行
なうことができず、システムの性能上問題を有している
ものであった。
【0007】この発明は、上記した点に鑑みてなされた
ものであり、システムの性能向上が図れたマルチプロセ
ッサシステムを得ることを目的とするものである。
【0008】
【課題を解決するための手段】この発明に係わるマルチ
プロセッサシステムは、複数のプロセッサにて利用され
る情報が蓄積されている複数の共有資源と、これら複数
の共有資源に対して、排他使用のためのロックを保持し
ているプロセスを知るための手段と、要求のあったプロ
セスが共有資源の1つをアクセスした際にロックを持っ
ているプロセスが実行中であれば、要求のあったプロセ
スをアクセスする共有資源へのアクセスに対して待ち状
態とさせ、ロックを持っているプロセスが実行中でなけ
れば、要求のあったプロセスを他のプロセスにプロセス
切り替えを行なわせる手段とを設けたものである。
【0009】
【作用】この発明においては、ロックの獲得要求をする
プロセスがロックを獲得できなかった場合に、ロックを
保持しているプロセスの状態に応じて制御する手段が、
ロックを保持しているプロセスが実行中であると、ロッ
クの獲得要求をするプロセスを待ち状態となさしめ、実
行中でないと他のプロセスに切り替えせしめる。
【0010】
【実施例】図1は、この発明の一実施例を示すものであ
り、図1において(1-0)及び(1-1)は第1及び第2のプロ
セッサCPU、(2-0)はこの第1のプロセッサCPU(1-
0)で動いているプロセスIDで、この図にて示した例に
おいてはプロセス2が走っている(RUN状態である)
ことを示している。(2-1)は上記第2のプロセッサCP
U(1-1)で動いているプロセスIDで、この図示にて示
した例においてはプロセス4が走っている(RUN状態
である)ことを示している。(3-0)〜(3-2)は上記第1及
び第2のプロセッサCPU(1-0)、(1-1)にて利用される
情報(データ)が蓄積されている第1ないし第3の共有
資源(共用される情報源)である。
【0011】(4-0)はこの第1の共有資源(3-0)に対応し
て設けられ、この第1の共有資源(3-0)の排他使用のた
めのロックを保持しているプロセスを示し、このプロセ
スを知るための手段で、この図示にて示した例において
は何のプロセスもロックされていない状態を示してい
る。(4-1)は上記第2の共有資源(3-1)に対応して設けら
れ、この第2の共有資源(3-1)の排他使用のためのロッ
クを保持しているプロセスを示し、このプロセスを知る
ための手段で、この図示にて示した例においてはプロセ
ス4にてロックされている状態を示している。(4-2)は
上記第3の共有資源(3-2)に対応して設けられ、この第
3の共有資源(3-2)の排他使用のためのロックを保持し
ているプロセスを示し、このプロセスを知るための手段
で、この図示にて示した例においては、プロセス6にて
ロックされている状態を示している。
【0012】(5)はプロセスの状態を示すとともに、要
求のあったプロセスが上記共有資源の1をアクセスした
際にロックを持っているプロセスが実行中であれば、要
求のあったプロセスをロックを持っているプロセスの処
理が終了する(ロックを開放する)まで、上記アクセス
する共有資源へのアクセスに対して待ち状態とさせ、ロ
ックを持っているプロセスが実行中でなければ、要求の
あったプロセスを他のプロセスにプロセス切り替えを行
なわせる手段で、この図示にて示した例においては、プ
ロセス1、プロセス3、プロセス5及びプロセス6が停
止状態(STOP)であり、プロセス2及びプロセス4
が走っている状態(RUN)を示している。
【0013】次に、このように構成されたマルチプロセ
ッサシステムの動作を、図2に示したフローチャートに
基づいて説明する。今、第1のプロセッサCPU(1-0)
でプロセス2が走っており、第2のプロセッサCPU(1
-1)でプロセス4が走っており、プロセスを知るための
手段(4-0)が何のプロセスにもロックされていない状態
を示し、プロセスを知るための手段(4-1)がプロセス4
にてロックされている状態を示し、プロセスを知るため
の手段(4-2)がプロセス6にてロックされている状態を
示し、手段(5)がプロセス1、プロセス3、プロセス5
及びプロセス6が停止状態(STOP)であり、プロセ
ス2及びプロセス4が走っている状態(RUN)を示し
ているとする。
【0014】この状態において、第1のプロセッサCP
U(1-0)が、プロセス2を実行し、共有資源(3-0)〜(3-
2)のロックを獲得して実行処理する場合、まず、図2に
示すステップ(1)にて、共有資源(3-0)〜(3-2)がロック
されているか否かを対応した手段(4-0)〜(4-2)にてチェ
ックを行なう。第1のプロセッサCPU(1-0)における
プロセス2が第1の共有資源(3-0)に対してロックの獲
得要求をすると、対応した手段(4-0)がロックされてい
ないことを示しているので、ステップ(2)に進み、第1
の共有資源(3-0)に自分のプロセスIDを書き込み、ロ
ックを獲得したことを示してリターンし、第1の共有資
源(3-0)をアクセスして実行処理を行なうことになる。
なお、ステップ(1)とステップ(2)は1命令で行なわれる
ものである。
【0015】一方、第1のプロセッサCPU(1-0)にお
けるプロセス2が第2あるいは第3の共有資源(3-1)あ
るいは(3-2)に対してロックの獲得要求をすると、対応
した手段(4-1)あるいは(4-2)がそれぞれプロセス4及び
プロセス6にロックされていることを示しているので、
ステップ(3)に進む。このステップ(3)では、ロックを獲
得しているプロセスが実行中であるか否かを手段(5)に
よって判断される。
【0016】第1のプロセッサCPU(1-0)におけるプ
ロセス2が第2の共有資源(3-1)に対してロックの獲得
要求をすると、対応した手段(4-1)がプロセス4にロッ
クされていることを示しているため、手段(5)がロック
を保持しているプロセス4の状態を判断し、このプロセ
ス4が第2のプロセッサCPU(1-1)によって実行中
(RUN)であるので、第1のプロセッサCPU(1-0)
におけるプロセス2を待ち状態としてステップ(1)に戻
す。つまり、第1のプロセッサCPU(1-0)におけるプ
ロセス2は、第2のプロセッサ(1-1)におけるプロセス
4による第2の共有資源(3-1)の利用が終了(アンロッ
ク状態)するまでスピンし、プロセス4がロックを開放
すると、ステップ(1)からステップ(2)に進み、第1のプ
ロセッサCPU(1-0)におけるプロセス2が第2の共有
資源(3-1)に自分のプロセスIDを書き込み、ロックを
獲得したことを示してリターンし、第2の共有資源(3-
1)をアクセスして実行処理を行なうことになる。
【0017】また、第1のプロセッサCPU(1-0)にお
けるプロセス2が第3の共有資源(3-2)に対してロック
の獲得要求をすると、対応した手段(4-2)がプロセス6
にロックされていることを示しているため、手段(5)が
ロックを保持しているプロセス6の状態を判断し、この
プロセス6が現在実行中でない(STOP、例えばアイ
ドル状態)ので、ステップ(4)に進む。このステップ(4)
では、第1のプロセッサCPU(1-0)におけるプロセス
2を、他のプロセスに切り替えてリターンする。第1の
プロセッサCPU(1-0)は、第3の共有資源(3-2)に対す
るロックの獲得要求がいつになるのか分からない、長時
間待ち状態になるのを避けて他のプロセスに基づく処理
が実行されることになるものである。
【0018】上記のように構成されたマルチプロセッサ
システムにおいては、共有資源がロック状態であって
も、ロックを保持しているプロセスが実行中であれば、
ロックを短期間の待ち状態で獲得できる可能性が非常に
高いので、プロセス切り替えをせずにロックの開放を待
ち、ロックを保持しているプロセスが実行中でなけれ
ば、ロックを短期間の待ち状態で獲得できる可能性が非
常に低いので、無駄に待つことなく、他のプロセスに切
り替えて処理を進めることにより、ロックを獲得できる
のにプロセス切り替えを行なうオーバーヘッド及びロッ
クが獲得できないためのオーバーヘッドを少なくするこ
とでシステムの性能を向上することができるものであ
る。
【0019】なお、上記実施例においては、ロックを保
持しているプロセスが実行中であると、このプロセスが
ロックを開放するまで待ち状態とするものとしたが、ロ
ックを保持しているプロセスが実行中である場合に、ロ
ックを獲得できない回数(スピンの回数)が所定回数以
上になると、ロックを保持しているプロセスが実行中で
ない場合と同様に他のプロセスに切り替えるようにして
も良いものである。また、上記実施例では、プロセッサ
CPUを2つ、共有資源を3つの場合について示した
が、これらの数に限られるものではない。
【0020】
【発明の効果】この発明は、以上に述べたように、複数
のプロセッサにて利用される情報が蓄積されている複数
の共有資源に対して排他使用のためのロックを保持して
いるプロセスを知るための手段と、要求のあったプロセ
スが共有資源の1つをアクセスした際にロックを持って
いるプロセスが実行中であれば、要求のあったプロセス
のアクセスする共有資源へのアクセスに対して待ち状態
とさせ、ロックを持っているプロセスが実行中でなけれ
ば、要求のあったプロセスを他のプロセスにプロセス切
り替えを行なわせる手段とを設けたものとしたので、ロ
ックが獲得できないためのオーバーヘッド及びロックが
獲得できるのにプロセス切り替えを行なうオーバーヘッ
ドを少なくでき、システムの性能が向上するという効果
を有するものである。
【図面の簡単な説明】
【図1】この発明の一実施例を示す構成図。
【図2】この発明の一実施例における処理アルゴリズム
を示すフローチャート。
【図3】従来のスピンロックの手法を示すタイムチャー
ト。
【符号の説明】
1-0,1-1 プロセッサ 2-0,2-1 プロセス 3-0,3-1,3-2 共有資源 4-0,4-1,4-2 共有資源の排他使用のためのロ
ックを保持しているプロセスを知る手段 5 プロセスの状態及び要求のあっ
た状態に基づいて以降の処理を制御するための手段

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサにて利用される情報が
    蓄積されている複数の共有資源、これら複数の共有資源
    に対して、排他使用のためのロックを保持しているプロ
    セスを知るための手段、要求のあったプロセスが上記共
    有資源の1つをアクセスした際にロックを持っているプ
    ロセスが実行中であれば、要求のあったプロセスを上記
    アクセスする共有資源へのアクセスに対して待ち状態と
    させ、ロックを持っているプロセスが実行中でなけれ
    ば、要求のあったプロセスを他のプロセスにプロセス切
    り替えを行なわせる手段を備えたマルチプロセッサシス
    テム。
JP18742492A 1992-06-23 1992-06-23 マルチプロセッサシステム Pending JPH064323A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18742492A JPH064323A (ja) 1992-06-23 1992-06-23 マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18742492A JPH064323A (ja) 1992-06-23 1992-06-23 マルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JPH064323A true JPH064323A (ja) 1994-01-14

Family

ID=16205812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18742492A Pending JPH064323A (ja) 1992-06-23 1992-06-23 マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JPH064323A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007081029A1 (ja) * 2006-01-16 2007-07-19 Seiko Epson Corporation マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム
US7467709B2 (en) 2001-09-27 2008-12-23 Separation Technologies Llc Continuous belt for a belt-type separator device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467709B2 (en) 2001-09-27 2008-12-23 Separation Technologies Llc Continuous belt for a belt-type separator device
WO2007081029A1 (ja) * 2006-01-16 2007-07-19 Seiko Epson Corporation マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム
US7877753B2 (en) 2006-01-16 2011-01-25 Seiko Epson Corporation Multi-processor system and program for causing computer to execute controlling method of interruption of multi-processor system

Similar Documents

Publication Publication Date Title
JP2514299B2 (ja) プロセスレベルプログラミングのための割込み処理の直列化方法
US7653791B2 (en) Realtime-safe read copy update with per-processor read/write locks
US7650605B2 (en) Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US7975271B2 (en) System and method for dynamically determining a portion of a resource for which a thread is to obtain a lock
US7797704B2 (en) System and method for performing work by one of plural threads using a lockable resource
US8661458B2 (en) Multiprocessor system, and method for shared use of devices among operating systems of multiprocessor system
JPH04308961A (ja) 占有されたプロセスの同期ロックの状態を通知するための手段及び装置
JPH1115793A (ja) 資源の保全性を保護する方法
EP1299801B1 (en) Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
JPH064323A (ja) マルチプロセッサシステム
JPH05250188A (ja) プロセスのプライオリティ制御方式
JPS6321941B2 (ja)
US20040261080A1 (en) Methods and systems for managing access to shared resources using control flow
JPH07319716A (ja) 計算機システムの資源の排他制御方式
JPH05257902A (ja) 処理プログラム・モードにおけるロック獲得処理方式
JP4006428B2 (ja) 計算機システム
CN114327828B (zh) 一种共享数据的无锁并发访问方法、装置、设备及介质
JP3724075B2 (ja) プロセスの実行方法
JP2876970B2 (ja) 統合排他制御方式
JP2023091314A (ja) 半導体装置、半導体装置の制御方法及びプログラム
CN116991452A (zh) 在OpenPower架构热更新OPAL功能固件代码的方法及装置
JPH036654A (ja) 相互排除方式
CN117707798A (zh) 多线程并发状态下的死锁消除方法、装置、设备及介质
JPH0612394A (ja) プロセススケジュール方式
JP2001256065A (ja) 排他制御方法及び計算機システム