Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3487440B2 - 共有メモリアクセス方式 - Google Patents
[go: Go Back, main page]

JP3487440B2 - 共有メモリアクセス方式 - Google Patents

共有メモリアクセス方式

Info

Publication number
JP3487440B2
JP3487440B2 JP29934693A JP29934693A JP3487440B2 JP 3487440 B2 JP3487440 B2 JP 3487440B2 JP 29934693 A JP29934693 A JP 29934693A JP 29934693 A JP29934693 A JP 29934693A JP 3487440 B2 JP3487440 B2 JP 3487440B2
Authority
JP
Japan
Prior art keywords
exclusive
identifier
exclusion
field
ipl
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
JP29934693A
Other languages
English (en)
Other versions
JPH07152695A (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.)
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 JP29934693A priority Critical patent/JP3487440B2/ja
Publication of JPH07152695A publication Critical patent/JPH07152695A/ja
Application granted granted Critical
Publication of JP3487440B2 publication Critical patent/JP3487440B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】本発明は、複数のプロセッサが共
有メモリをアクセスする共有メモリアクセス方式に関す
るものである。 【0002】 【従来の技術】従来、図11に示すように、複数のプロ
セッサ(以下PMと記述する)がバスあるいは回線を介
して共有メモリをアクセスし、一連の処理を行なうマル
チプロセッサシステムがある。各PMは、複数の空間を
持ちそれぞれが処理を行なうと共にその核がバスあるい
は回線を介して共有メモリの排他を獲得してアクセスす
る。この際、複数のPMが共有メモリをアクセスする場
合、PM間で排他が必要となる。 【0003】あるPMが共有メモリの排他を獲得した状
態でPMクラッシュして動作しなくなった場合、クラッ
シュしたPMが獲得して使用していた排他環境を回収し
ないと、他PMが当該共有メモリの排他待ちの状態とな
って一連の処理が進まなくなってしまう。このためにク
ラッシュしたPMが獲得していた排他環境を回収する必
要がある。 【0004】また、クラッシュしたPMが使用していた
共有メモリを使って他のPMが動きだすとき、クラッシ
ュしたPMのしかかり中の内容が残っている場合があ
り、この状態の共有メモリの内容をそのまま使ってしま
うと、その内容が不完全で他のPMが誤動作してしまう
ことが発生する。 【0005】 【発明が解決しようとする課題】上述したように、従来
の複数のPMが共有メモリをアクセスして一連の処理を
行なう場合、各PMが共有メモリの排他を獲得した後、
アクセスし、排他を解放することで、共有メモリの内容
の信頼性を確保している。この際、共有メモリの排他を
獲得したPMがクラッシュしてしまうと、この共有メモ
リの使用を待機している他のPMが当該共有メモリを使
えなくなってしまうという問題があった。また、PMが
クラッシュしてしまうと、クラッシュしたPMが排他を
獲得して使用していた共有メモリの使用を、待機してい
る他のPMがその共有メモリを使用できなくなったこと
を認識できず、処理が中断したままになってしまうとい
う問題もあった。 【0006】本発明は、これらの問題を解決するため、
共有メモリに排他フィールド、排他待ち管理フィール
ド、新旧管理フィールドを設けて排他、排他待ちのP
M、データを格納する新版/旧版領域を管理すると共に
PM識別子、IPL回数、時刻を持つPM管理テーブル
を設けてクラッシュPMを自動検出してリカバリを行な
い、共有メモリの排他、排他待ちの順番、クラッシュP
Mの自動検出、および共有メモリの復元を管理・実行す
ることを目的としている。 【0007】 【課題を解決するための手段】図1は、本発明の原理構
成図を示す。図1において、共有メモリ1は、複数のプ
ロセッサ11がバスあるいは回線を介して排他を獲得し
てアクセスするメモリであって、排他管理テーブル2、
PM管理テーブル6、新版領域7、および旧版領域8か
ら構成されるものである。 【0008】排他管理テーブル2は、排他を管理するテ
ーブルであって、排他フィールド3、排他待ち管理フィ
ールド4、および新旧管理フィールド5から構成される
ものである。 【0009】排他フィールド3は、共有メモリ1の領域
を獲得したプロセッサ11のPM識別子およびIPL回
数を設定するものである。排他未状態のときは0(零)
を設定する。 【0010】排他待ち管理フィールド4は、排他待ちの
プロセッサ11のPM識別子に対応づけて待ち順番を表
すカウンタ値を設定するものである。新旧管理フィール
ド5は、排他フィールド3が排他を管理する新版領域7
あるいは旧版領域8のいずれかをポイントするポインタ
を設定するものである。 【0011】PM管理テーブル6は、プロセッサ11の
クラッシュを検出するためのものであって、所定時間毎
に各プロセッサ11が自身のPM識別子に対応づけてI
PL回数および時刻を設定したり、現時刻と他のPM識
別子の時刻とが閾値以上異なるときに当該PM識別子の
プロセッサ11がクラッシュしたと判定するためのもの
である。 【0012】プロセッサ(PM−1、PM−2・・・P
M−X)11は、バスあるいは回線を介して共有メモリ
1をアクセスして各種処理を行なうものであって、核1
2および複数の各種処理を行なう空間を設けたものであ
る。各空間はメッセージキューにメッセージをキューイ
ングして他の空間や核12にデータや各種要求を通知す
る。 【0013】核12は、全体を統括制御するものであっ
て、ここでは核スレッド13内に設けた排他制御手段1
4および核12から呼び出されるリカバリ手段15から
構成されるものである。 【0014】排他制御手段14は、共有メモリ1の排他
を獲得するものである。リカバリ手段15は、所定時間
毎にPM管理テーブル6の自PM識別子の時刻を現時刻
に設定すると共に他のPM識別子の時刻とを比較して所
定閾値以上の差があったときにそのPM識別子のプロセ
ッサがクラッシュしたと判定してリカバリ処理を行なう
ものである。 【0015】 【作用】本発明は、図1に示すように、プロセッサ11
内の排他制御手段14が共有メモリ1へのアクセス時
に、共有メモリ1内の排他フィールド3が排他未状態の
ときに当該排他フィールド3に自PM識別子を設定して
排他状態にしたもとで、共有メモリ1をアクセスした
後、排他フィールド3を排他未状態に設定および排他待
ち管理フィールド4に設定されている次の順番のPM識
別子のプロセッサ11に排他獲得可能通知を送信し、一
方、排他状態のときに排他待ち管理フィールド4に自P
M識別子に対応づけてカウンタ値を設定して待機するよ
うにしている。 【0016】また、プロセッサ11の排他制御手段14
が排他フィールド3に自PM識別子を設定して排他を獲
得し、共有メモリ1をアクセスするときに新旧管理フィ
ールド5のポインタによってポイントする旧版領域8か
ら内容を取り出して新版領域7にコピーすると共に新版
領域7へのポインタを新旧管理フィールド5に設定し、
当該新版領域7をアクセスするようにしている。 【0017】また、プロセッサ11内のリカバリ手段1
5がPM管理テーブル6の自PM識別子の時刻に現時刻
を書き込むと共に、現時刻と他のPM識別子の時刻とを
比較して閾値以上の差があったときにそのPM識別子の
プロセッサ11がクラッシュしたと判定すると共に、こ
のクラッシュ判定したPM識別子とIPL回数を他のプ
ロセッサ11に通知、およびクラッシュしたプロセッサ
11の再IPLを指示し、この指示に対応して、クラッ
シュしたプロセッサ11が再IPLした後にPM管理テ
ーブル6の自IPL識別子のIPL回数を+1し、ある
いはクラッシュしないプロセッサ11のいずれかが通知
を受けたPM識別子およびIPL回数と排他フィールド
3に設定されているPM識別子およびIPL回数とを比
較し等しいと判明したときに新旧管理フィールド5のポ
インタを新版領域7から旧版領域6に切り替えて復元す
るようにしている。 【0018】更に、復元した後、排他フィールド3のP
M識別子およびIPL回数を0クリア、および排他待ち
管理フィールド4内の次の順番のPM識別子のプロセッ
サ11に排他獲得可能通知を送信して共有メモリ1のア
クセスを再開するようにしている。 【0019】従って、共有メモリ1に排他フィールド
3、排他待ち管理フィールド4、新旧管理フィールド5
を設けて排他、排他待ちのPM、データを格納する新/
旧領域を管理すると共にPM識別子、IPL回数、時刻
を持つPM管理テーブル6を設けてクラッシュPMを自
動検出してリカバリを行なうことにより、共有メモリ1
の排他、排他待ちの順番、クラッシュPMの自動検出、
および共有メモリ1の復元を管理・実行することが可能
となる。 【0020】 【実施例】次に、図2から図10を用いて本発明の実施
例の構成および動作を順次詳細に説明する。以下プロセ
ッサ11をPMとして以下説明する。 【0021】図2は、本発明の共有メモリの説明図(そ
の1)を示す。これは、排他管理テーブル2を共有領域
毎に設けたときの構成を示す。図2において、排他管理
テーブル2は、図示のように ・排他フィールド3 ・排他待ち管理フィールド4 ・新旧管理フィールド5 から構成されるものであって、共有領域の新版領域7お
よび旧版領域8の排他および排他待ちを管理するもので
ある。 【0022】排他フィールド3は、PM識別子およびI
PL回数が設定されている場合に排他状態を表し、0
(零)が設定されている場合に排他未状態を表す。排他
待ち管理フィールド4は、共有メモリ1をアクセスする
プロセッサのPM識別子(ここでは、PM識別子1から
X)に対応づけて、排他待ちの順番を表すカウンタ値を
設定し、排他待ちの順番を管理するものである。カウン
タ値は、排他待ちカウンタ41を当初は0として、排他
待ちが発生する毎に+1してその値を待ち順番としてP
M識別子に対応づけたカウンタ値として設定する。これ
により、一番小さいカウンタ値を持つ識別子のプロセッ
サが次の排他待ちのプロセッサである。 【0023】新旧管理フィールド5は、共有領域内の排
他を管理する新版領域7あるいは旧版領域8をポイント
するポインタを設定するものであって、排他獲得毎に新
版領域7と旧版領域8をポイントするのを交互に切り替
えるようにしたものである。 【0024】以上のように、共有メモリ1内の共有領域
について、新版領域Aと旧版領域A、新版領域Bと旧版
領域B、・・新版領域Zと旧版領域Z毎に排他管理テー
ブル2を設けて排他を管理する。 【0025】図3は、本発明の共有メモリの説明図(そ
の2)を示す。これは、図2の共有領域のある1つの新
版領域7および旧版領域8についての排他管理テーブル
2を取り出し、更に、共有メモリ1の全体に1つ設けて
PMクラッシュを検出してリカバリするために必要なP
M管理テーブル6を設けた様子を示したものである。 【0026】PM管理テーブル6は、PM識別子に対応
づけてIPL回数および時刻を設定するものである。各
PMは、所定時間毎にPM管理テーブル6の自PM識別
子のIPL回数を設定および現時刻を時刻に設定すると
共に、現時刻と他のPM識別子の時刻とを比較してその
差が閾値以上のときにそのPM識別子のPMがクラッシ
ュしたと判断し、リカバリ処理を行なう(図7を用いて
後述する)。 【0027】次に、図4のフローチャートに示す順序に
従い、図1の構成のIPL時の動作を詳細に説明する。
図4において、S1は、PMにローディングする。これ
は、電源投入時に図1のPM−1、PM−2・・・PM
−Xにローディングする。 【0028】S2は、最初のIPLか判別する。これ
は、電源投入によるIPLか、あるいはそれ以外のクラ
ッシュ検出したPMから割込みによって再IPL指示が
あったか判別する。YESの場合には、最初のIPLと
判明したので、S3からS11の順に処理を行なう。N
Oの場合には、再IPLと判明したので、S12、S8
からS11の順に処理を行なう。 【0029】(1) 最初のIPLの場合:S3は、排
他管理テーブル2の排他フィールド3を0(零)クリア
する。S4は、排他管理テーブル2の排他待ちカウンタ
41を0(零)クリアする。 【0030】S5は、PM管理テーブル6と排他管理テ
ーブル2に自PM識別子を設定する。S6はPM管理テ
ーブル6の自PM識別子のIPL回数に1を設定する。 【0031】S7は、排他管理テーブル2の新旧管理フ
ィールド5から新版領域7をポイントする。S8は、排
他管理テーブル2の自PM識別子のカウンタ値を0
(零)クリアする。 【0032】S9は、PM管理テーブル6の自PM識別
子の時刻に現時刻を設定する。S10は、その他の初期
化を行なう。S11は、運用開始する。 【0033】以上のS3からS11によって、図1の共
有メモリ1内の排他管理テーブル2の ・排他フィールド3を0クリア ・排他待ちカウンタ41を0クリア ・排他管理フィールド4に自PM識別子を設定 ・新旧管理フィールド5に新版領域7へのポインタを設
定 ・PM管理テーブル6に自PM識別子、IPL回数に
1、現時刻を設定 するという一連の電源投入時の初期設定を行なう。 【0034】(2) 再IPL時の場合:S12は、P
M管理テーブル6の自PM識別子のIPL回数を+1に
設定する。 【0035】S8は、排他管理テーブル2の自PM識別
子のカウンタ値を0(零)クリアする。S9は、PM管
理テーブル6の自PM識別子の時刻に現時刻を設定す
る。 【0036】S10は、その他の初期化を行なう。S1
1は、運用開始する。以上のS12、S8からS11に
よって、図1の共有メモリ1内の排他管理テーブル2の ・排他管理フィールド4の自PM識別子のカウンタ値を
0(零)に設定(排他待ちでない旨を設定する) ・PM管理テーブル6の自PM識別子のIPL回数に+
1、現時刻を設定するという一連の再IPL時の初期設
定を行なう。 【0037】次に、図5のフローチャートに示す順序に
従い、図1の構成の正常時の動作を詳細に説明する。図
5において、S21は、排他管理テーブル2の自PM識
別子のカウンタ値を0クリアする。 【0038】S22は、排他獲得要求を発行する。これ
は、例えば右側に記載したCS命令に例えば下記の引数
を設定して発行したことに対応して、排他制御手段14
が以下の処理を行なう。 【0039】・PM識別子=1 ・IPL回数=1 ・排他フィールドのアドレス=#1 ・排他フィールドがヌル(0、零) S23は、排他獲得可能か判別する。これは、S22の
CS命令で指示された、排他フィールドのアドレス=#
1の領域を排他管理する排他管理テーブル2の排他フィ
ールド3にヌル(0、零)が設定されて排他未状態で排
他獲得可能か判別する。YESの場合には、排他獲得可
能と判明したので、S24からS32の排他獲得、アク
セス、排他解放、次の順番のPMに排他獲得可能通知を
行なう。一方、NOの場合には、排他獲得済で不可と判
明したので、S33からS35で排他待ち処理を行な
う。 【0040】(1) 排他獲得、アクセス、排他解放、
次の順番のPMに排他獲得可能通知する場合:S24
は、排他フィールド3にPM識別子とIPL回数を設定
する。例えばPM識別子=1、IPL回数=1を設定す
る。 【0041】S25は、排他獲得の応答(有無)を行な
う。S26は、応答受け取る。S27は、共有メモリの
アクセスを行なう。これは、排他フィールド3に自PM
識別子とIPL回数を設定して排他を獲得した後、新旧
管理フィールド5のポインタでポイントされる新版領域
7(共有メモリ)のアクセスを行なう。 【0042】S28は、排他解放する。これは、右側に
記載したように、 ・PM識別子=0 ・IPL回数=0 ・排他フィールドのアドレス=#1 の設定、即ち図1の排他フィールドのアドレス=#1の
排他を管理する排他管理テーブル2の排他フィールド3
にPM識別子=0、IPL回数=0として排他待ちでな
い旨を設定する。 【0043】S29は、排他フィールドを0クリアし、
排他未状態に設定する。S30は、排他未状態にした旨
を応答する。S31は、排他管理テーブル2内のカウン
タ値が0以外で、かつ、最小であるPM識別子(次の排
他獲得する順番のPM識別子)を取り出す。 【0044】S32は、S31で取り出したPM識別子
に対応するPMに排他獲得可能通知を送信する。この排
他獲得可能通知を受信した、次の順番のPMが、S21
以降を実行する。 【0045】以上によって、正常時に排他獲得要求命令
(CS命令)に対応して、排他フィールド3が0(零)
であって排他未状態のときに自PM識別子とIPL回数
を排他フィールド3に設定して排他を獲得し、共有メモ
リをアクセスし、排他フィールド3を0クリアして排他
を解除した後、排他待ち管理フィールド4のカウンタ値
が0以外の最小値の次の順番のPMに排他獲得可能通知
を行なう。これらにより、共有メモリの排他を獲得およ
び次の順番のPMにその旨の通知を行い、正常時の排他
獲得処理を行なうことが可能となる。 【0046】(2) 排他獲得不可で待機する場合:S
33は、排他待ちカウンタ41を+1する。これは、S
23のNOで排他獲得不可と判明したので、CDS命令
を発行して排他待ちカウンタ41の値を+1する。 【0047】S34は、S33で排他待ちカウンタ41
の値を+1した内容を自PM識別子のカウンタ値に設定
する。S35は、排他獲得待ちにする。これらS33か
らS35は、S23で排他フィールド3に識別子とIP
L回数が設定されていて排他獲得不可であったので、排
他待ちカウンタ41の値に+1した内容を自PM識別子
のカウンタ値に設定して排他待ちの順番を設定して排他
待ちに入る。そして、既述した図5のS31およびS3
2によって順番がきたときに1つ前のカウンタ値のPM
から排他獲得可能状態の通知を受けるので、図5のS2
1からS32によって共有メモリの排他獲得、共有メモ
リのアクセス、排他解放、次の順番のPMに排他獲得可
能通知を行なう。 【0048】次に、図6のフローチャートに示す順序に
従い、図1の構成のPMクラッシュの監視の動作を詳細
に説明する。図6において、S41は、PM管理テーブ
ル6の自PM識別子の時刻に、現時刻を書き込む。 【0049】S42は、現時刻と、他PM識別子の時刻
を比較する。S43は、S42で比較した差が閾値以上
か判別する。これは、S42で現時刻と、PM管理テー
ブル6内の他のPM識別子の時刻とを比較し、その差が
閾値以上で当該PM識別子のPMが現時刻の設定を行っ
ていなくてクラッシュしたか判別する。YESの場合に
は、S44でそのPMがクラッシュと判定し、S45で
全PMにクラッシュしたPMのPM識別子とIPL回数
を通知し、S46でクラッシュしたPMを再IPLす
る。一方、S43のNOの場合には、クラッシュしてい
るPMが見つからなかったので、終了する。 【0050】以上によって、所定時間毎に各PMが共有
メモリ1内のPM管理テーブル6内の自PM識別子の時
刻を現時刻に書換えおよび現時刻と他の時刻を比較して
差が閾値以上のときのそのPMクラッシュと検出するこ
とにより、クラッシュPMを検出してそのPM識別子お
よびIPL回数を全てのPMに知らせると共にクラッシ
ュPMを再IPLすることが可能となる。そして、クラ
ッシュPMのPM識別子およびIPL回数の通知を受け
たPM(特定のPM、あるいは最も速く共有メモリをア
クセスしたPM)が図7に従ってクラッシュPMが使用
していた共有メモリの復元を行なう。また、再IPLを
指示されたクラッシュしたPMは、既述した図4のS
1、S2のNO、S12、S8からS11の処理を行
い、再IPLを行なう(図4の説明参照)。 【0051】次に、図7のフローチャートに示す順序に
従い、図1の構成のもとで、図6のS45でクラッシュ
検出したPMのPM識別子およびIPL回数の通知を受
けたPMが共有メモリのリカバリを行なう動作を詳細に
説明する。 【0052】図7において、S51は、排他獲得要求を
発行する。例えば右側に記載したCS命令に例えば下記
の引数を設定して発行する。 ・PM識別子=1 ・IPL回数=1 ・排他フィールドのアドレス=#1 ・クラッシュしたPM識別子=2 ・クラッシュしたIPL回数=1 S52は、排他フィールド3の内容がクラッシュしたP
M識別子とIPL回数を示している(クラッシュしたP
Mが排他を獲得したままの状態)か、あるいはヌル(排
他未状態)かを判別する。YESの場合には、S53か
らS61でリカバリ処理を行なう。一方、NOの場合に
は、既にリカバリ処理が他のPMによって実行済、ある
いはクラッシュしたPMが排他フィールド3にヌル
(零)を設定して排他を解放した後にクラッシュしたの
で、リカバリ処理を行なう必要がないので、終了する。 【0053】以下リカバリ処理について説明する。図7
において、S53は、排他フィールド3にPM識別子と
IPL回数を上書きする。これにより、リカバリ処理を
するPMが排他を獲得したこととなる。 【0054】S54は、排他獲得の応答(有無)を行な
う。S55は、PMのリカバリ手段15が応答受け取
る。S56は、共有メモリ1の復元を行なう(上記のS
52の判定で排他フィールド3の内容がヌル(排他未状
態)であった場合は、共有メモリのリカバリを行なう必
要がないので、S56をスキップする)。ここで、共有
メモリの復元は、図1の新旧管理フィールド5内のポイ
ンタを、クラッシュしたPMがコピーしてアクセスした
新版領域7からコピー元の旧版領域8に切り替え、クラ
ッシュ直前の状態に復元する。 【0055】S57は、排他解放する。これは、右側に
記載したように、 ・PM識別子=0 ・IPL回数=0 ・排他フィールドのアドレス=#1 の設定、即ち図1の排他フィールドのアドレス=#1の
排他を管理する排他管理テーブル2の排他フィールド3
にPM識別子=0、IPL回数=0として排他待ちでな
い旨を設定する。 【0056】S58は、排他フィールドを0クリアし、
排他未状態に設定する。S59は、排他未状態にした旨
を応答する。S60は、排他管理テーブル2内のカウン
タ値が0以外で、かつ、最小であるPM識別子(次の排
他獲得する順番のPM識別子)を取り出す。 【0057】S61は、S60で取り出したPM識別子
に対応するPMに排他獲得可能通知を送信する。そし
て、この排他獲得可能通知を受信した、次の順番のPM
が、図5の正常時のS21以降を実行し、共有メモリ1
をアクセスする。 【0058】以上によって、S45でクラッシュしたP
MのPM識別子およびIPL回数を受信したPMのうち
特定のPMあるいは最も速く共有メモリにリカバリのた
めのアクセスをしたPMが上記リカバリ処理を行い、共
有メモリの復元および排他フィールド3の0クリアと排
他待ち管理フィールド4のクラッシュPMの排他待ちを
0クリアした後、次の順番のPMに排他獲得可能通知を
行なう。 【0059】次に、図8を用いて正常時の排他獲得の処
理の具体例について詳細に説明する。ここで、 ・PM−1が排他獲得待ち ・PM−2が排他獲得 ・PM−3が排他獲得待ち を例に説明する。 【0060】(1) PM−2の動作: カウンタ値の0クリア IPL時に排他待ち管理フィールド4の自PM識別子の
カウンタ値を0クリアする(図4参照)。 【0061】 cs命令発行(排他獲得要求発行) ここでは、排他フィールド3が0であったので、 ・自PM識別子=2 ・IPL回数=1 を排他フィールド3に設定して排他を獲得する。 【0062】 旧版領域8の内容を新版領域7に複写
する。 新版領域7をアクセスする。 新旧管理テーブル5を新版領域7にポイントする。 【0063】 cs命令発行(排他解除要求発行) ここでは、排他フィールド3に ・PM識別子=0 ・IPL回数=0 として排他未状態に設定して排他解放する。 【0064】 snd命令発行 排他獲得可能状態を次のカウンタ値のPMに通知する。
受信したPM、ここでは排他獲得待ちのPM−1が受信
し、PM−2のからを行い、排他待ちPMがあれば
次のPMに排他獲得可能状態を通知する。 【0065】(2) PM−1の動作: カウンタ値の0クリア IPL時に排他待ち管理フィールド4の自PM識別子の
カウンタ値を0クリアする(図4参照)。 【0066】 cs命令発行(排他獲得要求発行) ここでは、排他フィールド3にPM識別子=2、IPL
回数=1が設定されていたので、排他獲得に失敗する。 【0067】 cds命令発行(排他獲得待ち要求発
行) 排他管理テーブル2の排他待ちカウンタ41の内容を+
1する。 カウンタ値の設定 で+1した排他待ちカウンタ41の内容を、自PM識
別子=1のカウンタ値に設定し、待機待ちの順番を設定
する。 【0068】 rcv命令発行 排他獲得待ちの状態となる。この状態で、PM−2から
で排他獲得可能状態の通知があった場合、PM−1は
PM−2のからと同様の処理を行い、排他フィール
ド3に自PM識別子=1、IPL回数=1を設定して排
他獲得、旧版領域8から内容を新版領域7に複写してポ
インタ切り替え、新版領域7にアクセスした後、排他フ
ィールド3にPM識別子=0、IPL回数=0を設定し
て排他解放および排他待ち管理フィールド4のカウンタ
値の0以外で最も小さいカウンタ値のPM識別子があれ
ば(例えばPM識別子=3)、そのPMに排他獲得可能
状態を通知する。 【0069】(3) PM−3の動作:PM−1のか
らと同様の処理を行なう。 以上によって、正常時にPM−2が排他獲得して共有メ
モリ(新版領域7)にアクセスし、排他解放して次の排
他獲得待ちの順番の他のPM−1に排他獲得可能状態を
通知する。通知を受けたPM−1は同様に排他獲得、共
有メモリのアクセス、排他解放し、次のPM−3に排他
獲得可能状態を通知する。そして、同様にPM−3が排
他獲得、共有メモリのアクセス、排他解放する。これら
により、正常時に各PMが順番に共有メモリの排他を獲
得して処理を行なうことが可能となる。 【0070】次に、図9を用いてクラッシュ発生してリ
カバリするときの処理の具体例について詳細に説明す
る。ここで、 ・PM−1にクラッシュ発生 ・PM−2がクラッシュ検出 ・PM−3がリカバリ を行なう例について説明する。 【0071】(1) PM−1の動作: S1:排他フィールド3にPM識別子=1、IPL回数
=1を設定する。この状態では、 ・排他フィールド3の状態: PM識別子=1 IPL回数=1 S2は、共有メモリのアクセスを行なう。 【0072】S3は、PM−1にクラッシュ発生する。 (2) PM−2の動作(クラッシュPMの検出および
クラッシュPMの再IPL): 所定時間毎に起動されたPM−2のリカバリ手段1
5が共有メモリ1のPM管理テーブル6のPM識別子=
1の時刻と、現時刻との差が閾値を越えていることを認
識し、PM識別子=1のPM−1がクラッシュと検出し
たので、全PMにクラッシュしたPMのPM識別子=1
およびIPL回数=1を通知する。 【0073】 クラッシュしたPM識別子=1を再I
PLさせる。 (3) PM−3の動作(リカバリ動作): (2)のの通知を受け取り、PM識別子=1、I
PL回数=1のPMがクラッシュしたことを認識する。 【0074】 クラッシュリカバリのための排他を獲
得依頼する。 cs命令発行 ・PM識別子=3 ・IPL回数=1 ・排他フィールドのアドレス=#1 ・クラッシュしたPM識別子=1 ・クラッシュしたIPL回数=1 排他フィールド3に設定されているPM識別子=
1、IPL回数=1と、クラッシュ通知を受けたPM識
別子、IPL回数が一致するので、リカバリ処理を行な
う。 【0075】 共有メモリの復元を行なう。これは、
新旧管理フィールド5のポインタを新版領域7から旧版
領域8をポイントするように切り替え、クラッシュ前の
共有メモリに戻し、復元する。 【0076】 排他フィールド3を0クリアして排他
未状態にする。 ・排他フィールド3の状態 PM識別子=0 IPL回数=0 排他獲得可能通知を、次の排他獲得の順番のPM
(排他待ち管理フィールド4のカウンタ値が0以外の最
小値のPM識別子のPM)に通知する。 【0077】(4) PM−1の再IPL: PM−2から再IPL通知を受けた、クラッシュし
たPM−1が再IPLを行ない、図4のS1、S2のN
O、S12、S8からS11によって運用を開始する。
この再IPLにより、PM−1は、 PM識別子=1 IPL回数=2 となり、再IPL時に併せて図9のPM管理テーブル6
中の自PM識別子=1、IPL回数=2と図示の右矢印
で示したように設定する。 【0078】以上によって、PM−1がクラッシュし、
PM−2がPM−1クラッシュ検出とPM−1の再IP
L、PM−3がリカバリを行なうことが可能となる。次
に、図10を用いてクラッシュ発生してリカバリすると
きの他の処理の具体例について詳細に説明する。ここ
で、 ・PM−1にクラッシュ発生 ・PM−2がクラッシュ検出 ・PM−3がリカバリ を例にして説明する。 【0079】(1) PM−1の動作:S1は、排他フ
ィールド3にPM識別子=0、IPL回数=0を設定す
る。この状態は、 ・排他フィールド3の状態: PM識別子=0 IPL回数=0 S2は、PMにクラッシュ発生する。これは、PM−1
が排他を獲得していないときに、PMにクラッシュが発
生した状態である。 【0080】(2) PM−2の動作(クラッシュPM
の検出およびクラッシュPMの再IPL): 所定時間毎に起動されたPM−2のリカバリ手段1
5が共有メモリ1のPM管理テーブル6のPM識別子=
1の時刻と、現時刻との差が閾値を越えていることを認
識し、PM識別子=1のPM−1がクラッシュと検出し
たので、全PMにクラッシュしたPMのPM識別子=1
およびIPL回数=1を通知する。 【0081】 クラッシュしたPM識別子=1を再I
PLさせる。 (3) PM−1の再IPL: PM−2から再IPL通知を受けた、クラッシュし
たPM−1が再IPLを行ない、図4のS1、S2のN
O、S12、S8からS11によって運用を開始する。
この再IPLにより、PM−1は、 PM識別子=1 IPL回数=2 となり、再IPL時に併せて図9のPM管理テーブル6
中の自PM識別子=1、IPL回数=2と図示の右矢印
で示したように設定する。 【0082】 排他獲得する。これは、再IPLした
PM−1が排他獲得要求を発行し、排他フィールド3を
図示の下記のように設定して排他獲得する。 ・排他フィールドの状態 PM識別子:1 IPL回数:2 共有メモリアクセスする。 【0083】以上によって、PM−1が排他フィールド
3のPM識別子=0、IPL回数=0に設定した後にク
ラッシュした場合、PM−2がPM−1クラッシュ検出
とPM−1の再IPLし、再IPLしたPM−1がPM
識別子=1、IPL回数=2をもとに排他獲得し、共有
メモリをアクセスすることが可能となり、PM−3がリ
カバリ処理を行おうとするがその必要がないと判明した
ので、リカバリ処理を何も行なうことなく終了する。 【0084】(4) PM−3の動作(リカバリ動
作): (2)のの通知を受け取り、PM識別子=1、I
PL回数=1のPMがクラッシュしたことを認識する。 【0085】 クラッシュリカバリのための排他を獲
得依頼する。 cs命令発行 ・PM識別子=3 ・IPL回数=1 ・排他フィールドのアドレス=#1 ・クラッシュしたPM識別子=1 ・クラッシュしたIPL回数=1 IPL回数が異なるため、排他獲得不可でリカバリ
の必要がない。これは、クラッシュしたPM−1が再I
PL後、排他獲得要求を発行し、排他フィールド3のP
M識別子=1、IPL回数=2と排他獲得状態に設定し
た後にクラッシュ通知を受けたので、IPL回数=1と
が一致しないので、リカバリ処理の必要がないと判断し
たものである。 【0086】 【発明の効果】以上説明したように、本発明によれば、
共有メモリ1に排他フィールド3、排他待ち管理フィー
ルド4、新旧管理フィールド5を設けて排他、排他待ち
のPM、データを格納する新/旧領域を管理すると共に
PM識別子、IPL回数、時刻を持つPM管理テーブル
6を設けてクラッシュPMを自動検出してリカバリを行
なう構成を採用しているため、共有メモリ1の排他、排
他待ちの順番、クラッシュPMの自動検出、および共有
メモリ1の復元を管理・実行することができる。これら
により、 (1) 所定時間毎に各PMがPM管理テーブル6に自
PM識別子の時刻に現時刻を設定すると共に他の時刻と
現時刻との差が閾値以上のときにそのPM識別子のPM
がクラッシュしたと検出し、全部のPMにIPL識別
子、IPL回数を通知してクラッシュの旨を通知してリ
カバリ処理を行なうと共にクラッシュPMの再IPLを
行って再起動を自動的に行なうことが可能となる。 【0087】(2) リカバリ処理の中で、次の排他待
ちのPMに排他獲得可能通知を送信し、中断していた共
有メモリへのアクセスを再開させることが自動的に可能
となる。 【0088】(3) 共有メモリ内の内容を復元する際
に、排他獲得毎に新版領域7と旧版領域8とをポインタ
切り替えて使用し、PMクラッシュ発生したときにポイ
ンタを切り替えて旧版領域8にポイントすることで、容
易にデータの復元を図ることが可能となる。
【図面の簡単な説明】 【図1】本発明の原理構成図である。 【図2】本発明の共有メモリの説明図(その1)であ
る。 【図3】本発明の共有メモリの説明図(その2)であ
る。 【図4】本発明のIPL時の動作フローチャートであ
る。 【図5】本発明の正常時の動作フローチャートである。 【図6】本発明のPM監視フローチャートである。 【図7】本発明のリカバリ処理のフローチャートであ
る。 【図8】本発明の動作説明図(その1)である。 【図9】本発明の動作説明図(その2)である。 【図10】本発明の動作説明図(その3)である。 【図11】従来技術の説明図である。 【符号の説明】 1:共有メモリ 2:排他管理テーブル 3:排他フィールド 4:排他待ち管理フィールド 41:排他待ちカウンタ 5:新旧管理フィールド 6:PM管理テーブル 7:新版領域 8:旧版領域 11:プロセッサ(PM) 12:核 13:核スレッド 14:排他制御手段 15:リカバリ手段
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−343159(JP,A) 特開 平4−23160(JP,A) 特開 昭63−225851(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 - 15/177

Claims (1)

  1. (57)【特許請求の範囲】 【請求項1】複数のプロセッサが共有メモリをアクセス
    する共有メモリアクセス方式において、 上記共有メモリは、 プロセッサのPM識別子とIPL回数を設定して排他を
    獲得する排他フィールドと、 プロセッサのPM識別子に対応づけて、排他獲得待ち状
    態を管理する排他待ち管理フィールドと、プロセッサが排他を獲得する毎に入れ替わる新版領域あ
    るいは旧版領域のいずれかをポイントするポインタを設
    定する新旧管理フィールドと、 プロセッサのPM識別子、IPL回数、および時刻を対
    応付けて管理するPM管理テーブルとを備え、 上記複数のプロセッサのそれぞれは、 上記共有メモリへのアクセス時に、上記排他フィールド
    が排他未状態のときに該排他フィールドに自PM識別子
    とIPL回数とを設定して排他を獲得する手段と、 上記排他フィールドが排他状態のときに上記排他待ち管
    理フィールドに自PM識別子に対応付けて排他獲得待ち
    状態を設定する手段と、上記排他を獲得する手段が排他を獲得した時に、上記新
    旧管理フィールドのポインタによってポイントする旧版
    領域から内容を取り出して新版領域にコピーすると共に
    新版領域へのポインタを上記新旧管理フィールドに設定
    する手段と、 所定時間毎に上記PM管理テーブルの自PM識別子の時
    刻に現時刻を設定すると共に、現時刻と他のプロセッサ
    によって設定された他のプロセッサのPM識別子の時刻
    とを比較して閾値以上の差があったときにそのPM識別
    子のプロセッサがクラッシュしたと判定する手段と、 このクラッシュしたプロセッサのPM識別子とIPL回
    数を全てのプロセッサに通知する手段と、 上記クラッシュしたプロセッサに再IPLを指示する手
    段と、 自プロセッサがクラッシュし他のプロセッサから上記再
    IPLの指示を受けた場合には、再IPLした後に上記
    PM管理テーブルの自IPL識別子のIPL回数を+1
    する手段と、 自プロセッサが他プロセッサから上記クラッシュしたと
    判定されたプロセッサの情報を通知された場合には、上
    記通知を受けたPM識別子およびIPL回数と上記排他
    フィールドに設定されているPM識別子およびIPL回
    数とを比較し、等しいと判明したときに、上記排他フィ
    ールドに自プロセッサのPM識別子とIPL回数を設定
    して、上記クラッシュしたプロセッサが利用していた共
    有メモリの領域の排他を獲得した後に、当該新旧管理フ
    ィールド内のポインタを、新版領域から旧版領域に切り
    替えることにより共有メモリの復元処理を行うリカバリ
    手段と、 上記リカバリ手段が復元処理を行った後に、上記排他フ
    ィールドのPM識別子およびIPL回数を0クリア、お
    よび上記排他待ち管理フィールド内の次の順番のPM識
    別子のプロセッサに排他獲得可能通知を送信する手段と
    を備えたことを特徴とする共有メモリアクセス方式。
JP29934693A 1993-11-30 1993-11-30 共有メモリアクセス方式 Expired - Fee Related JP3487440B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29934693A JP3487440B2 (ja) 1993-11-30 1993-11-30 共有メモリアクセス方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29934693A JP3487440B2 (ja) 1993-11-30 1993-11-30 共有メモリアクセス方式

Publications (2)

Publication Number Publication Date
JPH07152695A JPH07152695A (ja) 1995-06-16
JP3487440B2 true JP3487440B2 (ja) 2004-01-19

Family

ID=17871366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29934693A Expired - Fee Related JP3487440B2 (ja) 1993-11-30 1993-11-30 共有メモリアクセス方式

Country Status (1)

Country Link
JP (1) JP3487440B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5964838A (en) * 1997-09-30 1999-10-12 Tandem Computers Incorporated Method for sequential and consistent startup and/or reload of multiple processor nodes in a multiple node cluster

Also Published As

Publication number Publication date
JPH07152695A (ja) 1995-06-16

Similar Documents

Publication Publication Date Title
JP4294353B2 (ja) ジョブ管理機能を有するストレージ系障害管理方法及び装置
JP2703479B2 (ja) タイム・ゼロ・バックアップ・セッションの安全保護機能を有するデータ処理方法及びシステム
EP0727742A2 (en) Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system
JP3253883B2 (ja) プロセスリスタート方法及びプロセス監視装置
US5664088A (en) Method for deadlock recovery using consistent global checkpoints
JPH086840A (ja) サーバ回復のためのディレクトリ操作の完了を判定する機構
JPH0465414B2 (ja)
KR20000011835A (ko) 네트워크의분산애플리케이션에대한고장검출및소정의복제스타일로복구하는방법및장치
JPH08328880A (ja) 複数のアプリケーションプログラムを同時に実行できるオペレーティングシステムにおける計算機運転管理システム
JPS63109541A (ja) データ参照制御方法
WO2004055674A1 (ja) 分散トランザクション処理装置、分散トランザクション処理プログラム、分散トランザクション処理方法および分散トランザクション処理システム
KR20040047209A (ko) 네트워크 상의 컴퓨터 시스템의 자동 복구 방법 및 이를구현하기 위한 컴퓨터 시스템의 자동 복구 시스템
JPH11345131A (ja) タスク終了を通知する方法および装置
JP3487440B2 (ja) 共有メモリアクセス方式
JP2001331330A (ja) プロセス異常検知及び復旧システム
JP2006285384A (ja) プロセッサ障害処理方式、管理プロセッサ及びプロセッサ障害処理方法
JP4651562B2 (ja) 電子カルテ管理装置及び電子カルテ管理方法
JPH10133963A (ja) 計算機の故障検出・回復方式
JPH10340164A (ja) 分散印刷処理システム
JP2927348B2 (ja) ジョブ管理装置
JPH05265985A (ja) データ管理方式
JP3346422B2 (ja) マシン資源管理システム
JP2656643B2 (ja) ログデータ採取方法とその装置
JP3241278B2 (ja) ネットワークプリントシステム
US20030225940A1 (en) System and method for acquiring data in a processing unit

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20011218

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071031

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081031

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081031

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091031

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091031

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101031

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees