JPH0377143A - ロック獲得方式 - Google Patents
ロック獲得方式Info
- Publication number
- JPH0377143A JPH0377143A JP21378489A JP21378489A JPH0377143A JP H0377143 A JPH0377143 A JP H0377143A JP 21378489 A JP21378489 A JP 21378489A JP 21378489 A JP21378489 A JP 21378489A JP H0377143 A JPH0377143 A JP H0377143A
- Authority
- JP
- Japan
- Prior art keywords
- lock
- cpu
- instruction
- acquisition
- monitor
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 12
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
複数CPtJを使用した仮想計算機システムのロック獲
得方式に関し、 ロック獲得失敗時にハードウェア割り込みを発生させ、
ロックを獲得しているCPUの処理を行わせてロックを
解放させた後、ロック獲得命令から再実行させ、VMシ
ステムにおける効率的な口・7り獲得を可能にすること
を目的とし、ある1つのVM(仮想計算機)が複数のC
PUを使用して処理中に、tつのCPUが共用データの
ロック獲得に失敗(例えばCS命令の失敗)したとき、
ハードウェア割り込みで起動されたVMモニタがロック
を獲得している他のCPUの処理を行わせてロックを解
放させ、その後に上記ロック獲得に失敗したCPUに対
して予め定めた値に設定したロング獲得命令(例えばC
S命令)から再実行するように構成する。
得方式に関し、 ロック獲得失敗時にハードウェア割り込みを発生させ、
ロックを獲得しているCPUの処理を行わせてロックを
解放させた後、ロック獲得命令から再実行させ、VMシ
ステムにおける効率的な口・7り獲得を可能にすること
を目的とし、ある1つのVM(仮想計算機)が複数のC
PUを使用して処理中に、tつのCPUが共用データの
ロック獲得に失敗(例えばCS命令の失敗)したとき、
ハードウェア割り込みで起動されたVMモニタがロック
を獲得している他のCPUの処理を行わせてロックを解
放させ、その後に上記ロック獲得に失敗したCPUに対
して予め定めた値に設定したロング獲得命令(例えばC
S命令)から再実行するように構成する。
本発明は、複数CPUを使用した仮想計算機システムの
ロック獲得方式に関するものである。
ロック獲得方式に関するものである。
〔従来の技術と発明が解決しようとする課題〕従来、第
2図(イ)に示すように、CPUを複数個装備したマル
チプロセッサ構成の仮想計算機システム(MP−VMシ
ステム)において、あるVM(仮想計算機)■の複数の
CPUが同時に共用データを更新する可能性があるため
、ロック機構を設けて同時にアクセスすることを防止す
るようにしている。この際、vMlのCPU2がロック
を獲得してディスバッチされていない状態(ロックを獲
得して制御権を与えられていない状態)で、同一のVM
Iの他のCPU例えばCPUIが第2図(ロ)アセンブ
ラ列の実行によってロックを獲得しようとすると、既に
獲得されてしまっているために獲得できず(CS (C
ompare and Swap)命令に失敗して獲得
できず)、カンタムエンドまで(制御権を与えられてい
る間中)■、■をループなどしつづけて無駄にCPU
1を使用してしまう。これを避けるために、■でロック
獲得に失敗したときにハードウェアによって割り込みを
発生させ、他のCPUの処理を実行させてロックを解放
させ、ロックの獲得に失敗したCPU1をディスバッチ
してロックを獲得させて処理を行うようにしている。し
かし、C5命令は命令オペランドで指定したメモリの内
容とレジスタnの内容とを比較し、一致していればレジ
スタmの内容を指定したメモリに格納するという命令で
あり、メモリの読み出しからメモリへの書き込みまでの
間、そのメモリの位置に他のCPUのアクセスができな
いようにしていると共に、CPUの逐次化によって他の
CPUの処理が後らされることがある。これらを避ける
ために、第2図(ハ)に示すように、他CPUからその
メモリ位置の内容の読み出しを禁止しないアセンブラ列
に変更することが考えられる。このC命令を使用した第
2図(ハ)を採用すると、−旦、ロック獲得処理を行っ
たが、C(Compare)命令実行時までの間に他の
CPUにロックが獲得されてしまうと、ループなどして
無駄にCPUを使用してしまう。しかし、このC命令の
失敗時にハードウェアによる割り込みを発生させたので
は、C命令は一般的な命令であり、VMモニタのオーバ
ーヘッドが増大してしまうという問題がある。
2図(イ)に示すように、CPUを複数個装備したマル
チプロセッサ構成の仮想計算機システム(MP−VMシ
ステム)において、あるVM(仮想計算機)■の複数の
CPUが同時に共用データを更新する可能性があるため
、ロック機構を設けて同時にアクセスすることを防止す
るようにしている。この際、vMlのCPU2がロック
を獲得してディスバッチされていない状態(ロックを獲
得して制御権を与えられていない状態)で、同一のVM
Iの他のCPU例えばCPUIが第2図(ロ)アセンブ
ラ列の実行によってロックを獲得しようとすると、既に
獲得されてしまっているために獲得できず(CS (C
ompare and Swap)命令に失敗して獲得
できず)、カンタムエンドまで(制御権を与えられてい
る間中)■、■をループなどしつづけて無駄にCPU
1を使用してしまう。これを避けるために、■でロック
獲得に失敗したときにハードウェアによって割り込みを
発生させ、他のCPUの処理を実行させてロックを解放
させ、ロックの獲得に失敗したCPU1をディスバッチ
してロックを獲得させて処理を行うようにしている。し
かし、C5命令は命令オペランドで指定したメモリの内
容とレジスタnの内容とを比較し、一致していればレジ
スタmの内容を指定したメモリに格納するという命令で
あり、メモリの読み出しからメモリへの書き込みまでの
間、そのメモリの位置に他のCPUのアクセスができな
いようにしていると共に、CPUの逐次化によって他の
CPUの処理が後らされることがある。これらを避ける
ために、第2図(ハ)に示すように、他CPUからその
メモリ位置の内容の読み出しを禁止しないアセンブラ列
に変更することが考えられる。このC命令を使用した第
2図(ハ)を採用すると、−旦、ロック獲得処理を行っ
たが、C(Compare)命令実行時までの間に他の
CPUにロックが獲得されてしまうと、ループなどして
無駄にCPUを使用してしまう。しかし、このC命令の
失敗時にハードウェアによる割り込みを発生させたので
は、C命令は一般的な命令であり、VMモニタのオーバ
ーヘッドが増大してしまうという問題がある。
本発明は、ロック獲得失敗時にハードウェア割り込みを
発生させ、ロックを獲得しているCPUの処理を行わせ
て口・ツクを解放させた後、ロック獲得命令から再実行
させ、VMシステムにおける効率的なロック獲得を可能
にすることを目的としている。
発生させ、ロックを獲得しているCPUの処理を行わせ
て口・ツクを解放させた後、ロック獲得命令から再実行
させ、VMシステムにおける効率的なロック獲得を可能
にすることを目的としている。
(課題を解決する手段〕
第1図を参照して課題を解決する手段を説明する。
第1図において、VM(仮想計算機)1は、複数のCP
U (仮想CPU)を使用して処理を行う仮想計算機で
ある。
U (仮想CPU)を使用して処理を行う仮想計算機で
ある。
VMモニタ(VMM)2ば、ハードウェア割り込みによ
って起動され、ロックを獲得している他のCPUに処理
を行わせてロックを解放させ、その後に上記ロック獲得
に失敗したCPUに対して予め定めた値に設定したロッ
ク獲得命令(例えばCS命令)から再実行させるなどの
仮想計算機システムの各種制御を統括するものである。
って起動され、ロックを獲得している他のCPUに処理
を行わせてロックを解放させ、その後に上記ロック獲得
に失敗したCPUに対して予め定めた値に設定したロッ
ク獲得命令(例えばCS命令)から再実行させるなどの
仮想計算機システムの各種制御を統括するものである。
本発明は、第1図に示すように、ある1つのVMlが複
数のCPUを使用して処理中に、1つのCPUが共用デ
ータのロック獲得に失敗(例えばCS命令の失敗)した
とき、ハードウェア割り込みで起動されたVMモニタ2
がロックを獲得している他のCPUに処理を行わせてロ
ックを解放させ、その後にロック獲得に失敗したCPU
に対して予め定めた値に設定したロック獲得命令(例え
ばCS命令)から再実行させるようにしている。
数のCPUを使用して処理中に、1つのCPUが共用デ
ータのロック獲得に失敗(例えばCS命令の失敗)した
とき、ハードウェア割り込みで起動されたVMモニタ2
がロックを獲得している他のCPUに処理を行わせてロ
ックを解放させ、その後にロック獲得に失敗したCPU
に対して予め定めた値に設定したロック獲得命令(例え
ばCS命令)から再実行させるようにしている。
従って、ロック獲得失敗時にハードウェア割り込みによ
って起動されたVMモニク2がロックを獲得しているC
PUの処理を行わせてロックを解放させた後、ロック獲
得命令(例えばCS命令)から再実行させることにより
、VMシステムにおけるロック獲得を効率的に行うこと
が可能となる。
って起動されたVMモニク2がロックを獲得しているC
PUの処理を行わせてロックを解放させた後、ロック獲
得命令(例えばCS命令)から再実行させることにより
、VMシステムにおけるロック獲得を効率的に行うこと
が可能となる。
〔実施例〕
次に、第1図を用いて本発明の1実施例の構成および動
作を順次詳細に説明する。
作を順次詳細に説明する。
第1図において、VMIば、複数のCPU (実cpu
>を使用して処理を行う仮想計算機である。
>を使用して処理を行う仮想計算機である。
VMIを構成する複数のCPU (実CPU)は、共用
データをアクセスする際にロックを獲得して他のCPU
によって書き替えられないようにして処理を行っている
。
データをアクセスする際にロックを獲得して他のCPU
によって書き替えられないようにして処理を行っている
。
VMモニタ2ば、VMIがCS命令を実行して失敗した
ときにハードウェアによる割り込みによって起動され、
ロックを獲得している他のCPUの処理を行わせてロッ
クを解放させ、その後にロック獲得に失敗したCPUに
対して予め定めた値に設定したCS命令から再実行させ
るなどの仮想計算機システムの各種制御を統括するもの
である。
ときにハードウェアによる割り込みによって起動され、
ロックを獲得している他のCPUの処理を行わせてロッ
クを解放させ、その後にロック獲得に失敗したCPUに
対して予め定めた値に設定したCS命令から再実行させ
るなどの仮想計算機システムの各種制御を統括するもの
である。
以下第1図構成の動作を説明する。
+1.I V M 1 ノCP U 1がA地点の命
令を実行し、ロック獲得に失敗したとする。この失敗、
即ち■のCS命令で比較の結果が不一致で完了したこと
により、■でVMモニタ(VMM)2に対してハードウ
ェアによる割り込みが発生する。
令を実行し、ロック獲得に失敗したとする。この失敗、
即ち■のCS命令で比較の結果が不一致で完了したこと
により、■でVMモニタ(VMM)2に対してハードウ
ェアによる割り込みが発生する。
(2)割り込みの発生によって起動されたV M M2
が、■で同−VMIの他のcPUのうち、現在ディスバ
ンチされていないものをディスバッチすべくスケジュー
ルする。
が、■で同−VMIの他のcPUのうち、現在ディスバ
ンチされていないものをディスバッチすべくスケジュー
ルする。
(3)Oでロックを獲得しているVMIのcPUに処理
を行わせて、ロックを解放させる。これは、■でスケジ
ュールした他のcPUをディスバッチし、ロックを解放
させることである。
を行わせて、ロックを解放させる。これは、■でスケジ
ュールした他のcPUをディスバッチし、ロックを解放
させることである。
(4)OでC8命令の第1オペランドを元の値に戻した
後、VMIのCPtJlを■の最後に実行した命令(次
の命令から−4バイト戻った■のcs命令)から再ディ
スパッチする。ここで、■のCS命令(4バイト命令)
を実行したことにより、第1オペランドが破壊されてし
まっているので、VMIのO8と、VMM2とが予め取
り決めた値に戻す。
後、VMIのCPtJlを■の最後に実行した命令(次
の命令から−4バイト戻った■のcs命令)から再ディ
スパッチする。ここで、■のCS命令(4バイト命令)
を実行したことにより、第1オペランドが破壊されてし
まっているので、VMIのO8と、VMM2とが予め取
り決めた値に戻す。
以上のロック獲得手法を採用することにより、■のC8
命令に失敗してハードウェア割り込みによって起動した
VMモニタ2がロックを獲得しているCPUの処理を行
わせてロックを解放させた後、ロック獲得に失敗したC
PUをディスバッチして■のCS命令から再実行させる
ことにより、ロック獲得を効率的に行うことが可能とな
る。
命令に失敗してハードウェア割り込みによって起動した
VMモニタ2がロックを獲得しているCPUの処理を行
わせてロックを解放させた後、ロック獲得に失敗したC
PUをディスバッチして■のCS命令から再実行させる
ことにより、ロック獲得を効率的に行うことが可能とな
る。
第1図は本発明の1実施例構成図、第2図は従来技術の
説明図を示す。
説明図を示す。
図中、1はVM(仮想計算機)、2はVMモニタ(VM
M)を表す。
M)を表す。
Claims (1)
- 【特許請求の範囲】 複数CPUを使用した仮想計算機システムのロック獲得
方式において、 ある1つのVM(仮想計算機)(1)が複数のCPUを
使用して処理中に、1つのCPUが共用データのロック
獲得に失敗(例えばCS命令の失敗)したとき、ハード
ウェア割り込みで起動されたVMモニタ(2)がロック
を獲得している他のCPUの処理を行わせてロックを解
放させ、その後に上記ロック獲得に失敗したCPUに対
して予め定めた値に設定したロック獲得命令(例えばC
S命令)から再実行するように構成したことを特徴とす
るロック獲得方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1213784A JPH0810438B2 (ja) | 1989-08-20 | 1989-08-20 | ロック獲得方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1213784A JPH0810438B2 (ja) | 1989-08-20 | 1989-08-20 | ロック獲得方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0377143A true JPH0377143A (ja) | 1991-04-02 |
JPH0810438B2 JPH0810438B2 (ja) | 1996-01-31 |
Family
ID=16644988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1213784A Expired - Fee Related JPH0810438B2 (ja) | 1989-08-20 | 1989-08-20 | ロック獲得方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0810438B2 (ja) |
-
1989
- 1989-08-20 JP JP1213784A patent/JPH0810438B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0810438B2 (ja) | 1996-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7178062B1 (en) | Methods and apparatus for executing code while avoiding interference | |
US7653791B2 (en) | Realtime-safe read copy update with per-processor read/write locks | |
US8176489B2 (en) | Use of rollback RCU with read-side modifications to RCU-protected data structures | |
US5966543A (en) | Method of using collaborative spinlocks to provide exclusive access to a resource in a multiprocessor computer system | |
US6029190A (en) | Read lock and write lock management system based upon mutex and semaphore availability | |
US4584644A (en) | Method of controlling use of resources in a data processing system by at least two processes | |
US9471399B2 (en) | Orderable locks for disclaimable locks | |
US7747996B1 (en) | Method of mixed lock-free and locking synchronization | |
US5893157A (en) | Blocking symbol control in a computer system to serialize accessing a data resource by simultaneous processor requests | |
JPH0120466B2 (ja) | ||
JPS62163149A (ja) | マルチプロセッサ仮想計算機システム | |
CN107003896B (zh) | 具有共享事务处理资源的装置和数据处理方法 | |
US20040210890A1 (en) | System quiesce for concurrent code updates | |
US20040117793A1 (en) | Operating system architecture employing synchronous tasks | |
EP1028378A2 (en) | Robust and recoverable interprocess locks | |
CN110968361B (zh) | 隔离沙箱加载方法 | |
WO2006069484A1 (en) | Methods and apparatuses to maintain multiple execution contexts | |
US20140115249A1 (en) | Parallel Execution Mechanism and Operating Method Thereof | |
JPH0383154A (ja) | 多重処理コンピュータ・システム及び方法 | |
JPH07311740A (ja) | コンピュータ | |
US9311260B2 (en) | Context preservation during thread level speculative execution | |
KR20190085391A (ko) | Gpu 커널 트랜잭션화 방법 및 컴퓨팅 장치 | |
JPH0377143A (ja) | ロック獲得方式 | |
US10922128B1 (en) | Efficiently managing the interruption of user-level critical sections | |
JP3422504B2 (ja) | タスク間排他制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |