JPH01297761A - ロック時限付ロック機構 - Google Patents

ロック時限付ロック機構

Info

Publication number
JPH01297761A
JPH01297761A JP63127044A JP12704488A JPH01297761A JP H01297761 A JPH01297761 A JP H01297761A JP 63127044 A JP63127044 A JP 63127044A JP 12704488 A JP12704488 A JP 12704488A JP H01297761 A JPH01297761 A JP H01297761A
Authority
JP
Japan
Prior art keywords
lock
time
value
time limit
timeout
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
JP63127044A
Other languages
English (en)
Inventor
Haruhiko Ueno
治彦 上埜
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP63127044A priority Critical patent/JPH01297761A/ja
Publication of JPH01297761A publication Critical patent/JPH01297761A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔概  要〕 メモリ上でロックが取られている場合に、そのロックタ
イムアウトを効率的に検出するロック時限付ロック機構
に関し、 ロックを取っている要素にロック時限値を設定し、その
時限値を越えた場合にはサスペンドロックの場合にもス
ピンロックの場合にもタイムアウトとして判断すること
により、サスペンドロックのタイムアウトを検出できる
ようにする、且つスピンロックのタイムアウトについて
は高速に検出することができるようにすることを目的と
し、ロックを取る複数の要素を共通の時刻値をもつ計時
機構にアクセス可能とする手段と、前記要素のロックパ
ターンに該要素のロック時限値を含める手段と、該時限
値と前記計時機構の時刻値とを比較し、前記要素のロッ
クタイムアウトを判断する手段とからなるように構成す
る。
〔産業上の利用分野〕
本発明はメモリ上でロックが取られている場合に、その
ロックタイムアウトを効率的に検出するロック時限付ロ
ック機構に関する。
〔従来の技術〕
従来、ハードウェア又はソフトウェアで排他制御例えば
1つの資源を複数のCPUで同時に使用する場合、1つ
のCPUだけがその資源をある時間区域においては専有
するというような制御を行う場合には、メモリ上でロッ
クを取る方法が用いられてきた。この時、メモリ上でロ
ックが取られている場合には、そのロック値としてはプ
ロセッサID等が用いられてきた。例えばl03A(1
10システムエリア)のデータブロックのロック値とし
ては次のものが用いられている。
Xは16進数表記を表す。
すなわち、ロック値としてはどのCPUがロックを取っ
ているかという情報のみが用いられており、ロックの時
限値とロック値とは全く無関係であった。そこで、通常
あるプロセッサ(ハード)またはプロセス(ソフ1へ)
がロックを取った場合、処理が正常終了すれはそのロッ
クは解放される。
しかし、設計エラーまたはプロセッサがロックをとった
状態でハードウェアエラーによりダウンした場合該当ロ
ックは解放されないままになってしまう。
〔発明が解決しようとする課題〕 上記従来技術においてはロックが解放されない場合に、
上述の表に示ずようなロック値からば、ロックタイムア
ウトの検出は不可能であった。解放されないロックはロ
ックのタイプにより以下の現象を引き起こす。ここで、
iノースペントロックは、ロックがとれないときは、そ
の処理をしないで他の処理に移るものであり、スピンロ
ックとば、ロックがとれないときにはロックが解放され
るまで待ち続けるものである。そしてサスペンドロック
の場合は、該当するロックに対する処理が2度と開始さ
れず、他の処理に移ってしまう。またスピンロックの場
合は、第6図に示すように、ロックを取ろうとするプロ
セッサ又はプロセスがロック時限値を(現在のTOD値
十ロック待ち最大時間)に設定する(STI)。次にス
ピンロックを取ろうとしく5T2)だ後ロックが取れれ
ば(Sr1)ロックが取れた時の処理を行い(Sr4)
、そのロックが取れない時には現在のTODがロック時
限を越えたか(Sr5)を判断する。そしてタイムアウ
トしていない時には再びスピンロックを取ろうとしタイ
ムアウトするまでこの処理を繰り返す。タイムアウトし
た時にはロックタイムアウト時の処理(Sr6)を行う
。すなわち、あるプロセッサ(ハード)プロセス(ソフ
ト)が解放されないスピンロックを取りにいった場合に
は、一定時間待った後にロックタイムアウトを検出する
しかし、時間監視をしていない時であってシステムに故
障が生じている時には永久にタイムアウトしないわけで
あるから、プロセスは永久に待たされてしまう。そして
スピンロックの待ち時間は、このロックを取って動く処
理の処理時間より十分大きくしなければならない。なぜ
なら同時に複数個のプロセッサ(プlコセス)が同一ロ
ックを待った場合、最後に処理されるプロセッサは他の
プロセッサの処理時間の合計分待たされるからである。
すなわち、スピンロックの待ち時間は他のプロセッサの
処理時間の合計分収上にしなければならない。
従ってサスペンドロックの場合であってシステムに故障
が生じた場合にはサスペンドロックのタイムアウトは従
来は全く検出されなかった。またスピンロックの場合で
あってシステムに故障が生した場合には、従来はロック
プロセスの期間に比べて十分長い時間ロック待ちして後
ロックタイムアウトが検出されることになるので、すな
わち従来は現在ロックを取っている方の要素のロック値
にはプロセッサID等のみが用いられており、そのロッ
クを取っている要素のクイムアウI・を待っている側の
要素には、複数のプロセッサが競合してロソクアウ1〜
待ちになっている場合に必要な待ち時間よりも長い時間
に設定されたロックタイムアウト時間の間、ロックがタ
イムアウトされるのを待っていた。ロック待ちしている
要素がある場合には、ロックが解放されたとたんその要
素のうちの1つがロックを取得する。
本発明は上記従来の欠点に鑑みて、ロックを取っている
要素にロック時限値を設定し、その時限値を越えた場合
にはサスペンドロックの場合にもスピンロックの場合に
もタイムアウトとして判断することにより、サスペンド
ロックのタイムアウトを検出できるようにする、且つス
ピンロックのタイムアウトについては高速に検出するこ
とができるようにすることができる。
〔課題を解決するだめの手段〕
第1図は本発明の原理図である。ロックを取る複数の要
素、即ち、プロセッサやプロセスの全てが共通の時刻値
を持つ計時機構にアクセス可能とする(1)手段を持ち
、そして各要素毎に各要素がどの位の時間ロックを取っ
ているかを示すロック時限値をこのロックパターンに含
める(2)。
このロック時限値は各要素毎別々の値をもつのが通常で
ある。そして、現在ロックを取っている要素のロック時
限値と前記計時機構の時刻値を比較し、そのロック時限
値が前記計時機構の時刻値を過ぎている時には、その前
記要素がすでにロックタイムアウトとなっているものと
判断する(3)手段を有する。ロック時限値が前記計時
機構の時刻値に達していない時には、まだ正常に当該要
素がロックされている時間内にあるものと判断する。
〔作   用〕
サスペンドロックの場合には、ロックを取っている要素
のロックパターンデータに含まれている、時限値よりも
共通の計時機構の時刻値が過ぎている時には、ロソクタ
イムアウ1〜とみなし、該当ロックを取った処理が異常
終了していると判断できる。スピンロックの場合には、
ロック値よりも計時機構の時刻値が前の時にはタイムア
ウトされるまでつまり計時機構の時刻値とロックパター
ンの時限値が同一となるまでロックを取るのを待てばよ
い。従って従来はロックタイムアウトまでの待ち時間が
すべてのプロセッサまたはプロセスの最大処理時間より
十分長く設定しなければならなかったのに、本発明によ
ればサスペンドロックの場合は、ロソクタイムアウ1へ
が検出可能になり、また、スピンロックの場合には、現
時、刻が時限値を越えていれば、直ちにロックタイムア
ウトが検出できる。さらに、現時刻が時限値を越えてい
なければ、ロック時限値まで待てばロックタイムアウト
が検出できる。このときのロック時限値はロックを現在
とっている方のプロセッサ又はプロセスが設定するので
、従来のロック時限値よりも小さい値であり、ロック待
ち時間は従来より短くなる。
従って、ロックパターンの有する時限値を越えてもなお
、ロックがはずれない時には、計算機システムの故障が
あるという判断を従来よりも迅速に行うことができる。
〔実  施  例〕
以下図面を参照して本発明の一実施例を詳細に説明する
本実施例によれば、ロックを使用する全てのプロセッサ
(ハード)やプロセス(ソフト)は、ゆるされる誤差内
でシステム全体に共通な時刻値を持つタイマを参照でき
る。このタイマは1個のタイマを全プロセッサからアク
セスできるようにしてもよいし、各プロセッサ毎にタイ
マを設け、それらが同一時刻を指すようにしてもよい。
一方、プロセッサ又はプロセスがロックをとった場合に
は、第2図に示すような次の値をロックパターンの一部
または全部として使用するものとする。すなわち、 ロック時限値−ロック取得時刻→−その処理の最大処理
時間 すなわち、ロック時限値とはロック取得を開始した時刻
にその処理の最大処理時間を加えた時刻となるので、こ
れはシステム全体に設けられた共通の時刻値と客観的に
比較できるタイプのデータである。
第2図にはロックパターンのフォーマットを示し、ロッ
ク時限値をロックパターンの一部にロソり時限値10を
ロックパターン11の一部に含めた形となる。そしてロ
ックが空きの時はロックパターンの時限値はOとする。
ここであるプロセッサがロックを取るときのフローをロ
ックタイプ別に説明する。まず、サスペンドロックの場
合は、第3図(alに示すようにまずロックをとろうと
しく5TI1.)てロックがとれれば(ST12)ロッ
クが取れたときの処理を(ST13)を行う。ロックが
取れないときにGコ、現時刻がとろうとするロックのロ
ック時限値より大きいか(ST14)を判断し、大きい
時には該当ロックをとっているプロセス又はプロセッサ
が異常であると考えられるので、ロックタイムアウト時
の処理を行う。また現時刻がロック時限値より大きくな
い時には、従来と同様に、この処理をスキップして他の
処理にスキップしく5T16)他の処理へと移る。従っ
て解放されないロックがあった場合、現時刻の方がロッ
ク時限値より大きくなるので、ロックタイムアウトが検
出できる。
すなわち、このロックタイムアウトの時には計算機シス
テム等に故障が発生しているものと考えられる。
次にスピンロックの場合には、まずロックを取ろうとし
くS’r21)、ロックが取れたら(ST22)ロック
が取れたときの処理を行い(ST23)ロックが取れな
ければ、現時刻がロック時限値より大きいか(ST24
.)判断する。もし現時刻の方が大きければサスペンド
ロックの場合同様、ロックタイムアウ1−時の処理を行
う(ST25)。
もし現時刻がロック時限より大きくないならば再びロッ
クを取ろうとするステップ(ST21)へ戻り、ロック
が取れるか、クイムアウl−になるまで以上のステップ
を繰り返す。このことにより、解放されないスピンロッ
クがあった場合、そしてそのロックを取ろうとした時に
は、現時刻が時限値より大きければ待ち時間なしで、ロ
ックタイムアウトが検出できる。またロソクタイムアウ
1〜を検出するだめの待ち時間も従来の方法より少なく
て済む。なぜならば本発明によれば、ロック時限値はロ
ックをとったプロセッサが決定するのでい11一 つも最小の待ち時間で済むし、常に1個分の処理時間分
待つだけでよいからである。すなわちロックをとったプ
ロセッサのロック時限値まで待てば、直ちにロックタイ
ムアウトの判断ができ、またそのロック時限値より前に
ロックがとれた時には、待っていた要素の処理に移行す
ることができるからである。
次に上記実施例をより具体的に説明する。第4図にはロ
ックデータフォーマツ1〜を示し、このロックデータは
例えば8ハイドからなり、時限値の上位7ハイトを入れ
る。下位1ハイドにばCPU番号をいれる。時限値はロ
ックがとられていない時にはロックデータ全体が0であ
り、ロックがとられていない時にはロックデータのうち
のどこかが0ではない。少なくともCPU番号はOとは
ならない。なお、CPU番号はcpuoならばX′CO
′、CPU1ならばX’ C1’、CPU2ならばX’
C2’、CPU3ならばX’C3’等であOわされてい
るものとする。第5図にはロックを取る時のフローチャ
ー1・を示す。同図において、−13= メモリ」−のロックデータをL OCK # M E 
Mとして示す。まず現在のTOD値すなわち共通の計時
機構等に示されている現在の時刻値を読み取る(ST3
1)。
次に、 (新しいロックデータ)−(現在のTOD値)+ (ロ
ック期間) 即ち前述した (時限値)−(ロック取得時刻)十(その処理の最大処
理時間) とし、さらに最下位ハイドをCPU番号とした新ロック
データを形成する(ST32)。次にメモリ上のロック
データを新しいロックデータで置き換えようとする(S
T33)。これは例えばメモリ上のロック時限値が0で
あるかを見る。そして0であればロックが成功したごと
になる(ST34.5T37)のでそこで当該処理を行
い(ST38)、その処理が完了した時点でロックデー
タLOCK#MEMに0を格納する(ST39)。
これによってロックがはずされたことになる。
5T34でロックが成功しないと判断されたときには、
Sr11で読み取ったTOD値がロックデータの時限値
より大きいかを判断(ST35]L、大きい時には、ロ
ックタイムアウトを検出した(Sr36)ことになる。
そしてTOD値がメモリ上にロックデータつまり時限値
よりも大きくない時には再び現在のTOD値を読み取り
 (Sr31)、以後前述のステップを繰り返す。従っ
て以」二をまとめると、何らかのエラーで解放されない
ロックが生じた場合乙こは、サスペンドロックでは、従
来の方法によると該当ロックのタイムアウトは検出でき
なかったにもかかわらず、本発明の時限付ロックによる
と時限より後の時刻で該当ロックを取ろうとした際には
タイムアウトを直ちに検出することができる。時限より
前の時刻で該当ロックを取ろうとした時には、従来と同
様にその処理をスキップする。スピンロックの場合には
、従来の方法ではロックプロセスの期間に比べて十分H
い時間ロック待ちしてロソクタイムアウI−が検出され
たので、エラーで解放されないロックがあることを検出
するのに長時間を要していた。これに対して本発明の時
限付ロックでは、時限より後の時刻で該当ロックをとろ
うとした場合には、待ち時間なしでロックタイムアウト
を検出できるのでこの場合また時限より前の時刻で該当
ロックをとろうとした場合であっても、一番長い場合で
もロックを取りつづけにしているプロセスが要求した時
間だけロック待ちをしさえすれば、ロックタイムアウト
が検出できる。従ってエラー等で解放されないロックが
生したことをきわめて短時間に検出できる。
〔発明の゛効果〕
本発明によれば、サスペンドロックについてはエラー等
で解放されないロックがある場合にそのロックのタイム
アウトを検出できるようになり、スピンロックについて
はその場合でもより高速にタイムアウトを検出できるよ
うになるという効果を奏するものである。
【図面の簡単な説明】
第1図は本発明の原理図、 第2図は本発明に用いられるロックパターンの゛  フ
ォーマットを示す図、 第3図(a)はサスペンドロックの場合及び第3図(b
)はスピンロックの場合のそれぞれロックを取るときの
フローを示す図、 第4図はロックデータのフォーマットを示す図、第5図
はロックを取る際の手順をより具体的に示したフローチ
ャート、 第6図は従来のスピンロックにおいてロックをとる場合
を示すフローチャートである。 ■・・・計時機構にアクセス可能とする手段、2・・・
要素のロック時限値を含める手段、3・・・要素のロッ
クタイムアウトを判断する手段。 特許出願人   富士通株式会社 −16= イ之来のヌビンU とるリカ4緊嘔亦′ 第 ニックl:お′いてロックを ナフローチャート 6図

Claims (1)

  1. 【特許請求の範囲】 ロックを取る複数の要素を共通の時刻値をもつ計時機構
    にアクセス可能とする手段(1)と、前記要素のロック
    パターンに該要素のロック時限値を含める手段(2)と
    、 該時限値と前記計時機構の時刻値とを比較し、前記要素
    のロックタイムアウトを判断する手段(3)とからなる
    ことを特徴とするロック時限付ロック機構。
JP63127044A 1988-05-26 1988-05-26 ロック時限付ロック機構 Pending JPH01297761A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63127044A JPH01297761A (ja) 1988-05-26 1988-05-26 ロック時限付ロック機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63127044A JPH01297761A (ja) 1988-05-26 1988-05-26 ロック時限付ロック機構

Publications (1)

Publication Number Publication Date
JPH01297761A true JPH01297761A (ja) 1989-11-30

Family

ID=14950230

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63127044A Pending JPH01297761A (ja) 1988-05-26 1988-05-26 ロック時限付ロック機構

Country Status (1)

Country Link
JP (1) JPH01297761A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01300366A (ja) * 1988-05-30 1989-12-04 Ube Ind Ltd 共有データ競合制御方式
JPH08329020A (ja) * 1995-05-30 1996-12-13 Kofu Nippon Denki Kk 並列計算機
WO2016098142A1 (ja) * 2014-12-18 2016-06-23 三菱電機株式会社 産業コントローラおよび産業コントローラシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01300366A (ja) * 1988-05-30 1989-12-04 Ube Ind Ltd 共有データ競合制御方式
JPH08329020A (ja) * 1995-05-30 1996-12-13 Kofu Nippon Denki Kk 並列計算機
WO2016098142A1 (ja) * 2014-12-18 2016-06-23 三菱電機株式会社 産業コントローラおよび産業コントローラシステム

Similar Documents

Publication Publication Date Title
US7065641B2 (en) Weighted processor selection apparatus and method for use in multiprocessor systems
JPH0833874B2 (ja) 複数のプロセッサを同期する装置
US4839895A (en) Early failure detection system for multiprocessor system
JPH01297761A (ja) ロック時限付ロック機構
JPH06324914A (ja) コンピュータの暴走検出方法
KR940011041B1 (ko) 마이크로컴퓨터
JP2952896B2 (ja) マルチタスク・マルチプロセッサシステムにおける共有メモリアクセス方式
JP3236459B2 (ja) 共通バスのデータ転送における異常処理装置
JPH09212470A (ja) マルチプロセッサシステム
JPH06149762A (ja) 計算機システムの競合動作試験方式
JP2000089971A (ja) 割込み順位制御方法及び割込み順位制御装置
JP2617984B2 (ja) 中央処理装置のテスト方法
JPH03156659A (ja) ダイレクトメモリアクセスコントローラ
JPH11232210A (ja) 情報処理装置
JP2773751B2 (ja) Sciにおけるスキャン・イン/アウト方式
JPS6033474Y2 (ja) コンピュ−タ異常検出回路
JPH0527993A (ja) デツドロツク検出処理方式
JPH02110742A (ja) マルチプロセッサの誤り検出・同期方式
JPH01255040A (ja) 割込みマスク回路
JPH05165705A (ja) メモリ制御装置
JPH06110848A (ja) 共有メモリのアクセス方法
JPH03148731A (ja) シングルチップマイクロコンピュータ
JPH0322148A (ja) μCPUの暴走検出回路
JPH03154148A (ja) 2ポートメモリのアクセス調停装置
JPH05134997A (ja) コマンド処理方法