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
Application number
JP21378489A
Other languages
English (en)
Other versions
JPH0810438B2 (ja
Inventor
Takashi Oguro
隆 大黒
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP1213784A priority Critical patent/JPH0810438B2/ja
Publication of JPH0377143A publication Critical patent/JPH0377143A/ja
Publication of JPH0810438B2 publication Critical patent/JPH0810438B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔概要〕 複数CPtJを使用した仮想計算機システムのロック獲
得方式に関し、 ロック獲得失敗時にハードウェア割り込みを発生させ、
ロックを獲得している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モニタのオーバ
ーヘッドが増大してしまうという問題がある。
本発明は、ロック獲得失敗時にハードウェア割り込みを
発生させ、ロックを獲得しているCPUの処理を行わせ
て口・ツクを解放させた後、ロック獲得命令から再実行
させ、VMシステムにおける効率的なロック獲得を可能
にすることを目的としている。
(課題を解決する手段〕 第1図を参照して課題を解決する手段を説明する。
第1図において、VM(仮想計算機)1は、複数のCP
U (仮想CPU)を使用して処理を行う仮想計算機で
ある。
VMモニタ(VMM)2ば、ハードウェア割り込みによ
って起動され、ロックを獲得している他のCPUに処理
を行わせてロックを解放させ、その後に上記ロック獲得
に失敗したCPUに対して予め定めた値に設定したロッ
ク獲得命令(例えばCS命令)から再実行させるなどの
仮想計算機システムの各種制御を統括するものである。
〔作用〕
本発明は、第1図に示すように、ある1つのVMlが複
数のCPUを使用して処理中に、1つのCPUが共用デ
ータのロック獲得に失敗(例えばCS命令の失敗)した
とき、ハードウェア割り込みで起動されたVMモニタ2
がロックを獲得している他のCPUに処理を行わせてロ
ックを解放させ、その後にロック獲得に失敗したCPU
に対して予め定めた値に設定したロック獲得命令(例え
ばCS命令)から再実行させるようにしている。
従って、ロック獲得失敗時にハードウェア割り込みによ
って起動されたVMモニク2がロックを獲得しているC
PUの処理を行わせてロックを解放させた後、ロック獲
得命令(例えばCS命令)から再実行させることにより
、VMシステムにおけるロック獲得を効率的に行うこと
が可能となる。
〔実施例〕 次に、第1図を用いて本発明の1実施例の構成および動
作を順次詳細に説明する。
第1図において、VMIば、複数のCPU (実cpu
>を使用して処理を行う仮想計算機である。
VMIを構成する複数のCPU (実CPU)は、共用
データをアクセスする際にロックを獲得して他のCPU
によって書き替えられないようにして処理を行っている
VMモニタ2ば、VMIがCS命令を実行して失敗した
ときにハードウェアによる割り込みによって起動され、
ロックを獲得している他のCPUの処理を行わせてロッ
クを解放させ、その後にロック獲得に失敗したCPUに
対して予め定めた値に設定したCS命令から再実行させ
るなどの仮想計算機システムの各種制御を統括するもの
である。
以下第1図構成の動作を説明する。
+1.I  V M 1 ノCP U 1がA地点の命
令を実行し、ロック獲得に失敗したとする。この失敗、
即ち■のCS命令で比較の結果が不一致で完了したこと
により、■でVMモニタ(VMM)2に対してハードウ
ェアによる割り込みが発生する。
(2)割り込みの発生によって起動されたV M M2
が、■で同−VMIの他のcPUのうち、現在ディスバ
ンチされていないものをディスバッチすべくスケジュー
ルする。
(3)Oでロックを獲得しているVMIのcPUに処理
を行わせて、ロックを解放させる。これは、■でスケジ
ュールした他のcPUをディスバッチし、ロックを解放
させることである。
(4)OでC8命令の第1オペランドを元の値に戻した
後、VMIのCPtJlを■の最後に実行した命令(次
の命令から−4バイト戻った■のcs命令)から再ディ
スパッチする。ここで、■のCS命令(4バイト命令)
を実行したことにより、第1オペランドが破壊されてし
まっているので、VMIのO8と、VMM2とが予め取
り決めた値に戻す。
以上のロック獲得手法を採用することにより、■のC8
命令に失敗してハードウェア割り込みによって起動した
VMモニタ2がロックを獲得しているCPUの処理を行
わせてロックを解放させた後、ロック獲得に失敗したC
PUをディスバッチして■のCS命令から再実行させる
ことにより、ロック獲得を効率的に行うことが可能とな
る。
第1図は本発明の1実施例構成図、第2図は従来技術の
説明図を示す。
図中、1はVM(仮想計算機)、2はVMモニタ(VM
M)を表す。

Claims (1)

  1. 【特許請求の範囲】 複数CPUを使用した仮想計算機システムのロック獲得
    方式において、 ある1つのVM(仮想計算機)(1)が複数のCPUを
    使用して処理中に、1つのCPUが共用データのロック
    獲得に失敗(例えばCS命令の失敗)したとき、ハード
    ウェア割り込みで起動されたVMモニタ(2)がロック
    を獲得している他のCPUの処理を行わせてロックを解
    放させ、その後に上記ロック獲得に失敗したCPUに対
    して予め定めた値に設定したロック獲得命令(例えばC
    S命令)から再実行するように構成したことを特徴とす
    るロック獲得方式。
JP1213784A 1989-08-20 1989-08-20 ロック獲得方式 Expired - Fee Related JPH0810438B2 (ja)

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)

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