JPH0744405A - 仮想計算機システムの仮想計算機動作時間計測制御方式 - Google Patents

仮想計算機システムの仮想計算機動作時間計測制御方式

Info

Publication number
JPH0744405A
JPH0744405A JP5189627A JP18962793A JPH0744405A JP H0744405 A JPH0744405 A JP H0744405A JP 5189627 A JP5189627 A JP 5189627A JP 18962793 A JP18962793 A JP 18962793A JP H0744405 A JPH0744405 A JP H0744405A
Authority
JP
Japan
Prior art keywords
task
lip
guest
time
processing
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
JP5189627A
Other languages
English (en)
Inventor
Osamu Onodera
修 小野寺
Takeshi Uehara
健 宇江原
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5189627A priority Critical patent/JPH0744405A/ja
Publication of JPH0744405A publication Critical patent/JPH0744405A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 (修正有) 【目的】ゲストOSの走行した実時間を計測するにあた
り、物理ハードウェア資源を管理するモニタタスクの実
時間計測機能を用いずに性能を向上させた作時間計測制
御方式を提供する。 【構成】モニタタスク310は、実CPU(PIP)の
制御及び論理CPU(LIP)タスク320の制御更に
LIPタスク320へのPIPハードウェア資源の配分
などを司り、タスクとして動作し、タスク制御ブロック
(TCB)311と対応付けられている。LIPタスク
320は、LIP自身の制御及びゲストOSの起動,停
止及びインターセプションの処理等の制御を司り、タス
クとして動作し、TCB312と対応付けられている。
ゲストOS330は、LPAR上で動作するゲストOS
である。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、仮想計算機システム等
の情報処理装置に係り、特に仮想計算機システムの仮想
計算機動作時間計測制御方式に関する。
【0002】
【従来の技術】近年、仮想計算機システムと呼ばれる情
報処理装置が実現され、その使用形態は一般化されつつ
ある。仮想計算機システムは、単一の実計算機の下に複
数の仮想計算機を生成して情報処理システムを構築する
ものであり、実計算機上で仮想計算機制御プログラム
(以下、VMCPという)を動作させ、このVMCPの
制御の下でオペレ−ティングシステム(以下、OSとい
う)が動作する構成となっていた。情報処理システムを
構成する計算機の使用形態としては、一般的に、実計算
機上で単一のOSを動作させる方法と単一の実計算機上
で複数のOSを動作させる仮想計算機(以下、VM又は
LPARという)と呼ばれる方法とがある。実計算機上
で単一のOSを動作させるモードをベーシックモードと
言い、その方法での実計算機のハードウェア資源は、1
台又はそれ以上の中央処理装置(以下、CPU又はIP
という),1台の共用主記憶装置(以下、MSとい
う),1台又はそれ以上のチャネルパス(以下、CHP
という)とから構成される。そしてこれらの実計算機の
ハードウェア資源は単一の資源として扱われる。単一の
実計算機上に複数のLPARを構築し複数のOSを動作
させるモードをLPARモードと言う。
【0003】一般に、複数のLPARを単一の実計算機
上で実現する為に、VMCPと呼ばれるプログラムを実
計算機上で動作させ、このVMCPの制御の下で複数の
仮想計算機であるLPARを生成し、更に、この各々の
LPARの上で独立したOSを動作させていた。従って
VMCPには、単一の実計算機のハ−ドウェア資源を各
々のLPARに共用させて使用させる機能が付加されて
いる。単一の実計算機のハ−ドウェア資源を各々のLP
ARに共用させる方法としては、VMCPの制御の下に
時分割でハ−ドウェア資源を割り当てる方法、又はハ−
ドウェア資源を論理的に分割して各々のLPARに占有
的に割り当てる方法、又は前述の二つの方法を混在させ
て割り当てる方法等がある。混在させて割り当てる方法
としては、例えば、実CPUの共用方法として前述の二
つの方法のうち前者の方法、即ち、実CPUを時分割で
各々のLPARに割り当てる方法をとり、且つ、入出力
チャネル及びMSのLPARでの共用方法として前述の
二つの方法のうち後者の方法、即ち、実CHP及び実M
Sを論理的に分割して各々のLPARに占有的に割り当
てる方法をとるものがある。
【0004】このような従来技術では、前記の実CPU
の共用方法として、実CPUを時分割で各々のLPAR
に割り当てる方法をとっていたが、以下、図1及び図2
を用いて従来技術でのLPARへの実CPUの時分割に
依る割り当て方法を説明する。図1は、従来技術での実
CPUの共用方法の構成を示した図である。
【0005】図1に於いて、実CPU(以下、PIPと
いう)はPIPA102及びPIPB103の2台のP
IPから成るマルチプロセッサ構成(以下、MP構成と
いう)をとっている。PIPA102及びPIPB10
3はそれぞれMS101に接続されており、更に、PI
PA102及びPIPB103も相互に接続されMP構
成をとっている。PIPA102及びPIPB103上
では、MP構成を制御可能なVMCPが動作している。
このVMCPの制御の下で2つのLPARが生成されて
おり、それぞれLPARA112及びLPARB113
である。LPARA112及びLPARB113はそれ
ぞれ、2台の論理CPU(以下、LIPという)から構
成されている。即ち、LPARA112はLIPAA1
21及びLIPAB122からなるMP構成をとってお
り、LPARB113はLIPBA131及びLIPB
B132からなるMP構成をとっている。従って、LP
ARA112上で動作するOSはLIPAA121及び
LIPAB122を制御し、LPARB113上で動作
するOSはLIPBA131及びLIPBB132を制
御し動作する。又、LIPAA121及びLIPBA1
31はPIPA102上でのみ動作し、LIPAB12
2及びLIPBB132はPIPB103上でのみ動作
する。
【0006】次に、それぞれのPIP上でのVMCP及
び各LIPの動作について説明する。図2は、それぞれ
のPIP上にVMCP及び各LIPがディスパッチされ
動作する場合のVMCP,LIPAA121,LIPB
A131,LIPAB122及びLIPBB132への
実計算機資源配分の様子を示したタイムチャートであ
る。図2に示す如く、実計算機資源は、VMCPに対し
それぞれ区間201,区間203及び区間205が配分
され、LIPAA121及びLIPAB122に対して
は区間202及び区間206が配分され、更にLIPB
A131及びLIPBB132に対しては区間204が
配分される。このタイムチャートは、PIPA102に
はLIPAA121及びLIPBA131が固定割当て
されており、PIPB103にはLIPAB122及び
LIPBB132が固定割当てされている場合を示して
いる。
【0007】区間201 : 区間201に於いてPI
PA102及びPIPB103上で動作しているVMC
Pは、LPARA112の内部に保持されているLIP
AA121及びLIPAB122の走行時間を規程する
タイムスライス値(以下、TIMSLCという)を用い
て、PIPA102及びPIPB103の内部タイマに
LIPAA121及びLIPAB122の動作打切り時
間を設定した後、PIPA102及びPIPB103上
でそれぞれLIPAA121及びLIPAB122の走
行を起動する。その時点で、PIPA102及びPIP
B103の動作は区間202に移る。
【0008】区間202 : 区間202に於いて、L
IPAA121及びLIPAB122は、区間201で
TIMSLCを用いて設定されているを内部タイマを更
新しながら動作する。LIPAA121及びLIPAB
122の動作打切り時間が来ると、LIPAA121及
びLIPAB122の動作はVMCPに対するタイマ割
込みに依って打ち切られ制御はVMCPに移される。制
御がVMCPに移される時点で、PIPA102及びP
IPB103の動作は区間203に移る。
【0009】区間203 : 区間203に於いては、
区間201と同様にPIPA102及びPIPB103
上で動作しているVMCPは、LPARB113の内部
に保持されているLIPBA131及びLIPBB13
2の走行時間を規程するTIMSLCを用いて、PIP
A102及びPIPB103の内部タイマにLIPBA
131及びLIPBB132の動作打切り時間を設定し
た後、PIPA102及びPIPB103上でそれぞれ
LIPBA131及びLIPBB132の走行を起動す
る。その時点で、PIPA102及びPIPB103の
動作は区間204に移る。
【0010】区間204 : 区間204に於いて、L
IPBA131及びLIPBB132は、区間202と
同様に区間203でTIMSLCを用いて設定されてい
るを内部タイマを更新しながら動作する。LIPAA1
21及びLIPAB122の動作打切り時間が来ると、
LIPBA131及びLIPBB132の動作はVMC
Pに対するタイマ割込みに依って打ち切られ制御はVM
CPに移される。制御がVMCPに移される時点で、P
IPA102及びPIPB103の動作は区間205に
移る。
【0011】区間205 : 区間205での動作は区
間201と同様であり、VMCPは、PIPA102及
びPIPB103上でそれぞれLIPAA121及びL
IPAB122の走行を起動し、PIPA102及びP
IPB103の動作は区間206に移る。
【0012】以下、前記説明と同様な動作の繰返しに依
って、LPARA112及びLPARB113がPIP
A102及びPIPB103上で時分割で走行する。以
上説明した如く、1台のPIP上で複数のLIPを時分
割で走行させる場合、TIMSLCを用いてVMCPが
制御する事に依り実現されている。
【0013】次に図3を用いてVMCP及び各LIPの
動作の関連について説明する。図3は、VMCPの一部
を構成しているモニタタスク及び同様にVMCPの一部
を構成しているLIPタスク、更にLIPタスクの制御
のもとに動作するゲストOSの関係を示した構成図であ
る。図3において、モニタタスク310は、PIPの制
御及びLIPタスク320の制御更にLIPタスク32
0へのPIPハードウェア資源の配分などを司り、イン
タフェース351及びインタフェース353を介してL
IPタスク320及びゲストOS330と接続されてい
る。モニタタスク310はタスクとして動作し、タスク
制御ブロック(以下、TCBという)311と対応付け
られている。LIPタスク320は、LIP自身の制御
及びゲストOSの起動,停止及びインターセプションの
処理等の制御を司り、インタフェース351及びインタ
フェース352を介してモニタタスク310及びゲスト
OS330と接続されている。LIPタスク320はタ
スクとして動作し、TCB312と対応付けられてい
る。ゲストOS330は、LPAR上で動作するゲスト
OSであり、インタフェース352及びインタフェース
353を介してLIPタスク320及びモニタタスク3
10と接続されている。図3に於いてゲストOS330
を起動し動作させる手順は以下の如くに行われる。VM
CPの立ち上げに伴い、モニタタスク310が最初に起
動される。モニタタスク310は、VMを起動すべくイ
ンタフェース351を介してLIPタスク320をディ
スパッチし、制御をLIPタスク320に渡す。動作を
開始したLIPタスク320は、VM上で動作するゲス
トOSを起動すべくインタフェース352を介してゲス
トOS330を起動する。以降、ゲストOS330の制
御のもとでユーザのアプリケーションが走行する。LI
Pタスク320がインタフェース352を介してゲスト
OS330を起動する際SIE命令が使用される。ゲス
トOS330が走行している間に何らかのインターセプ
ション条件が検出されると、実行中のSIE命令はイン
ターセプトされ、制御はインタフェース352を介して
LIPタスク320に渡される。インターセプションは
IE機能の一部であり、その一般的仕様としては、例え
ばIBM社発行の前述の刊行物にその詳細が記述されて
いる。LIPタスク320は、インターセプション要因
を解析し該当するインターセプション処理を実行する。
此の場合のインターセプション処理とは、例えば待ち状
態インターセプションであればLIPタスク320はイ
ンタフェース351を介して制御をモニタタスク310
に渡し、例えば命令インターセプションであればLIP
タスク320は、インターセプトされた命令のシミュレ
ーション処理を行いインタフェース352を介して再度
ゲストOS330を起動する。ゲストOS330が走行
している間に何らかのホストに対する割込み条件が検出
されると、実行中のSIE命令は割り込まれ、制御はイ
ンタフェース353を介してモニタタスク310に渡さ
れる。モニタタスク310は、割込み要因を解析し該当
する割込み処理を実行する。此の場合の割込み処理と
は、例えば該LIPタスクへの割当て時間切れを示す外
部割込みであればモニタタスク310はインタフェース
351を介して制御を他のLIPタスクに渡し、例えば
プログラム割込みであればモニタタスク310は、プロ
グラム割込みのシミュレーション処理を行いインタフェ
ース353を介して再度ゲストOS330を起動する。
以上の如くの手順で、ゲストOS330の制御のもとで
ユーザのアプリケーションが走行するが、このゲストO
Sの走行した実時間を統計情報として採取する機能を付
加する為に、ゲストOS自身の発行する命令の結果のオ
ペランドとして反映される様実現する必要がある。この
ゲストOS自身の発行する命令の結果のオペランドに、
このゲストOSの走行した実時間を格納する為には、L
IPタスク320に該実時間の計測機能が付加されてい
なければならず、従来技術では本計測機能は、モニタタ
スク310の実時間の計測機能を用いて実現されてい
た。
【0014】次に図3、図4及び図5を用いて、従来技
術であるLIPタスク320に依る該実時間の計測機能
について説明する。第4図及び図5は、従来技術である
LIPタスク320に依る該実時間の計測機能を実現す
る際の処理手順を示したフローチャートである。
【0015】ステップ401 : VM上でゲストOS
を走行させる事前処理として、VMCPのモニタタスク
310はディスパッチすべきLIPタスクを複数のLI
Pタスク群の中から選択する。この処理を行うプログラ
ムモジュールをスケジューラと呼ぶ。
【0016】ステップ402 : モニタタスク310
は、複数のLIPタスク群の中からスケジューラによっ
て選択されたLIPタスクを起動する為、該LIPタス
クの保持していたタスク固有情報及び汎用レジスタの内
容等のハードウェア情報を該LIPタスクのTCBから
PIP内ハードウェアレジスタ群にリストアする。
【0017】ステップ403 : モニタタスク310
は、該LIPタスクのTCBに置かれているタスクのデ
ィスパッチ時間の累積値を保持しているエリア(以下、
TCBTTIMEという)を更新する為、PIPのタイ
ム−オブ−デイ−クロック(以下、TODという)を用
いて時間のカウントを開始する。具体的にはTODの時
刻を、該LIPタスクのTCBに置かれているタスクの
ディスパッチ開始時刻を保持しているエリア(以下、T
CBDSPTMという)にストアする。この処理が前述
のモニタタスク310の実時間の計測機能の一部であ
る。その後、PIPのプログラム状態語(以下、PSW
という)に該LIPタスクのTCBに退避されている該
LIPの旧PSWをロードし、制御を該LIPタスク
(以下、LIPタスク320を例に説明を行う)に渡
す。
【0018】ステップ404 : LIPタスク320
は、ゲストOS330を起動する準備としてSIE命令
のオペランドである状態記述(以下、SDという)を所
定の如くイニシャライズする。その後、LIPタスク3
20は、ゲストOS330の走行した実時間を計測する
機能の一部としてモニタタスク310の実時間の計測機
能を用いる為、ダミーであるスーパバイザコール命令
(以下、SVC命令という)を発行する。このSVC命
令の発行によってSVC割込みが発生し、制御はLIP
タスク320からモニタタスク310に渡される。
【0019】ステップ405 : モニタタスク310
は、SVC割込み処理の一環として、TCBTTIME
の保守を行う。具体的にはTODの時刻を、LIPタス
ク320のTCBに置かれているタスクのディスパッチ
終了時刻を保持しているエリア(以下、TCBINTM
という)にストアする。その後、該TCB内のTCBI
NTMの内容からTCBDSPTMの内容を減じ、その
結果をTCBTTIMEに加える。この処理に依り、該
TCB内のTCBTTIMEにはLIPタスク320の
ディスパッチされている時間が累積される。以後、割込
みの要因となったSVCコード解析を行い、発行された
SVC命令がダミーのSVCコードであることを認識す
ると、該SVC命令をノーオペレーションとして以後の
動作を行う。その後、該TCB内のTCBTTIMEを
更新する為、PIPのTODとを用いて時間のカウント
を開始する。具体的にはTODの時刻を、該LIPタス
クのTCBに置かれているタスクのTCBDSPTMに
ストアする。この処理は、前述のステップ403と同一
動作である。その後、PIPのPSWに該LIPタスク
のTCBに退避されている該LIPの旧PSWをロード
し、制御をLIPタスク320に渡す。
【0020】ステップ406 : LIPタスク320
は、ステップ405で更新されたTCBTTIMEを、
該LIPタスク固有に用意されているLIPテーブル
(以下、LIPTBLという)に置かれているゲストO
S330のディスパッチの開始時間値を保持しているエ
リア(以下、LIPBIETという)にストアする。こ
こでLIPBIETは、ゲストOS330のディスパッ
チ開始時間値を保持する。
【0021】ステップ407 : LIPタスク320
は、ステップ404でイニシャライズされたSIE命令
のオペランドであるSDをオペランドとしてSIE命令
を発行し、VM上のゲストOS330を起動する。
【0022】ステップ408 : VM上でゲストOS
330が走行する。
【0023】ステップ409 : VM上で走行してい
るゲストOS330が、何らかのインターセプション要
因を検出すると対応するインターセプションが発生し、
制御はVM上のゲストOS330からLIPタスク32
0に戻される。
【0024】ステップ410 : LIPタスク320
は、ゲストOS330の走行した実時間を計測する機能
の一部として、モニタタスク310の実時間の計測機能
を用いる為、ダミーであるSVC命令を発行する。この
SVC命令の発行によってSVC割込みが発生し、制御
はLIPタスク320からモニタタスク310に渡され
る。
【0025】ステップ411 : モニタタスク310
は、SVC割込み処理の一環としてTCBTTIMEの
保守を行う。具体的には、ステップ405と同様にTO
Dの時刻を、LIPタスク320のTCBに置かれてい
るタスクのディスパッチ終了時刻を保持しているエリア
(以下、TCBINTMという)にストアする。その
後、該TCB内のTCBINTMの内容からTCBDS
PTMの内容を減じ、その結果をTCBTTIMEに加
える。この処理に依り、該TCB内のTCBTTIME
にはLIPタスク320のディスパッチされている時間
が累積される。以後、割込みの要因となったSVCコー
ド解析を行い、発行されたSVC命令がダミーのSVC
コードであることを認識すると、該SVC命令をノーオ
ペレーションとし、その後、該TCB内のTCBTTI
MEを更新する為、PIPのTODを用いて時間のカウ
ントを開始する。具体的にはTODの時刻を、該LIP
タスクのTCBに置かれているタスクのTCBDSPT
Mにストアする。この処理は、前述のステップ403と
同一動作である。その後、PIPのPSWに該LIPタ
スクのTCBに退避されている該LIPの旧PSWをロ
ードし、制御をLIPタスク320に渡す。
【0026】ステップ412 : LIPタスク320
は、ステップ411で更新されたTCBTTIMEを、
該LIPタスク固有に用意されているLIPTBLに置
かれているゲストOS330のディスパッチ時間の終了
値を保持しているエリア(以下、LIPAIETとい
う)にストアする。ここでLIPAIETは、ゲストO
S330のディスパッチ終了時の時間を保持する。
【0027】ステップ413 : LIPタスク320
は、該LIPタスク固有に用意されているLIPTBL
のLIPAIETの内容からLIPBIETの内容を減
じ、その結果をゲストOS330のディスパッチ時間の
累積値を保持しているエリア(以下、LIPETIME
という)に加える。この処理に依り、該LIPタスク固
有に用意されているLIPテーブルのLIPETIME
にはLIPタスク320のディスパッチされている時間
が累積される。
【0028】ステップ414 : LIPタスク320
は、制御がVM上のゲストOS330からLIPタスク
320に戻される要因となったインターセプションコー
ドを解析し、コード毎のインターセプション処理を行う
準備をする。この処理をインターセプション第一レベル
処理と呼ぶ。
【0029】ステップ415 : LIPタスク320
は、インターセプション第一レベル処理に引き続くイン
ターセプション第二レベル処理を行うに当たって、この
処理がモニタタスク310の介入が必要であるか否かを
判定する。モニタタスク310の介入が必要であれば、
所定のSVCコードを持つSVC命令を発行してモニタ
タスク310に制御を渡す。即ち、ステップ417へ行
く。
【0030】ステップ416 : LIPタスク320
は、インターセプション第二レベル処理を行う。この処
理の具対的処理内容は、各種インターセプションコード
毎に対応する処理を別々に行うもので、例えばインター
セプションコードが命令インターセプションを指してい
れば、該命令のシミュレーションを行う。本ステップを
終了した後、ステップ404ヘ行く。以降、ステップ4
04からLIPタスク320の実行を続行する。
【0031】ステップ417 : モニタタスク310
は、SVC割込み処理の一環としてTCBTTIMEの
保守を行う。具体的には、TODの時刻をLIPタスク
320のTCBに置かれているタスクのディスパッチ終
了時刻を保持しているTCBINTMにストアする。そ
の後、該TCB内のTCBINTMの内容からTCBD
SPTMの内容を減じ、その結果をTCBTTIMEに
加える。この処理に依り、該TCB内のTCBTTIM
EにはLIPタスク320のディスパッチされていた時
間が累積される。以後、割込みの要因となったSVCコ
ード解析を行い、発行されたSVC命令がインターセプ
ションの処理にモニタタスク310の介入が必要である
SVCコードであることを認識するとステップ418に
行く。
【0032】ステップ418 : モニタタスク310
は、ステップ414のLIPタスク320に依るインタ
ーセプション第一レベル処理に引き続き、インターセプ
ション第二レベル処理を行う。この処理の具対的処理内
容は、入出力要求インターセプションや外部割込みイン
ターセプション等の、LIPタスク320だけでは対応
出来ない各種インターセプションに対応する処理を行う
もので、例えばインターセプションコードが入出力要求
インターセプションを指していれば、モニタタスク31
0は、それ自身が管理している入出力割込み情報を、ゲ
ストOS330に引き渡す目的で、該入出力割込みのシ
ミュレーションを行い、更にインターセプションコード
が待ち状態インターセプションを指していれば、モニタ
タスク310は、待ち状態インターセプションを引き起
こしたLIPタスク320を待ち状態タスクキューリス
トに登録し、他の動作可能なLIPタスクを起動する様
機能する。
【0033】ステップ419 : モニタタスク310
は、インターセプション又は割込みに依ってエントリし
て来たエントリ元のタスクに制御を戻すケースであるか
否かを判定する。エントリして来たエントリ元のタスク
に制御を戻すケースは、例えば前述の入出力要求インタ
ーセプションがあり、エントリして来たエントリ元のタ
スクに制御を戻さないケースは、例えば前述の待ち状態
インターセプションがある。エントリして来たエントリ
元のタスクに制御を戻すケースでは、ステップ403ヘ
行く。以降、ステップ403からモニタタスク310の
実行を続行する。エントリして来たエントリ元のタスク
に制御を戻さないケースは、ステップ401ヘ行く。以
降、ステップ401からモニタタスク310の実行を続
行する。
【0034】ステップ421 : VM上で走行してい
るゲストOS330が、何らかの割込み要因を検出する
と対応する割込み発生し、制御はVM上のゲストOS3
30からモニタタスク310に戻される。
【0035】ステップ422 : モニタタスク310
は、ステップ421で発生した割込み処理の一環として
TCBTTIMEの保守を行う。具体的には、ステップ
405と同様にTODの時刻を、LIPタスク320の
TCBに置かれているTCBINTMにストアする。そ
の後、該TCB内のTCBINTMの内容からTCBD
SPTMの内容を減じ、その結果をTCBTTIMEに
加える。この処理に依り、該TCB内のTCBTTIM
EにはLIPタスク320のディスパッチされている時
間が累積される。
【0036】ステップ423 : モニタタスク310
は、割込みの要因となった割込みの種類及び割込みコー
ド解析を行い、それぞれ所定の割込み処理を施した後、
ステップ419に行く。以降、ステップ419からモニ
タタスク310の実行を続行する。
【0037】以上述べた如く、従来技術に依るゲストO
Sの走行実時間の計測方法では、ゲストOSを起動する
前とゲストOSの走行終了の時点で、割込みを経由させ
る事によってモニタタスクに対して制御を渡す必要があ
り、これは、SVC命令の指定に依って実現されてい
た。この方法では、SIE命令を1回発行する度に、2
回のSVC命令の発行に依るSVC割込みの介入が生
じ、ハードウェアに依るSVC割込み発生処理のオーバ
ヘッド及びモニタタスクに依るSVC第一レベル割込み
処理及びSVC第二レベル割込み処理のオーバヘッドが
生じ、これらのオ−バヘッドは仮想計算機システムの性
能低下の大きな要因となり、無視し得ない大きな問題で
あった。
【0038】
【発明が解決しようとする課題】前記従来技術は、ゲス
トOSの走行実時間の計測を行うに当たり、走行実時間
の計測用データの取得にはモニタタスクの介入が必要で
あった為、モニタタスクへの制御の切り替えを目的とし
て、ゲストOSを起動する前とゲストOSの走行終了の
時点で、本来、割込みが不要な場合でも割込みを経由さ
せ為、SVC命令の発行に伴うSVC割込みの発生に依
ってモニタタスクに対して制御を渡していた。この場
合、SIE命令を1回発行する度に、2回のSVC命令
の発行に依るSVC割込みの介入が生じ、ハードウェア
に依るSVC割込み発生処理のオーバヘッド及びモニタ
タスクに依るSVC第一レベル割込み処理及びSVC第
二レベル割込み処理のオーバヘッドが生じ、これらのオ
−バヘッドは仮想計算機システムの性能低下の大きな要
因となり、仮想計算機システムの性能上無視し得ない大
きな問題であった。
【0039】本発明の目的は、前記従来技術の問題点を
解決するもので、ゲストOSの走行実時間の計測を行う
に当たり、本来、割込みが不要な場合の走行実時間の計
測用データの取得に際しモニタタスクの介入を不要と
し、ゲストOSを起動する前とゲストOSの走行終了の
時点で、本来、割込みが不要な場合には、SVC命令を
発行せず、その結果としてSVC割込みの発生を除去す
る事に依り、SIE命令を1回発行する度に、2回のS
VC命令の発行に依るSVC割込みを除去し、ハードウ
ェアに依るSVC割込み発生処理のオーバヘッド及びモ
ニタタスクに依るSVC第一レベル割込み処理及びSV
C第二レベル割込み処理のオーバヘッドを除去する事に
依り、格段に性能を向上させた仮想計算機システムの仮
想計算機動作時間計測制御方式を提供する事にある。
【0040】
【課題を解決するための手段】本発明に依れば、前記目
的は、ゲストOSの走行実時間の計測を行うに当たり、
割込みが不要な場合の走行実時間の計測用データの取得
方法を、以下の如くに変更する事によって達成される。
【0041】即ち、ゲストOSを起動する前とゲストO
Sの走行終了の時点で、本来、割込みが不要な場合に
は、SVC命令発行によるSVC割込みの発生に伴って
制御を受けたモニタタスクに於いて計測されるタスク走
行時間の累積値をゲストOSの走行実時間の計測を行う
為の計測用データとする方法を変更し、LIPタスクが
直接発行する Sore Clock 命令によって得
られる実計算機のTODの値をゲストOSの走行実時間
の計測を行う為に使用される計測用データとする方法に
変更する事によって達成される。
【0042】
【作用】本発明の仮想計算機システムの仮想計算機動作
時間計測制御方式に依れば、図3において、LIPタス
ク320は、SIE命令を発行する前に、該LIPタス
ク固有に用意されているLIPTBLに置かれているゲ
ストOS330のディスパッチ開始時刻を保持している
LIPBIETに Store Clock 命令を用
いてPIPのTOD値をストアする。その後、LIPタ
スク320は、SIE命令のオペランドであるSDをオ
ペランドとしてSIE命令を発行し、VM上のゲストO
S330を起動する。起動されたゲストOS330が走
行している時、何らかのインターセプションが発生する
と、制御はVM上のゲストOS330からLIPタスク
320に戻される。LIPタスク320は、該LIPタ
スク固有に用意されているLIPTBLに置かれている
ゲストOS330のディスパッチ時間の終了時刻を保持
しているLIPAIETに Store Clock命
令を用いてPIPのTOD値をストアする。その後、L
IPタスク320は、該LIPタスク固有に用意されて
いるLIPTBLのLIPAIETの内容からLIPB
IETの内容を減じ、その結果をゲストOS330のデ
ィスパッチ時間の累積値を保持しているLIPETIM
Eに加える。この処理に依り、該LIPタスク固有に用
意されているLIPTBLのLIPETIMEにはLI
Pタスク320のディスパッチされている時間が累積さ
れる。
【0043】以上、本発明の仮想計算機システムの仮想
計算機動作時間計測制御方式を適用した結果、LIPタ
スク320は、ゲストOS330の走行した実時間を計
測する機能の一部としてモニタタスク310の実時間の
計測機能を用いない。従ってダミーであるSVC命令を
発行する必要が無く、SVC命令の発行に伴って生ずる
ハードウェアのSVC割込み発生処理のオーバヘッド及
びモニタタスクに依るSVC第一レベル割込み処理及び
SVC第二レベル割込み処理のオーバヘッドを除去で
き、格段に性能を向上させた仮想計算機システムの仮想
計算機動作時間計測制御方式を実現出来る。
【0044】
【実施例】以下、本発明の仮想計算機システムの仮想計
算機動作時間計測制御方式の一実施例を図面を用いて詳
細に説明する。
【0045】図5及び図6は、本発明による仮想計算機
システムの仮想計算機動作時間計測制御方式の処理手順
を示した処理フロ−チャ−トである。以下図3、図5及
び図6に基づいてその処理手順を詳細に説明する。
【0046】図5及び図6に於いて501から526は
各処理ステップを示す。
【0047】ステップ501 : VM上でゲストOS
を走行させる事前処理として、VMCPのモニタタスク
310はディスパッチすべきLIPタスクを複数のLI
Pタスク群の中から選択する。この処理を行うプログラ
ムモジュールをスケジューラと呼ぶ。
【0048】ステップ502 : モニタタスク310
は、複数のLIPタスク群の中からスケジューラによっ
て選択されたLIPタスクを起動する為、該LIPタス
クの保持していたタスク固有情報及び汎用レジスタの内
容等のハードウェア情報を該LIPタスクのTCBから
PIP内ハードウェアレジスタ群にリストアする。
【0049】ステップ503 : モニタタスク310
は、該LIPタスクのTCBに置かれているタスクのデ
ィスパッチ時間の累積値を保持しているエリア(以下、
TCBTTIMEという)を更新する為、PIPのタイ
ム−オブ−デイ−クロック(以下、TODという)を用
いて時間のカウントを開始する。具体的にはTODの時
刻を、該LIPタスクのTCBに置かれているタスクの
ディスパッチ開始時刻を保持しているTCBDSPTM
にストアする。この処理は既存の計測機能の一部を形成
している。その後、PIPのPSWに該LIPタスクの
TCBに退避されている該LIPの旧PSWをロード
し、制御を該LIPタスク(以下、LIPタスク320
を例に説明を行う)に渡す。
【0050】ステップ504 : LIPタスク320
は、ゲストOS330を起動する準備としてSIE命令
のオペランドである状態記述(以下、SDという)を所
定の如くイニシャライズする。
【0051】ステップ505 : LIPタスク320
は、ゲストOS330の実行時間測定処理の一環とし
て、LIPBIETにゲストOS330の実行開始時刻
を設定する。具体的には、Store Clock 命
令を発行してTODの現時刻を、LIPタスク320に
固有に用意されているLIPTBLに置かれているゲス
トOS330のディスパッチの開始時刻値を保持してい
るLIPBIETにストアする。ここでLIPBIET
は、ゲストOS330のディスパッチ開始時刻値を保持
する。
【0052】ステップ506 : LIPタスク320
は、ステップ504でイニシャライズされたSIE命令
のSDをオペランドとしてSIE命令を発行し、VM上
のゲストOS330を起動する。
【0053】ステップ507 : VM上でゲストOS
330が走行する。
【0054】ステップ508 : VM上で走行してい
るゲストOS330が、何らかのインターセプション要
因を検出すると対応するインターセプションが発生し、
制御はVM上のゲストOS330からLIPタスク32
0に戻される。
【0055】ステップ509 : LIPタスク320
は、ゲストOS330の実行時間測定処理の一環とし
て、LIPAIETにゲストOS330の実行終了時刻
を設定する。具体的には、Store Clock 命
令を発行してTODの現時刻を、LIPタスク320に
固有に用意されているLIPTBLに置かれているゲス
トOS330のディスパッチの終了時刻値を保持してい
るLIPAIETにストアする。ここでLIPAIET
は、ゲストOS330のディスパッチ終了時刻値を保持
する。
【0056】ステップ510 : LIPタスク320
は、該LIPタスク固有に用意されているLIPTBL
のLIPAIETの内容からLIPBIETの内容を減
じ、その結果をゲストOS330のディスパッチ時間の
累積値を保持しているLIPETIMEに加える。この
処理に依り、該LIPタスク固有に用意されているLI
PテーブルのLIPETIMEにはLIPタスク320
のディスパッチされている時間が累積される。
【0057】ステップ511 : LIPタスク320
は、制御がVM上のゲストOS330からLIPタスク
320に戻される要因となったインターセプションコー
ドを解析し、コード毎のインターセプション処理を行う
準備をする。この処理をインターセプション第一レベル
処理と呼ぶ。
【0058】ステップ512 : LIPタスク320
は、インターセプション第一レベル処理に引き続くイン
ターセプション第二レベル処理を行うに当たって、この
処理がモニタタスク310の介入が必要であるか否かを
判定する。モニタタスク310の介入が必要であれば、
所定のSVCコードを持つSVC命令を発行してモニタ
タスク310に制御を渡す。即ち、ステップ514へ行
く。
【0059】ステップ513 : LIPタスク320
は、インターセプション第二レベル処理を行う。この処
理の具対的処理内容は、各種インターセプションコード
毎に対応する処理を別々に行うもので、例えばインター
セプションコードが命令インターセプションを指してい
れば、該命令のシミュレーションを行う。本ステップを
終了した後、ステップ504ヘ行く。以後、ステップ5
04からLIPタスク320の実行を続行する。
【0060】ステップ514 : モニタタスク310
は、SVC割込み処理の一環としてTCBTTIMEの
保守を行う。具体的には、TODの時刻をLIPタスク
320のTCBに置かれているタスクのディスパッチ終
了時刻を保持しているTCBINTMにストアする。そ
の後、該TCB内のTCBINTMの内容からTCBD
SPTMの内容を減じ、その結果をTCBTTIMEに
加える。この処理に依り、該TCB内のTCBTTIM
EにはLIPタスク320のディスパッチされていた時
間が累積される。以後、割込みの要因となったSVCコ
ード解析を行い、発行されたSVC命令がインターセプ
ションの処理にモニタタスク310の介入が必要である
SVCコードであることを認識するとステップ515に
行く。
【0061】ステップ515 : モニタタスク310
は、ステップ512のLIPタスク320に依るインタ
ーセプション第一レベル処理に引き続き、インターセプ
ション第二レベル処理を行う。この処理の具対的処理内
容は、入出力要求インターセプションや外部割込みイン
ターセプション等の、LIPタスク320だけでは対応
出来ない各種インターセプションに対応する処理を行う
もので、例えばインターセプションコードが入出力要求
インターセプションを指していれば、モニタタスク31
0は、それ自身が管理している入出力割込み情報を、ゲ
ストOS330に引き渡す目的で、該入出力割込みのシ
ミュレーションを行い、更にインターセプションコード
が待ち状態インターセプションを指していれば、モニタ
タスク310は、待ち状態インターセプションを引き起
こしたLIPタスク320を待ち状態タスクキューリス
トに登録し、他の動作可能なLIPタスクを起動する様
機能する。
【0062】ステップ516 : モニタタスク310
は、インターセプション又は割込みに依ってエントリし
て来たエントリ元のタスクに制御を戻すケースであるか
否かを判定する。エントリして来たエントリ元のタスク
に制御を戻すケースは、例えば前述の入出力要求インタ
ーセプションがあり、エントリして来たエントリ元のタ
スクに制御を戻さないケースは、例えば前述の待ち状態
インターセプションがある。エントリして来たエントリ
元のタスクに制御を戻すケースでは、ステップ517ヘ
行く。エントリして来たエントリ元のタスクに制御を戻
さないケースは、ステップ501ヘ行く。以降、ステッ
プ501からモニタタスク310の実行を続行する。
【0063】ステップ517 : モニタタスク310
は、該LIPタスクのTCBに退避されている該LIP
の旧PSWの命令アドレス部が指している命令がSIE
命令であるか否かを判定する。該LIPの旧PSWの命
令アドレス部が指している命令がSIE命令で無けれ
ば、ステップ503へ行く。以後、ステップ503から
モニタタスク310の実行を続行する。該LIPの旧P
SWの命令アドレス部が指している命令がSIE命令で
あれば、ステップ518へ行く。
【0064】ステップ518 : モニタタスク310
は、LIPタスク320起動処理の一環としてTCBT
TIMEの保守を行う。具体的には、ステップ503と
同様にTODの時刻を、LIPタスク320のTCBに
置かれているタスクのディスパッチ開始時刻を保持して
いるTCBDSPTMにストアする。
【0065】ステップ519 : モニタタスク310
は、ゲストOS330の実行時間測定処理の一環とし
て、LIPBIETにゲストOS330の実行開始時刻
を設定する。具体的には、Store Clock 命
令を発行してTODの現時刻を、LIPタスク320に
固有に用意されているLIPTBLに置かれているゲス
トOS330のディスパッチの開始時刻値を保持してい
るLIPBIETにストアする。ここでLIPBIET
は、ゲストOS330のディスパッチ開始時刻値を保持
する。その後、PIPのPSWに該LIPタスクのTC
Bに退避されている該LIPの旧PSWをロードし、制
御をLIPタスク320に渡す。此の場合、最初に実行
される命令はSIE命令であるので、ステップ507の
ゲストOSの実行が直接起動される。
【0066】ステップ521 : VM上で走行してい
るゲストOS330が、何らかの割込み要因を検出する
と対応する割込み発生し、制御はVM上のゲストOS3
30からモニタタスク310に戻される。
【0067】ステップ522 : モニタタスク310
は、プリフィクス退避領域(以下、PSAという)の割
込み旧PSWの命令アドレス部が指している命令がSI
E命令であるか否かを判定する。該旧PSWの命令アド
レス部が指している命令がSIE命令で無ければ、ステ
ップ525へ行く。該旧PSWの命令アドレス部が指し
ている命令がSIE命令であれば、ステップ523へ行
く。
【0068】ステップ523 : モニタタスク310
は、ゲストOS330の実行時間測定処理の一環とし
て、LIPAIETにゲストOS330の実行終了時刻
を設定する。具体的には、Store Clock 命
令を発行してTODの現時刻を、LIPタスク320に
固有に用意されているLIPTBLに置かれているゲス
トOS330のディスパッチの終了時刻値を保持してい
るLIPAIETにストアする。ここでLIPAIET
は、ゲストOS330のディスパッチ終了時刻値を保持
する。
【0069】ステップ524 : モニタタスク310
は、該LIPタスク固有に用意されているLIPTBL
のLIPAIETの内容からLIPBIETの内容を減
じ、その結果をゲストOS330のディスパッチ時間の
累積値を保持しているLIPETIMEに加える。この
処理に依り、該LIPタスク固有に用意されているLI
PテーブルのLIPETIMEにはLIPタスク320
のディスパッチされている時間が累積される。
【0070】ステップ525 : モニタタスク310
は、ステップ521で発生した割込み処理の一環として
TCBTTIMEの保守を行う。具体的には、ステップ
514と同様にTODの時刻を、LIPタスク320の
TCBに置かれているTCBINTMにストアする。そ
の後、該TCB内のTCBINTMの内容からTCBD
SPTMの内容を減じ、その結果をTCBTTIMEに
加える。この処理に依り、該TCB内のTCBTTIM
EにはLIPタスク320のディスパッチされている時
間が累積される。
【0071】ステップ526 : モニタタスク310
は、割込みの要因となった割込みの種類及び割込みコー
ド解析を行い、それぞれ所定の割込み処理を施した後、
ステップ516に行く。以降、ステップ516からモニ
タタスク310の実行を続行する。
【0072】以上説明した如く本発明においては、ゲス
トOSの走行した実時間を計測する機能を実現するにあ
たり、物理ハードウェア資源を管理する役割を担うモニ
タタスクの実時間計測機能を用いる必要が無く、従っ
て、ダミーの割込みを介してタスク間の制御の切り替え
を行う必要が無い。その結果、ハードウェアの割込み発
生処理のオーバヘッド及びモニタタスクに依る割込み処
理のオーバヘッドを除去出来、効率の良いゲストOS走
行実時間計測機能を実現出来る。
【0073】尚本例では、ゲストOSの走行した実時間
を計測する機能を実現するにあたり、モニタタスク31
0又はLIPタスク320と称するソフトウェアが、プ
ログラム的に、LIPタスクに用意されているLIPテ
ーブルのLIPETIMEにLIPタスクのディスパッ
チ時間を累積する例を示したが、マイクロコードに依り
SIE命令の内部処理である入り口処理及び出口処理
で、本実施例で説明したLIPAIET及びLIPBI
ETのテーブルエントリをアクセスし、該エントリデー
タの作成を行い、更に、LIPETIMEの計算をも、
SIE命令の内部マイクロコードに依り実現し、該計算
結果であるディスパッチ時間の累積値を該エントリにス
トアさせる方法をとっても良く、マイクロコードに依り
SIE命令の内部で、本実施例で説明したLIPAIE
T及びLIPBIETに相当するデータの作成を行い、
更に、LIPETIMEの計算をも、SIE命令の内部
マイクロコードに依り実現し、該計算結果であるディス
パッチ時間の累積値をSIE命令の結果オペランドに反
映させる方法をとっても良い。
【0074】
【発明の効果】以上のように、本発明に依れば、ゲスト
OSの走行した実時間を計測する機能を実現するにあた
り、物理ハードウェア資源を管理する役割を担うモニタ
タスクの実時間計測機能を使用しない事に依り、効率が
良く且つ格段に性能を向上させた仮想計算機システムの
仮想計算機動作時間計測制御方式を提供する事が出来
る。
【図面の簡単な説明】
【図1】本発明である仮想計算機システムの仮想計算機
動作時間計測制御方式を適用した場合の仮想計算機シス
テムの構成概念を示す図である。
【図2】本発明である仮想計算機システムの仮想計算機
動作時間計測制御方式を適用した場合の論理プロセッサ
の動作状態の遷移の概念を示すタイムチャートである。
【図3】本発明である仮想計算機システムの仮想計算機
動作時間計測制御方式を適用した場合の仮想計算機シス
テムを実現する上で使用される仮想計算機制御プログラ
ムの構成概念を示す図である。
【図4】従来の仮想計算機の動作時間を計測する制御方
法の処理手順を示すフローチャートである。
【図5】従来の仮想計算機の動作時間を計測する制御方
法の処理手順を示すフローチャートである。(図4の続
き)
【図6】本発明である仮想計算機システムの仮想計算機
動作時間計測制御方式を適用した場合の仮想計算機の動
作時間を計測する制御方法の処理手順を示すフローチャ
ートである。
【図7】本発明である仮想計算機システムの仮想計算機
動作時間計測制御方式を適用した場合の仮想計算機の動
作時間を計測する制御方法の処理手順を示すフローチャ
ートである。(図6の続き)
【符号の説明】
101 主記憶装置 102、103 実処理装置 111 仮想計算機制御プログラム 112,113 仮想計算機 121,122,131,132 論理処理装置 310 モニタタスク 320 論理プロセッサタスク 330 ゲストオペレーティングシステム

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】1台以上の実中央処理装置と、該実中央処
    理装置のそれぞれから共用される主記憶装置とから構成
    される情報処理システム上に構築される仮想計算機シス
    テムにおいて、それぞれの実中央処理装置上に構築され
    る複数の論理中央処理装置を動作させる手段として、前
    記実中央処理装置を直接制御するモニタ部と前記論理中
    央処理装置を制御する論理中央処理装置制御部から構成
    される仮想計算機制御プログラムが、1つ又はそれ以上
    の仮想計算機の動作時間を計測する際、前記論理中央処
    理装置制御部に仮想計算機の動作時間の計測手段を持つ
    ことを特徴とする仮想計算機システムの仮想計算機動作
    時間計測制御方式。
JP5189627A 1993-07-30 1993-07-30 仮想計算機システムの仮想計算機動作時間計測制御方式 Pending JPH0744405A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5189627A JPH0744405A (ja) 1993-07-30 1993-07-30 仮想計算機システムの仮想計算機動作時間計測制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5189627A JPH0744405A (ja) 1993-07-30 1993-07-30 仮想計算機システムの仮想計算機動作時間計測制御方式

Publications (1)

Publication Number Publication Date
JPH0744405A true JPH0744405A (ja) 1995-02-14

Family

ID=16244465

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5189627A Pending JPH0744405A (ja) 1993-07-30 1993-07-30 仮想計算機システムの仮想計算機動作時間計測制御方式

Country Status (1)

Country Link
JP (1) JPH0744405A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212467A (ja) * 1996-01-30 1997-08-15 Fujitsu Ltd 負荷分散制御システム
JP2008234191A (ja) * 2007-03-19 2008-10-02 Toshiba Corp ハードウエアモニタ管理装置及びハードウエアモニタ機能の実行方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212467A (ja) * 1996-01-30 1997-08-15 Fujitsu Ltd 負荷分散制御システム
JP2008234191A (ja) * 2007-03-19 2008-10-02 Toshiba Corp ハードウエアモニタ管理装置及びハードウエアモニタ機能の実行方法

Similar Documents

Publication Publication Date Title
US5553291A (en) Virtual machine control method and virtual machine system
US6466962B2 (en) System and method for supporting real-time computing within general purpose operating systems
US5506975A (en) Virtual machine I/O interrupt control method compares number of pending I/O interrupt conditions for non-running virtual machines with predetermined number
JPS61206043A (ja) 仮想計算機システムにおける割込制御方法
JPH0792761B2 (ja) 仮想計算機システムの入出力制御方法
CN103744716A (zh) 一种基于当前vcpu调度状态的动态中断均衡映射方法
KR20160033517A (ko) 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법
JPH0754471B2 (ja) デ−タ処理装置
US7111200B2 (en) Apparatus and method for debugging a logical partition
JP2900767B2 (ja) 仮想計算機システムの仮想計算機走行時間間隔制御方式
JPH0981401A (ja) 大域的なリソースキャッピング方法
JP2009223842A (ja) 仮想計算機制御プログラム及び仮想計算機システム
JPH06243112A (ja) マルチプロセッサ装置
JPH11259316A (ja) Cpu能力調整方法
US8719836B2 (en) Method and device for operating a secondary operating system auxiliary to a primary operating system
JPH0744405A (ja) 仮想計算機システムの仮想計算機動作時間計測制御方式
JPS59167756A (ja) 仮想計算機のデイスパツチ制御方式
JP2000215071A (ja) 仮想計算機システム
JPH07219787A (ja) 予測制御型並列分散処理方式、及びコンピュータシステム、並びにネットワークシステム
JPS603229B2 (ja) 情報処理方式
JPH09282196A (ja) 複合論理プロセッサシステムのプログラム走行制御方式
JPS6313218B2 (ja)
JPS5958553A (ja) 統合型仮想計算機のディスパッチ制御方式
JPS6031649A (ja) 仮想計算機システムにおけるタイマ制御方式
JPH10260850A (ja) 仮想計算機システム