JP2605623B2 - 共有テーブルのロック制御方式 - Google Patents

共有テーブルのロック制御方式

Info

Publication number
JP2605623B2
JP2605623B2 JP13832894A JP13832894A JP2605623B2 JP 2605623 B2 JP2605623 B2 JP 2605623B2 JP 13832894 A JP13832894 A JP 13832894A JP 13832894 A JP13832894 A JP 13832894A JP 2605623 B2 JP2605623 B2 JP 2605623B2
Authority
JP
Japan
Prior art keywords
save
shared
lock
restoration
unlock
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
JP13832894A
Other languages
English (en)
Other versions
JPH07319825A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP13832894A priority Critical patent/JP2605623B2/ja
Publication of JPH07319825A publication Critical patent/JPH07319825A/ja
Application granted granted Critical
Publication of JP2605623B2 publication Critical patent/JP2605623B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセッサシス
テムにおける共有テーブルのロック制御方式に関し、特
に、共有テーブルのロック中にプログラム割り込みが発
生した場合に、自動的に共有テーブルを元の状態に復元
してロックを解除するようにした共有テーブルのロック
制御方式に関する。
【0002】
【従来の技術】マルチプロセッサシステムにおいては、
各プロセッサ毎に別々のプロセス(タスクとも言う)が
同時に実行される処理形態となるため、プロセス間で共
通に使用する主記憶上のテーブルを排他使用し、一時的
には唯一のプロセスのみが該当するテーブルを参照,更
新し得るようにロック制御する必要がある。ここで、プ
ロセス間で共通に使用する主記憶上のテーブルとして
は、資源の割り当て処理などで参照,更新される、各資
源対応の管理テーブル(その資源の利用状態などを管理
するテーブル)などがある。
【0003】ところで、共有テーブルのロック制御を行
うマルチプロセッサシステムにおいては、或る共有テー
ブルをロックしたプロセスの実行中にプログラム割り込
みが発生して処理中断した場合に、そのロックを如何に
するかが問題となる。
【0004】例えば、特開平1−261771号公報で
は、或る共有テーブルをロックしたプロセスが割り込み
により処理中断した場合、その共有テーブルをロックし
たままにしているが、若し、割り込み処理において同テ
ーブルを参照,更新する必要があってロックを試みる
と、既にロック済みなのでデッドロック状態が発生して
しまうという問題がある。
【0005】このような問題は、上記プロセスの処理中
断時に強制的に共有テーブルをアンロックすることで一
見解消されるように考えられるが、上記プロセスが処理
中断前に共有テーブルを完全に更新し終えていないと、
共有テーブルの内容が不完全なままアンロックされるこ
とになり、その後に共有テーブルを参照,更新する動作
において誤動作を招来することになる。
【0006】そこで、従来は、共有テーブルのロックを
行った際に主記憶上の定められた位置にロック表示を設
定し、そのロックを必要とする処理が正常に終了してア
ンロックを行う際にその表示をクリアするようにしてお
き、プログラム割り込みが発生した場合、例外ハンドラ
がロック表示を参照し、若し表示が設定されている場合
にはシステムを強制的に停止させるという方法を採用し
ている。
【0007】
【発明が解決しようとする課題】上述したように従来
は、共有テーブルのロック中にプログラム割り込みが発
生した場合、システムを直ちに停止させていたため、プ
ログラム割り込みの発生が即システム停止につながり、
システムのスループットが大幅に低下するという問題が
あった。
【0008】プログラム割り込みのうちには、システム
の続行が本来不可能となるもの以外に、例えば異常の発
生した処理がマクロ処理であってその異常が指定誤りな
どの利用者に起因し、従ってシステムを停止させずに利
用者に指定誤りなどを通知すれば良いものもあり、この
後者のようなプログラム割り込みの場合についてまで、
共有テーブルのロックに関する問題でシステムを停止さ
せることは本来望ましいことではない。
【0009】システムの続行が本来可能な種別のプログ
ラム割り込みの発生時に、システムを停止させずに継続
させるためには、プログラム割り込みによって処理中断
したプロセスによってロックされていた共有テーブルの
状態を矛盾の無い状態に復元した後にアンロックする必
要があり、このような処理を可能とする技術が要望され
る。
【0010】本発明はこのような事情に鑑みて提案され
たものであり、その目的は、共有テーブルのロック中に
プログラム割り込みが発生した場合に、自動的に共有テ
ーブルを元の状態に復元してロックを解除することがで
きる共有テーブルのロック制御方式を提供することにあ
る。
【0011】
【課題を解決するための手段】本発明の共有テーブルの
ロック制御方式は、主記憶上の共有テーブルをテーブル
退避域へ退避(複写)する処理とテーブル退避域に退避
された共有テーブルを主記憶の元の場所へ復元する処理
とを行うテーブル退避復元機構と、前記何れかのプロセ
ッサ上で実行されるプロセスからの共有テーブルに対す
ロック要求に応答して、主記憶上の該当する共有テー
ブルをロックすると共に、前記テーブル退避復元機構を
呼び出して、前記ロックした共有テーブルをテーブル退
避域へ退避させるロック機構と、テーブルの復元要を指
定するアンロック要求に応答して、前記テーブル退避復
元機構を呼び出して、前記テーブル退避域に退避されて
いる共有テーブルを主記憶上の元の場所へ復元させた
後、その共有テーブルのロックを解除すると共に該解除
した共有テーブルを前記テーブル退避域から削除し、ま
た、前記ロックした共有テーブルに対する参照,更新処
理を終えた前記プロセスからのテーブルの復元不要を指
定するアンロック要求に応答して、共有テーブルのロッ
クを解除すると共に該解除した共有テーブルを前記テー
ブル退避域から削除するアンロック機構と、プログラム
割り込み発生時に、テーブルの復元要を指定したアンロ
ック要求を前記アンロック機構に送出する例外ハンドラ
とを備えている。
【0012】
【作用】本発明の共有テーブルのロック制御方式におい
ては、何れかのプロセッサ上で実行されるプロセスから
或る共有テーブルのロックが要求されると、ロック機構
が、そのロック要求に応答して主記憶上の該当する共有
テーブルをロックすると共にテーブル退避復元機構を呼
び出してそのロックした共有テーブルをテーブル退避域
へ退避(複写)させる。共有テーブルのロックに成功し
たプロセスは主記憶上の該当する共有テーブルを参照,
更新して所定の処理を実行する。このプロセスが共有テ
ーブルのロックを必要とする処理を正常終了してテーブ
ル復元不要を指定したアンロック要求を出すと、アンロ
ック機構が、そのアンロック要求に応答して該当する共
有テーブルのロックを解除すると共にテーブル退避域に
退避されている同テーブルを削除する。他方、上記プロ
セスで共有テーブルのロックを必要とする処理が実行さ
れているときにプログラム割り込みが発生すると、制御
が例外ハンドラに渡り、例外ハンドラが、テーブルの復
元要を指定したアンロック要求をアンロック機構に出
し、アンロック機構が、そのアンロック要求に応答し
て、テーブル退避復元機構を呼び出してテーブル退避域
に退避されている共有テーブルを主記憶上の元の場所へ
復元させた後、その共有テーブルのロックを解除し、後
の処理において同共有テーブルを矛盾無く参照,更新し
得るようにする。
【0013】
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。
【0014】図1は本発明の共有テーブルのロック制御
方式を適用したマルチプロセッサシステムの要部構成図
である。この例のマルチプロセッサシステムは、2台の
プロセッサCPU1,CPU2と、両プロセッサ間で共
有される主記憶MEMとを含んでおり、主記憶MEM中
に、排他制御の対象となる種々のテーブルを含むテーブ
ル群1,このテーブル群1の退避域となるテーブル退避
域2が存在する。また、利用者プログラムやOS等にか
かるプロセス3,4と、例外ハンドラ5と、ロック機構
6と、アンロック機構7と、退避テーブル要素返却機構
8と、復元テーブル要素返却機構9と、テーブル退避復
元機構10と、復元可否登録機構11と、パターン情報
設定機構12とが、プロセッサCPU1,CPU2の何
れでも実行可能な機能部として主記憶MEMに存在して
いる。なお、13はパターン情報テーブル、14は復元
可否表示である。
【0015】テーブル群1は、それぞれが排他単位とな
る複数のテーブル111と、各テーブル111に対応す
るロックテーブルを含むロックテーブル群112とを含
んでいる。個々のテーブル111は、本実施例の場合、
下記(1),(2)の何れかに示すような構成を持って
いる。
【0016】(1)図2に示すように、キューターミナ
ル211から、実際に参照,更新されるデータを保持す
る複数のテーブル要素212〜214がチェインされる
構成。ここで、各テーブル要素212〜214のサイズ
は全てXXXで同じであり、各テーブル要素の先頭から
長さaの箇所に次のテーブル要素を指示するポインタを
格納し、チェインの最後のテーブル要素214のポイン
タはNULLになっている。このような構成のテーブル
に対して本実施例ではパターン識別子Aを付与してい
る。
【0017】(2)図3に示すように、メインテーブル
311から、実際に参照,更新されるデータを保持する
複数のテーブル要素312〜316がポイントされる構
成。ここで、メインテーブル311はその先頭から長さ
b毎の領域にテーブル要素を指示するポインタを格納し
ており、各テーブル要素312〜316のサイズは全て
YYYで同じになっている。このような構成のテーブル
に対して本実施例ではパターン識別子Bを付与してい
る。
【0018】ロックテーブル群112に含まれるロック
テーブルは、各テーブル111と1対1に対応してお
り、図2および図3のロックテーブル215,317に
示す如き構成を有している。各ロックテーブルは、テー
ブル名を設定するエリアE1,ロックフィールドE2,
ロックプロセス名を設定するエリアE3,パターン識別
子を設定するエリアE4,対応するテーブルへのポイン
タを設定するエリアE5から構成されている。ここで、
エリアE1へのテーブル名の設定と、エリアE4へのパ
ターン識別子の設定と、エリアE5へのポインタの設定
とは、プロセス3から起動されるパターン情報設定機構
12によって事前に行われる。また、このときエリアE
2のロックフィールドは非ロック中にリセットされ、エ
リアE3のロックプロセス名はNULLにされる。
【0019】パターン情報テーブル13は、各パターン
識別子A,B毎に、そのようなパターン識別子を持つテ
ーブルがどのような構成のものであるかを示すパターン
情報を保持するテーブルであり、その一例を図4に示
す。図4において、サイズXXXとポインタ位置aとが
パターン識別子Aに関するパターン情報であって、図2
に示したような構成のテーブルを特徴付ける情報とし
て、テーブル要素212〜214のサイズがXXXであ
り、そのポインタが各テーブル要素の先頭から長さaの
箇所に設定されていることを示している。また、図4に
おいて、サイズYYYとポインタ位置Δbとはパターン
識別子Bに関するパターン情報であって、図3に示した
ような構成のテーブルを特徴付ける情報として、テーブ
ル要素312〜316のサイズがYYYであり、そのポ
インタがメインテーブル311のΔb毎の領域に設定さ
れていることを示している。このようなパターン情報テ
ーブル13は、プロセス3から起動されるパターン情報
設定機構12によって事前に作成される。
【0020】テーブル退避域2は、ロック中のテーブル
111のテーブル要素を退避する場所である。テーブル
退避域2に、テーブル111のテーブル要素が退避され
たときの様子を図5に示す。図5において、退避エント
リ501はそれぞれ1つのテーブル要素の退避域であ
り、ヘッダ部502とテーブル内容退避域503とで構
成され、ヘッダ部502には、退避されたテーブル要素
のテーブル群1における元のアドレス504とそのテー
ブル要素のサイズ505と当該テーブル要素を含むテー
ブル111のテーブル名506とが含まれ、テーブル内
容退避域503には、退避されたテーブル要素の内容そ
のものが格納される。
【0021】プロセス4は、テーブル群1中のテーブル
111を参照,更新するプロセスである。テーブル群1
中のテーブル111を参照,更新する場合、先ず、テー
ブル名を指定したロック要求をロック機構6に出し、ロ
ック成功の通知を受けてから、実際にテーブル群1中の
そのテーブル111を参照,更新し、プログラム割り込
み等の異常を生じることなく必要な処理を正常に終了す
ると、そのテーブル名と復元不要とを指定したアンロッ
ク要求をアンロック機構7に出す。このようなプロセス
4は図1では1つしか示されていないが、通常は複数存
在し、互いに排他的にテーブル群1中の個々のテーブル
111を参照,更新する。
【0022】プロセス3は、パターン情報設定機構12
を起動することより、パターン情報テーブル13の作成
と、テーブル群1中のロックテーブル群112への前述
したパターン識別子等の設定とを遂行するプロセスであ
る。
【0023】ロック機構6は、プロセス4からのロック
要求に応答して、テーブル群1の該当するテーブル11
1に対してロック処理を実行すると共に、退避テーブル
要素返却機構8を起動して得た当該ロック対象テーブル
のテーブル要素のアドレスとサイズとをテーブル退避復
元機構10に通知することにより、ロックしたテーブル
111のロック直前の内容をテーブル退避域2へ退避さ
せる処理を行うもので、その処理例を図6に示す。
【0024】退避テーブル要素返却機構8は、該当ロッ
ク対象テーブルのパターン識別子に対応するパターン情
報をパターン情報テーブル13から参照してテーブルの
構成を認識し、その認識結果に従って、テーブル群1中
の退避すべきテーブル要素のアドレスとサイズとを順次
にロック機構6に通知する機構であり、その処理例を図
7に示す。
【0025】アンロック機構7は、プロセス4または例
外ハンドラ5からのアンロック要求を処理する機構であ
る。アンロック要求には、テーブルの復元要を指定する
アンロック要求と、テーブルの復元不要を指定するアン
ロック要求との2種類があり、前者の要求に対して、ア
ンロック機構7は、復元可否表示14が復元可を示すこ
とを条件に、復元テーブル要素返却機構9を起動して得
た退避エントリのアドレスをテーブル退避復元機構10
に通知してテーブル退避域2に退避されているテーブル
要素をテーブル群1に復元させた後、アンロック処理と
テーブル退避域2のクリア処理とを実行する。また、後
者のテーブルの復元不要を指定するアンロック要求に対
しては、アンロック処理とテーブル退避域2のクリア処
理とを実行する。図8はアンロック機構7の処理例を示
している。
【0026】復元テーブル要素返却機構9は、復元対象
となるテーブルのテーブル要素が退避されている退避エ
ントリのアドレスをテーブル退避域2を検索して取得
し、順次にアンロック機構7に通知する機構であり、そ
の処理の一例を図9に示す。
【0027】テーブル退避復元機構10は、テーブル群
1中のテーブル要素のテーブル退避域2へ退避と、テー
ブル退避域2に退避されたテーブル要素のテーブル群1
への復元とを実行する機構である。図10はテーブル退
避復元機構10の処理例を示す。
【0028】例外ハンドラ5は、プログラム割り込み発
生時に、その発生したプログラム割り込みを解析してシ
ステム続行可能な場合には、テーブルの復元要を指定し
たアンロック要求をアンロック機構7に送出し、また、
システム続行不可能な場合には復元可否登録機構11を
起動して復元可否表示14を復元不可に設定した後、テ
ーブルの復元要を指定したアンロック要求をアンロック
機構7に送出する。例外ハンドラ5のこのような処理の
一例が、プログラム割り込みを起こしたプロセス4の処
理例と共に図11に示されている。
【0029】復元可否登録機構11は、例外ハンドラ5
から復元可否表示14を復元不可に設定する要求がある
ことにより、復元可否表示14を復元不可に変更する機
構である。なお、復元可否表示14は通常の状態では復
元可になっている。
【0030】以下、上述のように構成された本実施例の
動作を説明する。
【0031】今、図1において、プロセッサCPU1,
CPU2の何れか一方で実行されているプロセス4か
ら、或るテーブル名を指定したロック要求がロック機構
6に出されると、ロック機構6が図6に示す処理を開始
する。
【0032】先ず、ロック機構6は、ロック要求された
テーブル名を持つ図2の215,図3の317の如きロ
ックテーブルをテーブル群1のロックテーブル群112
から検索して、そのロックテーブル中のロックフィール
ドが未ロック状態か否かを調べる(S1)。そして、若
し、未ロック状態でなくロック状態であれば、別プロセ
スが当該テーブルを参照,更新しているので、プロセス
4にロック失敗を通知する(S2)。
【0033】他方、未ロック状態であれば、ロック機構
6は、ロック処理S3を行う。このロック処理S3で
は、ロックテーブル中のロックフィールドを未ロック状
態からロック状態に書き換え、要求元のプロセス4のプ
ロセス名をロックプロセス名としてロックテーブルに設
定する。
【0034】次にロック機構6は、ロック要求されたテ
ーブル名を通知して退避テーブル要素返却機構8を起動
する。これにより、退避テーブル要素返却機構8は図7
に示す処理を開始する。
【0035】先ず、退避テーブル要素返却機構8は、通
知されたテーブル名のロックテーブルをテーブル群1の
ロックテーブル群112から検索して、それに設定され
ているパターン識別子を取得する(S11)。即ち、図
2のロックテーブル215の場合にはパターン識別子A
を取得し、図3のロックテーブル317の場合にはパタ
ーン識別子Bを取得する。
【0036】次に、取得したパターン識別子に対応する
パターン情報をパターン情報テーブル13から取得する
(S12)。即ち、パターン識別子Aの場合には図4の
サイズXXXとポインタ位置aとからなるパターン情報
を、パターン識別Bの場合には図4のサイズYYYとポ
インタ位置Δbとからなるパターン情報を、取得する。
【0037】次に、取得したパターン情報からテーブル
の構成を認識して最初のテーブル要素のアドレスとサイ
ズをロック機構6に通知する(S13)。即ち、図2の
場合には、ロックテーブル215のエリアE5中のポイ
ンタが示すキューターミナル211に設定されているポ
インタとサイズXXXとをロック機構6に通知し、図3
の場合には、ロックテーブル317のエリアE5中のポ
インタが示すメインテーブル311の先頭のポインタと
サイズYYYとをロック機構6に通知する。そして、ロ
ック機構6から次の通知の指示があるのを待つ(S1
4)。
【0038】ロック機構6は、退避テーブル要素返却機
構8から最初のテーブル要素のアドレスとサイズとの通
知を受けると(図6のS5でYES)、これらとロック
要求のあったテーブル名とを指定して、テーブル退避の
モードでテーブル退避復元機構10を起動する(S
6)。これにより、テーブル退避復元機構10は図10
に示す処理を開始する。
【0039】即ち、テーブル退避による起動なので、テ
ーブル退避復元機構10は、図10の処理S41から処
理S42に分岐し、ロック機構6から指定されたテーブ
ル要素のアドレス,サイズおよびテーブル名を含むヘッ
ダ部を作成し、次いで処理S43において、指定された
アドレス,サイズのテーブル要素の内容をテーブル群1
から取得し、次いで処理S44において、上記作成した
ヘッダ部と前記取得したテーブル要素の内容とを含む1
つの退避エントリをテーブル退避域2に書き込む。従っ
て、テーブル退避域2に1つもテーブル要素が退避され
ていない状態で、例えば図2のテーブル要素212のア
ドレスとサイズXXXとテーブル名とが指定された場
合、テーブル退避復元機構10は、テーブル要素212
のアドレスを図5の元アドレス504として、サイズX
XXをサイズ505として、また指定されたテーブル名
をテーブル名506に設定したヘッダ部502とテーブ
ル要素212の内容を格納したテーブル内容退避域50
3とからなる1つの退避エントリ501を、テーブル退
避域2に書き込むことになる。なお、既に別の退避エン
トリ501が存在する場合には、図5に示したように、
その直後に新たな退避エントリを書き込む。
【0040】ロック機構6は、最初のテーブル要素の退
避が終了すると、退避テーブル要素返却機構8に次の通
知を出すよう指示し(図6のS7)、退避テーブル要素
返却機構8は、この通知を受けると(図7のS14)、
次のテーブル要素を検索し、見つけると(S15でYE
S)、そのテーブル要素のアドレスとサイズをロック機
構8に通知する(S16)。また、次のテーブル要素が
存在しなければ(S15でNO)、テーブル要素の終了
をロック機構6に通知する(S17)。ロック機構6
は、退避テーブル要素返却機構8からテーブル要素のア
ドレスとサイズとが通知される毎にテーブル退避復元機
構10を起動する処理を繰り返すことにより、今回ロッ
クしたテーブルの全てのテーブル要素をテーブル退避域
2に退避させ、退避テーブル要素返却機構8からテーブ
ル要素の終了が通知された時点で(S5でNO)、要求
元のプロセス4に対してロック完了を通知し(S8)、
処理を終える。従って、図2に示したようなテーブルの
場合、テーブル要素212,213,214がテーブル
退避域2に退避された後にロック完了がプロセス4に通
知される。また、図3に示したようなテーブルの場合、
テーブル要素312〜316がテーブル退避域2に退避
された後にロック完了がプロセス4に通知される。
【0041】さて、ロック完了の通知を受けたプロセス
4は、そのロックしたテーブルに対して参照,更新を行
う。そして、ロックを必要とした処理を正常に終了する
と、アンロックするテーブル名と復元不要とを指定した
アンロック要求をアンロック機構7に出す。また、プロ
セス4が、ロックを必要とした処理の途中でプログラム
割り込みを起こすと、制御が例外ハンドラ5に移る。以
下、前者の場合と後者の場合とにわけて動作を説明す
る。
【0042】○プロセス4からアンロック要求が出され
た場合アンロック機構7は、プロセス4からアンロック
要求が出されると、図8に示す処理を開始する。先ず、
今回のアンロック要求に復元指定が含まれているか否か
を調べる(S21)。今の場合、含まれていないので、
アンロック要求されたテーブル名を持つ退避エントリを
テーブル退避域2から削除し(S28)、次いでアンロ
ック処理を行う(S29)。このアンロック処理では、
ロックテーブル中のロックフィールドをロック状態から
未ロック状態に書き換え、ロックプロセス名をNULL
に設定する。
【0043】○例外ハンドラ5に制御が渡った場合図1
1に示すように、プロセス4がロック要求し(S6
1)、テーブルの更新などの処理S62を実行中にプロ
グラム割り込みが発生すると、制御が例外ハンドラ5に
移り、例外ハンドラ5は、発生したプログラム割り込み
の原因や発生箇所を解析する(S51)。そして、この
解析結果からシステムを停止させる必要があるか否かを
判断し、システムを停止させる必要があると判断したと
きは(S52でYES)、修正可否登録機構11を起動
して復元可否表示14を復元可の状態から復元不可の状
態に変更した後(S53)、テーブル群1のロックテー
ブル群112中のロックテーブルを参照しして当該プロ
グラム割り込みを起こしたプロセス4がロックしている
テーブル名を取得して、それらのテーブル名と復元要と
を指定したアンロック要求をアンロック機構7に出す
(S54)。また、システムを停止させる必要がないと
判断したときは(S52でNO)、処理S53をスキッ
プして復元可否表示14を復元可のままにしておいて、
プロセス4がロックしているテーブル名と復元要とを指
定したアンロック要求をアンロック機構7に出す(S5
4)。
【0044】このアンロック要求に応答してアンロック
機構7は図8に示す処理を開始し、復元要が指定されて
いるので処理S21から処理S22へ進み、復元可否表
示14が復元可を示しているか否かを調べる(S2
2)。そして、復元可否表示14が復元不可を示してい
るときは(S22でNO)、直ちにシステム停止を行
う。他方、復元可を示しているときは(S22でYE
S)、テーブル退避域2に退避されているテーブル要素
をテーブル群1に復元させるための処理を実行し(S2
3〜S27)、その後にテーブル退避域2のクリア処理
S28とアンロック処理S29を行う。
【0045】即ち、先ずアンロック機構7は、例外ハン
ドラ5から指定されたテーブル名を通知して復元テーブ
ル要素返却機構9を起動する(S23)。これにより復
元テーブル要素返却機構9は図9に示す処理を開始し、
指定されたテーブル名をヘッダ部に含む退避エントリを
テーブル退避域2の先頭から順に検索し(S31)、見
つけた退避エントリのアドレスをアンロック機構7に通
知する(S32)。アンロック機構7は、この通知され
たアドレスを指定してテーブル退避復元機構9をテーブ
ル復元モードで起動する(S26)。これによりテーブ
ル退避復元機構9は図10に示す処理を開始する。
【0046】即ち、テーブル復元による起動なので、テ
ーブル退避復元機構10は、図10の処理S41から処
理S45に分岐し、ロック機構6から指定されたアドレ
スの退避エントリをテーブル退避域2から読み込み、次
いで処理S46において、読み込んだ退避エントリ中の
テーブル内容退避域503の内容を、その退避エントリ
中のヘッダ部502中の元アドレス504からサイズ5
05が示すテーブル群1中の領域に複写することによ
り、1つのテーブル要素を復元する。
【0047】アンロック機構7は、最初のテーブル要素
の復元が終了すると、復元テーブル要素返却機構9に次
の通知を出すよう指示し(図8のS27)、復元テーブ
ル要素返却機構9は、この通知を受けると(図9のS3
3)、次の退避エントリを検索し、見つけると(S35
でYES)、その退避エントリのアドレスをアンロック
機構9に通知する(S36)。また、次の退避エントリ
が存在しなければ(S35でNO)、退避エントリの終
了をアンロック機構7に通知する(S37)。アンロッ
ク機構7は、復元テーブル要素返却機構9から退避エン
トリのアドレスが通知される毎にテーブル退避復元機構
10を起動する処理を繰り返すことにより、プログラム
割り込みを起こしたプロセス4がロックしていたテーブ
ルの全てのテーブル要素をテーブル群1に復元させ、復
元テーブル要素返却機構9から退避エントリの終了が通
知された時点で(S24でYES)、今回の復元に使用
した退避エントリをテーブル退避域2から削除するテー
ブル退避域のクリア処理を行い(S28)、次いでアン
ロック処理を行う(S29)。このアンロック処理で
は、ロックテーブル中のロックフィールドをロック状態
から未ロック状態に書き換え、ロックプロセス名をNU
LLに設定する。
【0048】以上のように、本実施例では、プロセス4
によってテーブル群1中のテーブル111がロックされ
ているときにプログラム割り込みが発生しても、そのプ
ログラム割り込みがシステム停止に至らないものであれ
ば、ロックされていたテーブル111の状態をロック直
前の状態に復元して、システムの動作を継続させること
ができる。
【0049】
【発明の効果】以上説明したように本発明によれば、ロ
ック直前の共有テーブルをテーブル退避域に退避(複
写)しておき、プログラム割り込みが発生した場合に
は、テーブル退避域に退避された共有テーブルによって
主記憶上の元の場所の共有テーブルをロック直前の状態
に復元するようにしたので、システムの続行が本来可能
な種別のプログラム割り込みの発生時に、従来のように
一律にシステムを停止させる必要がなく、プログラム割
り込みによって処理中断したプロセスによりロックされ
た共有テーブルの状態を矛盾の無い状態に復元してシス
テムの動作を継続させることが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施例を適用したマルチプロセッサ
システムの要部構成図である。
【図2】プロセス間で共有されるテーブルの構成例とそ
れに対応するロックテーブルの内容例を示す図である。
【図3】プロセス間で共有されるテーブルの別の構成例
とそれに対応するロックテーブルの内容例を示す図であ
る。
【図4】パターン情報テーブルの内容例を示す図であ
る。
【図5】テーブル退避域の内容例を示す図である。
【図6】ロック機構の処理例を示すフローチャートであ
る。
【図7】退避テーブル要素返却機構の処理例を示すフロ
ーチャートである。
【図8】アンロック機構の処理例を示すフローチャート
である。
【図9】復元テーブル要素返却機構の処理例を示すフロ
ーチャートである。
【図10】テーブル退避復元機構の処理例を示すフロー
チャートである。
【図11】例外ハンドラの処理例を示すフローチャート
である。
【符号の説明】
1…テーブル群 111…複数のプロセスで共有されるテーブル 112…ロックテーブル群 2…テーブル退避域 3,4…プロセス 5…例外ハンドラ 6…ロック機構 7…アンロック機構 8…退避テーブル要素返却機構 9…復元テーブル要素返却機構 10…テーブル退避復元機構 11…復元可否登録機構 12…パターン情報設定機構 13…パターン情報テーブル 14…復元可否表示 MEM…主記憶 CPU1,CPU2…プロセッサ

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサより構成され、プロセ
    ッサ間で主記憶上の共有テーブルを排他的に使用するマ
    ルチプロセッサシステムにおける共有テーブルのロック
    制御方式において、 主記憶上の共有テーブルをテーブル退避域へ退避(複
    写)する処理とテーブル退避域に退避された共有テーブ
    ルを主記憶の元の場所へ復元する処理とを行うテーブル
    退避復元機構と、前記何れかのプロセッサ上で実行されるプロセスからの
    共有テーブルに対する ロック要求に応答して、主記憶上
    該当する共有テーブルをロックすると共に、前記テー
    ブル退避復元機構を呼び出して、前記ロックした共有テ
    ーブルをテーブル退避域へ退避させるロック機構と、 テーブルの復元要を指定するアンロック要求に応答し
    て、前記テーブル退避復元機構を呼び出して、前記テー
    ブル退避域に退避されている共有テーブルを主記憶上の
    元の場所へ復元させた後、その共有テーブルのロックを
    解除すると共に該解除した共有テーブルを前記テーブル
    退避域から削除し、また、前記ロックした共有テーブル
    に対する参照,更新処理を終えた前記プロセスからの
    ーブルの復元不要を指定するアンロック要求に応答し
    て、共有テーブルのロックを解除すると共に該解除した
    共有テーブルを前記テーブル退避域から削除するアンロ
    ック機構と、 プログラム割り込み発生時に、テーブルの復元要を指定
    したアンロック要求を前記アンロック機構に送出する例
    外ハンドラとを備えることを特徴とする共有テーブルの
    ロック制御方式。
  2. 【請求項2】 各共有テーブルの構成を特徴付ける情報
    を保持するパターン情報テーブルを参照して各共有テー
    ブルの構成を認識して退避すべきテーブル要素のアドレ
    スとサイズとを前記ロック機構に通知する退避テーブル
    要素返却機構を備え、前記ロック機構は、前記退避テー
    ブル要素返却機構から通知されるアドレスとサイズと退
    避すべきテーブル名とを前記テーブル退避復元機構に通
    知し、前記テーブル退避復元機構は、通知されたアドレ
    スとサイズとテーブル名とを含むヘッダ部と、通知され
    たアドレスとサイズとで特定されるテーブル要素の内容
    とを含む退避エントリを前記テーブル退避域に格納する
    ことを特徴とする請求項1記載の共有テーブルのロック
    制御方式。
  3. 【請求項3】 テーブル退避域に退避されている退避エ
    ントリのアドレスを通知する復元テーブル要素返却機構
    を備え、前記アンロック機構は、前記復元テーブル要素
    返却機構から通知されるアドレスを前記テーブル退避復
    元機構に通知し、前記テーブル退避復元機構は、通知さ
    れたアドレスの退避エントリに基づき主記憶上の元の場
    所のテーブル要素を復元することを特徴とする請求項2
    記載の共有テーブルのロック制御方式。
  4. 【請求項4】 前記アンロック機構により参照される復
    元可否表示を設定する復元可否登録機構を備え、前記例
    外ハンドラは、発生したプログラム割り込みを解析して
    システム動作継続不可能と判断したときは前記復元可否
    登録機構により前記復元可否表示を復元不可に設定した
    後に前記アンロック機構にテーブル復元要を指定した前
    アンロック要求を出し、前記アンロック機構は前記復
    元可否表示が復元不可を示すときは、テーブル復元要を
    指定するアンロック要求であっても共有テーブルの復元
    を行わずに直ちにシステムを停止させることを特徴とす
    る請求項3記載の共有テーブルのロック制御方式。
JP13832894A 1994-05-27 1994-05-27 共有テーブルのロック制御方式 Expired - Fee Related JP2605623B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13832894A JP2605623B2 (ja) 1994-05-27 1994-05-27 共有テーブルのロック制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13832894A JP2605623B2 (ja) 1994-05-27 1994-05-27 共有テーブルのロック制御方式

Publications (2)

Publication Number Publication Date
JPH07319825A JPH07319825A (ja) 1995-12-08
JP2605623B2 true JP2605623B2 (ja) 1997-04-30

Family

ID=15219340

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13832894A Expired - Fee Related JP2605623B2 (ja) 1994-05-27 1994-05-27 共有テーブルのロック制御方式

Country Status (1)

Country Link
JP (1) JP2605623B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7921250B2 (en) * 2004-07-29 2011-04-05 International Business Machines Corporation Method to switch the lock-bits combination used to lock a page table entry upon receiving system reset exceptions

Also Published As

Publication number Publication date
JPH07319825A (ja) 1995-12-08

Similar Documents

Publication Publication Date Title
EP1647908A2 (en) Database RAM cache
JPH0465414B2 (ja)
JPH0713813B2 (ja) データアクセス方法及びデータ処理システム
JPH01188965A (ja) データ処理方法
JPH0528853B2 (ja)
JPH11327931A (ja) セマフォ操作を実行する方法及び装置
KR100346667B1 (ko) 작업 종료를 통지하기 위한 방법 및 장치
JP2005063435A (ja) ソフトウェアフォールトを封じ込める方法およびシステム
JP2605623B2 (ja) 共有テーブルのロック制御方式
US6092084A (en) One system of a multisystem environment taking over log entries owned by another system
US6076095A (en) Method of one system of a multisystem environment taking over log entries owned by another system
JP3586943B2 (ja) プログラムロード装置と方法
JP2001290637A (ja) コンポーネントの動的置換装置及びコンピュータ読み取り可能な記憶媒体
JP2710668B2 (ja) 計算機システム
JP2999024B2 (ja) 子プロセスの終了待ち合わせ処理装置
JPH0588954A (ja) データベースの更新方法
JP2872008B2 (ja) コンピュータシステムおよびそのシステム縮退運転実現方法
JP2000181735A (ja) システム障害時のバッチジョブリカバリシステム
JPS6250938A (ja) 主記憶常駐化デ−タベ−ス復旧方式
JPH03196222A (ja) プログラム入替え方法
JPH04105159A (ja) 業務代行方式
KR100340338B1 (ko) 프로세스 관리 및 유지 보수 시스템 및 방법
JP2002215443A (ja) 複数オペレーション間の排他制御方法
JPH1049420A (ja) データベース管理方法
JPH1040123A (ja) ジョブ管理方式と方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees