JPH03228145A - Osのテスト方法 - Google Patents

Osのテスト方法

Info

Publication number
JPH03228145A
JPH03228145A JP2021976A JP2197690A JPH03228145A JP H03228145 A JPH03228145 A JP H03228145A JP 2021976 A JP2021976 A JP 2021976A JP 2197690 A JP2197690 A JP 2197690A JP H03228145 A JPH03228145 A JP H03228145A
Authority
JP
Japan
Prior art keywords
exception
event
interrupt
virtual machine
state
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
JP2021976A
Other languages
English (en)
Inventor
Toshiharu Tanaka
俊治 田中
Hidenori Umeno
梅野 英典
Toshiaki Arai
利明 新井
Ikuo Kimura
木村 伊九夫
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 JP2021976A priority Critical patent/JPH03228145A/ja
Publication of JPH03228145A publication Critical patent/JPH03228145A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、仮想計算機システムを用いて行なうのに好適
なOSのテスト方法に関する。
〔従来の技術〕
仮想計算機システムは、特開昭57−212680号公
報に記載されているように、1台の計算機上で複数の論
理的な計算機である仮想計算機(VM:Virtual
 Machine)を実現し、仮想計算機制御プログラ
ム(V M CP : Virtual Machin
e ControlProgram)の制御の下で各V
M上のオペレーティング・システム(OS : Ope
rating System)の走行を可能とする。仮
想計算機システムでは、1台の計算機上でプロダクショ
ン用のOSと、テスト中のOSをタイムスライスにより
時系列に走行可能である。このVMを利用してOSのテ
ストを効率良く行なうために、VMのレジスタの値やメ
モリの内容を表示するコマンドや、VM上のOSが作成
した仮想空間上の特定の領域の命令を実行したときにV
Mの走行を停止するコマンドや、停止したVMを再開す
るコマンド等をVMCPはユーザに提供している。
特開昭63−147235号公報には、VM走行中に発
生した例外処理を高速に実行するための情報処理装置が
開示されている。この情報処理装置は、例外ごとにVM
モートで直接処理可能か否かを示す情報と例外処理を行
なうマイクロプログラムのアドレスをメモリ(前記公報
では、メモリデコーダとも呼んでいる)に保持する。前
記情報処理装置は、VM走行中に発生した例外を、VM
モードで直接処理可能ならば対応する例外処理のマイク
ロプログラムを実行することにより処理する。また、V
Mモードで直接処理不可能ならば、前記情報処理装置は
、VMモードをリセットして実計算機モードに遷移し、
VMCPが例外処理のシミュレーションを行なう。
〔発明が解決しようとする課題〕
上記特開昭63−147235号公報による従来技術は
VM走行中に発生した例外処理を高速に実行する点でよ
い。しかし、OSのテストをVMで行なう場合には、例
外処理を高速に行なうだけでなく、次の機能を有するこ
とが望ましい。
(1)一般にOSは、例外の割込みが発生したとき、そ
の割込みコートに従った処理を行ない、トレース情報を
取得する。このため例外が発生した時点と、OSがトレ
ース情報を取得した時点とでは、VMのレジスタの値や
、メモリの内容が一般的に異なる。しかしながら、VM
走行中に特定の例外が発生したとき、その時点でのVM
のレジスタの値や、メモリの内容をVMのユーザが確認
できることが望ましい。
(2)割込みコードにより、(1)における特定の例外
を指定できることが望ましい。ここで全ての例外をVM
停止の対象としないのは、仮想空間サポートでのページ
フォルトのように、プログラム異常以外の要因による例
外があるからである。
(3)アーキテクチャAをサポートするオペレーティン
グ・システムOS1をベースにして、機能Bが追加され
たアーキテクチャCをサポートするオペレーティング・
システムOS2を開発する場合、機能Bで新たに追加さ
れた命令が、プログラムネ良の要因となることが多い。
このため、機能名称とこの機能に関連する1以上の割込
みコードとの対応表を持ち、機能名称により(1)にお
ける特定の例外を指定できることが望ましい。
本発明の目的は、VM走行中に特定の例外が発生したと
き、その時点でのVMのレジスタの値や、メモリの内容
をVMのユーザが確認可能な仮想計算機システムを提供
することにある。
本発明の別の目的は、割込みコードにより前記特定の例
外を指定可能な仮想計算機システムを提供することにあ
る。
また、本発明の別の目的は、機能名称とこの機能に関連
する1以上の割込みコードとの対応表を持ち、機能名称
により前記特定の例外を指定可能な仮想計算機システム
を提供することにある。
〔課題を解決するための手段〕
上記課題を解決するために本発明の方法は、1台の計算
機上で複数のOSが制御プログラムの制御の下で走行す
る仮想計算機システムにおいて、前記制御プログラムが
前記各々のOSに対して特定の例外事象を指定し、前記
OS走行中の割込み事象発生を検出して制御を前記制御
プログラムに渡し、前記制御プログラムが前記OSに割
込み事象のシミュレーションを行ない、前記割込み事象
が前記OSに指定された特定の例外事象に該当するか否
かを判定し、前記判定が肯定的な場合には前記OSの状
態を引き続き停止状態におき、前記判定が否定的な場合
には前記OSの状態を走行可能状態におく。
前記例外事象の指定は、例外事象の割込みコードの指定
により行なってもよい。
また、機能名称と前記機能に関連する1以上の割込みコ
ートとの対応表を持ち、前記例外事象の指定は、前記機
能名称の指定により行なってもよい。
〔作用〕
各VMユーザは、予めコマンドにより特定の例外事象を
VMCPに通知しておく。
VM走行中に割込み事象が発生したとき、計算機はこの
割込み事象をVMCPに割り出す。割り出し後、VMC
Pは前記OSに割込み事象のシミュレーションを行なう
。次にVMCPは、この例外事象が該当VMユーザがコ
マンドにより予め指定した例外事象に該当するか否かを
判定し、前記判定が肯定的な場合は前記OSの状態を引
き続き停止状態におき、前記判定が否定的な場合には前
記OSの状態を走行可能状態におく。
OSを停止状態にした後、VMCPはメツセージを出力
して、VMユーザにOSが走行停止状態におかれたこと
を通知する。これにより、VMユーザは指定した例外事
象が発生したことが分かり、例外が発生した要因を解析
するために、VMのレジスタの値や、メモリの内容等の
VMの状態を調べることができる。このようにして、特
定の例外が発生したとき、その時点でのVMのレジスタ
の値や、メモリの内容をVMのユーザが確認可能な仮想
計算機システムを提供できる。
割込みコードを指定するコマンドにより、例外事象の指
定を行なってもよい。これにより、割込みコードによっ
てVMを停止状態とする例外を指定可能な仮想計算機シ
ステムを提供できる。
また、機能名称とこの機能に関連する1以上の割込みコ
ードとの対応表を持つことにより、機能名称を指定する
コマンドにより、例外事象の指定を行なってもよい。こ
れにより、機能名称によってVMを停止状態とする例外
を指定可能な仮想計算機システムを提供できる。
〔実施例〕
以下、本発明の第1と第2の実施例を図を用いて詳細に
説明する。
(A  1の  例 第1図は本発明を適用したVMCPおよびVM上のOS
の動作を示すフローチャートである。第1図において、
10はVMCPの処理、20は仮想計算機VMI上のオ
ペレーティング・システムO3Iの処理、30は仮想計
算機VM2上のオペレーティング・システムOS2の処
理を表わす。
VMCPl 0は、後で詳しく述べる割込みコード対応
表40と、仮想計算機VMIの起動情報等を保持する仮
想計算機VMIの状態ブロック50−1と、仮想計算機
VMIの状態ブロック50−1と同様の構成からなり仮
想計算機VM2の起動情報等を保持する仮想計算機VM
2の状態ブロック50−2を有する。本実施例では、V
Mは2台としたが、3台以上であってもよい。
仮想計算機VMIの状態ブロック50−1は。
仮想計算機VMIの起動時の初期値となるレジスタ値等
のフィールドと、VMを停止状態とする例外の割込みコ
ートを保持する割込みコードリスト60−1と、例外要
因発生時にハードウェアが割込みコードを格納するフィ
ールドからなる。本実施例では、割込みコードは8ビツ
ト(1バイト)からなり、割込みコードリスト60は2
”=256ビツト(32バイト)からなるものとする0
割込みコードリスト60の第1ビツトの値が1のとき。
割込みコードiの例外がVMを停止状態とする例外であ
ることを示す。
次にVMCPIOおよびVM上のOSの動作を図を参照
しながら説明する6 まず仮想計算機vM1のユーザは、仮想計算機VMIを
停止状態とする例外の指定を第2図に示したコマンドを
用いて行なう(ステップ100)。
第2図(A)は、割込みコードとユーザ識別子を指定し
て、VMを停止状態とする例外の割込みコードを状態ブ
ロック50内の割込みコードリスト60に設定するPI
NTCODE (ProgramInterrupti
on Code)コマンドを表わしている。例えば、P
INTCODEコマンドの割込みコードとして(01)
、、、ユーザ識別子として仮想計算機VMIを指定した
場合、仮想計算機vM1の状態ブロック50−1内の割
込みコードリスト60−1には(400・・・・・・0
0)、、が設定される。また、PINTCODEコマン
ドの割込みコードとして(02)、、。
ユーザ識別子として仮想計算機VMIを指定した場合、
仮想計算機VMIの状態ブロック50−1内の割込みコ
ートリスト60−1には(200・・・・・・00)、
、 が設定される。
第2図(B)は、機能名称とユーザ識別子を指定して、
VMを停止状態とする1以上の例外の割込みコードを状
態ブロック50内の割込みコードリスト60に設定する
PINTCODEコマンドを表わしている。また第3図
は、この機能名称と割込みコードとの対応関係を与える
割込みニード対応表40の構成を表わしている。割込み
コード対応表40のエントリは、機能名称と割込みコー
ドマスク70の組から構成される。割込みコードマスク
7oは、第4図に示すように1バイトの割込みコードに
対応して256ビツトのマスクからなる。
割込みコードマスク70の第1番目のマスクの値M(i
)が1のとき、割込みコードiの例外は同一エントリの
機能名称に関連する例外であることを示す。例えば第3
図に示した割込みコード変換表4は、機能名称Aには割
込みコート1と2が対応していることを示している。こ
のため、PINTCODEコマンドの機能名称としてA
、ユーザ識別子として仮想計算機VMIを指定した場合
、仮想計算機VMIの状態ブロック50−1内の割込み
コードリスト60−1には(600・・・・・・00)
、、が設定される。割込みコード対応表40は、詳しく
は述べないがVMCPl 0が固定的に作成することも
可能であるし、コマンドにより作成できるようにしても
よい。
次に仮想計算機MV2のユーザは、仮想計算機VM2を
停止状態とする例外の指定を仮想計算機VMIの場合と
同様に行なう(ステップ101)。
なお仮想計算機VM2が、プロダクション用のOSであ
る場合には、例外の指定は行なわなくてもよい。また、
これら停止状態とする例外の指定は、VM毎に1度、行
なえばよい。
次に仮想計算機VMIの状態ブロック50−1内のレジ
スタ値等を対応する計算機内のレジスタに設定すること
により仮想計算機VMIを起動したとする(ステップ1
02)。この結果オペレーティング・システムoS1が
走行する(ステップ103)。このオペレーティング・
システムOS1が走行中に、割込み要因が発生する(ス
テップ104)と、ハードウェアは、その時点でのレジ
スタ値等および例外に対応する割込みコードを仮想計算
機VMIの状態ブロック50−1に格納し、制御をVM
CPIOに渡す。
制御を渡されたVMCPIOは、まず、この割込みのシ
ミュレーション処理を行なう(ステップ105)、つぎ
にVMCPIOは、仮想計算機VMIを引き続き停止状
態とする対象の例外か否かを、仮想計算機VMIの状態
ブロック50−1に格納された割込みコードjに対応す
る割込みコートリスト6o−1の第9番目のマスクの値
が1か否かにより判定する(ステップ106)。停止対
象の例外でない場合には、ステップ112に進む。停止
対象の例外の場合には、仮想計算機VMIを走行停止状
態におき(ステップ107)、仮想計算機VMIの走行
が停止されたことをメツセージにより仮想計算機VMI
のユーザに通知する(ステップ108)。
仮想計算機MVIが走行停止状態におかれたことを通知
された仮想計算機vM1のユーザは、従来からあるコマ
ンドにより仮想計算機VMIのレジスタの値やメモリの
内容を表示する(ステップ109)ことにより例外事象
の原因を解析することができる。
その後、仮想計算機VMIの再開を指定するコマンドが
投入されたかを判定しくステップ110)、なければス
テップ112を進む。仮想計算機MVIの再開を指定す
るコマンドが投入された場合には、仮想計算機■M1を
走行可能状態にする(ステップ111)。
次にVMCP 10は走行可能なVMを選択しくステッ
プ112)、選択した仮想計算機VM2を起動する(ス
テップ113)ことにより、オペレーティング・システ
ムOS2が走行する(ステップ114)。
以上述べたように、本実施例によれば、VM毎に予めコ
マンドで指定した例外がVM走行中に発生したとき、こ
のVMを停止状態にすることができる。
B  2の  伊 第1の実施例ではOS走行中に割込み要因が発生する度
にVMCPIOに制御を渡した。しかし次のようにして
、VM毎に予めコマンドで指定した例外による割込み要
因のときのみ、VMCPIOに制御を渡すこともできる
第5図において、200は命令実行手段、300は命令
実行時に例外を検出するための例外検出手段、400は
割込み実行手段である。また500は、状態ブロック5
0内の割込みコードリスト60と同様に、第1ビツトの
値が1のとき、割込みコードiの例外がVMを停止状態
とする例外であることを示す割込みコードリストレジス
タである。VM起動時、この割込みコードリストレジス
タ500には、状態ブロック50内の割込みコードリス
ト6oの値がそのまま設定される。また510は、VM
走行中は1、VMCPMC中はOとなる解釈実行(I 
E : 1nterpretive executio
n)モードレジスタである。
命令実行手段200において命令実行中に、例外検出手
段300が例外を検出すると、例外検出手段300は命
令の実行を抑止して、信号線1000に検出信号を、ま
た、データ線1010に例外要因に対応する割込みコー
ドiを送出する。その後、割込みコードに対応した割込
みコードリストレジスタ500のマスクの値M(i)を
データ線1020に送る。データ線1020に送られた
マスクの値M(1)とデータ線1030に送られたIE
モードレジスタ510の値により割込み実行手段400
は、以下の処理を行なう。
(1)IEモードレジスタ510がOの場合IEモード
レジスタ510が0ということは、VMCPIOが走行
中であることを意味する。
このためホスト割込み実行部440に起動信号を送り、
VMCPIOに対して割込みを実行する。
(2)IEモードレジスタ510が1で、マスクの値M
(i)が0の場合 IEモードレジスタ510が1ということは、VMが走
行中であることを意味する。またマスクの値M(i)が
0ということは、VMを停止状態とする例外でないこと
を意味する。このためゲスト割込み実行部420に起動
信号を送り、走行中のVMに対して割込みを実行する。
この結果、VMCP 10が介在することなく、走行中
のVM上のOSに割込みが反映される。
(3)IEモードレジスタ510が1で、マスクの値M
 (i )が1の場合 IEモードレジスタ510が1ということは、VMが走
行中であることを意味する。またマスクの値M(i)が
1ということは、VMを停止状態とする例外であること
を意味する。このため割り出し実行部430に起動信号
を送り、VMCPIOに例外を割り出す。割り出した後
の処理は、第1の実施例の場合と何ら変わらない。
以上述べたように、本実施例によれば、VM毎に予めコ
マンドで指定した例外による割込み要因のときのみ、V
MCPIOに制御を渡し、このVMを停止状態におくこ
とができる。
〔発明の効果〕
本発明によれば、VM走行中に特定の例外が発生したと
き、その時点でのVMのレジスタの値や、メモリの内容
をVMのユーザが確認可能な仮想計算機システムを提供
できる。
また、割込みコードにより前記特定の例外を指定可能な
仮想計算機システムを提供できる。
さらに、機能名称とこの機能に関連する1以上の割込み
コードとの対応表を持ち、機能名称により前記特定の例
外を指定可能な仮想計算機システムを提供できる。
【図面の簡単な説明】
第1図は本発明の第1の実施例におけるVMCPおよび
OSの動作を示すフローチャート、第2図は第1図にお
ける割込みコードリストに値を設定するためのコマンド
の説明図、第3図は第1図における割込みコード対応表
の説明図、第4図は第3図における割込みコードマスク
の説明図、第5図は本発明の第2の実施例における例外
処理に関わる手段の構成図。 10−VMCP(7)処理、20・=O516’)処理
。 30・・・OS2の処理、40・・・割込みコード対応
表、5o・・・状態ブロック、60・・・割込みコード
リスト、70・・・割込みコードマスク、200・・・
命令実行手段、300・・・例外検出手段、400・・
割込み実行舅 口 猶 (2) (A) /’I NTCltDE (省11込とコーVン ユーサ゛割べ別) ■ O(B) PINTCM)1 (ぺ能処#) ューがパ亀°別工 舅 拓

Claims (1)

  1. 【特許請求の範囲】 1、1台の計算機上で複数のOSが制御プログラムの制
    御の下で走行する仮想計算機システムにおいて、 前記制御プログラムが前記各々のOSに対して特定の例
    外事象を指定するステップと、 前記OS走行中の割込み事象発生を検出して制御を前記
    制御プログラムに渡すステップと、前記制御プログラム
    が前記OSに割込み事象のシミュレーションを行なうス
    テップと、 前記割込み事象が前記OSに指定された特定の例外事象
    に該当するか否かを判定するステップと、 前記判定が肯定的な場合に、前記OSの状態を引き続き
    停止状態におくステップと、 前記判定が否定的な場合に、前記OSの状態を走行可能
    状態におくステップとを有するOSのテスト方法。 2、特許請求の範囲第1項において、 前記例外事象の指定は、例外事象の割込みコードの指定
    により行なうことを特徴とするOSのテスト方法。 3、特許請求の範囲第1項において、 機能名称とこの機能に関連する1以上の割込みコードと
    の対応表を有し、 前記例外事象の指定は、前記機能名称の指定により行な
    うことを特徴とするOSのテスト方法。
JP2021976A 1990-02-02 1990-02-02 Osのテスト方法 Pending JPH03228145A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021976A JPH03228145A (ja) 1990-02-02 1990-02-02 Osのテスト方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021976A JPH03228145A (ja) 1990-02-02 1990-02-02 Osのテスト方法

Publications (1)

Publication Number Publication Date
JPH03228145A true JPH03228145A (ja) 1991-10-09

Family

ID=12070061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021976A Pending JPH03228145A (ja) 1990-02-02 1990-02-02 Osのテスト方法

Country Status (1)

Country Link
JP (1) JPH03228145A (ja)

Similar Documents

Publication Publication Date Title
US8230399B2 (en) Method for system call interception in user space
US5187802A (en) Virtual machine system with vitual machine resetting store indicating that virtual machine processed interrupt without virtual machine control program intervention
US5437033A (en) System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
JP5852677B2 (ja) レジスタ・マッピング方法
US9304794B2 (en) Virtual machine control method and virtual machine system using prefetch information
US20150169346A1 (en) Method for controlling a virtual machine and a virtual machine system
US20020129299A1 (en) System and method for monitoring execution of privileged instructions
JPS6017539A (ja) エミユレ−シヨン方式
JPH03217949A (ja) 計算機システム
JPH06168146A (ja) 仮想計算機方式
US20220035905A1 (en) Malware analysis through virtual machine forking
EP0145960A2 (en) Selective guest system purge control
CN115269057A (zh) 基于设备树的隔离系统生成配置文件的方法
KR920003044B1 (ko) 가상 머신 시스템용의 게스트 머신 실행 제어 시스템
JPH03228145A (ja) Osのテスト方法
KR101109984B1 (ko) 에뮬레이팅된 처리 환경에서 실행을 용이하게 하는 방법, 시스템 및 컴퓨터 판독가능 매체
JPH09282196A (ja) 複合論理プロセッサシステムのプログラム走行制御方式
JPH0638238B2 (ja) 仮想計算機システム
JP2899009B2 (ja) 情報処理装置
JPH0754470B2 (ja) 仮想計算機システムの制御方法
JPH0772874B2 (ja) 割込み受取り装置
JPH0247730A (ja) 仮想計算機システム
CN116339904A (zh) 一种基于硬件辅助的虚拟化指令模拟错误检测方法及系统
JPS6116338A (ja) 仮想計算機システムにおける割込み処理方式
JPS6146535A (ja) 擬似エラ−設定制御方式