JPH08166929A - 共用資源排他制御システム - Google Patents

共用資源排他制御システム

Info

Publication number
JPH08166929A
JPH08166929A JP30863894A JP30863894A JPH08166929A JP H08166929 A JPH08166929 A JP H08166929A JP 30863894 A JP30863894 A JP 30863894A JP 30863894 A JP30863894 A JP 30863894A JP H08166929 A JPH08166929 A JP H08166929A
Authority
JP
Japan
Prior art keywords
shared
request
resource
processor
exclusive control
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
JP30863894A
Other languages
English (en)
Inventor
Yasuhiro Mukoda
康裕 向田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP30863894A priority Critical patent/JPH08166929A/ja
Publication of JPH08166929A publication Critical patent/JPH08166929A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 共用資源排他制御システムに関し、共用資源
の排他制御による負荷をシステム内へ分散させてシステ
ム全体の信頼性の向上を図る。 【構成】 各プロセサにプロセサ側排他制御部を、各共
用装置に共用装置側排他制御部を、それぞれ設ける。プ
ロセサ側排他制御部は、複数のプロセスからの共用資源
の使用要求を資源要求テーブルに登録し、共用装置側排
他制御部とのメッセージ交換に基づいて使用要求に対す
る共用資源の使用許可を行う。共用装置側排他制御部
は、プロセサ側排他制御部からのメッセージで得られた
使用要求を共用資源ごとの資源管理テーブルに登録し、
各使用要求に付与された割当て順位に基づき、共用資源
を割当てるべき旨のメッセージをプロセサ側排他制御部
に順次送信する。ただし、待ち状態のプロセスより割当
て順位が低いプロセスに使用許可が行われていた場合、
共用資源に対する使用許可の再割当てを試みる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は共用資源排他制御システ
ムに係り、特に、複数のプロセス間で共用される資源が
存在する場合に適用される共用資源排他制御システムに
関する。
【0002】
【従来の技術】図13は、従来の共用資源排他制御シス
テムの一構成例(その1)を示す図であり、ハードウェ
アのリザーブ・リリーズ機構によって異なるプロセサ上
のプロセスの間で共用資源の排他制御を行う共用資源排
他制御システムを示す。
【0003】図13において、プロセサ1301Aから
共用資源1304Aを使用しようとする際、プロセサ1
301Aは目的とする共用資源1304Aが存在する共
用装置1303に設けられているリザーブ・リリーズ機
構1302に対して所定のリザーブ命令を発行し、当該
リザーブ・リリーズ機構1302から共用装置1303
の占有を許可されると、共用資源1304Aの使用を開
始する。その後、プロセサ1301Bが共用資源130
4Aを使用しようとしても、プロセサ1301Aが共用
装置1303を占有している間、プロセサ1301Bか
ら発行されたリザーブ命令に対してリザーブ・リリーズ
機構1302が共用装置1303の占有を許可しないの
で、プロセサ1301Bは共用資源1304Aを使用す
ることができない。
【0004】図14は、従来の共用資源排他制御システ
ムの一構成例(その2)を示す図であり、プロセサ間通
信によって共用資源の排他制御を行う共用資源排他制御
システムを示す。同図中、“排他マスタ”と呼ばれる排
他制御専用の1台のプロセサ1401Aは、“排他マス
タ”以外の“排他スレーブ”と呼ばれるプロセサ140
1B,1401Cからの要求に対して、共用資源140
3の使用を許可あるいは禁止している。
【0005】図14において、“排他スレーブ”の1台
であるプロセサ1401Bから共用装置1402におけ
る共用資源1403Aを使用しようとする際、プロセサ
1401Bは共用資源1403Aの使用要求を“排他マ
スタ”プロセサ1401Aに送る。“排他スレーブ”プ
ロセサ1401Bから共用資源1403Aの使用要求を
受け付けた“排他マスタ”プロセサ1401Aは、共用
資源1403Aがシステム内の他のプロセサに使用され
ていない場合、“排他スレーブ”プロセサ1401Bに
対して共用資源1403Aの使用を許可し、これによっ
て“排他スレーブ”プロセサ1401Bは共用資源14
03Aの使用を開始する。このとき、別の“排他スレー
ブ”プロセサ1401Cが“排他マスタ”プロセサ14
01Aに対して共用資源1403Aの使用を要求して
も、“排他スレーブ”プロセサ1401Bが共用資源1
403Aを使用中のため、“排他マスタ”プロセサ14
01Aは“排他スレーブ”プロセサ1401Cに対して
共用資源1403Aの使用を許可しないので、“排他ス
レーブ”プロセサ1401Cは共用資源1403Aを使
用することができない。一方、“排他スレーブ”プロセ
サ1401Cが“排他マスタ”プロセサ1401Aに対
して別の共用資源1403Bの使用を要求した場合に
は、共用資源1403Bが他のプロセサに使用されてい
ないので、“排他マスタ”プロセサ1401Aは“排他
スレーブ”プロセサ1401Cに対して共用資源140
3Bの使用を許可し、これによって“排他スレーブ”プ
ロセサ1401Cは共用資源1403Bを使用すること
ができる。
【0006】
【発明が解決しようとする課題】図13を用いて説明し
たハードウェアのリザーブ・リリーズ機構によって異な
るプロセサ上のプロセスの間で共用資源の排他制御を行
う共用資源排他制御システムは、排他制御の対象とする
単位がハードウェアの装置単位で比較的大きいことか
ら、排他制御の必要のない資源までも同時に排他制御の
対象とされ、プロセサ間の資源待ちが発生しやすいとい
う問題点があった(例えば、プロセサ1301Aは、共
用資源1304Aのみを必要とする場合でも、必然的に
共用装置1303全体を占有してしまうので、プロセサ
1301Bは、プロセサ1301Aが使用していない共
用資源1304Bを使用することができない。)。そし
て、第1のプロセサが必要とする共用資源を第2のプロ
セサが占有していた場合、第2のプロセサが当該共用資
源の占有を解除するまでの間、第1のプロセサは当該共
用資源の占有状態のチェックを繰り返し行う必要があっ
たため、プロセサ資源を浪費しやすいという問題点があ
った。さらに、先に共用資源の占有待ちを開始したプロ
セサよりも後に当該共用資源の占有待ちを開始したプロ
セサが当該共用資源を占有してしまう“追い越し”や、
永久に共用資源の占有待ちとなる“飢餓状態”が発生し
得るという問題点があった。
【0007】一方、図14を用いて説明したプロセサ間
通信によって共用資源の排他制御を行う共用資源排他制
御システムは、共用資源の使用を許可あるいは禁止する
“排他マスタ”プロセサに通信および排他制御の負荷が
集中するため、特にシステム内のプロセサ台数が多い場
合には、“排他マスタ”プロセサの性能がシステム全体
の性能のボトルネックとなってしまうという問題点があ
った。また、システムの構成上、“排他マスタ”プロセ
サが故障した場合にはシステム内のすべての共用資源の
排他制御が不可能となり、これによって共用資源を必要
とするシステム内のすべての“排他スレーブ”プロセサ
における処理が不可能となってしまう。すなわち、“排
他マスタ”プロセサの信頼性がシステム全体の信頼性の
ボトルネックとなってしまうという問題点があった。
【0008】したがって本発明の目的は、上記の問題点
を解決して、装置単位よりも小さな任意の単位のみを
対象とする排他制御の実現、排他制御による負荷のシ
ステム内への分散、システム全体の信頼性の向上、
共用資源待ち状態のプロセサに対する負荷の抑制、上
述した“追い越し”や“飢餓状態”の発生の防止、など
を図ることのできる共用資源排他制御システムを提供す
ることにある。
【0009】
【課題を解決するための手段】上記の目的を達成するた
め、本発明の共用資源排他制御システムは、一以上のプ
ロセスが実行されるプロセサおよび複数のプロセスから
共用される一以上の共用資源を有する共用装置から構成
されるコンピュータシステムにおいて、各々のプロセス
からの共用資源の使用要求が登録される資源要求テーブ
ルの更新と、各々の共用資源を有する共用装置との前記
使用要求に関するメッセージ交換と、各々のプロセスへ
の共用資源の使用許可とを行うプロセサ側排他制御部を
それぞれのプロセサに具備するとともに、前記プロセサ
側排他制御部との前記使用要求に関するメッセージ交換
と、任意に定義された各々の共用資源について当該共用
資源のプロセスによる使用状態を管理するための資源管
理テーブルの更新とを行う共用装置側排他制御部をそれ
ぞれの共用装置に具備し、システムに付された割当て順
序から決定される優先順位が最高となる最先使用要求に
共用資源の割当てを行う一方、すでに共用資源の割当て
が行われている使用要求の優先順位が最高でない場合に
は当該割当ての取消しおよび前記最先使用要求への再割
当てを試行し、プロセスに必要なすべての共用資源の割
当てが完了してから当該プロセスの実行を開始するもの
である。
【0010】
【作用】上記構成に基づく作用を説明する。
【0011】本発明の共用資源排他制御システムは、一
以上のプロセスが実行されるプロセサおよび複数のプロ
セスから共用される一以上の共用資源を有する共用装置
から構成されるコンピュータシステムにおいて、各々の
プロセスからの共用資源の使用要求が登録される資源要
求テーブルの更新と、各々の共用資源を有する共用装置
との前記使用要求に関するメッセージ交換と、各々のプ
ロセスへの共用資源の使用許可とを行うプロセサ側排他
制御部をそれぞれのプロセサに具備するとともに、前記
プロセサ側排他制御部との前記使用要求に関するメッセ
ージ交換と、任意に定義された各々の共用資源について
当該共用資源のプロセスによる使用状態を管理するため
の資源管理テーブルの更新とを行う共用装置側排他制御
部をそれぞれの共用装置に具備し、システムに付された
割当て順序から決定される優先順位が最高となる最先使
用要求に共用資源の割当てを行う一方、すでに共用資源
の割当てが行われている使用要求の優先順位が最高でな
い場合には当該割当ての取消しおよび前記最先使用要求
への再割当てを試行し、プロセスに必要なすべての共用
資源の割当てが完了してから当該プロセスの実行を開始
する。
【0012】したがって、排他制御の単位とする共用資
源を任意に定義し、各々の共用資源について資源管理テ
ーブルを当該共用資源を含む共用装置内に設けておくこ
とにより、装置単位よりも小さな任意の単位のみを対象
とする排他制御を実現することができる。また、各プロ
セサ側排他制御部は所属するプロセサ内のプロセスから
の共用資源の使用要求のみについて、各共用装置側排他
制御部は所属する共用装置内の共用資源のみについて、
それぞれ排他制御を行うことにより、特定のプロセサに
排他制御の処理が集中することがなくなるので、排他制
御による負荷をシステム内に分散させることができる。
そして同時に、いずれかのプロセサ側排他制御部または
共用装置側排他制御部に障害が発生してもすべての排他
制御が中断することはないので、システム全体の信頼性
を向上させることができる。さらに、システムに付され
た割当て順序から決定される優先順位が最高となる最先
使用要求を行った最先順位のプロセスに共用資源の使用
を許可することにより、各々のプロセサから共用資源の
占有状態のチェックを繰り返し行う必要がなくなるの
で、共用資源待ち状態にあるプロセサに対する負荷を抑
制することができるとともに、すでに共用資源の割当て
が行われている使用要求の優先順位が最高でない場合に
は当該割当ての取消しおよび前記最先使用要求への再割
当てを試行し、プロセスに必要なすべての共用資源の割
当てが完了してから当該プロセスの実行を開始するの
で、上述した“追い越し”や“飢餓状態”の発生を防止
することができる。
【0013】
【実施例】以下、本発明の共用資源排他制御システムの
一実施例を図面を用いて詳細に説明する。
【0014】図1は、本発明の共用資源排他制御システ
ムの一構成例を示すブロック図である。同図中、システ
ムは一以上のプロセサ101A,101B,....,10
1N(以後、101は任意のプロセサを表すものとす
る)と、一以上の共用装置105A,105B,....,
105N(以後、105は任意の共用装置を表すものと
する)から構成されている。そして、各々のプロセサ1
01には、プロセサ側排他制御部102A,102
B,....,102N(以後、102は任意のプロセサに
属するプロセサ側排他制御部を表すものとする)と、資
源要求テーブル103A,103B,....,103N
(以後、103は任意のプロセサに属する資源要求テー
ブルを表すものとする)とが設けられており、一以上の
プロセス104A,104B,....,104N(以後、
104は任意のプロセスを表すものとする)が存在す
る。
【0015】プロセス104は、共用資源108A,1
08B,....,108N(以後、108は任意の共用装
置に属する共用資源を表すものとする)の使用を要求す
るプログラムの実行体であり、いずれかの共用資源10
8を必要とするとき、所属するプロセサ101の排他制
御部102に対して必要とする共用資源108の使用要
求を行う。資源要求テーブル103には、排他制御部1
02によって所属するプロセサ101内のプロセス10
4からの共用資源108の使用要求が登録される。
【0016】共用装置105は、共用装置側排他制御部
106A,106B,....,106N(以後、106は
各々の共用装置ごとに設けられた共用装置側排他制御部
を表すものとする)と、一以上の共用資源108と、一
以上の資源管理テーブル107A,107B,....,1
07N(以後、107は各々の共用資源に対応して設け
られた資源管理テーブルを表すものとする)から構成さ
れている。共用資源108は、プロセス104からの使
用要求によってプロセス間における排他制御の対象とな
る単位である。共用装置と共用資源の関係の一例として
は、磁気ディスク装置(共用装置)とデータセット(共
用資源)との関係があげられる。
【0017】次に、本発明の共用資源排他制御システム
における全体的な処理の流れについて説明する。
【0018】共用資源108を必要とするプロセス10
4は、使用する一以上の共用資源108について、一括
してプロセサ側排他制御部102に使用要求を行う。プ
ロセサ側排他制御部102は、プロセス104からの一
以上の共用資源108の使用要求それぞれに共用資源1
08の割当て順序を規定する値を同一に付与し、資源要
求テーブル103に“使用許可待ち状態”として登録す
るとともに、プロセス104からの使用要求の対象とな
る共用資源108が属する各々の共用装置105におけ
る共用装置側排他制御部106に対して、当該共用資源
108の使用要求を行う。
【0019】各々の共用装置側排他制御部106は、プ
ロセサ側排他制御部102からの使用要求を、資源管理
テーブル107に登録されている“使用許可待ち状態”
の使用要求の中でそれぞれの使用要求に付与されている
共用資源108の割当て順序関係を満足する位置に登録
する。このとき、資源管理テーブル107内の“使用許
可待ち状態”の使用要求よりも共用資源108の割当て
順位が低い使用要求に対して当該共用資源108の使用
が許可されているか否かを調べ、共用資源108の割当
て順位が低い使用要求に共用資源108の使用が許可さ
れていた場合、デッドロックを防止するため、共用装置
側排他制御部106は、プロセサ側排他制御部102に
対して、すでに“使用許可状態”にある共用資源108
の割当て順位が低い使用要求への当該共用資源108の
使用許可の取消しを求める。
【0020】共用資源108の使用許可の取消し要求を
受けたプロセサ側排他制御部102は、資源要求テーブ
ル103を参照して使用許可の取消しを要求された使用
要求の状態を調べ、対応するプロセス104によって共
用資源108が使用されていなければ、使用要求の状態
を“使用許可状態”から“使用許可待ち状態”に変更
し、共用装置側排他制御部106に使用許可取消しの成
功を通知する。一方、対応するプロセス104によって
共用資源108が使用されていれば、既に当該共用資源
108を使用しているプロセス104から共用資源10
8を取り上げることはできないので、使用許可取消しの
失敗を共用装置側排他制御部106に通知する。
【0021】プロセサ側排他制御部102から使用許可
取消しの成功を通知された場合、共用装置側排他制御部
106は、共用資源108の使用許可取消しに成功し
た、共用資源108の割当て順位が低い使用要求を“使
用許可状態”から“使用許可待ち状態”に変更し、資源
管理テーブル107に登録されている“使用許可待ち状
態”にある使用要求の中で各使用要求に付与されている
共用資源108の割当て順序関係を満足する位置に再登
録する。一方、プロセサ側排他制御部102から使用許
可取消しの失敗を通知された場合、共用資源108の使
用許可の取消しができなかった使用要求について再び共
用資源108の使用許可の取消しを要求することのない
ように、共用資源108の使用許可の取消しができなか
った使用要求を“使用許可状態”から“使用状態”に変
更し、使用許可した共用資源108の解放を待つ。
【0022】共用装置側排他制御部106は、“使用待
ち状態”の使用要求に対して共用資源108の使用を許
可できる状態になれば、共用資源108の割当て順位が
最も高い使用要求を“使用許可状態”に変更し、共用資
源108の使用を許可した使用要求の発行元のプロセサ
側排他制御部102に共用資源108の使用の許可を通
知する。共用装置側排他制御部106から資源の使用を
許可されたプロセサ側排他制御部102は、資源要求テ
ーブル103における共用資源108の使用を許可され
た使用要求を“使用許可状態”に変更する。さらに、資
源要求テーブル103を参照し、プロセス104が要求
したすべての共用資源108の使用要求が“使用許可状
態”であった場合にはそれらを“使用状態”に変更し、
プロセス104に共用資源108の使用を許可する。
【0023】プロセス104は、使用中の共用資源10
8が不要になれば、プロセサ側排他制御部102に当該
共用資源108の解放を要求する。プロセス104から
共用資源108の解放要求を受けたプロセサ側排他制御
部102は、解放を要求された共用資源108の使用要
求を資源要求テーブル103から削除し、解放する共用
資源108が属する共用装置側排他制御部106に当該
共用資源108の解放を要求する。共用資源108の解
放要求を受けた共用装置側排他制御部106は、当該共
用資源108の使用要求を資源管理テーブル107から
削除し、共用資源108の割当て順位が最も高い“使用
待ち状態”の使用要求に資源の使用を許可することを試
みる。
【0024】図2は、図1中の資源要求テーブルの一例
を示す図である。同図中、資源要求テーブル103は、
プロセスID欄201,受付日時欄202,資源名欄2
03,タイプ欄204,状態欄205から構成されてお
り、資源要求テーブル103の1エントリが、共用資源
108に対するひとつの使用要求を表す。そして、プロ
セスID欄201には、資源名欄203で示される特定
の共用資源の使用要求を行ったプロセスを特定するプロ
セスIDが格納される。受付時刻欄202には、プロセ
スID欄201で示されるプロセスから資源名欄203
で示される共用資源の使用要求を受付けた日時が格納さ
れる。資源名欄203には、共用資源108を識別する
ための識別名称が格納される。タイプ欄204には、プ
ロセス104の共用資源108に対する使用タイプを示
す“SHR”または“EXC”のいずれかが格納され
る。“SHR”は、使用タイプが同じ“SHR”である
他プロセスと共用資源を同時に使用可能とすることを意
味する。一方、“EXC”は、他プロセスとの共用資源
の同時使用を禁止することを意味する。状態欄205に
は、プロセス104から共用資源108に対する使用要
求の状態を示す“使用”,“許可”“待ち”のいずれか
が格納される。“使用”は、プロセスが当該共用資源を
使用中であることを示し、“使用”状態の共用資源をプ
ロセスから取り上げることはできない。また、“許可”
は、共用装置側排他制御部106がプロセスに対して共
用資源の使用を許可しているが、当該プロセスが使用要
求を行ったすべての共用資源の使用が許可されていない
ため、プロセサ側排他制御部102が当該プロセスに共
用資源の使用を許可していないことを示す。“許可”状
態において、プロセスは共用資源を未だ使用していな
い。最後に、“待ち”は、プロセスからの共用資源の使
用要求が共用装置側排他制御部106から許可されるこ
とを待っていることを示す。
【0025】図3は、図1中の資源管理テーブルの一例
を示す図である。同図中、資源管理テーブル107は、
各々の共用資源108に対応して設けられており、各々
のプロセス104からの共用資源の使用要求を保持する
とともに、プロセス104への共用資源108の割当て
順序を管理するために用いられる。そして、資源管理テ
ーブル107中の1エントリが、共用資源108に対す
るプロセス104からのひとつの使用要求に対応する。
【0026】資源管理テーブル107は、受付日時欄3
01,プロセサID欄302,プロセスID欄303,
タイプ欄304,状態欄305などから構成される。受
付日時欄301には、プロセサID欄302で示される
プロセサ101に属するプロセサ側排他制御部102が
プロセスID欄303で示されるプロセス104から当
該エントリの使用要求を受け付けた日時が格納される。
プロセサID欄302には、資源管理テーブル107に
対応する共用資源108の使用要求を行ったプロセスI
D欄303で示されるプロセス104が存在するプロセ
サ101を特定するプロセサIDが格納される。プロセ
スID欄303には、資源管理テーブル107に対応す
る共用資源108の使用要求を行ったプロセス104を
特定するプロセスIDが格納される。タイプ欄304に
は、プロセスID欄303で示されるプロセス104
の、資源管理テーブル107に対応する共用資源108
の使用タイプを示す“SHR”または“EXC”のいず
れかが格納される。この両者の意味については、資源要
求テーブル103中のの状態欄205に格納されるもの
と同一である。
【0027】状態欄305には、プロセスID欄303
で示されるプロセス104への、資源管理テーブル10
7に対応する共用資源108の割当て状態を示す“使
用”,“許可”,“待ち”のいずれかが格納される。
“使用”は、資源管理テーブル107に対応する共用資
源108がプロセス104によって使用中であることを
示し、この状態では、プロセス104から当該共用資源
108を取り上げることはできない。“許可”は、資源
管理テーブル107に対応する共用資源108の使用を
プロセス104に許可することを共用装置側排他制御部
106からプロセサ側排他制御部102に通知したこと
を示す。この状態では、当該共用資源108がプロセス
104に使用されているか否か、共用装置側排他制御部
106には不明であるが、プロセス104から当該共用
資源108を取り上げることができる可能性がある。
【0028】受付日時欄301の受付日時,プロセサI
D欄302のプロセサID,プロセスID欄303のプ
ロセスIDは、プロセス104への共用資源108の割
当て順序を規定するために利用する。すなわち本実施例
では、同一の共用資源108の使用要求を行った2つの
プロセスXおよびYの受付日時,プロセサID,プロセ
スIDについて以下の3つの条件,,のいずれか
が成立する場合、プロセサYよりも先にプロセスXへ当
該共用資源108の使用を許可する。 条件:プロセスXからの使用要求の受付日時がプロセ
スYからの使用要求の受付日時よりも先である。 条件:プロセスX,Yからの使用要求の受付日時が等
しい場合は、プロセスXのプロセサIDの番号がプロセ
スYのプロセサIDの番号よりも小さい。 条件:プロセスX,Yからの使用要求の受付日時が等
しく、かつ、プロセスX,YのプロセサIDの番号が等
しい場合は、プロセスXのプロセスIDの番号がプロセ
スYのプロセスIDの番号よりも小さい。
【0029】図4は、図1中の資源管理テーブルにおけ
る使用要求の登録順序を説明するための図である。同図
において、プロセサ側排他制御部102から送信された
使用要求は、資源管理テーブルの先頭部分には共用資源
の使用を許可された使用要求が、その後には共用資源の
使用許可を待つ使用要求が並ぶように、共用装置側排他
制御部106によって資源管理テーブル107に登録さ
れる。共用資源の使用を許可された使用要求の並びの順
序については特に規定しない。なお、共用資源の使用を
許可された使用要求の中には、当該共用資源の使用許可
を待っている使用要求よりも共用資源の割当て順位が低
い使用要求が存在することがある。これは、共用資源の
割当て順位が低い使用要求が共用装置側排他制御部10
6に到着して当該共用資源の使用を許可されるまでに、
割当て順位が高い使用要求が共用装置側排他制御部10
6に到着しなかった場合に起こる。一方、共用資源の使
用許可を待っている使用要求は、当該共用資源の割当て
順位が高い使用要求が先頭部分に、割当て順位が低い使
用要求が後方部分に位置するように並べる。
【0030】共用装置側排他制御部106は、プロセサ
側排他制御部102からプロセス104の共用資源10
8の使用要求を受け付け、当該使用要求を資源管理テー
ブル107に登録し、共用資源108が使用できる状態
になるとプロセサ側排他制御部102に対してプロセス
104への共用資源108の使用許可を通知する。
【0031】共用装置側排他制御部106は、資源管理
テーブル107を参照し、共用資源の使用が許可されて
いる使用要求よりも順位が高い共用資源の使用の許可を
待っている使用要求が存在する場合、デッドロックを防
止するため、プロセサ側排他制御部102に一旦使用を
許可した共用資源の使用許可取消しを要求する。そし
て、プロセサ側排他制御部102から一旦使用を許可し
た共用資源の使用許可の取消しが認められた場合、共用
資源の割当て順序に基づいて当該共用資源の使用要求の
資源管理テーブル107内の登録位置を変更する。一
方、プロセサの排他制御部102から一旦使用を許可し
た共用資源の使用許可の取消しが認められなかった場合
は、デッドロックが発生する可能性はないので、当該共
用資源がプロセスから解放されるのを待つ。
【0032】図5は、図1中のプロセサ側排他制御部と
共用装置側排他制御部との間でやり取りされるメッセー
ジの形式の一例を示す図であり、プロセサ側排他制御部
102と共用装置側排他制御部106とは、要求メッ
セージ,要求許可メッセージ,解放メッセージ,
許可取消しメッセージ,許可取消し応答メッセージの
5種類のメッセージを交換して通信を行う。
【0033】図5(a)において、要求メッセージ51
0は、プロセサ側排他制御部102から共用装置側排他
制御部106に対して共用資源108の使用要求を行う
ために用いられるメッセージであり、メッセージタイプ
欄511,受付日時欄512,プロセサID欄513,
プロセスID欄514,資源名欄515,タイプ欄51
6から構成される。メッセージタイプ欄511には、当
該メッセージの種類が要求メッセージであることを示す
メッセージ識別子を設定する。受付日時欄512には、
当該使用要求をプロセサID欄513で示されるプロセ
サ101におけるプロセサ側排他制御部102が、プロ
セスID欄514で示されるプロセスから受付けた日時
を設定する。プロセサID欄513には、当該要求メッ
セージを送信したプロセサ101を特定するプロセサI
Dを設定する。プロセスID欄514には、資源名欄5
15で示される共用資源108の使用要求を行ったプロ
セスを特定するプロセスIDを設定する。資源名欄51
5には、プロセスID欄514で示されるプロセスが使
用要求を行った共用資源108を排他制御するために用
いる当該共用資源の名前を設定する。タイプ欄516に
は、資源名欄515で示される共用資源108の使用タ
イプを設定する。使用タイプは、“SHR”と“EX
C”のいずれかであり、それらの意味は資源要求テーブ
ル103のタイプ欄204に設定される使用タイプと同
一であるため、説明を省略する。
【0034】図5(b)において、要求許可メッセージ
および許可取消しメッセージは同一形式のメッセージで
あり、要求許可メッセージ520は、共用装置側排他制
御部106からプロセサ側排他制御部102に対して上
述した要求メッセージ510によって要求された共用資
源108の使用許可を通知するとき、許可取消しメッセ
ージ520は、共用装置側排他制御部106からプロセ
サ側排他制御部102に対して一旦通知された共用資源
108の使用許可を取消すために、それぞれ用いられ
る。同図中、要求許可メッセージ(許可取消しメッセー
ジ)520は、当該メッセージが要求許可メッセージ
(許可取消しメッセージ)であることを示す識別子を設
定するメッセージタイプ欄521,共用資源108の使
用を許可する(使用許可を取消す)プロセスのプロセス
IDを設定するプロセスID欄522,使用を許可する
(使用許可を取消す)共用資源を示す名前を設定する資
源名欄523から構成される。
【0035】図5(c)において、解放メッセージ53
0は、プロセサ側排他制御部102から共用装置側排他
制御部106に対して共用資源108の使用が終了した
ことを通知するためのメッセージであり、当該メッセー
ジが解放メッセージであることを示す識別子を設定する
メッセージタイプ欄531,共用資源108の使用を終
了したプロセス104が存在するプロセサ101を特定
するプロセサIDを設定するプロセサID欄532,共
用資源108の使用を終了したプロセス104を特定す
るプロセスIDを設定するプロセスID欄533,使用
を終了した共用資源108を示す名前を設定する資源名
欄534から構成される。
【0036】図5(d)において、許可取消し応答メッ
セージ540は、プロセサ側排他制御部102が共用装
置側排他制御部106からの許可取消しメッセージ52
0に対する応答を通知するために用いられるメッセージ
であり、当該メッセージが許可取消し応答メッセージで
あることを示す識別子を設定するメッセージタイプ欄5
41,当該メッセージを発行したプロセサ101を特定
するプロセサIDを設定するプロセサID欄542,使
用許可の取消しを要求されたプロセス104を特定する
プロセスIDを設定するプロセスID欄543,使用許
可の取消しを要求された共用資源108を示す名前を設
定する資源名欄544,使用許可の取消し要求の成功あ
るいは失敗を示す応答欄545から構成される。
【0037】以下、プロセス104が共用資源108を
使用する場合におけるシステムの処理について説明す
る。プロセス104が共用資源108を使用する場合、
当該プロセス104はプロセサ側排他制御部102に当
該共用資源108の使用要求を行う。
【0038】図6は、プロセスから共用資源の使用要求
を受付けたときのプロセサ側排他制御部における処理の
流れを示すフローチャートである。同図中、最初にステ
ップ601でプロセス104からの共用資源108の使
用要求を資源要求テーブル103に登録する。すなわ
ち、プロセスID欄201に共用資源を要求したプロセ
スを特定するプロセスIDを、受付日時欄202にプロ
セスから共用資源の使用要求を受け付けた日時を、資源
名欄203にプロセスから使用を要求された共用資源を
示す名前を、タイプ欄204にプロセスから使用要求さ
れた共用資源の使用タイプを、それぞれ設定する。そし
て、ステップ602で資源要求テーブル103に登録さ
れたプロセス104から共用資源108に対する使用要
求を待ち状態とするため、資源要求テーブル103の状
態欄205に“待ち”を設定する。最後に、ステップ8
03でプロセス104から使用要求が行われた共用資源
108が存在する共用装置105における共用装置側排
他制御部106に上述した要求メッセージ410を送信
することにより、当該共用資源108の使用要求を行
う。
【0039】図7は、プロセサ側排他制御部から要求メ
ッセージを受信したときの共用装置側排他制御部におけ
る処理の流れを示すフローチャートである。同図中、ス
テップ701で、受信した要求メッセージ510におけ
る資源名欄515で示される共用資源108に対応する
資源管理テーブル107を選択する。そして以下のステ
ップでは、ステップ701で選択された資源管理テーブ
ル107について参照や変更を行うものとする。次に、
ステップ702でプロセサ側排他制御部102からの共
用資源の使用要求を資源管理テーブル107に登録す
る。
【0040】図8は、共用装置側排他制御部における資
源管理テーブルへの使用要求の登録処理の流れを示すフ
ローチャートである。同図中、ステップ801で資源管
理テーブル107を調べ、使用要求が全く登録されてい
ない場合、ステップ807に分岐する。ステップ807
では、新たに登録する使用要求を資源管理テーブル10
7の先頭に登録する。すなわち、受付日時欄301,プ
ロセサID欄302,プロセスID303,タイプ欄3
04には、要求メッセージ510中の受付日時欄51
2,プロセサID欄513,プロセスID欄514,タ
イプ欄516の値を、それぞれ設定する。続いて、登録
した使用要求を共用資源の使用許可の待ち状態とするた
め、ステップ810で状態欄305に“待ち”を設定す
る。
【0041】一方、ステップ801で資源管理テーブル
107に既に使用要求が登録されていた場合、ステップ
802に分岐する。ステップ802〜806で、新たに
登録する使用要求の資源管理テーブル107内における
登録位置を決定する。すなわち、新たに登録する使用要
求の資源管理テーブル107内における登録位置は、共
用資源の使用許可の待ち状態の使用要求の中で、登録す
る使用要求に付加された共用資源の割当て順位の順序を
満足する位置とされる。ステップ802〜806では、
資源管理テーブル107に登録されている使用要求を先
頭から1個ずつ調べて、割当て順序を満足する位置を求
める。なお、ステップ802〜806において、着目す
る使用要求をRと称す。
【0042】まず、ステップ802で資源管理テーブル
107に登録されている先頭の使用要求をRとする。そ
して、ステップ803で資源管理テーブル107の状態
欄305を調べ、使用要求Rが共用資源の使用許可の待
ち状態であればステップ804を実行し、待ち状態でな
ければステップ805に分岐する。ステップ804で資
源管理テーブル107の受付日時欄301,プロセサI
D欄302,プロセサID欄を調べ、使用要求Rおよび
新たに登録する使用要求の共用資源の割当て順位を比較
し、使用要求Rの割当て順位の方が低ければ、使用要求
Rの直前の位置が新たに登録する使用要求の登録位置で
あるので、ステップ808に分岐して新たに登録する使
用要求を使用要求Rの直前に登録した後、共用資源の使
用許可の待ち状態とするためにステップ810で状態欄
305に“待ち”を設定する。なお、ステップ808で
資源管理テーブル107に登録する内容は、上述したス
テップ807と同一である。
【0043】ステップ804で使用要求Rが登録しよう
とする使用要求よりも共用資源の割当て順位が高い場合
は、ステップ805に分岐する。ステップ805では、
資源管理テーブル107を参照し、使用要求Rが最後尾
の使用要求であるか否かを調べる。そして、使用要求R
が資源管理テーブル107の最後尾の使用要求でなけれ
ば、使用要求Rの直後の使用要求を調べるためにステッ
プ806に分岐して、使用要求Rの直後の使用要求を新
たに使用要求Rと再定義した後、ステップ803へ戻
る。また、ステップ805で使用要求Rが最後尾の使用
要求であれば、登録する使用要求の登録位置は資源管理
テーブル107の最後尾となるので、ステップ809に
分岐して使用要求Rの直後に新たな使用要求を登録した
後、当該使用要求を共用資源の使用許可の待ち状態とす
るため、ステップ810で状態欄305に“待ち”を設
定する。なお、ステップ809で資源管理テーブル10
7に登録する内容は、上述したステップ807と同一で
ある。
【0044】以上が、使用要求を資源管理テーブル10
7に登録する図7中のステップ702の処理の詳細であ
る。
【0045】ステップ703〜706では、ステップ7
01および702で資源管理テーブル107に登録した
使用要求に対して共用資源108の使用を許可できるか
どうかを調べ、使用を許可できる場合は、ステップ71
3および714で共用資源の使用要求の発行元であるプ
ロセサ101に属するプロセサ側排他制御部102に当
該共用資源108の使用の許可を通知する。すなわち、
最初にステップ703で使用要求の登録位置が資源管理
テーブル107の先頭であるか否かを判定し、資源管理
テーブル107の先頭であれば、共用資源108の使用
を許可できるものとして、ステップ713に分岐する。
そして、ステップ713で使用要求の状態欄305を
“許可”に変更した後、ステップ714で資源管理テー
ブル107を参照してプロセサID欄302から求めた
当該使用要求を発行したプロセサ101に属するプロセ
サ側排他制御部102に対して要求許可メッセージ52
0を送信し、使用要求されていた共用資源108が使用
可能であることを通知する。ここで、要求許可メッセー
ジ520のプロセサID欄522には資源管理テーブル
107中のプロセスID欄303に設定されているもの
と同一のプロセスIDを設定し、資源名欄523には使
用を許可する共用資源108を示す名前を設定する。
【0046】ステップ703で使用要求の登録位置が資
源管理テーブル107の先頭でなければ、ステップ70
4に分岐する。ステップ704で、登録された使用要求
が共用資源の使用許可の待ち状態にある使用要求の中で
の先頭に位置する使用要求でなければ、登録した使用要
求よりも共用資源の割当て順位が高い使用要求に対して
共用資源の使用が許可されるのを待つ必要があるので、
そのまま処理を終了する。また、ステップ704で、登
録された使用要求が共用資源の使用許可の待ち状態にあ
る使用要求の中での先頭に位置する使用要求であれば、
当該使用要求に対して共用資源の使用を許可できるか否
かをステップ705およびステップ706で調べる。こ
の場合、資源管理テーブル107の先頭部分に先に登録
されている共用資源の使用を許可された使用要求の使用
タイプが“SHR”であり、かつ新たに登録した使用要
求の使用タイプが“SHR”であれば、新たに登録した
使用要求に共用資源の使用を許可することができる。す
なわち、ステップ705で資源管理テーブル107に新
たに登録した使用要求の使用タイプが“SHR”であれ
ば続いてステップ706を実行し、“SHR”でなけれ
ばステップ707に分岐する。ステップ706で資源管
理テーブル107の状態欄305,タイプ欄304を参
照して、共用資源108の使用を既に許可している使用
要求の使用タイプが“SHR”であれば、資源管理テー
ブル107に新たに登録した使用要求に共用資源の使用
を許可可能であるため、前述したステップ713,71
4を実行する。また、ステップ706で、共用資源10
8の使用を既に許可している使用要求の使用タイプが
“SHR”でなければ、ステップ707以降の処理を実
行する。
【0047】ステップ707〜712は、共用資源の使
用許可を待っている使用要求よりも共用資源の割当て順
位が低い使用要求に対して共用資源108の使用が許可
されている場合におけるデッドロックの発生の可能性を
解消するための処理であり、共用資源の使用許可を待っ
ている使用要求よりも共用資源の割当て順位が低い使用
要求に対して共用資源108の使用許可を応答したプロ
セサ101に属するプロセサ側排他制御部102に許可
取消しメッセージ520を送信し、当該共用資源108
の使用許可の取消しを要求する。すなわち、ステップ7
07で、資源管理テーブル107の先頭の使用要求を、
共用資源の使用許可を待っている使用要求よりも共用資
源の割当て順位が低い、共用資源の使用が許可されてい
る使用要求であるかどうかを調べるために着目する使用
要求Rとする。そしてステップ708で、資源管理テー
ブル107の受付日時欄301,プロセサID欄30
2,プロセスID欄303を参照して、上記使用要求R
と資源管理テーブル107に今回登録した使用要求の共
用資源との割当て順序関係を決定し、使用要求Rの共用
資源の割当て順位が今回資源管理テーブル107に登録
した使用要求の共用資源の割当て順位よりも低ければス
テップ709を実行し、高ければステップ711に分岐
する。
【0048】ステップ709で、資源管理テーブル10
7の状態欄305を参照して使用要求Rが許可状態であ
るかを判定し、許可状態であれば使用要求Rの使用許可
を取り消すことができる可能性があるのでステップ71
0を実行し、許可状態でなければステップ711に分岐
する。ステップ710で、資源管理テーブル107を参
照し、共用資源の使用を許可した使用要求Rのプロセサ
ID欄302が示すプロセサ101に属するプロセサ側
排他制御部102に対して許可取消しメッセージ520
を送信する。ここで、送信する許可取消しメッセージ5
20のプロセスID欄522には使用要求Rのプロセス
ID欄303に設定されているものと同一のプロセスI
Dを設定し、資源名欄523には使用許可の取消しを要
求する共用資源を示す名前を設定する。ステップ711
で、資源管理テーブル107に登録された共用資源の使
用許可状態となっているすべての使用要求について、ス
テップ708〜710の処理が終了したかを判定して、
処理が終了していれば、要求メッセージ510の受信処
理を終了し、処理が終了していなければ、ステップ71
2を実行する。ステップ712では、まだステップ70
8〜710の処理が完了していない共用資源の使用許可
状態となっている使用要求を処理するため、使用要求R
の直後に登録されている使用要求を新たに使用要求Rと
定義し、ステップ708へ戻る。
【0049】以上が、プロセサ側排他制御部102から
要求メッセージ510を受信したときの共用装置側排他
制御部106における処理である。
【0050】図9は、共用装置側排他制御部から要求許
可メッセージを受信したときのプロセサ側排他制御部に
おける処理の流れを示すフローチャートである。同図
中、ステップ901でプロセサ側排他制御部102は、
受信した要求許可メッセージ520のプロセスID欄5
22のプロセスIDおよび資源名欄523の資源名と一
致するエントリを資源要求テーブル103から求め、当
該エントリの状態欄205を“許可”に変更すること
で、当該エントリの使用要求で要求した共用資源108
の使用が共用装置側排他制御部106から許可されたこ
とを記憶する。そして、ステップ902で資源要求テー
ブル103を調べ、要求許可メッセージ520のプロセ
スID欄522のプロセスIDで示されるプロセス10
4が使用要求した他の共用資源が使用許可されていない
かを判定する。そして、プロセス104が使用要求して
いたすべての共用資源が使用許可の状態でなければ、要
求許可メッセージ受信処理を終了し、すべての共用資源
が使用許可されるのを待つ。一方、プロセス104が使
用要求していたすべての共用資源の使用が許可されてい
れば、ステップ903以降の処理を実行する。
【0051】ステップ903では、共用装置側排他制御
部106から使用を許可されたプロセス104からのす
べての使用要求に対応する資源要求テーブル103の状
態欄205を“使用”に変更し、ステップ904で共用
資源108を要求したプロセス104に共用資源の使用
を許可し、共用装置側排他制御部106からの許可取消
しメッセージ520による使用許可取消し要求に肯定的
に対応できないことを表示して、要求許可メッセージ受
信処理を終了する。
【0052】図10は、共用装置側排他制御部から許可
取消しメッセージを受信したときのプロセサ側排他制御
部における処理の流れを示すフローチャートであり、使
用要求に付与された共用資源の割当て順位と実際の共用
資源の割当て順位との不一致が検出され、一旦使用を許
可した共用資源の使用許可の取消しを要求する許可取消
しメッセージ520を共用装置側排他制御部106から
受信した場合のプロセサ側排他制御部102における処
理を説明するためのものである。
【0053】図10において、最初にステップ1001
で、受信した許可取消しメッセージ520中のプロセス
ID欄522および資源名欄523と、プロセスID欄
201および資源名欄203に設定されているプロセス
IDおよび資源名がともに一致する資源要求テーブル1
03のエントリを求め、状態欄205が“使用”である
か否かを調べる。状態欄205が“使用”であれば、許
可取消しメッセージ520で使用許可の取消しを要求さ
れた共用資源は既にプロセスに使用を許可しているの
で、ステップ1004に分岐し、使用許可取消し要求に
応じられないことを許可取消し応答メッセージ540で
共用資源側排他制御部106に通知する。一方、ステッ
プ1001で状態欄205が“使用”でなければ(“許
可”である)、許可取消しメッセージ520で使用許可
の取消しを要求された共用資源の使用をプロセスに許可
していないので、使用の許可を取り消すことができる。
ステップ1001で状態欄205が“使用”であれば、
共用資源の使用許可を取り消すために、ステップ100
2へ分岐する。ステップ1002で状態欄205を“待
ち”に変更し、ステップ1003で使用要求許可取消し
要求に応じられたことを許可取消し応答メッセージ54
0で共用装置側排他制御部106に通知する。ここで、
共用資源側排他制御部106に送信する許可取消し応答
メッセージ540には、メッセージタイプ欄541に許
可取消しメッセージを示す識別子を、プロセサID欄5
42に当該メッセージを送信するプロセサ104を特定
するプロセサIDを、プロセスID欄543に共用資源
108の使用許可の取消しを要求されたプロセスを特定
するプロセスIDを、資源名欄544に使用許可の取消
しを要求された共用資源108を示す名前を、応答欄5
45に使用許可取消し要求に対するプロセサ側排他制御
部102の成功あるいは失敗の応答を、それぞれ設定す
る。
【0054】図11は、プロセサ側排他制御部から解放
メッセージあるいは許可取消し応答メッセージを受信し
たときの共用装置側排他制御部における処理の流れを示
すフローチャートである。
【0055】図11において、許可取消し応答メッセー
ジ540の受信処理の概要は、ステップ1121で資源
管理テーブル107を選択し、ステップ1122で使用
許可取消しの成功または失敗を判定し、使用許可取消し
が失敗であればステップ1125で使用許可の取消し不
可を示すために使用要求の状態を使用状態に変更する一
方、使用許可取消しが成功であれば、ステップ1123
および1124で使用許可取消しが成功した使用要求を
再スケジュールし、ステップ1103〜1114で共用
資源の使用を許可できる使用許可待ち状態の使用要求に
対して共用資源の使用を許可するものである。
【0056】図11において、最初にステップ1121
で許可取消し応答メッセージ540の資源名欄544の
名前で示される共用資源に対応する資源管理テーブル1
07を選択する。そして、ステップ1122で許可取消
し応答メッセージ540の応答欄545における許可取
消しメッセージ520に対するプロセサ側排他制御部1
02からの応答を参照し、成功であればステップ112
3に分岐し、失敗であればステップ1125を実行し
て、処理を終了する。ステップ1125では、既に共用
資源がプロセスに使用されており、使用許可を取消すこ
とが不可能な使用要求に対して再度使用許可の取消しを
要求するという無駄な処理を抑止するために、許可取消
し応答メッセージ540中のプロセサID欄542およ
びプロセスID欄543と、プロセサID欄302およ
びプロセスID欄303に設定されているプロセサID
およびプロセスIDがともに一致する使用要求を資源管
理テーブル107から求め、当該使用要求の状態欄30
5を“使用”に変更する。
【0057】ステップ1123では、使用許可を取消す
ことができた使用要求を資源管理テーブル107から一
旦取り出し、ステップ1124で図8に示した登録手順
によって資源管理テーブル107に再登録する。そし
て、ステップ1103で資源管理テーブル107に使用
要求が何も登録されていなければ、共用資源の使用を許
可する使用要求が存在しないので、処理を終了する。ま
た、ステップ1103で資源登録テーブル107に使用
要求が登録されていれば、ステップ1104を実行す
る。ステップ1104では、資源管理テーブル107の
先頭に登録された使用要求の状態欄305を調べ、共用
資源の使用許可の待ち状態でない(使用状態あるいは許
可状態である)場合、先頭部分の使用状態あるいは許可
状態の使用要求が資源管理テーブル107から削除され
るまでは後続する使用許可の待ち状態の使用要求に共用
資源の使用を許可できないので、処理を終了する。ま
た、ステップ1104で、資源管理テーブル107の先
頭の使用要求が共用資源の使用許可の待ちの状態であれ
ば、共用資源の使用を許可するために、ステップ110
5以降の処理を実行する。
【0058】ステップ1105で資源管理テーブル10
7の先頭の使用要求の状態欄305を“許可”に変更し
た後、ステップ1106で許可状態に変更された当該使
用要求の発行元のプロセサ101に属するプロセサ側排
他制御部102に要求許可メッセージ520を送信し
て、共用資源108の使用許可を通知する。この要求許
可メッセージ520には、メッセージタイプ欄521に
当該メッセージが要求許可メッセージであることを示す
識別子を、プロセスID欄522に共用資源の使用を許
可するプロセス104を特定するプロセスIDを、資源
名欄523に使用を許可する共用資源を示す名前を、そ
れぞれ設定する。続いてステップ1107で、共用資源
の使用を許可した先頭の使用要求のタイプ欄304が
“SHR”であるかを判定し、使用タイプが“SHR”
でない(“EXC”である)場合、後続する使用要求に
対して同時に共用資源の使用を許可することが不可能な
ので、処理を終了する。また、ステップ1107で、共
用資源の使用を許可した先頭の使用要求の使用タイプが
“SHR”であれば、後続する使用要求に共用資源の使
用を同時に許可できる可能性があるので、ステップ11
08を実行する。ステップ1108で資源管理テーブル
107に使用要求が2個以上存在するかを調べ、使用要
求が1個しか存在しなければ共用資源の使用を許可しな
ければならない可能性がある後続の使用要求が存在しな
いので、処理を終了する。また、ステップ1108で資
源管理テーブル107に使用要求が2個以上存在すれ
ば、後続の使用要求に共用資源の使用を許可する必要が
あるかを調べる必要があるので、ステップ1109以降
の処理を実行する。
【0059】ステップ1109〜1114では、資源管
理テーブル107の先頭から2番目の使用要求から使用
タイプが“SHR”で連続する使用要求に対して共用資
源108の使用を許可する。最初にステップ1109
で、資源管理テーブル107の先頭から2番目の使用要
求をステップ1110〜1114の処理対象とする使用
要求Rと定義する。そして、ステップ1110で資源管
理テーブル107における使用要求Rの状態欄305を
参照し、使用要求Rの使用タイプが“SHR”でない
(“EXC”である)場合、使用要求Rに共用資源の使
用を許可できず、同時に使用要求Rに後続する使用要求
に共用資源の使用を許可する必要もないので、処理を終
了する。また、ステップ1110で使用要求Rの使用タ
イプが“SHR”であれば、ステップ1111以降の処
理を実行する。
【0060】ステップ1111で資源管理テーブル10
7の使用要求Rのタイプ欄305を“許可”に変更した
後、ステップ1112で使用要求Rの発行元であるプロ
セサID欄302のプロセサIDで示されるプロセサ1
01に属するプロセサ側排他制御部102に対して要求
許可メッセージ520を送信し、使用要求Rで要求され
た共用資源の使用を許可することを通知する。ここで、
要求許可メッセージ520のメッセージタイプ欄52
1,プロセスID欄522,資源名欄523に設定する
内容はステップ1106と同一である。続くステップ1
113で資源管理テーブル107を参照し、使用要求R
に後続する使用要求が存在しなければ、共用資源の使用
を許可する使用要求が存在しないので、処理を終了す
る。また、ステップ1113で使用要求Rに後続する使
用要求が存在すれば、ステップ1114で使用要求Rに
後続する使用要求を新たに使用要求Rとして再定義し、
後続する使用要求へ共用資源の使用を許可する必要があ
るかを調べるために、ステップ1110へ戻る。
【0061】以上が、プロセサ側排他制御部102から
許可取消し応答メッセージを受信したときの共用資源側
排他制御部106における処理である。
【0062】次に、プロセス104が共用資源108を
使用を終了して後の処理について述べる。プロセスが共
用資源の使用を終了すると、プロセス104は共用資源
108の解放をプロセサ側排他制御部102に要求す
る。
【0063】図12は、プロセスから共用資源の解放要
求を受付けたときのプロセサ側排他制御部における処理
の流れを示すフローチャートである。同図中、ステップ
1201でプロセサ側排他制御部102は資源要求テー
ブル103から共用資源の使用要求を削除した後、ステ
ップ1202で解放メッセージ530を共用装置側排他
制御部106に送信し、共用資源の使用を終了したこと
を通知する。ここで、送信する解放メッセージ530に
は、メッセージタイプ欄531に当該メッセージが解放
メッセージ530であることを示すメッセージ識別子
を、プロセサID欄532に共用資源108を解放する
プロセス104が存在するプロセサ101を特定するプ
ロセサIDを、プロセスID欄533に共用資源108
を解放するプロセス104を特定するプロセスIDを、
資源名欄534に解放する共用資源を示す名前を、それ
ぞれ設定する。
【0064】以上が、プロセス104から共用資源10
8の解放要求を受け付けたプロセサ側排他制御部102
における処理である。
【0065】次に、プロセサ側排他制御部102から解
放メッセージ530を受信したときの共用装置側排他制
御部106における処理の流れについて、図11を用い
て説明する。図11において、ステップ1101で共用
装置側排他制御部106は、受信した解放メッセージ5
30中の資源名欄534の名前で示される共用資源10
8に対応する資源管理テーブル107を選択した後、ス
テップ1102で解放メッセージ530中のプロセサI
D欄532およびプロセスID欄533と、プロセサI
D欄302およびプロセスID欄303に設定されたプ
ロセサIDおよびプロセスIDが一致する使用要求のエ
ントリを資源管理テーブル107から求め、求めた使用
要求を資源管理テーブル107から削除する。そして、
ステップ1103〜1114で、共用資源の使用許可の
待ち状態の使用要求に対して共用資源の使用を許可でき
る場合、共用資源の使用を許可する。なお、ステップ1
103〜1114の処理については、許可取消し応答メ
ッセージ受信処理の説明の場合と同様である。
【0066】以上が、プロセサ側排他制御部102から
解放メッセージ530を受信した共用装置側排他制御部
106における処理である。
【0067】
【発明の効果】以上詳しく説明したように、本発明の共
用資源排他制御システムによれば、一以上のプロセスが
実行されるプロセサおよび複数のプロセスから共用され
る一以上の共用資源を有する共用装置から構成されるコ
ンピュータシステムにおいて、各々のプロセスからの共
用資源の使用要求が登録される資源要求テーブルの更新
と、各々の共用資源を有する共用装置との前記使用要求
に関するメッセージ交換と、各々のプロセスへの共用資
源の使用許可とを行うプロセサ側排他制御部をそれぞれ
のプロセサに具備するとともに、前記プロセサ側排他制
御部との前記使用要求に関するメッセージ交換と、任意
に定義された各々の共用資源について当該共用資源のプ
ロセスによる使用状態を管理するための資源管理テーブ
ルの更新とを行う共用装置側排他制御部をそれぞれの共
用装置に具備し、システムに付された割当て順序から決
定される優先順位が最高となる最先使用要求に共用資源
の割当てを行う一方、すでに共用資源の割当てが行われ
ている使用要求の優先順位が最高でない場合には当該割
当ての取消しおよび前記最先使用要求への再割当てを試
行し、プロセスに必要なすべての共用資源の割当てが完
了してから当該プロセスの実行を開始する。
【0068】したがって、排他制御の単位とする共用資
源を任意に定義し、各々の共用資源について資源管理テ
ーブルを当該共用資源を含む共用装置内に設けておくこ
とにより、装置単位よりも小さな任意の単位のみを対象
とする排他制御を実現することができるという効果が得
られる。また、各プロセサ側排他制御部は所属するプロ
セサ内のプロセスからの共用資源の使用要求のみについ
て、各共用装置側排他制御部は所属する共用装置内の共
用資源のみについて、それぞれ排他制御を行うことによ
り、特定のプロセサに排他制御の処理が集中することが
なくなるので、排他制御による負荷をシステム内に分散
させることができるという効果が得られる。そして同時
に、いずれかのプロセサ側排他制御部または共用装置側
排他制御部に障害が発生してもすべての排他制御が中断
することはないので、システム全体の信頼性を向上させ
ることができるという効果が得られる。さらに、システ
ムに付された割当て順序から決定される優先順位が最高
となる最先使用要求を行った最先順位のプロセスに共用
資源の使用を許可することにより、各々のプロセサから
共用資源の占有状態のチェックを繰り返し行う必要がな
くなるので、共用資源待ち状態にあるプロセサに対する
負荷を抑制することができるとともに、すでに共用資源
の割当てが行われている使用要求の優先順位が最高でな
い場合には当該割当ての取消しおよび前記最先使用要求
への再割当てを試行し、プロセスに必要なすべての共用
資源の割当てが完了してから当該プロセスの実行を開始
するので、上述した“追い越し”や“飢餓状態”の発生
を防止することができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の共用資源排他制御システムの一構成例
を示すブロック図である。
【図2】図1中の資源要求テーブルの一例を示す図であ
る。
【図3】図1中の資源管理テーブルの一例を示す図であ
る。
【図4】図1中の資源管理テーブルにおける使用要求の
登録順序を説明するための図である。
【図5】図1中のプロセサ側排他制御部と共用装置側排
他制御部との間でやり取りされるメッセージの形式の一
例を示す図である。
【図6】プロセスから共用資源の使用要求を受付けたと
きのプロセサ側排他制御部における処理の流れを示すフ
ローチャートである。
【図7】プロセサ側排他制御部から要求メッセージを受
信したときの共用装置側排他制御部における処理の流れ
を示すフローチャートである。
【図8】共用装置側排他制御部における資源管理テーブ
ルへの使用要求の登録処理の流れを示すフローチャート
である。
【図9】共用装置側排他制御部から要求許可メッセージ
を受信したときのプロセサ側排他制御部における処理の
流れを示すフローチャートである。
【図10】共用装置側排他制御部から許可取消しメッセ
ージを受信したときのプロセサ側排他制御部における処
理の流れを示すフローチャートである。
【図11】プロセサ側排他制御部から解放メッセージあ
るいは許可取消し応答メッセージを受信したときの共用
装置側排他制御部における処理の流れを示すフローチャ
ートである。
【図12】プロセスから共用資源の解放要求を受付けた
ときのプロセサ側排他制御部における処理の流れを示す
フローチャートである。
【図13】従来の共用資源排他制御システムの一構成例
(その1)を示す図である。
【図14】従来の共用資源排他制御システムの一構成例
(その2)を示す図である。
【符号の説明】
101A,101B,....,101N プロセサ 102A,102B,....,102N プロセサ側排他
制御部 103A,103B,....,103N 資源要求テーブ
ル 104A,104B,....,104N プロセス 105A,105B,....,105N 共用装置 106A,106B,....,106N 共用装置側排他
制御部 107A,107B,....,107N 資源管理テーブ
ル 108A,108B,....,108N 共用資源

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 一以上のプロセスが実行されるプロセサ
    および複数のプロセスから共用される一以上の共用資源
    を有する共用装置から構成されるコンピュータシステム
    において、 各々のプロセスからの共用資源の使用要求が登録される
    資源要求テーブルの更新と、各々の共用資源を有する共
    用装置との前記使用要求に関するメッセージ交換と、各
    々のプロセスへの共用資源の使用許可とを行うプロセサ
    側排他制御部をそれぞれのプロセサに具備するととも
    に、 前記プロセサ側排他制御部との前記使用要求に関するメ
    ッセージ交換と、任意に定義された各々の共用資源につ
    いて当該共用資源のプロセスによる使用状態を管理する
    ための資源管理テーブルの更新とを行う共用装置側排他
    制御部をそれぞれの共用装置に具備し、 システムに付された割当て順序から決定される優先順位
    が最高となる最先使用要求に共用資源の割当てを行う一
    方、すでに共用資源の割当てが行われている使用要求の
    優先順位が最高でない場合には当該割当ての取消しおよ
    び前記最先使用要求への再割当てを試行し、プロセスに
    必要なすべての共用資源の割当てが完了してから当該プ
    ロセスの実行を開始することを特徴とする共用資源排他
    制御システム。
JP30863894A 1994-12-13 1994-12-13 共用資源排他制御システム Pending JPH08166929A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30863894A JPH08166929A (ja) 1994-12-13 1994-12-13 共用資源排他制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30863894A JPH08166929A (ja) 1994-12-13 1994-12-13 共用資源排他制御システム

Publications (1)

Publication Number Publication Date
JPH08166929A true JPH08166929A (ja) 1996-06-25

Family

ID=17983469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30863894A Pending JPH08166929A (ja) 1994-12-13 1994-12-13 共用資源排他制御システム

Country Status (1)

Country Link
JP (1) JPH08166929A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155693A (ja) * 1998-11-18 2000-06-06 Fujitsu Ltd メッセージ制御装置
JP2015220707A (ja) * 2014-05-21 2015-12-07 日本電信電話株式会社 資源割当装置およびその動作方法
US20220121493A1 (en) * 2020-10-15 2022-04-21 Nxp Usa, Inc. Method and system for accelerator thread management

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155693A (ja) * 1998-11-18 2000-06-06 Fujitsu Ltd メッセージ制御装置
JP2015220707A (ja) * 2014-05-21 2015-12-07 日本電信電話株式会社 資源割当装置およびその動作方法
US20220121493A1 (en) * 2020-10-15 2022-04-21 Nxp Usa, Inc. Method and system for accelerator thread management
US11861403B2 (en) * 2020-10-15 2024-01-02 Nxp Usa, Inc. Method and system for accelerator thread management

Similar Documents

Publication Publication Date Title
US5454108A (en) Distributed lock manager using a passive, state-full control-server
US7325064B2 (en) Distributed locking protocol with asynchronous token prefetch and relinquish
US5734909A (en) Method for controlling the locking and unlocking of system resources in a shared resource distributed computing environment
JP3074636B2 (ja) 並列計算機システム
US7209990B2 (en) Maintain fairness of resource allocation in a multi-node environment
US6697901B1 (en) Using secondary resource masters in conjunction with a primary resource master for managing resources that are accessible to a plurality of entities
US5630166A (en) Controlling requests for access to resources made by multiple processors over a shared bus
JPH08166929A (ja) 共用資源排他制御システム
EP0013301B1 (en) Multiprocessor system with enqueue facility for access to sharable data facilities
Chang et al. A hybrid approach to mutual exclusion for distributed systems
EP0286807A2 (en) Method for regulating access by concurrent transactions to resources
US20200097336A1 (en) Lock manager for multi-core architectures
JP4039145B2 (ja) マルチプロセッサシステム及びそれに用いる負荷分散制御方法並びにそのプログラム
JP3904251B2 (ja) 排他制御方法
JP3036468B2 (ja) 排他制御処理装置及び排他制御処理方法並びに排他制御処理プログラムを記憶した記憶媒体
JP2898012B2 (ja) 計算機資源の排他制御方式
EP1228429B1 (en) Sharing resources among entities
JP3381652B2 (ja) ロック制御方式
JPH08202567A (ja) システム間ロック処理方法
JPH0351919A (ja) プロセス間通信管理処理方式
JP2518268B2 (ja) 共用資源プ−ル管理方式
JPH11353197A (ja) 共有プール資源制御方式
JPS63116264A (ja) マルチプロセサシステムにおける資源管理方式
JPH02194442A (ja) 共有資源制御装置
JPH0328956A (ja) 資源の排他制御方法