JP2011118688A - 排他制御装置 - Google Patents
排他制御装置 Download PDFInfo
- Publication number
- JP2011118688A JP2011118688A JP2009275755A JP2009275755A JP2011118688A JP 2011118688 A JP2011118688 A JP 2011118688A JP 2009275755 A JP2009275755 A JP 2009275755A JP 2009275755 A JP2009275755 A JP 2009275755A JP 2011118688 A JP2011118688 A JP 2011118688A
- Authority
- JP
- Japan
- Prior art keywords
- access
- data block
- conflict
- exclusive control
- determination
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】排他制御中であっても待ち時間を低減することが可能な排他制御装置を提供する。
【解決手段】一実施形態の排他制御装置10は、プロセス31が共有リソース20における複数のデータブロックからなるデータブロック群単位でロックを獲得しているときに、プロセス31による上記データブロック群に属するデータブロックへのアクセス内容を記録するアクセス内容記録手段12と、アクセス内容記録手段12によって記録されたアクセス内容とプロセス32による上記データブロック群に属するデータブロックへのアクセス内容との対比を行い、プロセス32によるこのアクセスがプロセス31による上記データブロックへのアクセスと抵触するか否かを判定するアクセス抵触判定手段13と、この判定結果に基づいてプロセス32によるこのアクセスを許可するか否かを通知するアクセス可否通知手段14とを備える。
【選択図】図1
【解決手段】一実施形態の排他制御装置10は、プロセス31が共有リソース20における複数のデータブロックからなるデータブロック群単位でロックを獲得しているときに、プロセス31による上記データブロック群に属するデータブロックへのアクセス内容を記録するアクセス内容記録手段12と、アクセス内容記録手段12によって記録されたアクセス内容とプロセス32による上記データブロック群に属するデータブロックへのアクセス内容との対比を行い、プロセス32によるこのアクセスがプロセス31による上記データブロックへのアクセスと抵触するか否かを判定するアクセス抵触判定手段13と、この判定結果に基づいてプロセス32によるこのアクセスを許可するか否かを通知するアクセス可否通知手段14とを備える。
【選択図】図1
Description
本発明は、排他制御の待ち時間を低減するための排他制御装置に関するものである。
マルチプロセッサ(マルチコアを含む)環境において、共有リソースのロックを行う排他制御装置が知られている。この種の排他制御装置では、先行するプロセスによって共有リソースが既にロック中である場合、後発のプロセスは先行のプロセスによるロック開放を待たなければならず、アクセスが競合するか否かに関わりなく待ち時間が発生する。そのため、実際にアクセスが競合しない場合、この待ち時間はオーバーヘッドであり、無駄になってしまう。
この問題点に関する解決法の一例としては、ロックの粒度(排他対象の大きさ)を小さくすることが考えられる。しかしながら、ロックの粒度を小さくすることで競合は発生し難くなる反面、ロック処理自体が多くなり、ロック処理にかかる累積時間が長くなる。またロックの数が増加してしまうことが予想されるため、デッドロックを生じやすくなる等、プログラム作成の難易度が高くなってしまうことが予想される。
そこで、特許文献1には、上記問題点を解決する別の手法の考案が開示されている。特許文献1に記載の排他制御装置では、通常は排他制御を使用せずに共有リソースのアクセスを行い、共有リソースの内容を変更する際に一時的に排他制御を使用する。これにより、共有リソースの内容を変更しない通常時は、排他制御による待ち状態を回避し、システムの処理性能の低下を防止することができるとしている。
ところで、共有リソース内には複数のデータブロックが存在し、通常、プロセスは共有リソース内の一部のデータブロックに対してアクセスを行う。特許文献1に記載の排他制御装置では、共有リソース内の一部のデータブロックの内容を変更する際にも、共有リソース内の全てのデータブロックをロックしてしまうため、変更が加えられない他のデータブロックを利用したいプロセスもロックが開放されるまで無駄に待たされてしまう。
そこで、本発明は、排他制御中であっても待ち時間を低減することが可能な排他制御装置を提供することを目的とする。
本発明の排他制御装置は、共有リソースに対して第1及び第2のプロセスからアクセスを行う際に、共有リソースにおける複数のデータブロックからなるデータブロック群単位でロックを行う排他制御装置において、第1のプロセスがデータブロック群のロックを獲得しているときに、(イ)第1のプロセスによる上記データブロック群に属するデータブロックへのアクセス内容を記録するアクセス内容記録手段と、(ロ)アクセス内容記録手段によって記録されたアクセス内容と第2のプロセスによる上記データブロック群に属するデータブロックへのアクセス内容との対比を行い、第2のプロセスによる上記データブロック群に属するデータブロックへのアクセスが第1のプロセスによる上記データブロック群に属するデータブロックへのアクセスと抵触するか否かを判定するアクセス抵触判定手段と、(ハ)アクセス抵触判定手段の判定結果に基づいて、第2のプロセスによる上記データブロック群に属するデータブロックへのアクセスを許可するか否かを通知するアクセス可否通知手段と、を備える。
この排他制御装置によれば、第1のプロセスによってロックされているデータブロック群に属するデータブロックに対する第2のプロセスによるアクセスであっても、アクセス内容記録手段によって記録された先行の第1のプロセスによるアクセス内容と抵触しないアクセス内容であれば、アクセス抵触判定手段及びアクセス可否通知手段によってアクセスが許可される。したがって、例えば、変更が加えられないデータなどを利用するために、後発の第2のプロセスが無駄に待たされることがない。故に、この排他制御装置によれば、排他制御中であっても待ち時間を低減することができる。
上記したアクセス内容記録手段は、第1のプロセスによる上記データブロック群に属するデータブロックへのアクセス内容として、読み込みアクセス及び書き込みアクセスのうちの何れかのアクセス種別を記録することが好ましく、上記したアクセス抵触判定手段は、第1のプロセスがアクセスしたデータブロックと同一のデータブロックに第2のプロセスがアクセスする際に、アクセス内容記録手段によって記録されたアクセス種別と第2のプロセスによる上記データブロック群に属する上記データブロックへのアクセス種別との対比を行うことが好ましい。
また、上記したアクセス抵触判定手段は、第1のプロセスによるアクセス種別が読み込みアクセスであった場合には、第2のプロセスによるアクセス種別が書き込みアクセスであるときに抵触と判定することが好ましく、第1のプロセスによるアクセス種別が書き込みアクセスであった場合には、第2のプロセスによるアクセス種別が読み込みアクセス及び書き込みアクセスであるときに抵触と判定することが好ましい。
本発明の別の排他制御装置は、共有リソースに対して複数のプロセスからアクセスを行う際に、共有リソースにおける複数のデータブロックからなるデータブロック群単位でロックを行う排他制御装置において、複数のプロセスがデータブロック群のロックを獲得しているときに、(イ)複数のプロセスそれぞれによる上記データブロック群に属するデータブロックへのアクセス内容を記録するアクセス内容記録手段と、(ロ)複数のプロセスのうちの何れかのプロセスが上記データブロック群に属するデータブロックへアクセスする際に、当該プロセスを判定対象プロセスとすると共に当該データブロックを判定対象データブロックとし、判定対象プロセスによる判定対象データブロックへのアクセス内容とアクセス内容記録手段によって記録されたアクセス内容との対比を行い、判定対象プロセスによる判定対象データブロックへのアクセスが他のプロセスによる判定対象データブロックへのアクセスと抵触するか否かを判定するアクセス抵触判定手段と、(ハ)アクセス抵触判定手段の判定結果に基づいて、判定対象プロセスによる判定対象データブロックへのアクセスを許可するか否かを通知するアクセス可否通知手段と、を備える。
この排他制御装置によれば、複数のプロセスのうちの何れかによってロックされているデータブロック群に属するデータブロックに対するアクセスであっても、アクセス内容記録手段によって記録された先行の他のプロセスによるアクセス内容と抵触しないアクセス内容であれば、アクセス抵触判定手段及びアクセス可否通知手段によってアクセスが許可される。したがって、例えば、変更が加えられないデータなどを利用するために、後発のプロセスが無駄に待たされることがない。故に、この排他制御装置によれば、排他制御中であっても待ち時間を低減することができる。
上記したアクセス内容は、読み込みアクセス及び書き込みアクセスのうちの何れかのアクセス種別を含み、上記したアクセス抵触判定手段は、判定対象プロセスによる判定対象データブロックへのアクセス種別、及び、アクセス内容記録手段によって記録された他のプロセスによる判定対象データブロックへのアクセス種別のうちの少なくとも何れかが書き込みアクセスであるときに抵触と判定することが好ましい。
本発明によれば、排他制御中であっても待ち時間を低減することができる。
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。なお、各図面において同一又は相当の部分に対しては同一の符号を附すこととする。
図1は、本発明の実施形態に係る排他制御装置を示す図である。図1には、排他制御装置10と共に、1つの共有リソース20及び2つのプロセス31,32が記載されている。
共有リソース20は、複数のデータブロック群を有し、各データブロック群は、複数のデータブロックを有する。この共有リソース20では、データブロック群単位でプロセス31,32による排他制御、すなわち、ロック/ロック解除の制御が可能となっている。また、この共有リソース20では、排他制御中に、データブロック単位でプロセス31,32によるアクセスが可能となっている。
プロセス31,32は、それぞれ、少なくとも1つのスレッドを有し、スレッド単位で共有リソース20にアクセスを行う。すなわち、プロセス31,32におけるスレッドは、それぞれ、共有リソース20におけるデータブロック群単位でロック要求/ロック解除要求を行い、また、ロックを獲得したデータブロック群におけるデータブロック単位でアクセスを行う。なお、以下では、プロセス31,32におけるスレッドのアクセスとして、読み出し/書き込みを例示する。これらのプロセス31,32による共有リソース20への排他制御は、排他制御装置10によって制御される。
排他制御装置10は、ロック処理部11、アクセス内容記録部12と、アクセス抵触判定部13と、アクセス可否通知部14とを備える。
ロック処理部11は、プロセス31,32からのロック要求/ロック解除要求に応じて、プロセス31,32による共有リソース20のデータブロック群(以下、排他対象領域という。)のロック/ロック解除を行う。
ロック状態の保持は、例えば、ロック変数に基づいて行われる。ロック変数は、ロック状態(ロック状態か否か)、ロックオーナー情報(プロセスIDやスレッドIDなどのロック保持者を特性する情報)、ロック対象メモリ領域情報などを含む。ロック変数は、ロック処理部11がロックを行う際にメモリ等に記録されればよく、本実施形態ではアクセス内容記録部12に記録されるものとする。なお、ロック変数は、ロック処理部11がロック解除を行う際に破棄される。
アクセス内容記録部12は、プロセス31,32それぞれが共有リソース20における排他対象領域に対してロックを獲得しているときに、プロセス31,32それぞれが排他対象領域におけるデータブロックに対して行うアクセスの内容を記録する。すなわち、アクセス内容記録部12は、記憶したロック変数におけるロック対象メモリ領域の範囲内に対してアクセスが行われるときに、そのアクセス内容を記録する。また、アクセス内容記録部12は、ロック処理部11がロック解除を行う際に、対象プロセスのアクセス記録を破棄する。
アクセス記録は、アクセス対象メモリ領域情報(例えば、アクセスが行われたデータブロックのアドレス)、アクセス種別(読み出し、書き込みなど)、アクセスタイミングなどを含む。アクセス記録は、ロック変数と関連付けて記録される。
アクセス抵触判定部13は、プロセス31,32によって共有リソース20におけるデータブロックへのアクセスが行われるときに、他のプロセスによるアクセスに抵触するか否かの判定を行う。例えば、アクセス抵触判定部13は、プロセス32による共有リソース20のデータブロックへのアクセス内容と、アクセス内容記録部12における同一のデータブロックへのプロセス31によるアクセス記録の内容とを対比する。
例えば、アクセス抵触判定部13は、
(A)プロセス32と異なる他のプロセス31によるアクセス記録が存在するか、
(B)プロセス32がアクセスするデータブロックと同一のデータブロックに対するプロセス31によるアクセス記録が存在するか、
(C)プロセス32によるアクセス種別、及び、アクセス記録におけるプロセス31による同一のデータブロックへのアクセス種別のうちの少なくとも何れか一方が書き込みアクセスであるか
の対比を行う。
(A)プロセス32と異なる他のプロセス31によるアクセス記録が存在するか、
(B)プロセス32がアクセスするデータブロックと同一のデータブロックに対するプロセス31によるアクセス記録が存在するか、
(C)プロセス32によるアクセス種別、及び、アクセス記録におけるプロセス31による同一のデータブロックへのアクセス種別のうちの少なくとも何れか一方が書き込みアクセスであるか
の対比を行う。
具体的には、アクセス抵触判定部13は、
(a)プロセス32と異なる他のプロセス31を示すロックオーナー情報を有するロック変数に関連付けられたアクセス記録が存在し、
(b)それらのアクセス記録の中に、プロセス32がアクセスするアクセス対象領域と同一のアクセス対象領域アドレスを有するアクセス記録が存在し、
(c)そのアクセス記録におけるアクセス種別、及び、プロセス32によるアクセス種別のうちの少なくとも何れか一方が書き込みアクセスである
場合に、プロセス32によるアクセスがプロセス31によるアクセスと抵触(競合)すると判断する。
(a)プロセス32と異なる他のプロセス31を示すロックオーナー情報を有するロック変数に関連付けられたアクセス記録が存在し、
(b)それらのアクセス記録の中に、プロセス32がアクセスするアクセス対象領域と同一のアクセス対象領域アドレスを有するアクセス記録が存在し、
(c)そのアクセス記録におけるアクセス種別、及び、プロセス32によるアクセス種別のうちの少なくとも何れか一方が書き込みアクセスである
場合に、プロセス32によるアクセスがプロセス31によるアクセスと抵触(競合)すると判断する。
すなわち、アクセス抵触判定部13は、異なるオーナーから同一のアドレスにアクセスがあり、これらのアクセス種別の少なくとも一方が書き込みアクセスである場合に、アクセス抵触(アクセス競合)と判定する。
なお、アクセスがプロセッサの実行タイミングとして同時に行われる場合には、例えば、バス機構その他の調停機構により、アクセスタイミングを異ならせればよい。
アクセス可否通知部14は、アクセス抵触判定部13の判定結果に基づき、プロセスよるアクセスを許可するか否かを通知する。例えば、アクセス抵触判定部13の判定結果がアクセス抵触でない場合、アクセス可否通知部14は、プロセス32によるアクセスを許可する。一方、アクセス抵触判定部13の判定結果がアクセス抵触である場合には、アクセス可否通知部14は、プロセス32によるアクセスを許可せず、そのアクセス及び排他が失敗したことを通知する。
次に、本実施形態の排他制御装置の動作について、一例を示しながら説明する。図2は、アクセス競合がない場合の本実施形態の排他制御装置による排他制御処理の一例を示す図であり、図3は、アクセス競合がある場合の本実施形態の排他制御装置による排他制御処理の一例を示す図である。
(アクセス競合がない場合の一例)
(アクセス競合がない場合の一例)
(1)図2に示すように、プロセス31のスレッドP1によって共有リソース20の排他対象領域に対してロック要求が行われると、ロック処理部11によって、スレッドP1による排他対象領域のロックが行われると共に、ロック変数が記録されてロック状態が保持される。
(2)次に、プロセス32のスレッドP2によって共有リソース20の同一の排他対象領域に対してロック要求が行われると、ロック処理部11によって、スレッドP2による排他対象領域のロックが行われると共に、ロック変数が記録されてロック状態が保持される。
(3)次に、スレッドP1によって排他対象領域のデータブロック(以下、メンバという。)1への読み出しアクセスが行われると、アクセス抵触判定部13によってアクセス抵触(アクセス競合)を判定する。この場合、他のスレッドP2による同一のメンバ1へのアクセス記録がアクセス内容記録部12に存在しないので、アクセス抵触(アクセス競合)なしと判定される。この判定結果に基づき、アクセス可否通知部14によって、メンバ1へのアクセス許可をスレッドP1に通知する。すると、スレッドP1によってメンバ1への読み出しアクセスが実行される。また、アクセス内容記録部12によって、スレッドP1によるメンバ1へのアクセス内容をアクセス記録1として記録する。
(4)次に、スレッドP2によって排他対象領域のメンバ2への書き込みアクセスが行われると、アクセス抵触判定部13によってアクセス抵触(アクセス競合)を判定する。この場合、他のスレッドP1による同一のメンバ2へのアクセス記録がアクセス内容記録部12に存在しないので、アクセス抵触(アクセス競合)なしと判定される。この判定結果に基づき、アクセス可否通知部14によって、メンバ2へのアクセス許可をスレッドP2に通知する。すると、スレッドP2によってメンバ2への書き込みアクセスが実行される。また、アクセス内容記録部12によって、スレッドP2によるメンバ2へのアクセス内容をアクセス記録2として記録する。
(5)次に、スレッドP1によって排他対象領域のメンバ3への読み出しアクセスが行われると、アクセス抵触判定部13によってアクセス抵触(アクセス競合)を判定する。この場合、他のスレッドP2による同一のメンバ3へのアクセス記録がアクセス内容記録部12に存在しないので、アクセス抵触(アクセス競合)なしと判定される。この判定結果に基づき、アクセス可否通知部14によって、メンバ3へのアクセス許可をスレッドP1に通知する。すると、スレッドP1によってメンバ3への読み出しアクセスが実行される。また、アクセス内容記録部12によって、スレッドP1によるメンバ3へのアクセス内容をアクセス記録3として記録する。
(6)次に、スレッドP2によって排他対象領域のメンバ3への読み出しアクセスが行われると、アクセス抵触判定部13によってアクセス抵触(アクセス競合)を判定する。この場合、他のスレッドP1による同一のメンバ3へのアクセス記録3がアクセス内容記録部12に存在するが、このアクセス記録3におけるアクセス種別及びスレッドP2によるアクセス種別が共に読み出しアクセスであるので、アクセス抵触(アクセス競合)なしと判定される。この判定結果に基づき、アクセス可否通知部14によって、メンバ3へのアクセス許可をスレッドP2に通知する。すると、スレッドP2によってメンバ3への読み出しアクセスが実行される。また、アクセス内容記録部12によって、スレッドP2によるメンバ3へのアクセス内容をアクセス記録4として記録する。
(7)次に、スレッドP1によって排他対象領域のメンバ5への読み出しアクセスが行われると、アクセス抵触判定部13によってアクセス抵触(アクセス競合)を判定する。この場合、他のスレッドP2による同一のメンバ5へのアクセス記録がアクセス内容記録部12に存在しないので、アクセス抵触(アクセス競合)なしと判定される。この判定結果に基づき、アクセス可否通知部14によって、メンバ5へのアクセス許可をスレッドP1に通知する。すると、スレッドP1によってメンバ5への読み出しアクセスが実行される。また、アクセス内容記録部12によって、スレッドP1によるメンバ5へのアクセス内容をアクセス記録5として記録する。
(8)次に、スレッドP2によって排他対象領域のメンバ4への書き込みアクセスが行われると、アクセス抵触判定部13によってアクセス抵触(アクセス競合)を判定する。この場合、他のスレッドP1による同一のメンバ4へのアクセス記録がアクセス内容記録部12に存在しないので、アクセス抵触(アクセス競合)なしと判定される。この判定結果に基づき、アクセス可否通知部14によって、メンバ4へのアクセス許可をスレッドP2に通知する。すると、スレッドP2によってメンバ4への書き込みアクセスが実行される。また、アクセス内容記録部12によって、スレッドP2によるメンバ4へのアクセス内容をアクセス記録6として記録する。
(9)次に、スレッドP2によって排他対象領域に対するロック解除要求が行われると、ロック処理部11によって、スレッドP2による排他対象領域のロック解除が行われる。また、アクセス内容記録部12によって、スレッドP2に関するアクセス記録2,4,6を破棄する。
(10)次に、スレッドP1によって排他対象領域に対するロック解除要求が行われると、ロック処理部11によって、スレッドP1による排他対象領域のロック解除が行われる。また、アクセス内容記録部12によって、スレッドP1に関するアクセス記録1,3,5を破棄する。
(アクセス競合がある場合の一例)
(アクセス競合がある場合の一例)
図3に示すように、(1)〜(7)の処理は同一である。
(8)次に、スレッドP2によって排他対象領域のメンバ5への書き込みアクセスが行われると、アクセス抵触判定部13によってアクセス抵触(アクセス競合)を判定する。この場合、他のスレッドP1による同一のメンバ5へのアクセス記録5がアクセス内容記録部12に存在し、スレッドP2のアクセス種別が書き込みアクセスであるので、アクセス抵触(アクセス競合)ありと判定される。
(9)すると、アクセス可否通知部14によって、メンバ5に対するアクセス競合により排他が失敗したことをスレッドP2に通知する。すると、スレッドP2によって、ロックを獲得してから排他失敗の通知を受け取るまでに行った処理について、リカバリ処理が行われる。リカバリ処理としては、アクセス記録から排他要求発行直前の状態まで処理を戻したり、エラーとして扱ったり、などが考えられるが、本発明の範囲外であるので、詳細な説明は省略する。なお、この種のリカバリ処理に応じて、アクセス内容記録部12によって、スレッドP2に関するアクセス記録2,4,6を破棄したり、ロック処理部11によって、スレッドP2による排他対象領域のロック解除が行われることとなる。
次に、(10)の処理は同一である。
以上説明したように、本実施形態の排他制御装置10では、
・プロセス31,32によって多重にロック可能であり、
・ロック中はロック対象領域内のアクセスを、アクセス内容記録部12によってプロセス31,32ごとに記録し、
・ロック対象領域内のアクセスが行われるときに、アクセス記録に基づいて、アクセス抵触判定部13によってアクセスの競合を判断する。
すなわち、本実施形態の排他制御装置10では、ロックが競合しても、実際のアクセス競合を検出するまで競合と判断しない。
・プロセス31,32によって多重にロック可能であり、
・ロック中はロック対象領域内のアクセスを、アクセス内容記録部12によってプロセス31,32ごとに記録し、
・ロック対象領域内のアクセスが行われるときに、アクセス記録に基づいて、アクセス抵触判定部13によってアクセスの競合を判断する。
すなわち、本実施形態の排他制御装置10では、ロックが競合しても、実際のアクセス競合を検出するまで競合と判断しない。
そして、本実施形態の排他制御装置10では、
・アクセスが競合した場合に、アクセス可否通知部14によって後からアクセスするプロセスに排他の失敗を通知し、
・アクセスの競合がない場合には、ロック解除までそのまま処理を進める。
・アクセスが競合した場合に、アクセス可否通知部14によって後からアクセスするプロセスに排他の失敗を通知し、
・アクセスの競合がない場合には、ロック解除までそのまま処理を進める。
このように、本実施形態の排他制御装置10によれば、プロセス31によってロックされている排他対象領域内のメンバに対するプロセス32によるアクセスであっても、アクセス内容記録部12によって記録された先行のプロセス31によるアクセス内容と抵触しないアクセス内容であれば、アクセス抵触判定部13及びアクセス可否通知部14によってアクセスが許可される。したがって、例えば、変更が加えられないデータなどを利用するために、後発のプロセス32が無駄に待たされることがない。故に、本実施形態の排他制御装置10によれば、排他制御中であっても待ち時間を低減することができる。
なお、本発明は上記した本実施形態に限定されることなく種々の変形が可能である。例えば、本実施形態では、プロセス31及びプロセス32の両方のアクセスに対してアクセス抵触判定を行ったが、ロック先行のプロセス31に対してはアクセス抵触判定を行うことなく優先的にアクセスを許可し、ロック後発のプロセス32のみに対してアクセス抵触判定を行ってもよい。
また、本実施形態では、2つのプロセスによる共有リソースへの排他制御装置を例示したが、3以上のプロセスによる共有リソースへの排他制御装置であっても、本発明の思想が適用可能である。例えば、ロック処理部11は、複数のプロセスによる共有リソース20の排他対象領域のロック/ロック解除を行い、アクセス内容記録部12は、複数のプロセスが排他対象領域に対してロックを獲得しているときに、複数のプロセスそれぞれによる排他制御領域におけるデータブロックへのアクセス内容を記録する。そして、アクセス抵触判定部13は、複数のプロセスのうちの何れかのプロセスが排他対象領域におけるデータブロックへアクセスする際に、当該プロセスを判定対象プロセスとすると共に当該データブロックを判定対象データブロックとし、判定対象プロセスによる判定対象データブロックへのアクセス内容とアクセス内容記録部12によって記録されたアクセス内容との対比を行い、判定対象プロセスによる判定対象データブロックへのアクセスが他のプロセスによる判定対象データブロックへのアクセスと抵触するか否かを判定し、この判定結果に基づいて、アクセス可否通知部14は、判定対象プロセスによる判定対象データブロックへのアクセスを許可するか否かを通知する。
10…排他制御装置、11…ロック処理部、12…アクセス内容記録部(アクセス内容記録手段)、13…アクセス抵触判定部(アクセス抵触判定手段)、14…アクセス可否通知部(アクセス可否通知手段)、20…共有リソース、31,32…プロセス(第1及び第2のプロセス)。
Claims (5)
- 共有リソースに対して第1及び第2のプロセスからアクセスを行う際に、前記共有リソースにおける複数のデータブロックからなるデータブロック群単位でロックを行う排他制御装置において、
前記第1のプロセスが前記データブロック群のロックを獲得しているときに、
前記第1のプロセスによる前記データブロック群に属するデータブロックへのアクセス内容を記録するアクセス内容記録手段と、
前記アクセス内容記録手段によって記録されたアクセス内容と前記第2のプロセスによる前記データブロック群に属するデータブロックへのアクセス内容との対比を行い、前記第2のプロセスによる前記データブロック群に属するデータブロックへのアクセスが前記第1のプロセスによる前記データブロック群に属するデータブロックへのアクセスと抵触するか否かを判定するアクセス抵触判定手段と、
前記アクセス抵触判定手段の判定結果に基づいて、前記第2のプロセスによる前記データブロック群に属するデータブロックへのアクセスを許可するか否かを通知するアクセス可否通知手段と、
を備えることを特徴とする、排他制御装置。 - 前記アクセス内容記録手段は、前記第1のプロセスによる前記データブロック群に属するデータブロックへのアクセス内容として、読み込みアクセス及び書き込みアクセスのうちの何れかのアクセス種別を記録し、
前記アクセス抵触判定手段は、前記第1のプロセスがアクセスしたデータブロックと同一のデータブロックに前記第2のプロセスがアクセスする際に、前記アクセス内容記録手段によって記録されたアクセス種別と前記第2のプロセスによる前記データブロック群に属するデータブロックへのアクセス種別との対比を行う、
ことを特徴とする、請求項1に記載の排他制御装置。 - 前記アクセス抵触判定手段は、
前記第1のプロセスによるアクセス種別が読み込みアクセスであった場合には、前記第2のプロセスによるアクセス種別が書き込みアクセスであるときに抵触と判定し、
前記第1のプロセスによるアクセス種別が書き込みアクセスであった場合には、前記第2のプロセスによるアクセス種別が読み込みアクセス及び書き込みアクセスであるときに抵触と判定する、
ことを特徴とする、請求項2に記載の排他制御装置。 - 共有リソースに対して複数のプロセスからアクセスを行う際に、前記共有リソースにおける複数のデータブロックからなるデータブロック群単位でロックを行う排他制御装置において、
前記複数のプロセスが前記データブロック群のロックを獲得しているときに、
前記複数のプロセスそれぞれによる前記データブロック群に属するデータブロックへのアクセス内容を記録するアクセス内容記録手段と、
前記複数のプロセスのうちの何れかのプロセスが前記データブロック群に属するデータブロックへアクセスする際に、当該プロセスを判定対象プロセスとすると共に当該データブロックを判定対象データブロックとし、前記判定対象プロセスによる前記判定対象データブロックへのアクセス内容と前記アクセス内容記録手段によって記録されたアクセス内容との対比を行い、前記判定対象プロセスによる前記判定対象データブロックへのアクセスが他のプロセスによる前記判定対象データブロックへのアクセスと抵触するか否かを判定するアクセス抵触判定手段と、
前記アクセス抵触判定手段の判定結果に基づいて、前記判定対象プロセスによる前記判定対象データブロックへのアクセスを許可するか否かを通知するアクセス可否通知手段と、
を備えることを特徴とする、排他制御装置。 - 前記アクセス内容は、読み込みアクセス及び書き込みアクセスのうちの何れかのアクセス種別を含み、
前記アクセス抵触判定手段は、前記判定対象プロセスによる前記判定対象データブロックへのアクセス種別、及び、前記アクセス内容記録手段によって記録された前記他のプロセスによる前記判定対象データブロックへのアクセス種別のうちの少なくとも何れかが書き込みアクセスであるときに抵触と判定する、
ことを特徴とする、請求項4に記載の排他制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009275755A JP2011118688A (ja) | 2009-12-03 | 2009-12-03 | 排他制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009275755A JP2011118688A (ja) | 2009-12-03 | 2009-12-03 | 排他制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011118688A true JP2011118688A (ja) | 2011-06-16 |
Family
ID=44283931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009275755A Pending JP2011118688A (ja) | 2009-12-03 | 2009-12-03 | 排他制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011118688A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015127924A (ja) * | 2013-12-27 | 2015-07-09 | 富士通株式会社 | アクセス制御プログラム、制御装置およびアクセス制御方法 |
-
2009
- 2009-12-03 JP JP2009275755A patent/JP2011118688A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015127924A (ja) * | 2013-12-27 | 2015-07-09 | 富士通株式会社 | アクセス制御プログラム、制御装置およびアクセス制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090172686A1 (en) | Method for managing thread group of process | |
US7770064B2 (en) | Recovery of application faults in a mirrored application environment | |
US6792497B1 (en) | System and method for hardware assisted spinlock | |
US20060090168A1 (en) | Method and system for speeding up mutual exclusion | |
US9075650B2 (en) | Global avoidance of hang states via priority inheritance in multi-node computing system | |
CN106068497B (zh) | 事务存储器支持 | |
JP2000076217A (ja) | コンピュ―タ・システムにおいてロック動作を最適化するシステムおよび方法 | |
KR20140131961A (ko) | 저장 풀에서의 디스크 소유권 중재 기법 | |
JP6129976B2 (ja) | 高効率アトミック演算を使用した方法および装置 | |
JP2006185348A (ja) | マルチプロセッサシステム及びロックフラグ操作方法 | |
US8458411B2 (en) | Distributed shared memory multiprocessor and data processing method | |
JP2012150583A5 (ja) | ||
JP2008033893A (ja) | マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法 | |
CN106415512B (zh) | 存储器管理算法的动态选择 | |
JP2011175378A (ja) | マルチプロセッサシステム、及びマルチプロセッサシステムの動作方法 | |
JP2011118688A (ja) | 排他制御装置 | |
US20090292885A1 (en) | Method and apparatus for providing atomic access to memory | |
JP2014182507A (ja) | 計算機及び排他制御方法及び排他制御プログラム | |
US8868845B1 (en) | Dynamic single/multi-reader, single-writer spinlocks | |
JP5676664B2 (ja) | リソース管理装置、リソースの管理方法、及びプログラム | |
CN105264494B (zh) | 鉴权处理装置和方法 | |
JP2012113632A (ja) | 情報処理装置、情報処理装置の排他的アクセス権管理方法 | |
CN118260090A (zh) | 自旋锁管理装置、方法、存储介质和程序产品 | |
JPH04127261A (ja) | マルチプロセッサシステム | |
JP2856761B2 (ja) | 資源ロック管理装置 |