JPH06149765A - 共有メモリ排他制御自動解除方式 - Google Patents
共有メモリ排他制御自動解除方式Info
- Publication number
- JPH06149765A JPH06149765A JP4301900A JP30190092A JPH06149765A JP H06149765 A JPH06149765 A JP H06149765A JP 4301900 A JP4301900 A JP 4301900A JP 30190092 A JP30190092 A JP 30190092A JP H06149765 A JPH06149765 A JP H06149765A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- storage unit
- memory pool
- access
- memory
- 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.)
- Withdrawn
Links
Landscapes
- Memory System (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】排他制御中のプロセッサが障害を発生した場
合、他のプロセッサがこれを認識して当該排他制御を解
除し、正常なプロセッサの処理を継続可能とし、システ
ム全体の処理能力を向上させるこを技術的目的とする。 【構成】共有メモリ(1)の各メモリプール(4)に、
当該メモリプール(4)が排他制御中か否かを示す状態
表示手段(4a)、当該メモリプール(4)を排他制御
しているプロセッサ(2)を特定するプロセッサIDを
格納する第1のプロセッサID格納部(4b)を備える
と共に、前記各プロセッサ(2)には、前記第1のプロ
セッサID格納部(4b)のプロセッサIDを格納する
バッファ(2a)、他のプロセッサ(2)がアクセス状
態にあるメモリプール(4)へアクセス要求を行った回
数を計数するアクセスカウンタ(2b)とを備えてな
る。
合、他のプロセッサがこれを認識して当該排他制御を解
除し、正常なプロセッサの処理を継続可能とし、システ
ム全体の処理能力を向上させるこを技術的目的とする。 【構成】共有メモリ(1)の各メモリプール(4)に、
当該メモリプール(4)が排他制御中か否かを示す状態
表示手段(4a)、当該メモリプール(4)を排他制御
しているプロセッサ(2)を特定するプロセッサIDを
格納する第1のプロセッサID格納部(4b)を備える
と共に、前記各プロセッサ(2)には、前記第1のプロ
セッサID格納部(4b)のプロセッサIDを格納する
バッファ(2a)、他のプロセッサ(2)がアクセス状
態にあるメモリプール(4)へアクセス要求を行った回
数を計数するアクセスカウンタ(2b)とを備えてな
る。
Description
【0001】
【産業上の利用分野】本発明は、複数のプロセッサを備
え、それらを並列に起動して処理を行うマルチプロセッ
サシステムに関し、特に共有メモリへ任意のプロセッサ
がアクセスしている際に、他のプロセッサがアクセスす
ることを防止する排他制御を行うマルチプロセッサシス
テムに関する。
え、それらを並列に起動して処理を行うマルチプロセッ
サシステムに関し、特に共有メモリへ任意のプロセッサ
がアクセスしている際に、他のプロセッサがアクセスす
ることを防止する排他制御を行うマルチプロセッサシス
テムに関する。
【0002】
【従来の技術】計算機システムは、メモリ、プロセッ
サ、入出力装置等からなるハードウェア資源(以下、リ
ソースと記す)と、個々のタスクにリソースを割り当
て、その動作を制御する制御プログラム、すなわちソフ
トウェアとから構成されている。
サ、入出力装置等からなるハードウェア資源(以下、リ
ソースと記す)と、個々のタスクにリソースを割り当
て、その動作を制御する制御プログラム、すなわちソフ
トウェアとから構成されている。
【0003】最近では、複数のタスクを単一のプロセッ
サで時分割多重方式により並列処理可能とする機能をソ
フトウェアにもたせたマルチタスク方式が知られてい
る。このマルチタスク方式では、複数のタスク間でリソ
ースを効率よく共用することが可能となり、演算処理を
高速に行え、計算機システム全体の処理能力を向上させ
るという利点がある。
サで時分割多重方式により並列処理可能とする機能をソ
フトウェアにもたせたマルチタスク方式が知られてい
る。このマルチタスク方式では、複数のタスク間でリソ
ースを効率よく共用することが可能となり、演算処理を
高速に行え、計算機システム全体の処理能力を向上させ
るという利点がある。
【0004】しかし、近年では情報処理量が著しく増加
してきたために、一つのプロセッサでこれらの情報処理
を行うと非常に時間がかかるという問題が出てきたた
め、プロセッサを複数備えたマルチプロセッサシステム
が普及してきている。
してきたために、一つのプロセッサでこれらの情報処理
を行うと非常に時間がかかるという問題が出てきたた
め、プロセッサを複数備えたマルチプロセッサシステム
が普及してきている。
【0005】このマルチプロセッサシステムには、主記
憶装置等のリソースを複数のプロセッサに共用させて運
用するものがある。この具体的な構成を図12に示す。
憶装置等のリソースを複数のプロセッサに共用させて運
用するものがある。この具体的な構成を図12に示す。
【0006】同図において、マルチプロセッサシステム
は、N個のプロセッサと、これらのプロセッサが共用す
べき共有メモリを共通バスにより接続して構成される。
ここで、前記した共有メモリは、独立した複数のメモリ
プール群から構成されており、複数のプロセッサが同時
に共有メモリの同一メモリプールにアクセスすることを
防止するため、すなわち、任意のプロセッサがメモリプ
ールにアクセスしている際に、他のプロセッサが同一の
メモリプールへアクセスすることを防止する排他制御が
行われる。
は、N個のプロセッサと、これらのプロセッサが共用す
べき共有メモリを共通バスにより接続して構成される。
ここで、前記した共有メモリは、独立した複数のメモリ
プール群から構成されており、複数のプロセッサが同時
に共有メモリの同一メモリプールにアクセスすることを
防止するため、すなわち、任意のプロセッサがメモリプ
ールにアクセスしている際に、他のプロセッサが同一の
メモリプールへアクセスすることを防止する排他制御が
行われる。
【0007】この排他制御とは、各メモリプールの先頭
アドレス領域に排他制御フラグを設け、このフラグが”
0”の場合は排他制御が行われておらずアクセスが可能
であることを示す。一方、このフラグが”1”の場合は
排他制御中、すなわち任意のプロセッサが当該メモリプ
ールにアクセス中であることを示すようにしている。
アドレス領域に排他制御フラグを設け、このフラグが”
0”の場合は排他制御が行われておらずアクセスが可能
であることを示す。一方、このフラグが”1”の場合は
排他制御中、すなわち任意のプロセッサが当該メモリプ
ールにアクセス中であることを示すようにしている。
【0008】これにより、各プロセッサは、自身のアク
セスしようとするメモリプールの先頭アドレスの排他制
御フラグを参照して、このフラグが”0”ならば、当該
メモリプールにアクセスすると共に、このフラグを”
1”に変更する。そして、アクセス終了後に再びフラグ
を”0”に戻すという処理を行う。
セスしようとするメモリプールの先頭アドレスの排他制
御フラグを参照して、このフラグが”0”ならば、当該
メモリプールにアクセスすると共に、このフラグを”
1”に変更する。そして、アクセス終了後に再びフラグ
を”0”に戻すという処理を行う。
【0009】一方、アクセスしようとした際に排他制御
フラグが”1”の場合は、当該プロセッサはその起動を
一旦休止して一定時間経過後に再度排他制御フラグを参
照する。ここでフラグが”0”ならば当該メモリプール
にアクセスし、”1”ならば再び一定時間の休止を行
う。
フラグが”1”の場合は、当該プロセッサはその起動を
一旦休止して一定時間経過後に再度排他制御フラグを参
照する。ここでフラグが”0”ならば当該メモリプール
にアクセスし、”1”ならば再び一定時間の休止を行
う。
【0010】これにより複数のプロセッサによる共有メ
モリの共用が行え、当該システムの処理をスムースに行
うことが可能となっている。
モリの共用が行え、当該システムの処理をスムースに行
うことが可能となっている。
【0011】
【発明が解決しようとする課題】しかし、前記したシス
テムでは、任意のメモリプールにアクセスしているプロ
セッサがダウンした場合、排他制御フラグは”1”に固
定されたままとなり、他の正常なプロセッサが当該メモ
リプールにアクセスすることを妨害するという問題点が
あり、これにより当該システム全体の処理能力の低下を
招いていた。
テムでは、任意のメモリプールにアクセスしているプロ
セッサがダウンした場合、排他制御フラグは”1”に固
定されたままとなり、他の正常なプロセッサが当該メモ
リプールにアクセスすることを妨害するという問題点が
あり、これにより当該システム全体の処理能力の低下を
招いていた。
【0012】そこで、本発明は、前記問題点に鑑みてな
されたものであり、排他制御中のプロセッサが何等かの
原因で障害を発生した場合、他のプロセッサがこれを認
識して当該排他制御を解除することにより、正常なプロ
セッサにより当該システムの処理を継続可能とし、シス
テム全体の処理能力を向上させるこを技術的課題とす
る。
されたものであり、排他制御中のプロセッサが何等かの
原因で障害を発生した場合、他のプロセッサがこれを認
識して当該排他制御を解除することにより、正常なプロ
セッサにより当該システムの処理を継続可能とし、シス
テム全体の処理能力を向上させるこを技術的課題とす
る。
【0013】
【課題を解決するための手段】本発明は、前記課題を解
決するために以下のようにしたこれを図1の原理図に基
いて説明する。
決するために以下のようにしたこれを図1の原理図に基
いて説明する。
【0014】本発明にかかるマルチプロセッサシステム
は、複数のメモリプール4を有する共有メモリ1と、複
数のプロセッサ2とから構成される。前記課題を解決す
る第一の手段は、各メモリプール4には、状態表示手段
4a、プロセッサID格納部4bを備える。
は、複数のメモリプール4を有する共有メモリ1と、複
数のプロセッサ2とから構成される。前記課題を解決す
る第一の手段は、各メモリプール4には、状態表示手段
4a、プロセッサID格納部4bを備える。
【0015】一方、各プロセッサ2には、バッファ2
a、アクセスカウンタ2bを備える。上記した状態表示
手段4aは、当該メモリプール4が任意のプロセッサ2
によりアクセス状態にあるか否かを示す。
a、アクセスカウンタ2bを備える。上記した状態表示
手段4aは、当該メモリプール4が任意のプロセッサ2
によりアクセス状態にあるか否かを示す。
【0016】プロセッサID格納部4bは、当該メモリ
プール4にアクセスしているプロセッサ2を特定するプ
ロセッサIDを格納するものである。また、バッファ2
aは、プロセッサID格納部4bに格納されているプロ
セッサIDを複写・登録するものである。
プール4にアクセスしているプロセッサ2を特定するプ
ロセッサIDを格納するものである。また、バッファ2
aは、プロセッサID格納部4bに格納されているプロ
セッサIDを複写・登録するものである。
【0017】アクセスカウンタ2bは、特定のメモリプ
ール4に対するアクセス要求の発行回数を計数する。さ
らに、各メモリプール4には、任意のプロセッサ2のア
クセスを許容した際にインクリメントされるカウンタ4
cを設けるようにしてもよい。
ール4に対するアクセス要求の発行回数を計数する。さ
らに、各メモリプール4には、任意のプロセッサ2のア
クセスを許容した際にインクリメントされるカウンタ4
cを設けるようにしてもよい。
【0018】次に、前記課題を解決するための第二の手
段として、各メモリプール4には、状態表示手段4a、
第1のプロセッサID格納部4b、第2のプロセッサI
D格納部4dを備える。
段として、各メモリプール4には、状態表示手段4a、
第1のプロセッサID格納部4b、第2のプロセッサI
D格納部4dを備える。
【0019】一方、各プロセッサ2には、バッファ2
a、アクセスカウンタ2bを備えるようにする。ここ
で、上記した状態表示手段4aは、前述の第1の解決手
段同様、当該メモリプール4が任意のプロセッサ2によ
りアクセス状態にあるか否かを示す。
a、アクセスカウンタ2bを備えるようにする。ここ
で、上記した状態表示手段4aは、前述の第1の解決手
段同様、当該メモリプール4が任意のプロセッサ2によ
りアクセス状態にあるか否かを示す。
【0020】第1のプロセッサID格納部4bは、当該
メモリプール4にアクセスしているプロセッサ2のプロ
セッサIDを格納するものである。第2のプロセッサI
D格納部4dは、当該メモリプール4にアクセスした状
態で障害を発生したプロセッサ2のプロセッサIDを格
納するものである。
メモリプール4にアクセスしているプロセッサ2のプロ
セッサIDを格納するものである。第2のプロセッサI
D格納部4dは、当該メモリプール4にアクセスした状
態で障害を発生したプロセッサ2のプロセッサIDを格
納するものである。
【0021】また、バッファ2aは、第1のプロセッサ
ID格納部4bに登録されているプロセッサIDを複写
・格納する。アクセスカウンタ2bは、当該メモリプー
ル4に対するアクセス要求の発行回数を計数するもので
ある。
ID格納部4bに登録されているプロセッサIDを複写
・格納する。アクセスカウンタ2bは、当該メモリプー
ル4に対するアクセス要求の発行回数を計数するもので
ある。
【0022】さらに、上記の状態表示手段4aに、第1
のプロセッサID格納部4bにプロセッサIDが格納さ
れている場合に、前記プロセッサIDに対応するプロセ
ッサ2によるアクセス状態を表示する機能を付加するよ
うにしてもよい。この場合、第1のプロセッサID格納
部4b及び第2のプロセッサID格納部4dの双方にプ
ロセッサIDが格納されているとき、当該メモリプール
4が二つのプロセッサ2により二重アクセス状態にある
旨を表示する機能を付加する。
のプロセッサID格納部4bにプロセッサIDが格納さ
れている場合に、前記プロセッサIDに対応するプロセ
ッサ2によるアクセス状態を表示する機能を付加するよ
うにしてもよい。この場合、第1のプロセッサID格納
部4b及び第2のプロセッサID格納部4dの双方にプ
ロセッサIDが格納されているとき、当該メモリプール
4が二つのプロセッサ2により二重アクセス状態にある
旨を表示する機能を付加する。
【0023】次に、前記課題を解決する第三の手段につ
いて以下に示す。各メモリプール4に、状態表示手段4
a、プロセッサID格納部4bを備える。
いて以下に示す。各メモリプール4に、状態表示手段4
a、プロセッサID格納部4bを備える。
【0024】一方、各プロセッサ2には、照合手段2c
を備えるようにする。ここで、上記した状態表示手段4
aは、当該メモリプール4が任意のプロセッサ2により
アクセスされている状態か、いずれのプロセッサ2から
もアクセスされていない状態か、言い替えればアクセス
状態からアクセス可能状態かを表示する。
を備えるようにする。ここで、上記した状態表示手段4
aは、当該メモリプール4が任意のプロセッサ2により
アクセスされている状態か、いずれのプロセッサ2から
もアクセスされていない状態か、言い替えればアクセス
状態からアクセス可能状態かを表示する。
【0025】プロセッサID格納部4bは、当該メモリ
プール4がアクセス状態にあるとき、アクセスしている
プロセッサ2を特定するプロセッサIDを格納するもの
である。
プール4がアクセス状態にあるとき、アクセスしている
プロセッサ2を特定するプロセッサIDを格納するもの
である。
【0026】一方、プロセッサ2において、照合手段2
cは、プロセッサID格納部4bに登録されているプロ
セッサIDと自プロセッサIDとを照合する。
cは、プロセッサID格納部4bに登録されているプロ
セッサIDと自プロセッサIDとを照合する。
【0027】
【作用】本発明にかかる第一の手段によれば、プロセッ
サ2は、共有メモリ1の任意のメモリプール4へアクセ
スする際、そのメモリプール4の備える状態表示手段4
aを参照する。
サ2は、共有メモリ1の任意のメモリプール4へアクセ
スする際、そのメモリプール4の備える状態表示手段4
aを参照する。
【0028】この状態表示手段4aにより当該メモリプ
ール4のアクセス可能状態が表示されている場合には、
当該プロセッサ2を特定するプロセッサIDを、プロセ
ッサID格納部4bに格納する。ここで、状態表示手段
4aは、当該メモリプール4のアクセス状態を表示す
る。
ール4のアクセス可能状態が表示されている場合には、
当該プロセッサ2を特定するプロセッサIDを、プロセ
ッサID格納部4bに格納する。ここで、状態表示手段
4aは、当該メモリプール4のアクセス状態を表示す
る。
【0029】一方、状態表示手段4aが当該メモリプー
ルのアクセス状態を表示している場合には、アクセスカ
ウンタ2bをインクリメントすると共に、プロセッサI
D格納部4bのプロセッサIDをバッファ2aに複写・
格納する。
ルのアクセス状態を表示している場合には、アクセスカ
ウンタ2bをインクリメントすると共に、プロセッサI
D格納部4bのプロセッサIDをバッファ2aに複写・
格納する。
【0030】そして、所定時間経過後、当該プロセッサ
2は、前記のメモリプール4に対して再度のアクセス要
求を行う。つまり、状態表示手段4aを参照し、当該メ
モリプール4がアクセス状態にあるか、アクセス可能状
態にあるかを判別する。
2は、前記のメモリプール4に対して再度のアクセス要
求を行う。つまり、状態表示手段4aを参照し、当該メ
モリプール4がアクセス状態にあるか、アクセス可能状
態にあるかを判別する。
【0031】アクセス可能状態にあれば、上記同様に自
身のプロセッサIDをプロセッサID格納部4bに登録
し、当該メモリプール4にアクセスする。一方、他のプ
ロセッサによるアクセス状態にあれば、当該プロセッサ
2は、バッファ2aに格納したプロセッサIDとプロセ
ッサID格納部4bのプロセッサIDとを照合する。
身のプロセッサIDをプロセッサID格納部4bに登録
し、当該メモリプール4にアクセスする。一方、他のプ
ロセッサによるアクセス状態にあれば、当該プロセッサ
2は、バッファ2aに格納したプロセッサIDとプロセ
ッサID格納部4bのプロセッサIDとを照合する。
【0032】ここで、双方のプロセッサIDが不一致の
場合には、上記アクセスカウンタ2bの値をリセット
し、上記同様の処理を繰り返す。また、双方のプロセッ
サIDが一致した場合には、このプロセッサIDに対応
するプロセッサ2に何等かの障害が発生したと判別す
る。そして、状態表示手段4aにアクセス可能状態を表
示させた後、プロセッサID格納部4bのプロセッサI
Dを自身のプロセッサIDに書き換える。これにより、
障害を発生したプロセッサ2による排他制御状態を解除
し、当該プロセッサ2がアクセス可能となる。
場合には、上記アクセスカウンタ2bの値をリセット
し、上記同様の処理を繰り返す。また、双方のプロセッ
サIDが一致した場合には、このプロセッサIDに対応
するプロセッサ2に何等かの障害が発生したと判別す
る。そして、状態表示手段4aにアクセス可能状態を表
示させた後、プロセッサID格納部4bのプロセッサI
Dを自身のプロセッサIDに書き換える。これにより、
障害を発生したプロセッサ2による排他制御状態を解除
し、当該プロセッサ2がアクセス可能となる。
【0033】次に、各メモリプール4にカウンタ4cを
設けた場合について説明する。任意のプロセッサ2は、
メモリプール4にアクセスする際、状態表示手段4aを
参照する。そして、当該メモリプール4が他のプロセッ
サ2によりアクセス状態、すなわち排他制御状態にある
か否かを判別する。
設けた場合について説明する。任意のプロセッサ2は、
メモリプール4にアクセスする際、状態表示手段4aを
参照する。そして、当該メモリプール4が他のプロセッ
サ2によりアクセス状態、すなわち排他制御状態にある
か否かを判別する。
【0034】ここで、当該メモリプール4がアクセス可
能状態にあれば、当該プロセッサ2は、プロセッサID
格納部4bに自プロセッサIDを格納する。このとき、
カウンタ4cの値はひとつインクリメントされる。
能状態にあれば、当該プロセッサ2は、プロセッサID
格納部4bに自プロセッサIDを格納する。このとき、
カウンタ4cの値はひとつインクリメントされる。
【0035】一方、当該メモリプール4が排他制御状態
にある場合は、プロセッサID格納部4bのプロセッサ
IDと共にカウンタ4cの値をバッファ2aに格納す
る。所定時間経過後、当該プロセッサ2は、前記のメモ
リプール4に対し再度のアクセス要求を行う。
にある場合は、プロセッサID格納部4bのプロセッサ
IDと共にカウンタ4cの値をバッファ2aに格納す
る。所定時間経過後、当該プロセッサ2は、前記のメモ
リプール4に対し再度のアクセス要求を行う。
【0036】ここで、状態表示手段4aにアクセス可能
状態が表示されていれば、当該プロセッサ2は、当該メ
モリプール4にアクセス処理を行う。つまり、プロセッ
サID格納部4bに自プロセッサIDを格納したのち当
該メモリプール4にアクセスする。このときカウンタ4
cはひとつインクリメントされる。
状態が表示されていれば、当該プロセッサ2は、当該メ
モリプール4にアクセス処理を行う。つまり、プロセッ
サID格納部4bに自プロセッサIDを格納したのち当
該メモリプール4にアクセスする。このときカウンタ4
cはひとつインクリメントされる。
【0037】また、状態表示手段4aに排他制御状態が
表示されている場合には、当該プロセッサ2は、バッフ
ァ2aに格納したプロセッサIDとプロセッサID格納
部4bのプロセッサIDを照合すると共に、バッファ2
aに格納したカウンタ値とカウンタ4cのカウンタ値を
照合する。
表示されている場合には、当該プロセッサ2は、バッフ
ァ2aに格納したプロセッサIDとプロセッサID格納
部4bのプロセッサIDを照合すると共に、バッファ2
aに格納したカウンタ値とカウンタ4cのカウンタ値を
照合する。
【0038】ここで、プロセッサIDまたはカウンタ値
のいずれか一方が不一致の場合には、新規のプロセッサ
ID及びカウンタ値をバッァ2aに格納する。さらにア
クセスカウンタ2bの値をリセットした後、ひとつイン
クリメントする。
のいずれか一方が不一致の場合には、新規のプロセッサ
ID及びカウンタ値をバッァ2aに格納する。さらにア
クセスカウンタ2bの値をリセットした後、ひとつイン
クリメントする。
【0039】プロセッサID及びカウンタ値の双方が一
致した場合には、当該プロセッサ2は、アクセスカウン
タ2bの値をひとつインクリメントする。以上の動作を
繰り返し行い、アクセスカウンタ2bの値が特定値に達
した場合に、プロセッサID格納部4bのプロセッサI
Dに対応するプロセッサ2に何等かの障害が発生したこ
とを認識し、状態表示手段4aをアクセス可能状態に変
更する。その後、プロセッサID格納部4bに自プロセ
ッサIDを格納し、カウンタ4cをひとつインクリメン
トする。
致した場合には、当該プロセッサ2は、アクセスカウン
タ2bの値をひとつインクリメントする。以上の動作を
繰り返し行い、アクセスカウンタ2bの値が特定値に達
した場合に、プロセッサID格納部4bのプロセッサI
Dに対応するプロセッサ2に何等かの障害が発生したこ
とを認識し、状態表示手段4aをアクセス可能状態に変
更する。その後、プロセッサID格納部4bに自プロセ
ッサIDを格納し、カウンタ4cをひとつインクリメン
トする。
【0040】本発明にかかる第二の手段によれば、プロ
セッサ2は、メモリプール4にアクセスする際、状態表
示手段4aを参照する。これにより、当該メモリプール
4が他のプロセッサ2により、アクセス状態であるか、
すなわち排他制御状態にあるか否かを判別する。
セッサ2は、メモリプール4にアクセスする際、状態表
示手段4aを参照する。これにより、当該メモリプール
4が他のプロセッサ2により、アクセス状態であるか、
すなわち排他制御状態にあるか否かを判別する。
【0041】当該メモリプール4がアクセス可能状態の
場合は、第1のプロセッサID格納部4bに自プロセッ
サ2のプロセッサIDを格納する。一方、当該メモリプ
ール4が排他制御状態にある場合には、第1のプロセッ
サID格納部4bのプロセッサIDを前記バッファ2a
に格納する(1回目のみ)と共にアクセスカウンタ2b
の値をひとつインクリメントする。
場合は、第1のプロセッサID格納部4bに自プロセッ
サ2のプロセッサIDを格納する。一方、当該メモリプ
ール4が排他制御状態にある場合には、第1のプロセッ
サID格納部4bのプロセッサIDを前記バッファ2a
に格納する(1回目のみ)と共にアクセスカウンタ2b
の値をひとつインクリメントする。
【0042】その後、所定時間経過した際に再度のアク
セス要求を発行する。そして、この処理を繰り返し行
い、アクセスカウンタ2bの値が特定値に達した場合、
当該プロセッサ2は、バッファ2aに格納したプロセッ
サIDと第1のプロセッサID格納部4bのプロセッサ
IDとを照合する。
セス要求を発行する。そして、この処理を繰り返し行
い、アクセスカウンタ2bの値が特定値に達した場合、
当該プロセッサ2は、バッファ2aに格納したプロセッ
サIDと第1のプロセッサID格納部4bのプロセッサ
IDとを照合する。
【0043】ここで、双方のプロセッサIDが一致した
場合には、第1のプロセッサID格納部4bのプロセッ
サIDに対応するプロセッサ2に、何等かの障害が発生
したと判別する。そして、このプロセッサIDを第2の
プロセッサID格納部4dに格納し、状態表示手段4a
にアクセス可能状態を表示させる。これにより、当該プ
ロセッサ2は、自プロセッサIDを第1のプロセッサI
D格納部4bへ格納し、当該メモリプール4へアクセス
することが可能となる。
場合には、第1のプロセッサID格納部4bのプロセッ
サIDに対応するプロセッサ2に、何等かの障害が発生
したと判別する。そして、このプロセッサIDを第2の
プロセッサID格納部4dに格納し、状態表示手段4a
にアクセス可能状態を表示させる。これにより、当該プ
ロセッサ2は、自プロセッサIDを第1のプロセッサI
D格納部4bへ格納し、当該メモリプール4へアクセス
することが可能となる。
【0044】ここで、本発明では、障害発生プロセッサ
による排他制御を強制的に解除した場合、第1のプロセ
ッサID格納部4b及び第2のプロセッサID格納部4
dの双方にプロセッサIDが格納されることとなり、こ
の状態(二重アクセス状態)を、前記の状態表示手段4
aにより表示可能としている。これにより、任意のメモ
リプール4に対するアクセスを終了する際に、プロセッ
サ2は、第1のプロセッサID格納部4b及び第2のプ
ロセッサID格納部4dを参照する。
による排他制御を強制的に解除した場合、第1のプロセ
ッサID格納部4b及び第2のプロセッサID格納部4
dの双方にプロセッサIDが格納されることとなり、こ
の状態(二重アクセス状態)を、前記の状態表示手段4
aにより表示可能としている。これにより、任意のメモ
リプール4に対するアクセスを終了する際に、プロセッ
サ2は、第1のプロセッサID格納部4b及び第2のプ
ロセッサID格納部4dを参照する。
【0045】ここで、第1のプロセッサID格納部4b
のみプロセッサIDが格納されている場合は、このプロ
セッサIDと自プロセッサIDの一致を確認後、当該プ
ロセッサIDを消去し、当該メモリプール4に対するア
クセスを終了する。
のみプロセッサIDが格納されている場合は、このプロ
セッサIDと自プロセッサIDの一致を確認後、当該プ
ロセッサIDを消去し、当該メモリプール4に対するア
クセスを終了する。
【0046】また、第1のプロセッサID格納部4b及
び第2のプロセッサID格納部4dの双方にプロセッサ
IDが格納されている場合は、自プロセッサIDと、前
記第1のプロセッサID格納部4b及び第2のプロセッ
サID格納部4dの各々のプロセッサIDとを比較す
る。
び第2のプロセッサID格納部4dの双方にプロセッサ
IDが格納されている場合は、自プロセッサIDと、前
記第1のプロセッサID格納部4b及び第2のプロセッ
サID格納部4dの各々のプロセッサIDとを比較す
る。
【0047】ここで、自プロセッサIDと第2のプロセ
ッサID格納部4dのプロセッサIDが一致した場合に
は、第2のプロセッサID格納部4dから自プロセッサ
IDを消去する。
ッサID格納部4dのプロセッサIDが一致した場合に
は、第2のプロセッサID格納部4dから自プロセッサ
IDを消去する。
【0048】一方、自プロセッサIDと第1のプロセッ
サID格納部4bのプロセッサIDと一致した場合に
は、このプロセッサIDを消去すると共に、第2のプロ
セッサID格納部4dのプロセッサIDを第1のプロセ
ッサID格納部4bに格納させる。
サID格納部4bのプロセッサIDと一致した場合に
は、このプロセッサIDを消去すると共に、第2のプロ
セッサID格納部4dのプロセッサIDを第1のプロセ
ッサID格納部4bに格納させる。
【0049】これにより、任意のメモリプールにアクセ
スしているプロセッサが何等かの原因で障害を発生した
場合、このメモリプールにアクセスしようとするプロセ
ッサが前記プロセッサの障害発生を認識して当該メモリ
プールにかかる排他制御を解除することができる。従っ
て、他の正常なプロセッサは当該メモリプールにアクセ
スすることが可能となる。
スしているプロセッサが何等かの原因で障害を発生した
場合、このメモリプールにアクセスしようとするプロセ
ッサが前記プロセッサの障害発生を認識して当該メモリ
プールにかかる排他制御を解除することができる。従っ
て、他の正常なプロセッサは当該メモリプールにアクセ
スすることが可能となる。
【0050】次に、本発明にかかる第三の手段によれ
ば、プロセッサ2は、障害発生から再立ち上げされた際
に、共有メモリ1の各メモリプール4にアクセスする。
そして、各メモリプール4において、状態表示手段4a
を参照し、当該メモリプールが任意のプロセッサ2によ
りアクセス状態にあるか否かを判別する。
ば、プロセッサ2は、障害発生から再立ち上げされた際
に、共有メモリ1の各メモリプール4にアクセスする。
そして、各メモリプール4において、状態表示手段4a
を参照し、当該メモリプールが任意のプロセッサ2によ
りアクセス状態にあるか否かを判別する。
【0051】当該メモリプール4がアクセス状態にある
場合に、照合手段2cは、このメモリプール4のプロセ
ッサID格納部4bに格納されているプロセッサIDと
自プロセッサIDとを照合する。
場合に、照合手段2cは、このメモリプール4のプロセ
ッサID格納部4bに格納されているプロセッサIDと
自プロセッサIDとを照合する。
【0052】ここで、自プロセッサIDと前記メモリプ
ール4にアクセスしているプロセッサ2のプロセッサI
Dとが一致した場合、当該プロセッサ2は、前記状態表
示手段4aをアクセス可能状態に書き換えると共に、プ
ロセッサID格納部4bのプロセッサIDを消去する。
ール4にアクセスしているプロセッサ2のプロセッサI
Dとが一致した場合、当該プロセッサ2は、前記状態表
示手段4aをアクセス可能状態に書き換えると共に、プ
ロセッサID格納部4bのプロセッサIDを消去する。
【0053】以上、第三の手段によれば、任意のプロセ
ッサが、メモリプールを排他制御中に障害を発生した場
合、そのプロセッサは、障害修復後に自身が排他制御し
ていたメモリプールを自動的に検出可能である。さら
に、そのメモリプールの排他制御を解除することができ
る。
ッサが、メモリプールを排他制御中に障害を発生した場
合、そのプロセッサは、障害修復後に自身が排他制御し
ていたメモリプールを自動的に検出可能である。さら
に、そのメモリプールの排他制御を解除することができ
る。
【0054】
【実施例】以下に、本発明の具体的な実施例について説
明する。
明する。
【0055】
【実施例1】本実施例1におけるマルチプロセッサシス
テムの概略構成を図2に示す。本実施例1におけるマル
チプロセッサシステムは、第1〜第N(N:自然数)の
N個のプロセッサ5と、単一の共有メモリ6とからな
る。
テムの概略構成を図2に示す。本実施例1におけるマル
チプロセッサシステムは、第1〜第N(N:自然数)の
N個のプロセッサ5と、単一の共有メモリ6とからな
る。
【0056】前記共有メモリ6は、相互に独立したアド
レスをもつ第1から第3メモリプールにより構成され
る。この具体的な説明は後述する。そして、本実施例1
においては、任意のメモリプール7に任意のプロセッサ
5がアクセスしている際に、他のプロセッサ5がこのメ
モリプール7へアクセスすることを防止する排他制御を
行っている。
レスをもつ第1から第3メモリプールにより構成され
る。この具体的な説明は後述する。そして、本実施例1
においては、任意のメモリプール7に任意のプロセッサ
5がアクセスしている際に、他のプロセッサ5がこのメ
モリプール7へアクセスすることを防止する排他制御を
行っている。
【0057】図3は、本実施例1におけるメモリプール
の内部構成ブロック図をである。本実施例におけるメモ
リプール7は、排他制御領域8とデータ領域9とから構
成される。
の内部構成ブロック図をである。本実施例におけるメモ
リプール7は、排他制御領域8とデータ領域9とから構
成される。
【0058】前記した排他制御領域8は、当該メモリプ
ール7に任意のプロセッサ5がアクセスした際に行われ
る排他制御情報を格納するための領域であり、本発明に
かかる状態表示手段としてのフラグビット8a、及びプ
ロセッサID格納部8bとから構成される。
ール7に任意のプロセッサ5がアクセスした際に行われ
る排他制御情報を格納するための領域であり、本発明に
かかる状態表示手段としてのフラグビット8a、及びプ
ロセッサID格納部8bとから構成される。
【0059】フラグビット8aは、当該メモリプール7
にアクセスしているプロセッサ5があるか否か、すなわ
ち排他制御中であるか否かを表すものであり、排他制御
中であれば”1”、アクセス可能状態にあれば”0”を
立たせる。
にアクセスしているプロセッサ5があるか否か、すなわ
ち排他制御中であるか否かを表すものであり、排他制御
中であれば”1”、アクセス可能状態にあれば”0”を
立たせる。
【0060】プロセッサID格納部8bは、当該メモリ
プール7にアクセスしているプロセッサ5を特定するプ
ロセッサIDを格納する領域であり、アクセスしている
プロセッサ5が存在しない場合、すなわち当該メモリプ
ール7がアクセス可能状態にある場合はリセット状態”
0”とする。
プール7にアクセスしているプロセッサ5を特定するプ
ロセッサIDを格納する領域であり、アクセスしている
プロセッサ5が存在しない場合、すなわち当該メモリプ
ール7がアクセス可能状態にある場合はリセット状態”
0”とする。
【0061】次に、図4は、本実施例1におけるプロセ
ッサの内部構成ブロック図である。本実施例1における
プロセッサ5は、当該プロセッサ5に割り当てられたタ
スク10と、オペレーティングシステム部14、アクセ
スカウンタ11、タイマ12、バッファ13とから構成
される。
ッサの内部構成ブロック図である。本実施例1における
プロセッサ5は、当該プロセッサ5に割り当てられたタ
スク10と、オペレーティングシステム部14、アクセ
スカウンタ11、タイマ12、バッファ13とから構成
される。
【0062】タスク10は、当該プロセッサ5に任意の
処理命令を発行するものである。オペレーティングシス
テム部14は、当該プロセッサ5の基本動作を管理する
ものである。
処理命令を発行するものである。オペレーティングシス
テム部14は、当該プロセッサ5の基本動作を管理する
ものである。
【0063】アクセスカウンタ11は、当該プロセッサ
5が他のプロセッサ5により排他制御状態にある特定の
メモリプール7にアクセス要求を行った回数を計数する
ためのものである。
5が他のプロセッサ5により排他制御状態にある特定の
メモリプール7にアクセス要求を行った回数を計数する
ためのものである。
【0064】タイマ12は、排他制御中のメモリプール
7にアクセス要求を行った場合、再度アクセス要求を行
うまでの待機時間を計時するものである。バッファ13
は、当該プロセッサ5が排他制御中のメモリプール7に
アクセス要求を行った際に、その排他制御を行っている
プロセッサを特定するプロセッサIDを前記プロセッサ
ID格納部8bから読み出しこれを格納するためのもの
である。
7にアクセス要求を行った場合、再度アクセス要求を行
うまでの待機時間を計時するものである。バッファ13
は、当該プロセッサ5が排他制御中のメモリプール7に
アクセス要求を行った際に、その排他制御を行っている
プロセッサを特定するプロセッサIDを前記プロセッサ
ID格納部8bから読み出しこれを格納するためのもの
である。
【0065】次に、本実施例1における排他制御自動解
除の動作過程を図5のフローチャート図に基いて説明す
る。本実施例1におけるプロセッサ5のタスク10が共
有メモリ獲得システムコールを発行すると(ステップ5
01)、同プロセッサ5内のオペレーティングシステム
部14が共有メモリ6と当該プロセッサ5とを接続する
バスをロックする(ステップ502)。
除の動作過程を図5のフローチャート図に基いて説明す
る。本実施例1におけるプロセッサ5のタスク10が共
有メモリ獲得システムコールを発行すると(ステップ5
01)、同プロセッサ5内のオペレーティングシステム
部14が共有メモリ6と当該プロセッサ5とを接続する
バスをロックする(ステップ502)。
【0066】次に、当該オペレーティングシステム部1
4は、共有メモリ内の該当メモリプール7にアクセス
し、排他制御領域8のフラグビット8aを参照し、排他
制御中(フラグビット8aは”1”)か、アクセス可能
状態(フラグビット8aは”0”)かを認識する(ステ
ップ503)。ここで、フラグビット8aが”1”の場
合、すなわち排他制御中の場合は、オペレーティングシ
ステム部14は排他制御領域8内のプロセッサID格納
部8bのプロセッサIDを読み込んで、これを当該プロ
セッサ5内のバッファ13に格納させる(1回目のみ)
と共に、アクセスカウンタ11の値をインクリメントす
る(ステップ504)。さらに、当該プロセッサ5と共
有メモリ7とを接続するバスのロックを解除する(ステ
ップ505)。
4は、共有メモリ内の該当メモリプール7にアクセス
し、排他制御領域8のフラグビット8aを参照し、排他
制御中(フラグビット8aは”1”)か、アクセス可能
状態(フラグビット8aは”0”)かを認識する(ステ
ップ503)。ここで、フラグビット8aが”1”の場
合、すなわち排他制御中の場合は、オペレーティングシ
ステム部14は排他制御領域8内のプロセッサID格納
部8bのプロセッサIDを読み込んで、これを当該プロ
セッサ5内のバッファ13に格納させる(1回目のみ)
と共に、アクセスカウンタ11の値をインクリメントす
る(ステップ504)。さらに、当該プロセッサ5と共
有メモリ7とを接続するバスのロックを解除する(ステ
ップ505)。
【0067】そして、オペレーティングシステム部14
は、タイマ12を起動させて一定時間の休止状態にはい
る。タイマ12の計時終了後、前記アクセスカウンタ1
1の値を参照して、特定値に達しているか否かを判別す
る(ステップ507)。
は、タイマ12を起動させて一定時間の休止状態にはい
る。タイマ12の計時終了後、前記アクセスカウンタ1
1の値を参照して、特定値に達しているか否かを判別す
る(ステップ507)。
【0068】ここで、特定値に達していなければ上記し
たステップ502以降の処理を繰り返し行い、特定値に
達していれば、当該プロセッサ5のオペレーティングシ
ステム部14は、共有メモリ6のバスロックを行った
後、共有メモリ6内の該当メモリプール7の排他制御領
域にアクセスし、フラグビット8aの値を”0”にする
と共に、プロセッサID格納部8bをリセット(”
0”)にする(ステップ509)。
たステップ502以降の処理を繰り返し行い、特定値に
達していれば、当該プロセッサ5のオペレーティングシ
ステム部14は、共有メモリ6のバスロックを行った
後、共有メモリ6内の該当メモリプール7の排他制御領
域にアクセスし、フラグビット8aの値を”0”にする
と共に、プロセッサID格納部8bをリセット(”
0”)にする(ステップ509)。
【0069】そして、当該オペレーティングシステム部
14は、該当メモリプール7の排他制御領域内のフラグ
ビット8aの値を”1”にし、さらにプロセッサID格
納部8bに自身のプロセッサIDを書き込む(ステップ
510)。
14は、該当メモリプール7の排他制御領域内のフラグ
ビット8aの値を”1”にし、さらにプロセッサID格
納部8bに自身のプロセッサIDを書き込む(ステップ
510)。
【0070】オペレーティングシステム部14は、当該
プロセッサ5と共有メモリ6とを結ぶバスのロックを解
除し(ステップ511)、当該システムコールにかかる
処理を行う(ステップ512)。
プロセッサ5と共有メモリ6とを結ぶバスのロックを解
除し(ステップ511)、当該システムコールにかかる
処理を行う(ステップ512)。
【0071】上記の処理を終了後、オペレーティングシ
ステム部14は、メモリプール7内の排他制御領域のフ
ラグビット8aの値を”1”から”0”へ変換し、プロ
セッサID格納部8bをリセット(”0”)する(ステ
ップ513)。
ステム部14は、メモリプール7内の排他制御領域のフ
ラグビット8aの値を”1”から”0”へ変換し、プロ
セッサID格納部8bをリセット(”0”)する(ステ
ップ513)。
【0072】上記のステップ503において、フラグビ
ット8aの値が”0”の場合、オペレーティングシステ
ム部14は、上記のステップ510以降の処理を行う。
従って、本実施例1によれば、同一のプロセッサが特定
のメモリプールに所定時間以上アクセスしていると、こ
れを他のプロセッサが認識して前記プロセッサに障害が
発生したこを認識し、かかるメモリプールの排他制御を
解除することができる。これにより、他の正常なプロセ
ッサに影響を与えることなく、当該マルチプロセッサシ
ステムの処理を継続することができる。
ット8aの値が”0”の場合、オペレーティングシステ
ム部14は、上記のステップ510以降の処理を行う。
従って、本実施例1によれば、同一のプロセッサが特定
のメモリプールに所定時間以上アクセスしていると、こ
れを他のプロセッサが認識して前記プロセッサに障害が
発生したこを認識し、かかるメモリプールの排他制御を
解除することができる。これにより、他の正常なプロセ
ッサに影響を与えることなく、当該マルチプロセッサシ
ステムの処理を継続することができる。
【0073】
【実施例2】本実施例2におけるマルチプロセッサシス
テムの構成は、N個のプロセッサ5及び単一の共有メモ
リ6とからなる。
テムの構成は、N個のプロセッサ5及び単一の共有メモ
リ6とからなる。
【0074】各プロセッサ5の構成は、前述の実施例1
と同様であり、タスク10、オペレーティングシステム
部14、アクセスカウンタ11、タイマ12、バッファ
13とからなる。
と同様であり、タスク10、オペレーティングシステム
部14、アクセスカウンタ11、タイマ12、バッファ
13とからなる。
【0075】図6に、本実施例2におけるメモリプール
7の内部構成ブロックを示す。本実施例2におけるメモ
リプール7は、前述の実施例1に対して、排他制御領域
8にカウンタ8cを設けてある。その他の構成は、前述
の実施例1と同様であり、排他制御部8は、フラグビッ
ト8a、プロセッサID格納部8bを有し、データ領域
9は、複数のメモリプールからなる。
7の内部構成ブロックを示す。本実施例2におけるメモ
リプール7は、前述の実施例1に対して、排他制御領域
8にカウンタ8cを設けてある。その他の構成は、前述
の実施例1と同様であり、排他制御部8は、フラグビッ
ト8a、プロセッサID格納部8bを有し、データ領域
9は、複数のメモリプールからなる。
【0076】当該カウンタ8cは、当該メモリプール7
にアクセスを許可されたプロセッサ5によりインクリメ
ントされるもので、すなわち当該メモリプール7を排他
制御したプロセッサ5毎にインクリメントされる。
にアクセスを許可されたプロセッサ5によりインクリメ
ントされるもので、すなわち当該メモリプール7を排他
制御したプロセッサ5毎にインクリメントされる。
【0077】図7は、本実施例2における排他制御自動
解除の動作過程を示すフローチャート図である。プロセ
ッサ5では、自身に割り当てられたタスク10が共有メ
モリ獲得システムコールを発行すると(ステップ70
1)、当該プロセッサ5のオペレーティングシステム部
14が当該プロセッサ5と共有メモリ6とを接続するバ
スをロックする(ステップ702)。
解除の動作過程を示すフローチャート図である。プロセ
ッサ5では、自身に割り当てられたタスク10が共有メ
モリ獲得システムコールを発行すると(ステップ70
1)、当該プロセッサ5のオペレーティングシステム部
14が当該プロセッサ5と共有メモリ6とを接続するバ
スをロックする(ステップ702)。
【0078】当該オペレーティングシステム部14は、
前記システムコールにかかるメモリプール7へアクセス
要求を行い、このメモリプール7の排他制御領域8内の
フラグビット8aを参照し、当該メモリプール7が排他
制御中か否かを判別する(ステップ703)。
前記システムコールにかかるメモリプール7へアクセス
要求を行い、このメモリプール7の排他制御領域8内の
フラグビット8aを参照し、当該メモリプール7が排他
制御中か否かを判別する(ステップ703)。
【0079】ここで、当該メモリプール7が排他制御中
の場合、すなわち、前記フラグビット8aが”1”の場
合、オペレーティングシステム部14は、排他制御領域
内のプロセッサID格納部のプロセッサID及びカウン
タ8cのカウンタ値を当該バッファ13に格納させる
(1回目のみ)と共に、自身のアクセスカウンタ11を
インクリメントする(ステップ704)。
の場合、すなわち、前記フラグビット8aが”1”の場
合、オペレーティングシステム部14は、排他制御領域
内のプロセッサID格納部のプロセッサID及びカウン
タ8cのカウンタ値を当該バッファ13に格納させる
(1回目のみ)と共に、自身のアクセスカウンタ11を
インクリメントする(ステップ704)。
【0080】そして、オペレーティングシステム部14
は、当該プロセッサ5と共有メモリ6とを接続するバス
のロックを解除し(ステップ705)、タイマ12を起
動させて特定時間の休止状態にはいる(ステップ70
6)。
は、当該プロセッサ5と共有メモリ6とを接続するバス
のロックを解除し(ステップ705)、タイマ12を起
動させて特定時間の休止状態にはいる(ステップ70
6)。
【0081】前記タイマ12の計時終了後、オペレーテ
ィングシステム部14は、アクセスカウンタ11を参照
して前記メモリプール7に対するアクセス要求を指定回
数行った否かを判別する(ステップ707)。ここで、
指定回数に満たない場合は、前述のステップ702以降
の処理を繰り返し行う。
ィングシステム部14は、アクセスカウンタ11を参照
して前記メモリプール7に対するアクセス要求を指定回
数行った否かを判別する(ステップ707)。ここで、
指定回数に満たない場合は、前述のステップ702以降
の処理を繰り返し行う。
【0082】一方、指定回数に達している場合は、プロ
セッサID格納部8bのプロセッサID及びカウンタ8
cのカウンタ値と、当該バッファ13に格納されている
プロセッサID及びカウンタ値とを比較し(ステップ7
08)、いずれか一方が不一致の場合は新規のプロセッ
サID及びカウンタ値を当該バッファ13に格納し、自
身のアクセスカウンタ11をリセット後1つインクリメ
ントし、その後前述のステップ702以降の処理を繰り
返し行う。
セッサID格納部8bのプロセッサID及びカウンタ8
cのカウンタ値と、当該バッファ13に格納されている
プロセッサID及びカウンタ値とを比較し(ステップ7
08)、いずれか一方が不一致の場合は新規のプロセッ
サID及びカウンタ値を当該バッファ13に格納し、自
身のアクセスカウンタ11をリセット後1つインクリメ
ントし、その後前述のステップ702以降の処理を繰り
返し行う。
【0083】一方、それぞれが一致した場合は、オペレ
ーティングシステム部14は、共有メモリ6のバスロッ
クを行った後、共有メモリ6内の該当メモリプール7の
排他制御領域8のフラグビット8aを”1”から”0”
に変更し、プロセッサID格納部8bをリセットする
(ステップ709)。
ーティングシステム部14は、共有メモリ6のバスロッ
クを行った後、共有メモリ6内の該当メモリプール7の
排他制御領域8のフラグビット8aを”1”から”0”
に変更し、プロセッサID格納部8bをリセットする
(ステップ709)。
【0084】さらに、当該オペレーティングシステム部
14は、該当メモリプール7の排他制御領域8内のフラ
グビット8aを”1”にすると共に、プロセッサID格
納部8bに自身のプロセッサIDを書き込み、カウンタ
8cをインクリメントする(ステップ710)。
14は、該当メモリプール7の排他制御領域8内のフラ
グビット8aを”1”にすると共に、プロセッサID格
納部8bに自身のプロセッサIDを書き込み、カウンタ
8cをインクリメントする(ステップ710)。
【0085】そして、オペレーティングシステム部14
は、共有メモリ6のバスロックを解除し(ステップ71
1)、当該システムコールにかかる処理を行う。(ステ
ップ712)。
は、共有メモリ6のバスロックを解除し(ステップ71
1)、当該システムコールにかかる処理を行う。(ステ
ップ712)。
【0086】前記処理を終了した後、オペレーティング
システム部14は、排他制御領域8内のフラグビット
を”1”を”0”に変更すると共に、プロセッサID格
納部8bをリセットする(ステップ713)。
システム部14は、排他制御領域8内のフラグビット
を”1”を”0”に変更すると共に、プロセッサID格
納部8bをリセットする(ステップ713)。
【0087】したがって、本実施例2によれば、同一の
プロセッサが複数回特定メモリプールにアクセスしてい
るのか、または特定メモリプールに所定時間以上継続し
てアクセスしているのかを判別可能となり、所定時間以
上継続してアクセスしている場合には、そのプロセッサ
に障害が発生していることを認識することが可能とな
る。これにより、他の正常なプロセッサが当該メモリプ
ールへアクセスすることが可能となる。
プロセッサが複数回特定メモリプールにアクセスしてい
るのか、または特定メモリプールに所定時間以上継続し
てアクセスしているのかを判別可能となり、所定時間以
上継続してアクセスしている場合には、そのプロセッサ
に障害が発生していることを認識することが可能とな
る。これにより、他の正常なプロセッサが当該メモリプ
ールへアクセスすることが可能となる。
【0088】
【実施例3】本実施例3におけるマルチプロセッサシス
テムの構成は、N個のプロセッサ5及び単一の共有メモ
リ6とからなる。
テムの構成は、N個のプロセッサ5及び単一の共有メモ
リ6とからなる。
【0089】各プロセッサ5の構成は、前述の実施例1
と同様であり、タスク10、オペレーティングシステム
部14、アクセスカウンタ11、タイマ12、バッファ
13とからなる。
と同様であり、タスク10、オペレーティングシステム
部14、アクセスカウンタ11、タイマ12、バッファ
13とからなる。
【0090】図8に、本実施例3におけるメモリプール
7の内部構成ブロックを示す。本実施例3におけるメモ
リプール7は、前述の実施例1に対して、排他制御領域
8内に、二つのプロセッサID格納部を設けてある。こ
こでは、一方を第1プロセッサID格納部8bとし、他
方を第2プロセッサID格納部8dとしてある。また、
本実施例3におけるフラグビット8aは、ふた桁と
し、”00”は当該メモリプール7にアクセス可能、”
01”は排他制御中、”11”は二重排他制御中(二重
アクセス状態)を示す。
7の内部構成ブロックを示す。本実施例3におけるメモ
リプール7は、前述の実施例1に対して、排他制御領域
8内に、二つのプロセッサID格納部を設けてある。こ
こでは、一方を第1プロセッサID格納部8bとし、他
方を第2プロセッサID格納部8dとしてある。また、
本実施例3におけるフラグビット8aは、ふた桁と
し、”00”は当該メモリプール7にアクセス可能、”
01”は排他制御中、”11”は二重排他制御中(二重
アクセス状態)を示す。
【0091】その他の構成は、前述の実施例1と同様
で、データ領域9は、複数のメモリプールからなる。前
記第1プロセッサID格納部8bは、当該メモリプール
7を排他制御しているプロセッサのプロセッサIDを格
納するものである。
で、データ領域9は、複数のメモリプールからなる。前
記第1プロセッサID格納部8bは、当該メモリプール
7を排他制御しているプロセッサのプロセッサIDを格
納するものである。
【0092】一方、第2プロセッサID格納部8dは、
当該メモリプール7を排他制御中に障害を発生したプロ
セッサのプロセッサIDを格納するものである。図9
は、本実施例3における共有メモリアクセス要求処理の
過程を示すフローチャート図である。
当該メモリプール7を排他制御中に障害を発生したプロ
セッサのプロセッサIDを格納するものである。図9
は、本実施例3における共有メモリアクセス要求処理の
過程を示すフローチャート図である。
【0093】本実施例3において、プロセッサ5に割り
当てられたタスク10が共有メモリ6の獲得システムコ
ールを発行すると(ステップ901)、当該プロセッサ
5のオペレーティングシステム部14は当該プロセッサ
5と共有メモリ6を接続するバスをロックする(ステッ
プ902)。
当てられたタスク10が共有メモリ6の獲得システムコ
ールを発行すると(ステップ901)、当該プロセッサ
5のオペレーティングシステム部14は当該プロセッサ
5と共有メモリ6を接続するバスをロックする(ステッ
プ902)。
【0094】次に、オペレーティングシステム部14
は、共有メモリ6の該当メモリプール7内の排他制御領
域8を参照し、フラグビット8aが”00”か否かを判
別する(ステップ903)。
は、共有メモリ6の該当メモリプール7内の排他制御領
域8を参照し、フラグビット8aが”00”か否かを判
別する(ステップ903)。
【0095】ここで、フラグビット8aが”00”の場
合には、共有メモリ6内の該当メモリプール7のフラグ
ビット8aを”01”にし、第1プロセッサID格納部
8bに自身のプロセッサIDを格納する(ステップ91
0)。
合には、共有メモリ6内の該当メモリプール7のフラグ
ビット8aを”01”にし、第1プロセッサID格納部
8bに自身のプロセッサIDを格納する(ステップ91
0)。
【0096】そして、オペレーティングシステム部14
は、共有メモリ6のバスロックを解除し(ステップ91
1)、当該メモリプール7にアクセスして当該システム
コールにかかる処理を実行する(ステップ912)。
は、共有メモリ6のバスロックを解除し(ステップ91
1)、当該メモリプール7にアクセスして当該システム
コールにかかる処理を実行する(ステップ912)。
【0097】一方、前述のステップ903において、メ
モリプール7のフラグビット8aが”00”以外の場合
には、第1プロセッサID格納部8bに格納されている
プロセッサIDをバッファ13に格納する(1回目の
み)と共にアクセスカウンタ11の値をひとつインクリ
メントする(ステップ904)。
モリプール7のフラグビット8aが”00”以外の場合
には、第1プロセッサID格納部8bに格納されている
プロセッサIDをバッファ13に格納する(1回目の
み)と共にアクセスカウンタ11の値をひとつインクリ
メントする(ステップ904)。
【0098】そして、オペレーティングシステム部14
は、一旦共有メモリ6のバスロックを解除し(ステップ
905)、タイマ12を起動させる(ステップ90
6)。ここで、タイマ12が一定時間を計時している
間、オペレーティングシステム部14は動作を休止す
る。
は、一旦共有メモリ6のバスロックを解除し(ステップ
905)、タイマ12を起動させる(ステップ90
6)。ここで、タイマ12が一定時間を計時している
間、オペレーティングシステム部14は動作を休止す
る。
【0099】タイマ12が一定時間の計時を終了した際
に、オペレーティングシステム部14は、第1プロセッ
サID格納部8bのプロセッサIDとバッファ13に登
録したプロセッサIDとを照合し(ステップ907)、
一致しなかった場合は、前述のステップ902以降の処
理を行う。
に、オペレーティングシステム部14は、第1プロセッ
サID格納部8bのプロセッサIDとバッファ13に登
録したプロセッサIDとを照合し(ステップ907)、
一致しなかった場合は、前述のステップ902以降の処
理を行う。
【0100】一方、一致した場合は、オペレーティング
システム部14は、アクセスカウンタ11の値が指定値
に達したか否かを判別する(ステップ908)。アクセ
スカウンタ11の値が指定値に達した場合には、オペレ
ーティングシステム部14は、第1プロセッサID格納
部8bのプロセッサIDに対応するプロセッサ5に障害
が発生したと判別する。この場合、共有メモリ6内の該
当メモリプール7のフラグビット8aを”11”にし、
第1プロセッサID格納部8bのプロセッサIDを第2
プロセッサID格納部8dに格納すると共に、第1プロ
セッサID格納部8bに新たに自プロセッサ5のプロセ
ッサIDを格納する(ステップ909)。
システム部14は、アクセスカウンタ11の値が指定値
に達したか否かを判別する(ステップ908)。アクセ
スカウンタ11の値が指定値に達した場合には、オペレ
ーティングシステム部14は、第1プロセッサID格納
部8bのプロセッサIDに対応するプロセッサ5に障害
が発生したと判別する。この場合、共有メモリ6内の該
当メモリプール7のフラグビット8aを”11”にし、
第1プロセッサID格納部8bのプロセッサIDを第2
プロセッサID格納部8dに格納すると共に、第1プロ
セッサID格納部8bに新たに自プロセッサ5のプロセ
ッサIDを格納する(ステップ909)。
【0101】次にオペレーティングシステム部14は、
上記したステップ911以降の処理を行う。また、前述
のステップ908において、アクセスカウンタ11の値
が指定回数に達していない場合には、ステップ902以
降の処理を繰り返し行う。
上記したステップ911以降の処理を行う。また、前述
のステップ908において、アクセスカウンタ11の値
が指定回数に達していない場合には、ステップ902以
降の処理を繰り返し行う。
【0102】次に、図10は、共有メモリ返却処理の過
程を示すフローチャート図である。プロセッサ5内のタ
スクが共有メモリ返却システムコールを発行すると(ス
テップ1001)、オペレーティングシステム部14は
当該プロセッサ5と共有メモリとを接続するバスをロッ
クする(ステップ1002)。
程を示すフローチャート図である。プロセッサ5内のタ
スクが共有メモリ返却システムコールを発行すると(ス
テップ1001)、オペレーティングシステム部14は
当該プロセッサ5と共有メモリとを接続するバスをロッ
クする(ステップ1002)。
【0103】次に、当該オペレーティングシステム部1
4は、排他制御領域8内のフラグビット8aを参照し
て、”01”が立っているか、”11”が立っているか
を判別する(ステップ1003)。
4は、排他制御領域8内のフラグビット8aを参照し
て、”01”が立っているか、”11”が立っているか
を判別する(ステップ1003)。
【0104】ここで、フラグビット8aが”01”の場
合は、本システムコールの発行元は、上記した図9にお
いてステップ910に対応するプロセッサ5であり、こ
のプロセッサ5のオペレーティングシステム部14は、
共有メモリ6へのバスロックを解除し(ステップ100
9)、当該システムコールにかかる処理を行う(ステッ
プ1010)。そして、オペレーティングシステム部1
4は、排他制御領域内のフラグビット”01”を”0
0”に変更すると共に、第1プロセッサID格納部8b
をリセットして”0”にする。このとき、当該排他制御
領域内では、フラグビット8aに”00”が立ち、第1
プロセッサID格納部8b及び第2プロセッサID格納
部8dはリセット状態”0”となる。
合は、本システムコールの発行元は、上記した図9にお
いてステップ910に対応するプロセッサ5であり、こ
のプロセッサ5のオペレーティングシステム部14は、
共有メモリ6へのバスロックを解除し(ステップ100
9)、当該システムコールにかかる処理を行う(ステッ
プ1010)。そして、オペレーティングシステム部1
4は、排他制御領域内のフラグビット”01”を”0
0”に変更すると共に、第1プロセッサID格納部8b
をリセットして”0”にする。このとき、当該排他制御
領域内では、フラグビット8aに”00”が立ち、第1
プロセッサID格納部8b及び第2プロセッサID格納
部8dはリセット状態”0”となる。
【0105】一方、前述のステップ1003において、
フラグビット8aに”11”が立っている場合は、上記
の図9のステップ909に対応するプロセッサからの共
有メモリ返却処理であり、当該オペレーティングシステ
ム部14は、共有メモリ6へのバスロックを解除して
(ステップ1004)、排他制御領域8のフラグビッ
ト”11”から”01”に変更する(ステップ100
5)。
フラグビット8aに”11”が立っている場合は、上記
の図9のステップ909に対応するプロセッサからの共
有メモリ返却処理であり、当該オペレーティングシステ
ム部14は、共有メモリ6へのバスロックを解除して
(ステップ1004)、排他制御領域8のフラグビッ
ト”11”から”01”に変更する(ステップ100
5)。
【0106】次に、オペレーティングシステム部14
は、当該プロセッサ5のプロセッサIDが排他制御領域
8の第1プロセッサID格納部8bのプロセッサIDと
一致するか、第2プロセッサID格納部8dのプロセッ
サIDと一致するかを判別する(ステップ1006)。
は、当該プロセッサ5のプロセッサIDが排他制御領域
8の第1プロセッサID格納部8bのプロセッサIDと
一致するか、第2プロセッサID格納部8dのプロセッ
サIDと一致するかを判別する(ステップ1006)。
【0107】ここで、当該プロセッサ5のプロセッサI
Dが第2プロセッサID格納部8dのプロセッサIDと
一致した場合は、当該プロセッサ5は前述の図9におい
て障害を発生したプロセッサであり、共有メモリ返却処
理は当該プロセッサ5が障害から復帰した後に行われる
ものである。一方、当該プロセッサ5のプロセッサID
が第1プロセッサID格納部8bのプロセッサIDと一
致した場合は、当該プロセッサ5は前述の図9において
障害を発生したプロセッサによる排他制御を自動的に解
除させ、当該メモリプール7にアクセスしているプロセ
ッサである。
Dが第2プロセッサID格納部8dのプロセッサIDと
一致した場合は、当該プロセッサ5は前述の図9におい
て障害を発生したプロセッサであり、共有メモリ返却処
理は当該プロセッサ5が障害から復帰した後に行われる
ものである。一方、当該プロセッサ5のプロセッサID
が第1プロセッサID格納部8bのプロセッサIDと一
致した場合は、当該プロセッサ5は前述の図9において
障害を発生したプロセッサによる排他制御を自動的に解
除させ、当該メモリプール7にアクセスしているプロセ
ッサである。
【0108】前述のステップ1006において、当該プ
ロセッサIDと第2プロセッサID格納部8dのプロセ
ッサIDとが一致した場合、当該プロセッサ5のオペレ
ーティングシステム部14は、第2プロセッサID格納
部8dをリセット”0”にし(ステップ1008)、当
該メモリプール7を返却する。
ロセッサIDと第2プロセッサID格納部8dのプロセ
ッサIDとが一致した場合、当該プロセッサ5のオペレ
ーティングシステム部14は、第2プロセッサID格納
部8dをリセット”0”にし(ステップ1008)、当
該メモリプール7を返却する。
【0109】一方、前述のステップ1006において、
当該プロセッサIDと第1プロセッサID格納8bのプ
ロセッサIDとが一致した場合、当該プロセッサ5のオ
ペレーティングシステム部14は、第2プロセッサID
格納部8dのプロセッサIDを第1プロセッサID格納
部8bに格納させ、第2プロセッサID格納部8dをリ
セット”0”にして、当該メモリプール7を返却する
(ステップ1007)。
当該プロセッサIDと第1プロセッサID格納8bのプ
ロセッサIDとが一致した場合、当該プロセッサ5のオ
ペレーティングシステム部14は、第2プロセッサID
格納部8dのプロセッサIDを第1プロセッサID格納
部8bに格納させ、第2プロセッサID格納部8dをリ
セット”0”にして、当該メモリプール7を返却する
(ステップ1007)。
【0110】従って、本実施例3によれば、障害を発生
したプロセッサの排他制御状態を保持したまま、他の正
常なプロセッサが同一のメモリプールへアクセスするこ
とが可能であり、障害を発生したプロセッサは復帰した
時点で障害発生前の処理を継続して行うことができる。
したプロセッサの排他制御状態を保持したまま、他の正
常なプロセッサが同一のメモリプールへアクセスするこ
とが可能であり、障害を発生したプロセッサは復帰した
時点で障害発生前の処理を継続して行うことができる。
【0111】
【実施例4】本実施例4におけるマルチプロセッサシス
テムの構成は、N個のプロセッサ5及び単一の共有メモ
リ6とからなる。
テムの構成は、N個のプロセッサ5及び単一の共有メモ
リ6とからなる。
【0112】各プロセッサ5の構成は、前述の実施例1
と同様であり、タスク10、オペレーティングシステム
部14、アクセスカウンタ11、タイマ12、バッファ
13とからなる。ここで、本実施例4では、上記のオペ
レーティングシステム部14に、当該プロセッサ5によ
る排他制御中のメモリプールが存在するか否かを判別す
る機能を付加する。つまり、当該プロセッサ5が障害を
発生した当時排他制御状態にあったメモリプールを、再
立ち上げ後に検出し、この排他制御を自動的に解除す
る。
と同様であり、タスク10、オペレーティングシステム
部14、アクセスカウンタ11、タイマ12、バッファ
13とからなる。ここで、本実施例4では、上記のオペ
レーティングシステム部14に、当該プロセッサ5によ
る排他制御中のメモリプールが存在するか否かを判別す
る機能を付加する。つまり、当該プロセッサ5が障害を
発生した当時排他制御状態にあったメモリプールを、再
立ち上げ後に検出し、この排他制御を自動的に解除す
る。
【0113】本実施例4におけるプロセッサ5の動作過
程を図11のフローチャートに基づいて説明する。オペ
レーティングシステム部14は、共有メモリ6内のメモ
リプール7に上位から順次アクセスし、各メモリプール
7のフラグビット8aを参照する(ステップ110
1)。
程を図11のフローチャートに基づいて説明する。オペ
レーティングシステム部14は、共有メモリ6内のメモ
リプール7に上位から順次アクセスし、各メモリプール
7のフラグビット8aを参照する(ステップ110
1)。
【0114】そして、任意のメモリプール7にアクセス
した際に、オペレーティングシステム部14は、当該メ
モリプール7のフラグビット8aが”1”か否かを判別
する(ステップ1102)。ここで、フラグビット8a
が”0”の場合には、次のメモリプール7へアクセス
し、フラグビット8aが”1”の場合には、当該メモリ
プール7内の第1プロセッサID格納部8bにアクセス
する。そして、第1プロセッサID格納部8bに格納さ
れているプロセッサIDと自プロセッサ5のプロセッサ
IDとを照合する(ステップ1103)。
した際に、オペレーティングシステム部14は、当該メ
モリプール7のフラグビット8aが”1”か否かを判別
する(ステップ1102)。ここで、フラグビット8a
が”0”の場合には、次のメモリプール7へアクセス
し、フラグビット8aが”1”の場合には、当該メモリ
プール7内の第1プロセッサID格納部8bにアクセス
する。そして、第1プロセッサID格納部8bに格納さ
れているプロセッサIDと自プロセッサ5のプロセッサ
IDとを照合する(ステップ1103)。
【0115】ここで、双方のプロセッサIDが不一致の
場合には、次のメモリプール7へアクセスし、双方のプ
ロセッサIDが一致する場合には、当該メモリプール7
の返却処理を行う。すなわち、当該メモリプール7の返
却システムコールを発行し、当該メモリプール7の排他
制御を解除する(ステップ1104)。
場合には、次のメモリプール7へアクセスし、双方のプ
ロセッサIDが一致する場合には、当該メモリプール7
の返却処理を行う。すなわち、当該メモリプール7の返
却システムコールを発行し、当該メモリプール7の排他
制御を解除する(ステップ1104)。
【0116】次に、当該オペレーティングシステム部1
4は、前記メモリプール7内の排他制御領域8内のフラ
グビット8a及びプロセッサID格納部8bをリセット
し、双方を”0”にする(ステップ1105)。
4は、前記メモリプール7内の排他制御領域8内のフラ
グビット8a及びプロセッサID格納部8bをリセット
し、双方を”0”にする(ステップ1105)。
【0117】個々で、オペレーティングシステム部14
は、前記メモリプール7が当該共有メモリ6の最下位の
メモリプール7であるか否かを判別する(ステップ11
06)。
は、前記メモリプール7が当該共有メモリ6の最下位の
メモリプール7であるか否かを判別する(ステップ11
06)。
【0118】当該メモリプール7が最下位の場合には、
当該返却処理を終了する。一方、当該メモリプール7よ
り下位のメモリプール7が存在する場合には、そのメモ
リプール7にアクセスし、前述のステップ1102以降
の処理を繰り返し行う。
当該返却処理を終了する。一方、当該メモリプール7よ
り下位のメモリプール7が存在する場合には、そのメモ
リプール7にアクセスし、前述のステップ1102以降
の処理を繰り返し行う。
【0119】以上、本実施例4によれば、障害を発生し
たプロセッサは、障害のデバック処理終了後に、自プロ
セッサの排他制御状態にあるメモリプールを自動的に検
索してそのメモリプールに対する排他制御を解除可能と
なる。
たプロセッサは、障害のデバック処理終了後に、自プロ
セッサの排他制御状態にあるメモリプールを自動的に検
索してそのメモリプールに対する排他制御を解除可能と
なる。
【0120】
【発明の効果】本発明によれば、複数のプロセッサによ
り単一の共有メモリを共有するマルチプロセッサシステ
ムにおいて、任意のプロセッサが共有メモリにアクセス
した状態で障害を発生した場合、他の正常なプロセッサ
がこれを認識して障害を発生したプロセッサの排他制御
を自動的に解除し、正常なプロセッサは継続して処理を
実行することができる。これによりマルチプロセッサシ
ステム全体の処理能力が向上する。
り単一の共有メモリを共有するマルチプロセッサシステ
ムにおいて、任意のプロセッサが共有メモリにアクセス
した状態で障害を発生した場合、他の正常なプロセッサ
がこれを認識して障害を発生したプロセッサの排他制御
を自動的に解除し、正常なプロセッサは継続して処理を
実行することができる。これによりマルチプロセッサシ
ステム全体の処理能力が向上する。
【図1】本発明の原理図
【図2】本実施例1におけるマルチプロセッサシステム
の概略構成ブロック図
の概略構成ブロック図
【図3】本実施例1におけるメモリプールの内部構成ブ
ロック図
ロック図
【図4】本実施例1におけるプロセッサの内部構成ブロ
ック図
ック図
【図5】本実施例1における排他制御自動解除の動作過
程を示すフローチャート図
程を示すフローチャート図
【図6】本実施例2におけるメモリプールの内部構成ブ
ロック図
ロック図
【図7】本実施例2における排他制御自動解除の動作過
程を示すフローチャート図
程を示すフローチャート図
【図8】本実施例3におけるメモリプールの内部構成ブ
ロック図
ロック図
【図9】本実施例3における共有メモリアクセス要求時
の処理過程を示すフローチャート図
の処理過程を示すフローチャート図
【図10】本実施例3における共有メモリ返却処理の過
程を示すフローチャート図
程を示すフローチャート図
【図11】本実施例4におけるプロセッサの動作過程を
示すフローチャート図
示すフローチャート図
【図12】従来のマルチプロセッサシステムの具体例を
示す図
示す図
1・・共有メモリ 2・・プロセッサ 2a・・バッファ 2b・・アクセスカウンタ 2c・・照合手段 4・・メモリプール 4a・・状態表示手段 4b・・第1のプロセッサID格納部 4c・・カウンタ 4d・・第2のプロセッサID格納部 5・・プロセッサ 6・・共有メモリ 7・・メモリプール 8・・排他制御領域 8a・・フラグビット 8b・・プロセッサID格納部、第1プロセッサID格
納部 8c・・カウンタ 8d・・第2プロセッサID格納部 9・・データ領域 9a・・メモリプール(1) 9b・・メモリプール(2) 10・・タスク 11・・アクセスカウンタ 12・・タイマ 13・・バッファ 14・・オペレーティングシステム部
納部 8c・・カウンタ 8d・・第2プロセッサID格納部 9・・データ領域 9a・・メモリプール(1) 9b・・メモリプール(2) 10・・タスク 11・・アクセスカウンタ 12・・タイマ 13・・バッファ 14・・オペレーティングシステム部
フロントページの続き (72)発明者 山崎 光男 神奈川県横浜市港北区新横浜3丁目9番18 号 富士通コミュニケーション・システム ズ株式会社内
Claims (6)
- 【請求項1】 複数のメモリプール(4)を有する共有
メモリ(1)と、複数のプロセッサ(2)を備え、任意
のプロセッサ(2)からメモリプール(4)に対するア
クセスを排他的に制御し、他のプロセッサ(2)からの
アクセスを防止するマルチプロセッサシステムにおい
て、 前記各メモリプール(4)には、当該メモリプール
(4)が任意のプロセッサ(2)によりアクセス状態に
あるか否かを示す状態表示手段(4a)と、個々のプロ
セッサ(2)を特定するプロセッサIDを格納するプロ
セッサID格納部(4b)を備えると共に、 前記各プロセッサ(2)には、前記プロセッサID格納
部(4b)に登録されているプロセッサIDを複写・格
納するバッファ(2a)と、当該メモリプール(4)に
対するアクセス要求の発行回数を計数するアクセスカウ
ンタ(2b)を備え、 前記プロセッサ(2)は、前記共有メモリ(1)の任意
のメモリプール(4)へアクセスする際、そのメモリプ
ール(4)の備える状態表示手段(4a)を参照し、当
該メモリプール(4)がアクセス状態にあるか否かを判
別し、 当該メモリプール(4)がアクセス状態の場合に、前記
アクセスカウンタ(2b)をインクリメントすると共
に、前記プロセッサID格納部(4b)に登録されてい
るプロセッサIDを前記バッファ(2a)に複写し、 所定時間経過後に再度状態表示手段(4a)を参照し、
アクセス状態の場合には、前記アクセスカウンタ(2
b)を再度インクリメントし、このアクセスカウンタ
(2b)の計数値が任意に設定される特定値に達した場
合、前記バッファ(2a)に複写したプロセッサIDと
前記プロセッサID格納部(4b)に登録されているプ
ロセッサIDとを比較し、両者が一致したとき、当該プ
ロセッサIDに対応するプロセッサの障害発生を認識
し、 前記状態表示手段(4a)を空き状態に変更すると共
に、第1のプロセッサID格納部(4b)のプロセッサ
IDを自身のプロセッサIDに書き換えることを特徴と
する共有メモリ排他制御方式。 - 【請求項2】 前記共有メモリ(1)の各メモリプール
(4)には、任意のプロセッサ(2)のアクセスを許容
した際にインクリメントされるカウンタ(4c)を設
け、 任意のプロセッサ(2)は、前記メモリプール(4)に
アクセスする際に、前記状態表示手段(4a)を参照
し、当該メモリプール(4)が他のプロセッサ(2)に
よりアクセス状態の場合は、前記プロセッサID格納部
(4b)のプロセッサIDと共に前記カウンタ(4c)
の値を前記バッファ(2a)に格納し、 特定回数のアクセスを試しみた後、前記バッファ(2
a)のプロセッサID及びカウンタ値と前記第1のプロ
セッサID格納部(4b)のプロセッサID及び前記カ
ウンタ(4c)のカウンタ値を比較し、 それぞれが一致した場合に、当該プロセッサ(2)は前
記プロセッサIDに対応するプロセッサ(2)の障害発
生を認識することを特徴とする請求項1記載の共有メモ
リ排他制御方式。 - 【請求項3】 複数のメモリプール(4)を有する共有
メモリ(1)と、複数のプロセッサ(2)を備え、任意
のプロセッサ(2)からメモリプール(4)に対するア
クセスを排他的に制御し、他のプロセッサ(2)からの
アクセスを防止するマルチプロセッサシステムにおい
て、 前記各メモリプール(4)には、当該メモリプール
(4)が任意のプロセッサ(2)によりアクセス状態に
あるか否かを示す状態表示手段(4a)と、前記メモリ
プール(4)にアクセスしているプロセッサ(2)のプ
ロセッサIDを格納する第1のプロセッサID格納部
(4b)と、前記メモリプール(4)のアクセス状態で
障害を発生したプロセッサ(2)のプロセッサIDを格
納する第2のプロセッサID格納部(4d)を備えると
共に、 前記各プロセッサ(2)には、前記第1のプロセッサI
D格納部(4b)に登録されているプロセッサIDを複
写・格納するバッファ(2a)と、当該メモリプール
(4)に対するアクセス要求の発行回数を計数するアク
セスカウンタ(2b)を備え、 任意のプロセッサ(2)は、前記メモリプール(4)に
アクセスする際に、前記状態表示手段(4a)を参照
し、当該メモリプール(4)が他のプロセッサ(2)に
よりアクセス状態か否かを判別し、 当該メモリプール(4)がアクセス可能状態の場合は、
前記第1のプロセッサID格納部(4b)に自プロセッ
サ(2)のプロセッサIDを格納し、 当該メモリプール(4)が他のプロセッサ(2)により
アクセス状態の場合は、前記第1のプロセッサID格納
部(4b)に格納されているプロセッサIDを前記バッ
ファ(2a)に複写すると共に、前記アクセスカウンタ
(2b)をインクリメントし、特定回数アクセスを繰り
返した後、前記バッファ(2a)のプロセッサIDと前
記第1のプロセッサID格納部(4b)のプロセッサI
Dとを照合し、 双方のIDが一致した場合に、前記第1のプロセッサI
D格納部(4b)のプロセッサIDを前記第2のプロセ
ッサID格納部(4d)に格納させると共に、自プロセ
ッサIDを前記第1のプロセッサID格納部(4b)に
登録することを特徴とする共有メモリ排他制御方式。 - 【請求項4】 前記状態表示手段(4a)は、前記第1
のプロセッサID格納部(4b)にプロセッサIDが格
納されている場合に、前記プロセッサIDに対応するプ
ロセッサ(2)によるアクセス状態を表示すると共に、 前記第1のプロセッサID格納部(4b)及び第2のプ
ロセッサID格納部(4d)の双方にプロセッサIDが
格納されている場合に、前記双方のプロセッサIDに対
応した二つのプロセッサ(2)により二重アクセス状態
である旨を表示することを特徴とする請求項3記載の共
有メモリ排他制御方式。 - 【請求項5】 前記プロセッサ(2)は、前記メモリプ
ール(4)に対するアクセス終了時、前記第1のプロセ
ッサID格納部(4b)及び第2のプロセッサID格納
部(4d)を参照し、 前記第1のプロセッサID格納部(4b)のみプロセッ
サIDが格納されている場合には、このプロセッサID
と自プロセッサIDの一致を確認後、当該プロセッサI
Dを消去し、 前記第1のプロセッサID格納部(4b)及び第2のプ
ロセッサID格納部(4d)の双方にプロセッサIDが
格納されている場合には、自プロセッサIDと、前記第
1のプロセッサID格納部(4b)及び第2のプロセッ
サID格納部(4d)の各々のプロセッサIDとを比較
し、 前記第2のプロセッサID格納部(4d)のプロセッサ
IDと一致した場合には、このプロセッサIDを消去
し、 前記第1のプロセッサID格納部(4b)のプロセッサ
IDと一致した場合には、このプロセッサIDを消去す
ると共に、前記第2のプロセッサID格納部(4d)の
プロセッサIDを当該第1プロセッサID格納部(4
b)に格納させることを特徴とする請求項3記載の共有
メモリ排他制御方式。 - 【請求項6】 複数のメモリプール(4)を有する共有
メモリ(1)と、複数のプロセッサ(2)を備え、任意
のプロセッサ(2)からメモリプール(4)に対するア
クセスを排他的に制御し、他のプロセッサ(2)からの
アクセスを防止するマルチプロセッサシステムにおい
て、 前記各メモリプール(4)には、当該メモリプール
(4)が任意のプロセッサ(2)によりアクセス状態に
あるか否かを示す状態表示手段(4a)と、 前記メモリプール(4)にアクセスしているプロセッサ
(2)のプロセッサIDを格納するプロセッサID格納
部(4b)とを備えると共に、 前記各プロセッサ(2)には、前記プロセッサID格納
部(4b)に登録されているプロセッサIDと自プロセ
ッサIDとを照合する照合手段(2c)を備え、 前記プロセッサ(2)は、障害発生から再立ち上げされ
た際に、前記共有メモリ(1)の各メモリプール(4)
にアクセスし、前記照合手段(2c)は、各メモリプー
ル(4)の状態表示手段(4a)にアクセスして当該メ
モリプール(4)のアクセス状態を表示しているか否か
を判別し、 前記状態表示手段(4b)がアクセス状態を表示してい
る場合に、そのメモリプール(4)のプロセッサID格
納部(4b)に格納されているプロセッサIDと自プロ
セッサIDとを照合し、 前記双方のプロセッサIDが一致した場合に、当該メモ
リプール(4)の状態表示手段(4a)をアクセス可能
状態に変更すると共に、前記プロセッサID格納部(4
b)に格納されている自プロセッサIDを消去すること
を特徴とする共有メモリ排他制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4301900A JPH06149765A (ja) | 1992-11-12 | 1992-11-12 | 共有メモリ排他制御自動解除方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4301900A JPH06149765A (ja) | 1992-11-12 | 1992-11-12 | 共有メモリ排他制御自動解除方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06149765A true JPH06149765A (ja) | 1994-05-31 |
Family
ID=17902479
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4301900A Withdrawn JPH06149765A (ja) | 1992-11-12 | 1992-11-12 | 共有メモリ排他制御自動解除方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06149765A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6374362B1 (en) | 1998-01-14 | 2002-04-16 | Nec Corporation | Device and method for shared process control |
| WO2008062508A1 (en) * | 2006-11-21 | 2008-05-29 | Fujitsu Limited | Multiprocessor system |
| CN101331454A (zh) * | 2005-10-20 | 2008-12-24 | 高通股份有限公司 | 用于清除信号量保留的方法及设备 |
| JP2020184365A (ja) * | 2020-07-07 | 2020-11-12 | オラクル・インターナショナル・コーポレイション | アプリケーションサーバを並列起動するためのシステムおよび方法 |
-
1992
- 1992-11-12 JP JP4301900A patent/JPH06149765A/ja not_active Withdrawn
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6374362B1 (en) | 1998-01-14 | 2002-04-16 | Nec Corporation | Device and method for shared process control |
| CN101331454A (zh) * | 2005-10-20 | 2008-12-24 | 高通股份有限公司 | 用于清除信号量保留的方法及设备 |
| JP2009512945A (ja) * | 2005-10-20 | 2009-03-26 | クゥアルコム・インコーポレイテッド | セマフォ予約をクリアする方法および装置 |
| JP2015144000A (ja) * | 2005-10-20 | 2015-08-06 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | セマフォ予約をクリアする方法および装置 |
| WO2008062508A1 (en) * | 2006-11-21 | 2008-05-29 | Fujitsu Limited | Multiprocessor system |
| JP2020184365A (ja) * | 2020-07-07 | 2020-11-12 | オラクル・インターナショナル・コーポレイション | アプリケーションサーバを並列起動するためのシステムおよび方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6493837B1 (en) | Using log buffers to trace an event in a computer system | |
| US5379398A (en) | Method and system for concurrent access during backup copying of data | |
| US8234645B2 (en) | Deallocation of computer data in a multithreaded computer | |
| US4914570A (en) | Process distribution and sharing system for multiple processor computer system | |
| JP2000284995A (ja) | データ処理装置及び記録媒体 | |
| JPH0715664B2 (ja) | データ・セツト回復方法 | |
| JPH0644010A (ja) | タイムゼロ・バックアップ・コピー・プロセスにおける副ファイル状態のポーリングのための方法およびシステム | |
| EP0608255A1 (en) | Method and means for time zero backup copying of data | |
| US6336164B1 (en) | Method and system for preventing deadlock in a log structured array | |
| WO2025138722A1 (zh) | 访存失效队列处理方法、装置及电子设备 | |
| CN1231449A (zh) | 基于请求的同步总线操作 | |
| WO2025148564A1 (zh) | 重填数据的处理方法、装置、设备、存储介质及程序 | |
| JPH06149765A (ja) | 共有メモリ排他制御自動解除方式 | |
| CN114217855A (zh) | store_buffer merge的实现方法及系统 | |
| US4985826A (en) | Method and device to execute two instruction sequences in an order determined in advance | |
| IE61306B1 (en) | Method and device to execute two instruction sequences in an order determined in advance | |
| JPH08129492A (ja) | 資源排他チェックシステム及び資源排他チェック方法 | |
| JPH04305741A (ja) | データベース入出力制御方式 | |
| KR19980049353A (ko) | 분산 트랜잭션의 회복방법 | |
| JP3356090B2 (ja) | メモリ管理方法およびメモリ管理装置、並びに記録媒体 | |
| CN118151887B (zh) | 除法器数据处理方法、装置、终端设备以及存储介质 | |
| JP3035966B2 (ja) | 記憶装置 | |
| JP2903605B2 (ja) | ファイル領域管理処理方法 | |
| JP3206580B2 (ja) | Dmaデータ転送制御方法及び入出力処理装置 | |
| JPH0773035A (ja) | 複数プロセツサ・システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20000201 |