JPS59167756A - 仮想計算機のデイスパツチ制御方式 - Google Patents

仮想計算機のデイスパツチ制御方式

Info

Publication number
JPS59167756A
JPS59167756A JP1420483A JP1420483A JPS59167756A JP S59167756 A JPS59167756 A JP S59167756A JP 1420483 A JP1420483 A JP 1420483A JP 1420483 A JP1420483 A JP 1420483A JP S59167756 A JPS59167756 A JP S59167756A
Authority
JP
Japan
Prior art keywords
virtual
processor
virtual processor
dispatch
priority
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
JP1420483A
Other languages
English (en)
Inventor
Shinji Nanba
難波 信治
Naoya Ono
直哉 大野
Hideo Kubo
久保 秀士
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.)
NEC Corp
Original Assignee
NEC Corp
Nippon Electric Co 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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Priority to JP1420483A priority Critical patent/JPS59167756A/ja
Publication of JPS59167756A publication Critical patent/JPS59167756A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 本発明は仮想計算機システムのディスバッチ方式に関す
る。
仮想計算機とは実計算機上に仮想的に作9だされる複数
個の計算機であって各々が独立に異るオペレーティング
ソステムと同時に実行させ得る。
いいかえると1台の実計算機上に複数台の仮想計算機が
実現できる。そしてこれは次のような目的に有効に利用
きれる、 1)オペレーティングシステム開発の効率化2)システ
ム移行のサポート 3)システム運用管理の容易化 仮想計算機を実現するには実ノ・−ドウエアの仮想化を
行なう制御プログラム(以下VMCと記す)の組み込み
と、実計算機の方式によりてはノ・−ドウエアの一部改
造とが必要とされる。仮想計算機間で実プロセツサを切
り替えるために仮想計算機ディスパッチャ(以下VMデ
ィスパッチャと記ス)が用意され仮想化された資源をア
クセスする命令は基本的には上記VMCによってノミュ
レーンヨンされる。
現在実計算機としては単一グロセソ”!7が主であるが
マルチプロセッサの場合においても仮想計算機を実現す
ることができる。り下に図面を参照しながら実計IEf
flがマルチプロセッサでm 成すれる場合の従来の仮
想計算機のディスバッチ方式について説明する。
第1図(XIl 、 (b)は実プロセツサが2台の場
合の仮想計算機のディスバッチ方式のブロック図である
PoとP+が実10セツサで”I M+〜vMnが仮想
計算機である。第1図fa)においてはVMディスパッ
チャYMDISPは、仮想計算機V M+−VMn の
中の実行可能なものを1つ選んで実プロセツサP。に、
別のもうIりを選んで実プロセツサPIにディスバッチ
する。図面は実プロセツサP0に仮想計算機VM+がP
lにはVM、がディスパッチされて実行中の様子を実プ
ロセッサP、、!:仮想計W、機V M+とがSW、に
よって接続されており、P、とVM、とがSW+によっ
て接続されていることで表わしている。VMディスバッ
ナヤは図には示(7ていない上述のvMCによって起動
されあらかじめ定められた条件に従ってSW、、SW、
を切!7替えて仮想計算機V M+ 〜V M nを実
ブロセy ” Po r P+にディスパッチする。
この方式では図より明らかなようだ仮想計算機自身のマ
ルチプロセフ’ fが実現できないという欠点をもって
いる。これを改善するため尾考えられた方式が第1図(
blの方式である。すなわち一方の実プロセツサPaは
従来のように各仮想計算機間で共有され、V Mディス
パッチャVMDISPによってディスバッチが行々われ
るが他方の実プロセツサP+けある特定の仮想、?tW
:機(図ではV Mn )に占有される方式である。こ
のようにすることによって特定の仮想計算機のマルチプ
ロセッサが実現できるようiClった。しかしながらこ
の方式では上述の欠点が完全に解決されたわけではない
。すなわち、この方式は特定の仮想計に機以外の仮想計
算機自身のマルチプロセッサは実現できな−という欠点
を有している。さらには実プロセツサP1を占有してい
る仮想計算I残土で実行するプログラムがなくなった場
合に、実プロセyfP+は他の仮想計算機にディスバソ
tされることかなめので占有されている実プロセツサの
使用率は低下するという欠点も有している。
本発明の目的はマルチ1Dセンサ構成の仮想計算機をマ
ルチプロセッサ構成の実計算機上に実現する際特定の仮
想計算機しかマルチプロセッサ構成をとれないとか、占
有プロセッサの使用率が低下するという上記欠点を改善
することにある。この目的のために本発明においては仮
想計y!、機を構成するプロセッサを仮想プロセッサと
して切り出し、この仮想プロセッサにディスバッチング
ズ2イオリティを与え、各実プロセツサはディスパッチ
待ちの仮想プロセッサの内で当該実プロセツサ上で実行
可能な仮想プロセッサの中から一つを選んでディスバッ
チす、る。こうすることにより構成要素の仮想プロセン
カが実70セツサのうちのどれかの上で実行可能な仮想
計JT、機はすべてマルチプロセッサにすることができ
、実プロセッサ#′i特定の仮想計算機に占有されるこ
とはなくなるので実プロセツサの使用率も向上し上記欠
点を改善することができるのである。
以下に本発明の第1および第2の実施例について図面を
参照しクク説明する。第1の実施例にプロセスに関する
fイアパッチを行なうプロセスディスパッチャがマイク
ロプログラム制御によって実計算機の一部として実現さ
れているような実計算機上にこれと全く同じアーキテク
チャをもつ仮想計算機を実現する場合の実施例である。
ここでは仮想計1!機のプロセスディスパッチャとして
も実計算機機能r□一部であるディスパッチャを使用す
る。
第2図は第1の実施例を示すブロック図で、第3図は本
実施例における仮想計算機制御ブロックのレイアウトを
示す図で、第4図は本実施例における仮想フロセッサデ
ィスパッチャ及ヒプロセスTイス―ンチャの動作を説明
するためのフローチ;ヤードである。主記憶MMはVM
C専用領緘占いくつかの仮想計算機のだめの領域からな
っている。
VMC専用領斌領域ri仮想プロセッサを制御するだめ
の仮想プロセス制御ブロックVPCBがあり、そのうち
ディスバッチ待ちのものを区別するために実行可能仮想
プロセッサ待ち行列RVPQを作っている。これはデイ
スバツチ待ちの仮想プロセッサのVPCBのNEXTフ
ィールドに次のVPCBのアドレスを保持するというや
り方で待ち行列を作っておりその順序はVPCB内のV
PPRIフィールドの値で表わされる仮想プロセンカの
デイスノ<ツチングプライオリティの高い順(値として
は小さい順)である。RVPQの先頭のVPCBのアド
レスがレジスタRVPQPにセントされており実プロセ
ッサPo、 P+のレジスタであるRVPQPP、、几
VP QP P IがR,VPQPのアドレスを保持し
ている。PN、 、 PN。
はそのプロセッサのプロセッサ番号を保持するレジスタ
である。以下説明を簡単にするためにプロセッサ番号を
kで表わすこととする。V P CB Pkは実プロセ
ツサ上k上で実行中の仮想グロセ1ツサのVPCBのア
ドレスを保持するレジスタで値が0の場合は実行中の仮
想プロセッサがないことを示す0VPPRIkはその仮
想プロセンサのデイスノくツチンググライオリティを保
持するレジスタである。またGATEけ実プロセツサに
よってロックされるゲート機構である。
グロセスディスパノチャが実計算機の機能の一部として
切乍するアーキテクチャ上のVMCはすべてプロセスと
して実装される。これらのプロセスを制御するためにプ
ロセス制御ブロックPCBがVMC専用領域内にあ!J
PCBはそのプロセスがプロ七ノ寸を取り上げられる時
に各種レジスタの値を待避する領域やとの実7r+セツ
サの上で実行可能であるかを示す情報を保持している。
また実行可能なプロセスのPCBは実行可能プロセス待
ち行列几PQcを作っておりその先頭のPCBのアドレ
スが実行可能プロセス待ち行列先頭ポインタRPQPc
に保持されている。また仮想計算機1(iけ仮想計算機
番号)の内部でもノットウェアプログラムはすべてプロ
セスとして実装されており、VMCと同様にプロセス制
御ブロックPCBと実行可能プロセス待ち行列几PQi
及び実行可能プロセス待ち行列ポインタ几PQPi  
を仮想計算機iの領域に保持している。このようなアー
キテクチャにおいては割ジ込みもプロセス上で処理され
る。すなわち割り込みが発生すると割り込み原因を表わ
すメ・ノセ゛−ジを作り目的のプロセスだわたしてその
プロセスのPCBを実行可能プロセス待ち行列につなぎ
、第4図fb)に示されるプロセスのダイスバッチャで
あるPディスパッチャに制御をわたしてプロセッサにプ
ロセスをディスバッチするまでの処理はマイクワプログ
ラム制御のもとで゛  行なわれ、そのプロセスが実行
を開始するとノットウェアによってメソセージを解析し
て必要な処理を行なうように作られている。仮想計算機
を実現するためKは実プロセツサPk  で割り込みが
発生すると仮想プロセッサ実行中の時けVMCのアドレ
ス空間に切りかえた後原因に対応したメツセージを作成
し目的のプロセスにわたしそのプロセスを実行可能プロ
セス待ち行列几PQcにつないで第5図に示す仮想プロ
セッサのディスパッチャであるVPディスパッチャに制
御をわたすように改造する。またプロセスが事象待ちに
なる場合もPディスパッチャに制御がわたるように作ら
れているがここも改造を行々らて仮想プロセッサが実プ
ロセツサ上にない時にはVPディスバソブヤに制御がわ
たるように改造する。また他系のプロセッサからディス
パンチング要求がプロセッサ間通信で行なわれると要求
されたプロセッサばPディスパッチャに制御をわたすよ
うになっているがここも改造してVPディスパッチャに
制御音わたすようにする。
以上の改造によって制御を得るようになるVPディスパ
ッチャはまた仮想プロセッサが人出力終了待ち等でアイ
ドル状態になった時、その仮想プロセッサのVPCBを
実行可能仮想プロセッサ待ち行列からはずすことにより
ディスバッチ待ちでない仮想プロセッサとして区別され
る状態にし、実行中の仮想プロセッサがないと判定され
る状態にするためにVPCBFS<を0にした後起動さ
れる。また仮想プロセッサが実行中に実行時間を監視す
るための図には示していないタイムスライスタイマがラ
ンアウトした時、実行可能仮想プロセッサ待ち行列RV
PQを調べVPPRJkの保持する値と同一の値をVP
PRIフィールドにもちかつ、VPNフィールドにP 
N Okの保持する値と同一の値をもつVPCBをさが
し、みつかれば実行中の仮想プロセッサの各種レジスタ
の値をVPCBPkの指すVIPCBに待避し、そのV
PCBを実行可能仮想プロセンサ待ち行列RVPQ上で
同一のディスパンチングプライオリティをもつVPCB
の最後尾になるようにつなぎかえることによってこの時
点では同一のディスパッチングプライオリティをもつ仮
想プロセッサの間ては最後知ディスバッチされる状態に
し、VPCBPk  をOICして実行中の仮想プロセ
ッサがない状態にした後起動される。ここで述べた動作
は簡単のためフローチャトには示してbない。またこれ
らの動作はGATEをロックして行なわれ、VPディス
パンチャが起動される場合にはGATEをロックしたま
ま第4図(alのA点に制御をわたすことになる。また
実フロセッサInkのアクセスできるーアドレス空間は
VMCのアドレス空間となっている。
仮想ブロモyすのfイスパッチングプライオリティは仮
想計算機開始後任意の時点で変更することも可能である
。これによって各仮想計算機の動作状況に応じて仮想計
算機間の処理能力配分を動的に制御すること、特定の仮
想計算機を一時的に優先させてその間だけ処理速度を上
けさせることなどが可能となる。
この機能は仮想プロセッサディスパッチングプライオリ
ティ変更命令として提供されオペランドとしては対象仮
想プロセッサのVPCBのアドレスと新ディスパッチン
グプライオリティが指定される。この命令の実行は次の
通り行なう。まずGATEを≧ツクして指定されたVP
CB内のVPPRIを指定された値に変更し5TATE
を調べる。5TATEはVPCBが実行可能仮想プロセ
ッサ待ち行列中にあるかどうかを示している。8TAT
Bが0ならばアイドル状態なのでGATEのロックと解
除して命令は終了する。そうでなければそのV−PCB
を実行可能仮想プロセッサ待ち行列RVPQからはずし
あらためて新ディスバッ□チングプライオリティにした
がって実行可能プロセッサ待ち行列に加える。その後他
系のプロセッサにディスパッチングプライオリティが変
更になったことをVPCBのア)” L/ x ト新デ
ィスパッチングプライオリティを与えてプロセッサ間通
信で通知しGATEのロックを解除して命令を終了する
。他系のプロセッサpkは通知を受けとるとVPCBp
kの値を与えられたVPCBのアドレスとを比較して一
致すればVPP凡Ik建与えられた新ディスバ、テング
ズライオリティをセットして、一致しなければ何もせず
罠、VPディスパッチャに制御をわたす。
また同一の仮想計算機に属する仮想プロセッサには同一
のディスパンチングプライオリティを与えることもでき
る。すなわち仮想プロセッサ制御ブロックの他に図には
示していない仮i 計惇iを制御するための仮想計算機
制御ブロックVMCBをもうけVMCB内にその仮想計
算機に属する仮想プロセッサのVP CBの7ドレスを
仮想プロセッサの番号の順に保持する。この場合には仮
想プロセッサのディスパッチングプライオリティの変更
は仮想計算機ディスパッチングプライオリティ変更命令
として提供され、オペランドとしては対象仮想計算機の
VMCBのアドレスと新ディスパッチングブライオリテ
ィが指定される。この命令の実行は次の通りに行なう。
まずGATEをロックして指定されたVMCBから仮想
プロセッサ番号Oの仮想プロセッサのVPCBのアドレ
スを取り出す。そのアドレスを使ってVPCBのVPP
RI  にオペランドの新ディスバ、チングプライオリ
ティをセットし、そのVPCBを実行可能仮想ンロセン
サ待ち行列RVPQからはずし新ディスパッチングプラ
イオリティに従って実行可能仮想グロセンサ待ち行列F
LVPQに加える。さらに5TATE t[べて0でな
ければすなわちアイドル状態でなければVPCBのアド
レスを回置は示していないし7スタに保持する。
次いで仮想プロセッサ番号lの仮想プロセッサのVP 
CBのアドレスを取り出しそのアドレスを使ってVPC
Bの、VPPRJに新ディスバッチンググライ万すティ
をセットし、そのVPCBを実行可能仮想プロセンサ待
ち行列RVPQからはずし新ディスバ2チングプライオ
□リティに従って実行可能仮想フロセンサ待ち行列RV
PQに加える。そして5TATFiを調べてアイドル状
態でなければVPCBのアドレスを図には示していない
別のレジスタに保持する。
ソトされるものとする。l )GATEのロックを解除
して命令を終了する。どちらか1つまたは両方のレジス
タが0でなければ、この2つのレジスタの値と新ディス
バノチングズライオリティを与えて他系のプロセッサに
70センサ間通信で仮想計算機のディスパッチングプラ
イオリティが変更になったことを通知しGATEのロッ
クを解除して命令を終了する。この通知を受゛けとった
プロセッサPkけVPCBPkを調べる。VPCBPk
が0ならば何もせずにvPディスパッチャに制御をわた
す。0でなければ与えられた2つのVPCBのアドレス
を取り出し1@にVPCBP kと比較する・一致する
ものがなければ何もせずに■Pディスパッチャに制御を
わたす。一致するものがあれば、VJ’RRIkに与え
られた新ディスバノチングズライオリティをセットし、
vPディスバ、チャに制御をわたす。このよう圧するこ
とにより仮想計算機間の処理能力配分を動的に制御する
際ソフトウェアプログラムは仮想プロセッサではなくて
仮想計算機を対象とすることにJり処理が簡単になる。
次に仮想フDセンサディスバ、チャの動作を第4図のフ
ローチャートを参照しつつ説明する。仮想プロセスディ
スパッチャである■Pディスバフチャが実プロセッサP
k上で起動されるとまずGATE  に対してロックを
要求する。口、りに成功すると実プロセツサ上に仮想プ
ロセッサがあるかどうかを調べる。VPCBPkがOな
らば仮想プロセッサはないことになる。この場合主記憶
MMのVMC専用領域VCある実行可能プロセス待ち行
列ポインタRPQPc からたどって実行可能プロセス
待ち行列RPQcを調べ実プロセツサPk上で実行可能
なPCBをさがす。このPCBが与つかるとVPCBP
kをOにして第4図(blのプロセスディスパッチャで
あるPディスパッチャのBに制御をわたす。
もしPCBがみつからなければ実行可能仮想プロセッサ
待ち行列先頭ポインタRVPQPからたどって実行可能
仮想グロセンサ待ち行列RVPQを調べ、実プロセツサ
番号レジスタPNkの保持する実プロセツサ番号にと同
一の値をVPNフィールドにもつVPCBをさがす。み
つからなかった場合1jGATEのロックを解除してV
Pディスパッチャの先頭にもどる。(他系のプロセッサ
がOAT Bのロック待ちになっていると実プロセツサ
PkがGATEのロックを解除した時知ロック待ちプロ
セッサがGATEのロックに成功する。)本つかった場
合にはVPCBPkにみつかったVPCBのアドレスを
vppRIkにみつかったVPCBのVPPRIフィー
ルドの値すなわちディスパッチングプライオリティをセ
ットし、そのVPCBから各種レジスタを復帰し、アド
レス空間をその仮想プロセッサのアドレス空間に切り替
えてPディスパッチャのBに制御をわたす。
実プロセッサPk上に仮想プロセッサがある時すなわち
VPCBPkがOでない時にはVMCの実行可能プロセ
ス待ち行列RPQc上に実プロセッサPk上で実行可能
なPCBがみつかればVPCBPkの指すVPCBに各
種レジスタを待避しVPCBpkをOにセットしてPデ
ィスパッチャのBVc制御をわたす。
みつからなければ実行可能仮想プロセッサ待ち行列FL
vPQ′!il−調べVPNフィールドVc実7’ O
センサ番号にと同一の値金保持するVPCBをさがす。
みつからなければ、あるいけみつかってもその仮想プロ
セッサのディスパッチングプライオリティすなわちみつ
かったVPCBのVPPRIが実プロセッサPk上の仮
想プロセッサのディスパッチングプライオリティVPP
RIkよりも高くなければ(値としては小さくなければ
) 、GATEのロックを解除しアドレス空間をVPC
Bpkの指すVPCBのすなわち実行中の仮想プロセッ
サのアドレス空間に切り替えてPデーイスバッチャの8
に制御をわたす。みつかったV’P CBのVPPRI
フィールドの値である仮想プロセッサのディスパッチン
グプライオリティが実行中の仮想プロセッサのそれより
も高い(値としては小さい)ならば各種レジスタをVP
CBPkC指すVPCBに待避したあとVPCBPkに
みっか−)たVPCBノアトレスを、VPPRIkvc
そノVPCBノVPFFLIフィールドの値をセットし
みつかったVPCBから各種レジλりの値を復帰し、ア
ドレス空間をその仮想プロセッサのアドレス空間に切り
替えてPディスパッチャのBに制御をわたす。
すなわちVPデメスバソチャI′iVMcに実行可能な
プロセスがあるとそのプロセスに優先的にディスパッチ
するために実行中の仮想プロセッサがあればそのだめの
各種レジスタをVPCBに待避してPディスパッチャに
制御をわたす。VMCに実行可能なプロセスがない場合
には実7°ロセツサPk上で実行可能な仮想プロセッサ
をみつけ実行中の仮想グ1】セッサがあればディスパッ
チングプライオリティ、を比較して高い方の、実行中の
仮想プロセッサがなければみつけた方の仮想ブ、ロセッ
サにディスパッチする。その後アドレス空間を切り替え
て仮想プロセッサの実行を再開する。実行と再開した仮
想プロセッサは、プロセスのディスパッチを行なうため
にGATFJをロックしたままでPディスパッチャにl
t制御をわたす。また実プロセツサPkJ:で実行可能
な仮想プロセッサがなければループをして待つことにな
る。
さてPディスパッチャのBに制御がわたると第冬図(b
lに示すように動作する。この時点ではアドレス空間が
仮想プロセッサのアドレス空間に切り替っているので実
プロセツサがアクセスするのは実行中仮想プロセッサの
VPCBのVMNフィールドに保持されている仮想計橡
機番号(iとする)で表わされる仮想計算機すなわち仮
想針−疼機1の領域である。Pディスパッチャは実行中
のプロセスの有無を調べる。もしなければ実行可能プロ
セス待ち行列先頭ポインタRPQPi  からたどって
実  。
行灯能プロセス待ち行列RPQ iを調べて自プロセッ
サ上で実行可能なPCBをさがす。みつからなければ仮
想プロセッサ実行中なので(JAT Bのロックを解除
してPディスパッチャの先頭にもどってループする。も
しみつかればみつかったPCBから各種レジスタを復帰
してGATEのロックを解除して終了する。終了すると
命令を取り出してそのプロセスの実行にうつる。
実行中プロセスがある時には実行可能プロセス待ち行列
RPQ iを調べて自ンロセンサ上で実行可能なPCB
をさかす。みつからなければGATBのロックを解除し
Pディスパッチャを終了して実行中プロセスの次の命令
の取り出しと実行にうつる。
みつかった時には実行中プロセスのディスパッチングプ
ライオリティとみつかったプロセスのディスパッチング
プライオリティとを比較する。前者が後者より高いかも
しくは等しか時にはGATEのロックを解除してPディ
スパンチャを終了して命令の取り出しと実行にうつる。
もし前者が後者よりも低い場合は各糧レジスタを実行中
プロセスのP CB K ll!−プしてみつかったP
CBから各種レジスタ&復帰し、oA’rBのロックを
解除してPディスパッチャを終了する。そして新しくデ
ィスパッチされたプロセスの命令の取り出しと実行にう
つる。以上の動作flBに制御がわたった時点て実プロ
セッサPk上に仮想プロセッサがある場合であるか、仮
想プロセッサがない場合にはアドレス空間がVMCのア
ドレス空間になっているのでVMCの実行可能プロセス
待ち行列RPQcを対象としてPディスパッチャが動作
するのでVMCのプロセスがディスパッチされる。以上
のようにPディスパッチャは実プロセッサPk上または
仮想プロセッサ上で動作して実行すべきプロセスを1つ
選んでディスパッチする。
Pディスパッチャを第4図fb)の点線で示すように動
作させるよう構成することもできる。すなわち実行中の
プロセスがなく次に実行すべきプロセスもなり場合にけ
Pディスパッチャでループするのではなくて、仮想プロ
セッサ実行中ならばVMCのアドレス空間尾切り替えて
実行中仮想グロセy サ(D VPCBすなわちVPC
BPk)指すVPCBを実行可能仮想プロセッサ待ち行
列RVPQがらはずして5TATBフイールドVcoを
セットし、仮想プロセッサ実行中でなければ何もせずに
、GATEをロックしたままでVPディヌパッチャのA
ICM御をわたす。このようにすること罠よって仮想プ
ロセッサがアイドルになると実プロセツサ時間を空費せ
ずに直ちに実行可能な仮想プ1フセッサをディスパッチ
することが可能となる。
次(第2の実施例について説明する。本実施例はプロセ
スディスパッチャがソフトウェアで作られるアーキテク
チャの実計算機上に仮想計算機と実現する場合に適用で
きる。このようなアーキテクチャでffLMcも各VM
上のO8もプロセスディスパッチャをもつこととなる。
本実施例ではVMCのプロセスディスパッチャを改造し
て、仮想プロセッサディスパッチャの機能を追加してい
る。
この場合には仮想計算機上のプロセスディスバンチ斗に
は手を加えずに実現できるので任意のプロセスディスパ
ッチャをもO8で制御される仮想計算機を動作させうる
第、2図に示したブロック図に関しては基本的には第1
の実施例と同じ構成であるが仮想計算機iの領域ζ(あ
る実行可能グロセス待ち行列RPQiの構成方法、プロ
セス制御ブロックPCBの形式、内容等はMMCのそれ
らと異っていてもよい。またGATgけ主記憶M−M上
にありテストアンドセット命令によってロックされるゲ
ー トである。以上の点を除いて第2図に示したブl’
j7り図の内容の構成とその維持の方法については第1
の実施例の説明にお腔て述べたのと全く同様である。ま
た仮想プロセッサ制御プロンクVPCBの構成及び内容
も第1の実施例と同様である。ただし仮想プロセッサに
ディスパッチされた場合に必ずしもプロセスのディスパ
ッチャから実行を再開する必要はない。
本実施例は第5図のフローチャートに示すディスパッチ
ャ(以下VMCVPディスパッチャと記す)により特徴
づけられる。以下第5図を参照しつつ説明する。実ブロ
センfPk上でVMCVPディスパッチャに制御がわた
される契機は以下のとおりである。
工)割り込みが発生し実行中プロセスまたは仮想プロセ
ンサの各種レジスタをPCBまたは、VPCBに待避し
割り込み処理が完了した時2)VMCの実行中プロセス
が待ち状態になった時 3)ソフトウェアで定義されている事象を通知しVMC
の実行可能プロセス待ち行列几PQcK実−fロセンサ
Pk上で実行可能なプτ1セスを新しく加えた時 これらの契機でけ了ドンス空間はVMCの7ドレス空間
が実プロセツサ上には実行中のプロセス及び仮想プロセ
ンサはない。そこでVMCVPディスパッチャは以下例
述べるように実プロセツサ時間上で動作してVMC77
)プロセスまたは仮想プロセッサにディスバッチする。
fなわちまずテストアンドセット命令と条件付分岐命令
とでGATEがロノつてきるまでループする。ロックに
成功するとvMCの実行可能プロセス待ち行列RPQc
をたどって実プロセ・ソサPk上で実行可能なPCBを
さかす◇みつかった場合はそのPCBから各種レジスタ
を復帰してGATEのロックを解除してVMC−VPデ
ィスパッチャを終了する。みつからながりた場合には実
行可能仮想プロセッサ峙ち行列几VPQをたどってVP
Nフィールドに実プロセツサ番号レジスタPkの値であ
る実プロセツサ番号kを値として保持しているVPCB
をさがす。みつかった場合にはそのVPCBから各種レ
ジスタを復帰してその仮想プロセッサにディスバッチし
QATEのロックを解除してVMCVP ディスパッチ
ャを終了する。みつからなかった場合にけGATEのロ
ックを解除してVMCVPディスパッチャの先顕にもど
って実プロセン’j−Pk上で実行可能なPCBかVM
Cの実行可能プロセス待ち行列RPQcに登録されるか
またはVPNフィールドに実プロセツサ番号にと同一の
値をもつVPCBが実行可能仮想プロセッサ待ち行列R
VPQに登録されるのをループしながら待つ。VMCV
Pディスパッチャは以上のように動作してVMCのプロ
セスを仮想プロセラパッチする。
本実施例においても第1の実施例き同様に仮想プロセッ
サのディスパソチンググライオリティの変更命令を実現
することができる。この場合にはオペランドとしてVP
CBのアドレス、新ティスパッテングブライオリティの
他にGATEのアト−レスが必要となる。この命令は次
のように実行される。
まずGATEをロックしオペランドで示されるVPCB
のVPPRIフィールドに新ディスパンチングプライオ
リティをセットする。次いで5TATEを調べてアイド
ルならげGATEのロックを解除して命令を終了する。
アイドルでなけれは新ディスパンチングプライオリティ
に従ってVPCBを実行可能仮想プロセッサ待ち行列R
,VPQにつなぎなおしGATBのロックを解除し他系
のプロセッサーディスパッチングフライオリティの変更
があったことをプロセッサ間通信で通知し命令を終了す
る。プロセッサ間通信で割り込まれた実プロセツサPk
は実行中ノプロセスまたは仮想プロセッサがあればPC
BまたはVPCBに待避したあと割り込み原因を調べて
仮想プロセッサのディスパッチングプライオリティの変
更であることがわかる。そこでVMC−vPディスパッ
チャに制御をわたす。以上のよう処して仮想プロセッサ
のディスパッチングプライオリティを変更するどとがで
きる。また仮想計算機にディスパッチングプライオリテ
ィを与える場合もほぼ同様圧して仮想計算機ディスパッ
チングプライオリティ変更命令を実現することができる
O なおこれらの実施例においては実プロセツサの数が2つ
であったがそれ以上でも同様にして実現できることはあ
きらかである。また実プロセツサごとく別々に実行可能
仮想プロセッサ待ち行列を作るようにすれはロックのた
めのGATEは必要がない。デイスバツチ待ちの仮想プ
ロセッサは必ずしも待ち行列にする必要はなく、詳細に
ついては述べない□がたとえば同一のディスパッチング
プライオリティをもつ仮想プロセッサの仮想プロセッサ
制御ブロックをリング状につないで仮想プロセッサ制御
ブロック内にディスバッチ待ちかどうかの状態を保持さ
せてもよい。
以上説明したように本発明によればマルチプロセッサの
実計算機上に効率よくマルチプロセッサの仮想計算機を
実現することが可能となる。
【図面の簡単な説明】
第1図fa) 、 (blは従来の仮想計算機のディス
パッチング方式を説明するための概念図、第2図は本発
明の第1の実施例を説明するだめのブロック図、第3図
は仮想プロセッサ制御ブロックの構成図、第4図(at
 、 [blは第1の実施例の仮1力bセッサディスパ
ッチャ及ヒプロセスディスパッチャのフローチャート、
第5図Fii2の実施例の仮想プロセッサディスパッチ
ング機能をそなえた、VM制御プログラムのディスパッ
チャのフローチャートである。 P−、P+は実プロセツサ、VM、〜VMnは仮想計算
機、VMD I S P は仮想計算機ディスパッチャ
、MMd主記憶装置、VPCBは仮想プロセッサ制御ブ
ロック、PCBはプロセス制御ブロック、VPCBPは
VPCBの7ドレスを保持するレジスタ、VPP几エバ
仮想プロセッサのディスパッチングプライオリティを保
持するレジスタであろう 一説り (oL) 第Z口 第4 詔(り 隼4)刀(l−9 手続補正書(自船 50.(:、l・1・ 昭和   十   月   ト1 1、事件の表示   昭和58年 特許 願第0142
04シ;゛2、発明の名称   仮想計算機のディスパ
ッチ制御方式3、補正をする者 事件との関係       出 願 人東京都港区芝)
J、 J’ 1133番1け(423)   日本電気
株式会社 代表者 関本忠弘 4、代理人 〒108  東jij都港区芝Ii、l’1137番8
シ;f1友−月11ビル5、補正の対象 明細書の発明の詳細な説明の欄 に ・」ともるを「  システムを同時に ・・」と補
正する。 2)明細書第21頁第14行目から第15行目に「VP
CBのアドレスをVPPFtIkに・・・ 」とあるの
を[、、、、、、、VPCB (7) 7 )” v 
スヲ、VPPRIk K−1、!:補正する。 3)明細書第23頁第20行目から第24頁第1行目に
[・・。実行と再開した・・・・]とあるのを「  。 実行を再開した・・・・」と補正する。 4)明細書第27頁第15行目に「・ ・ディスパッチ
ャをもO8で ・」とあるのを「・・:・・・ディスバ
ッチをもつO8で ・ −1と補正する。 5)明細書第29頁第7行目から第8行目に「VMC(
7)7ドレス仝間が実プロセツサ上には  −lとなっ
ているのを「 ・・VMCのアドレス空間になっており
、実プロセツサHには  」ン、補正する。。

Claims (7)

    【特許請求の範囲】
  1. (1)1つ以上の実プロセンサからなる実計算機システ
    ム上で1つ以上の仮想的なプロセッサを含む仮想計算機
    を1つ以上実現する仮想計算機システムにおいて、各仮
    想計算機を構成する上記1つ以上の仮想的なプロセラ→
    tを制御するだめの仮想プロセッサ制御ブロックと、上
    記仮想プロセッサ制御ブロック上にある各種レジスタの
    値を保持する領域に実プロセツサの各種レジスタの値を
    待避する手段と、上記仮想プロセッサ制御ブロックの各
    種レジスタの値を保持する領域から実プロセツサの対応
    する各種し、ジスタて復帰する手段と、各仮想プロセッ
    サのディスパッチングプライオリティを設定保持する手
    段と、実プロセツサごとに実行中の仮想ブロセンダがあ
    るか否かを判定する手段と、デノスパンチ待ちの仮想プ
    ロセッサをディスパッチ待チでない仮想プロセッサから
    区別する手段と、各実プロセツサは上記区別手段によっ
    て区別されるディスバッチ待ちのすべての仮想プロセッ
    サのうち当該実プロセツサで実行可能な仮想プロセッサ
    と上記判定手段において実行中の仮想プロセッサがある
    と判定された場合は実行中の仮想プロセッサとを対象に
    上記仮想プロセッサのディスパッチングプライオリティ
    て基づいて実プロセフす上で実行すべき仮想プロセッサ
    を決定し、上記判定手段によって実行中の仮想プロセン
    サがないと判定された場合には上記決定した仮想プロセ
    ッサの仮想プロセンサ制御ブロックから上記復帰手段に
    よって各種レジスタの値を復帰することにより1.上記
    判定手段によって実行中の仮想プロセッサがあると判定
    されかつその仮想プロセッサが上記決定した仮想プロセ
    ッサと同一ならば各種レジスタの値の待避復帰は行なわ
    ないことにより、異なっているならば上記待時手段によ
    って丸打中の仮想プロセッサの仮想グロセッサ制御ブロ
    ックに各種レジスタの値を待避した後上記決定した仮想
    プロセッサの仮想プロセッサ制御ブロンクから上記復帰
    手段によって各種レジスタの値を復帰することにより仮
    想プロセッサのディスパンチを行なう仮想プロセッサプ
    ロセッサディスバッチ機構とを備えることを特徴とする
    仮想計算機のディスバッチ制御方式。
  2. (2)上記仮想プロセッサディスバッチ機構として、実
    行中の仮想プロセッサがアイドル状態になったことと検
    出すると実行中の仮想プロセッサを上記区別手段【てデ
    ィスパッチ待ちでない仮想プロセッサとして区別される
    状態にし、実プロセツサを上記判定手段にて実行中の仮
    想プロセッサはないと判定される状態にした後仮想プロ
    センサのディスパンチを開始する機能をもつ特許請求の
    範囲第(1)項記載の仮想計算機のディスパッチ制御方
    式。
  3. (3)上記仮想プロセッサディスバッチ機構として、仮
    想プロセッサごとに設定されその仮想プロセッサの実行
    時間を監視するタイマがテンアウトすると、実行中の仮
    想プロセッサと同一のディスバッチジグプライオリティ
    をもちかつ上記区別手段においてデイスパツチ待ちであ
    る仮想プロセッサとして区別される仮想プロセッサがあ
    れば実行中の仮想プロセνすに対応する仮想プロセンサ
    制御ブロックに上記待避手段によって各種レジスタの値
    を待避し、実行中の仮想プロセッサを上記同一のディス
    バッチジグプライオリティでかつディスパッチ待ちの仮
    想プロセッサの間では、この時点では最後にディスバッ
    チされる状態にし、実プロセツサを上記判定手段にて実
    行中の仮想プロセッサはないと判定される状態にした後
    仮想プロセンサのディスバッチを開始する機能をもつ特
    許請求の範囲第(1)項記載の仮想計算機のディスパッ
    チ制御方式。
  4. (4)上記仮想グロセンサディスバノチ機構として、上
    記仮想プロセッサのディスバッチジグプライオリティの
    設定保持手段によって実行中の仮想プロセッサのディス
    バッチジグプライオリティが変更された時点で直ちに仮
    想フーロセッサのディスパッチを開始する機能をもつ特
    許請求の範囲第(1)項記載の仮想計算機のディスパッ
    チ制御方式。
  5. (5)上記仮想プロセッサのディスバッチジグプライオ
    リティの変更を仮想プロセッサブライオリティ変更命令
    圧より行う特許請求の範囲第(1)負記載の仮想計算機
    のディスパッチ制御方式。
  6. (6)上記仮想プロセッサのディスパッチングプライオ
    リティの設定保持手段として仮想プロセッサのディスパ
    ッチングプライオリティをその仮想プロセンサの属する
    仮慢計−痺機に与えられたディス ゛パッチングプライ
    オリティと等しい値だ設定保持する機能をもつ特許請求
    の範囲第(1)項記載の仮想計算機のディスパッチ制御
    方式。
  7. (7)上記成田プロセッサのディスバッチジグプライオ
    リティの設定保持手段として仮想プロセッサのディスパ
    ッチングプライオリティをその仮想プロセッサの属する
    仮想計算機に与えられたディスバップーングプライオリ
    ティと等しい値九設定保持する機能をもつとともに、上
    記仮想プロセッサのディスパッチングプライオリティの
    変更を仮想計算機のディスパッチングプライオリティ変
    更命令罠より行う特許請求の範囲第(1)項記載の仮想
    計算機のディスパッチ制御方式。
JP1420483A 1983-01-31 1983-01-31 仮想計算機のデイスパツチ制御方式 Pending JPS59167756A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1420483A JPS59167756A (ja) 1983-01-31 1983-01-31 仮想計算機のデイスパツチ制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1420483A JPS59167756A (ja) 1983-01-31 1983-01-31 仮想計算機のデイスパツチ制御方式

Publications (1)

Publication Number Publication Date
JPS59167756A true JPS59167756A (ja) 1984-09-21

Family

ID=11854574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1420483A Pending JPS59167756A (ja) 1983-01-31 1983-01-31 仮想計算機のデイスパツチ制御方式

Country Status (1)

Country Link
JP (1) JPS59167756A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6231438A (ja) * 1985-04-16 1987-02-10 Nec Corp 仮想計算機システム
JPS62163149A (ja) * 1986-01-14 1987-07-18 Hitachi Ltd マルチプロセッサ仮想計算機システム
JPS62281039A (ja) * 1986-05-30 1987-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 制御プログラムに仮想記憶資源を動的に提供するシステム
JPS63191238A (ja) * 1987-02-03 1988-08-08 Nec Corp プロセス実行保留装置
JPS6454542A (en) * 1987-08-25 1989-03-02 Fujitsu Ltd Virtual computer system
US5017943A (en) * 1987-12-09 1991-05-21 Shinko Electric Co., Ltd. Thermal transfer type color printer
US7496494B2 (en) 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6231438A (ja) * 1985-04-16 1987-02-10 Nec Corp 仮想計算機システム
JPH0521252B2 (ja) * 1985-04-16 1993-03-23 Nippon Electric Co
JPS62163149A (ja) * 1986-01-14 1987-07-18 Hitachi Ltd マルチプロセッサ仮想計算機システム
JPS62281039A (ja) * 1986-05-30 1987-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 制御プログラムに仮想記憶資源を動的に提供するシステム
JPH0560620B2 (ja) * 1986-05-30 1993-09-02 Ibm
JPS63191238A (ja) * 1987-02-03 1988-08-08 Nec Corp プロセス実行保留装置
JPS6454542A (en) * 1987-08-25 1989-03-02 Fujitsu Ltd Virtual computer system
US5017943A (en) * 1987-12-09 1991-05-21 Shinko Electric Co., Ltd. Thermal transfer type color printer
US7496494B2 (en) 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US7844446B2 (en) 2002-09-17 2010-11-30 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system

Similar Documents

Publication Publication Date Title
US5095427A (en) Dispatch control of virtual machine
CA1182575A (en) Method and means for switching system control of cpus
JPH09258980A (ja) 並列マルチタスキングの方法及びシステム
JPH0512045A (ja) 計算機システムの動作継続方法および装置
JPH0695898A (ja) 仮想計算機の制御方法および仮想計算機システム
CN106170768B (zh) 在计算机中分派多个线程
US20090241112A1 (en) Recording medium recording virtual machine control program and virtual machine system
JPS5955565A (ja) マルチフア−ムウエア方式
JPS59167756A (ja) 仮想計算機のデイスパツチ制御方式
JP3981238B2 (ja) 情報処理装置
JP2000259434A (ja) 論理区画式計算機システム
JPH07160656A (ja) 外部割込み制御方法
EP0223463B1 (en) Multiprocessor data processing system
JP2902746B2 (ja) 仮想計算機制御方式
JP3022398B2 (ja) 仮想計算機方式
US20110231637A1 (en) Central processing unit and method for workload dependent optimization thereof
JPH11184828A (ja) マルチプロセッサシステムのテスト方式
JPH0363768B2 (ja)
Francis et al. Implementation of parallel clustering algorithms using Join and Fork model
JPS603229B2 (ja) 情報処理方式
JP2553526B2 (ja) マルチタスク処理装置
JPH0433130A (ja) マルチチップ構成方法
JPH05165652A (ja) タスク切替え制御方法
JPH08272757A (ja) マルチプロセッサシステム及びプログラム起動方法
JPS62221041A (ja) 仮想計算機システムにおけるデイスパツチ制御装置