JPH0754471B2 - デ−タ処理装置 - Google Patents

デ−タ処理装置

Info

Publication number
JPH0754471B2
JPH0754471B2 JP61088408A JP8840886A JPH0754471B2 JP H0754471 B2 JPH0754471 B2 JP H0754471B2 JP 61088408 A JP61088408 A JP 61088408A JP 8840886 A JP8840886 A JP 8840886A JP H0754471 B2 JPH0754471 B2 JP H0754471B2
Authority
JP
Japan
Prior art keywords
vmdbk
virtual
machine
subordinate
guest
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.)
Expired - Lifetime
Application number
JP61088408A
Other languages
English (en)
Other versions
JPS61272833A (ja
Inventor
ジェームズ・ロバート・ウォルシュ
Original Assignee
インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション
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 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション filed Critical インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション
Publication of JPS61272833A publication Critical patent/JPS61272833A/ja
Publication of JPH0754471B2 publication Critical patent/JPH0754471B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。
A.産業上の利用分野 B.従来技術 C.発明が解決しようとする問題点 D.問題点を解決するための手段 E.実施例 e1.MPシステムと実サービス・プロセツサをもつ装置
(第1図) e2.従属マシン(第2〜5図) e3.主MPまたはUP構成へのサービス(第6a、6d、7a、7b
図) F.発明の効果 A.産業上の利用分野 この発明は、一般的には実(ホスト)マシンのゲスト・
マシンである仮想マシンに関するものである。特に、こ
の発明は、仮想(ベース)マシンにサービスするかまた
は多重処理構成を形成するかのどちらかである従属仮想
マシンに関するものである。
B.従来技術 仮想ゲストが実(ホスト)ユニプロセツサ(UP)システ
ムまたは実(ホスト)マルチプロセツサ(MP)にログ・
オンするとき、ホストの記憶装置のある領域には仮想マ
シン定義制御ブロツク(ゲストVMDBK)が形成される。
この領域はゲストを定義するために必要な装置情報と制
御ブロツクをすべて含んでいる。このゲストVMDBKのポ
インタは保持されている記憶領域、すなわちホスト中核
内のSYSGEN共通領域内にある。データ処理装置の動作の
間の任意の時点で、走行中のゲストVMDBKはいくつかの
タイプ、例えばIBMシステム/370-XAまたはIBMシステム/
370のうちの1つである。そのタイプは、VMDBKが形成さ
れるとき割り当てられ、そして定義コマンドにより変更
され得る。このVMDBKが表す仮想CPUのアドレスは、2つ
以上のゲストがシステムにログ・オンするとき、大域巡
回リスト(VMDCYCLE)と呼ばれるVMDBKのチェーン中に
含まれる。ゲストVMDBKは次のものを含む。
(1)ホスト・システムに対する仮想ゲストを記述する
ゲスト状態記述子(SD)。これは次のものから成る。
(1a)ゲストのモード(タイプ)、例えばシステム/370
の記述。
(1b)ゲストの記憶サイズ。
(1c)ゲストのプログラム状況ワード(PSW)。
(1d)ゲストの制御レジスタ0−15の内容。
(2)ゲストの汎用レジスタ0−15の内容。
(3)ゲストの浮動小数点レジスタ0−6の内容。
米国特許第4456954号には、仮想(ゲスト)ユニプロセ
ッサ・システムが実UPまたは実MPシステムでエミュレー
トされることを可能ならしめる解釈実行開始(SIE)命
令が記述されている。このSIE命令は、オペレーション
・コードと、実主記憶(MS)中の制御ブロックのオペラ
ンド・アドレスから成る。この制御ブロックは状態記述
子(SD)であり、上述のようにゲストVMDBKとともに含
まれている。このSDは複数のフィールドを含んでいて、
これらのフィールドには、仮想システム(仮想記憶を持
つ仮想CPU)の状態を定義するデータと、この仮想シス
テムが実(ホスト)システム上でどのように動作するか
を制御するための状態とが受け取られる。従って、実主
記憶中に存在する1つのSDは、仮想UPシステム、すなわ
ち1つの仮想ゲストを定義する。一方、2つ以上のSD
は、複数のUPシステム、すなわち複数のゲストを定義す
る。実(ホスト)システムが複数のSIE命令を逐次に実
行する場合、この命令の各々はその対応するSDによって
1つの仮想ゲストをそれぞれ指定するから、結果的に複
数の仮想ゲストが作動されるようになる。SIE命令がホ
スト・プログラムの命令ストリーム中で実行される場合
には、常に、SIE呼出しと呼ばれる処理(プロセス)が
生ずる。この処理は、SIE命令により呼び出された仮想
ゲストを支援するため、実CPU中のマイクロコード及び
ハードウエアを使用可能にして、このゲストがエミュレ
ートされるようにする。SIE命令が呼び出された後、こ
のSIE命令が指定するSDにより定義される仮想ゲストの
ために、ゲスト・プログラムが実行を開始する。
仮想MPシステムも、共通の実主記憶に密結合された複数
の実CPUを持つ実MPシステム中に設けることができる。
このような実MPシステムでは、実UPシステムについて既
に説明したように、実主記憶中の複数のVMDBKによって
複数の仮想MPシステムがそれぞれ定義される。このよう
に、複数のVMDBKの各々が、実MPシステム中の異なる仮
想ゲストをそれぞれ定義するのである。MPシステム中の
複数の実CPUのうち1つ又はそれ以上のものが、任意の
時点で、エミュレーション・モードにあることがあり
得、その場合には、ゲスト・プログラムがそれぞれのSI
E命令の下で実行される。言いかえると、実MP主記憶中
の異なるVMDBKによつて識別された複数の仮想MPシステ
ムが同時にプログラムを実行することができる。
解釈実行についてのさらなる記述は、IBMジヤーナル・
オブ・リサーチ・アンド・デベロツプメント(Journal
of Research and Development)Vol.27、No.6.1983年11
月6日、P.H.ガム(gum)による“システム/370拡張ア
ーキテクチヤ:仮想マシンのための機構(System/370Ex
tended Architecture:Faciliteis for Virtual Machine
s)”と題する論文に見出される。この他の関連情報は
特開昭60-171552号公報及び係属中の米国特許出願第635
388号にも見出される。
他には、コンピユータ(Computer)、IEEE、Vol.9、No.
2、1976年2月、pp.38-42のG.D.ハグレー(Bagley)に
よる“スカウト−拡張仮想マシン(The Scout-An Exten
ded Virtual Machine)”と題する文献も関連がある。
スカウト・マシンにおいては、1次ゲスト・オペレーテ
イング・システムをもつゲスト実記憶の一部が、1次ゲ
スト・オペレーテイング・システムを変更する能力をも
つ特定の(2次)オペレーテイング・システムのために
保持される。しかし、多くの問題により、スカウト・マ
シンの概念は一般には受け入れられないものとなつてい
る。例えば、ゲスト・オペレーテイング・システム間の
衝突を防止するためには2つのコンソールが必要であ
り、ページ・ゼロを処理するために特定のゲスト・オペ
レーテイング・システムが変更され、I/O割り込みは、
それらが正しいオペレーテイング・システムを反映する
ように解釈される。さらに、1次ゲスト・オペレーテイ
ング・システムから2次ゲスト・オペレーテイング・シ
ステムまでに実記憶の損失がある。
C.発明が解決しようとする問題点 この発明の目的は、ゲスト・サービス又はゲスト・マル
チプロセッサ構成のどちらかで従属仮想マシンを利用す
るに当たり、かかる従属仮想プロセッサで実行されるプ
ログラム又は機能がホスト・オペレーテイング・システ
ム制御プログラム(SCP)の内部機能領域から分離され
るようにすることにある。
D.問題点を解決するための手段 本発明によれば、主記憶、I/O装置及び該I/O装置を制御
するためのホスト・オペレーテイング・システム・プロ
グラムを走らせる実CPUを有する少なくとも1つの実マ
シンと、ゲスト・オペレーテイング・システムを走らせ
るベース仮想CPUを有する少なくとも1つのベース仮想
マシンと、各ベース仮想マシンを表すベース仮想マシン
定義ブロックをそれぞれのポインタで順次に連鎖するこ
とにより形成された大域巡回リストとを備えるデータ処
理装置が提供される。このデータ処理装置は、特定のベ
ース仮想マシンのベース仮想CPUに結合された従属仮想C
PUを有する少なくとも1つの従属仮想マシンと、この特
定のベース仮想マシンへ結合された各従属仮想マシンを
表す従属仮想マシン定義ブロックをそれぞれのポインタ
で順次に連鎖することにより形成された局所巡回リスト
とを更に備えており、この局所巡回リストは上記の大域
巡回リストから分離されるようになっている。
E.実施例 e1.MPシステムと実サービス・プロセツサをもつ装置 別のプロセツサ(単数または複数)にサービスするプロ
セツサは従来知られている。ハードウエイの観点から、
サービス・プロセツサ、例えばIBM3082が、実(主)Up
システム、例えばIBM3083、または実(主)MPシステ
ム、例えばIBM3081にサービスと診断機能を与える(IBM
3081は2個の集積された中央処理装置をもち、その各々
は中央記憶装置と、I/O装置に連結するための2組のチ
ヤネルに等しくアクセスし得る)。サービス・プロセツ
サは、それがサービスするUPまたはMPシステムの記憶を
共有する。
別のプロセツサにサービスするプロセツサが第1図のデ
ータ処理装置によつて示されている。特に、このデータ
処理装置は、第1及び第2の実CPU、CPO、CP1、システ
ム制御装置SC、主記憶MS及び外部データ制御装置EXDCを
有している。各CPUはバツフア制御要素BCE、命令要素I
E、実行要素EE及び制御記憶要素CSEを有している。そし
て、システムの初期化の間に、マイクロコードが、バツ
フアとMSの指定された領域にロードされる。制御記憶要
素CSEは命令要素IEにマイクロコードの制御を与える。I
Eは、マイクロコードの制御下にあつて、MSから命令を
受け取つて解釈し、適当な実行領域にオペランドを指名
するCPUの部分である。記憶オペランドは、IEにより、
バツフア制御要素BCEからフエツチされる。BCEは、CPU
とシステム制御装置SCの間のデータ経路及びCPU内のデ
ータ経路を制御する。実行要素EEは、ハードウエアの制
御下で命令を実行する。外部データ制御装置EXDCは、制
御装置とI/O装置のためのI/Oチヤネルを支援するため
に、ハードウエアとマイクロコードの制御を与える。
第1図のデータ処理装置にはまた、MPシステムのための
機能を与え且つ実行するための(実)サービス・プロセ
ツサSPが含まれている。例えば、SPはほぼすべてのコン
ソールのための制御ユニット機能を与え、MPシステム中
のすべての動作をモニタし監視する。サービス・プロセ
ツサSPは、第1図に破線で表示されたように、MSとMPシ
ステムの実CPUにアクセスを有する。
e2.従属マシン 従属マシンは、第2図のデータ処理装置に示すように、
存在する仮想マシンと並列に構成(接続)された仮想マ
シンである。この場合、仮想マシン1はベース仮想マシ
ンまたはベースCPUと呼ぶことにする。ベースCPUと従属
マシン1aは、データ処理装置の主記憶中のホスト・オペ
レーテイング・システムのゲストである(仮想マシンn
などの別の仮想マシンも、MS中のホスト・オペレーテイ
ング・システムのゲストとして構成することができ
る)。従属仮想マシンは、そのベース・マシンと仮想マ
シン・コンソールを共有する。
この従属マシンは特定の仮想マシンに対する類似性(af
finity)を有するので、ベース・マシン中で処理されて
いるどのような活動についても、従属マシン中で実行さ
れる機能を作成することができる。この従属マシンとの
すべての連絡(通信)をベース・マシンのものと同じコ
ンソールを通して行うようにすると、従属マシンで実行
されている機能を進行させるためにログ・オフしたり又
はベース・マシンから切断する必要がなくなる(従属マ
シン環境では、仮想マシンのオペレータ・コンソール
は、従属マシンのオペレータがSCPと連絡するために使
用する装置である)。従属マシンのこの側面によれば、
(ベース・マシンの)使用者との対話を維持するホスト
・オペレーテイング・システム制御プログラム(SCP)
のコンソール機能を構築することが可能となり、さらに
はこのような対話中に他の全てのSCP機能を使用者に利
用させることが可能となる。この結果、或るコンソール
機能を実行している間に、他の全てのSCPコンソール機
能が使用者にとって利用不能となる、という問題を克服
することができる。また、論理的にSCP内に属さないサ
ービスを遂行するような大きな処理を従属マシン(中の
プログラム)の一部として提供することにより、この処
理に仮想マシンのシステム・スケジュール及び指名(デ
イスパッチ)機能を利用させることができるが、その場
合でもなおこの処理をSCP及び会計処理から分離するこ
とができるのである。このようなサービス機能は、スプ
ール・ファイル編集プログラム、SCPのEXECタイプの機
能又はフォーマット・プログラムであり得る。このよう
なサービス・プログラム(又は機能)を従属マシンに配
置することにより、当該サービス・プログラムをSCPの
内部機能領域から分離することができ、かくて当該サー
ビス・プログラム中のエラーに対するSCPの脆弱性を低
減させることが可能となる。尚、アプリケーシヨン・プ
ログラムのみならず、オペレーテイング・システム・プ
ログラム及びサービス・プログラムもまた各従属マシン
中で実行され得る。
従属マシンは、VMDBKを作成するためのモジユールHCPBV
Mに対する呼び出しと、LOGONモジユールに対する呼び出
しにより構成される(特に、モジユールHCPLOGは仮想I/
O装置を構成するために呼び出され、モジユールHCPBVM
は仮想CPUを構成するために呼び出される。モジユールH
CPBVMはVMDBKを作成しそれを一部初期化する。モジユー
ルHCPLOGとHCPLGNはVMDBKフイールドに残りのエントリ
を与える。モジユールHCPLOGはHCPUDRを呼び出す。HCPU
DRは、さらにVMDBKを作成するためのデイレクトリ・エ
ントリを使用するモジユールである。これらのモジユー
ルのうちのいくつかについては後で説明する。)。呼び
出し者(使用者)は構築されるべき従属マシンのタイプ
を識別する。もし従属マシンを構成するためにLOGONが
使用されるならば、すなわち使用者が、従属マシンの作
成を制御しその記憶をセツト・アツプするモジユール
(HCPADJ)を呼び出すSCPコマンドを発行する場合、デ
イレクトリのエントリは、仮想マシンとその構成を定義
するために使用される。すなわち、そのデイレクトリは
ベース仮想マシンと、ベースCPUとともにゲストMPシス
テムを形成することになる任意の初期従属マシンを定義
する。その少しあとの時点で、使用者は、MP構成中で別
のプロセツサとして使用されることになるか、または何
らかのサービス機能を走行させるサービス・プロセツサ
として使用されることになる別の従属マシンを定義する
ことができる。従属(仮想)マシンは、複数のフィール
ド及び複数のアドレスを持つ従属仮想マシン定義ブロッ
ク(従属VMDBK)を構築することによって作成され、一
方、これらのアドレスは、対応する制御ブロックと使用
者のためのVMDBKを指定する。この従属VMDBKは、フオー
マツト及び機能において、ゲスト(ベース)VMDBKに類
似している。両VMDBKは、仮想マシン構成を実現するた
めに、ホスト・オペレーテイング・システムにより、す
なわち初期的にはモジユールHCPBVM(後で説明する)に
より作成される。従属VMDBKはベースVMDBKに密結合する
ことが可能であり、この場合には、従属VMDBKは記憶に
加えてI/Oも共有することができる。或いは、従属VMDBK
は疎結合サービス・システムを作成することも可能であ
るが、その場合には、従属VMDBKがベースVMDBKと異なり
且つそれ自身の記憶とI/Oを持つことができるようにな
る。仮想I/O構成は、ホスト・オペレーテイング・シス
テムによって作成される、すなわち指定されたI/Oのシ
ミュレーションをベースVMDBKに対する接続機構の列と
して与えるモジュールHCPLOGによって作成される。典型
的なVMDBKのいくつかのフイールドが第5図に示されて
いる。従属VMDBKが表示する従属マシンCPUのアドレスは
局所巡回リスト(VMDLCYCL)と称するチエインに含まれ
ている。従属VMDBKはさらに、ベースCPUに対して従属マ
シンを記述する従属マシン状態記述子を含んでいる。さ
らに、VMDBKのタイプ、すなわちベース(EQU VMDTYPU
S)または従属(EQU VMDTYPAD)のタイプを識別するVMD
TYPEフイールドが存在する。
従属マシンはベースCPUにサービスを与える目的で、例
えば制御プログラム・コマンドのシーケンスを実行する
目的で作成される。そのようなサービス従属マシンに
は、有効化するために、プログラムすなわちゲスト・オ
ペレーテイング・システムをロードする必要がある。こ
のプログラムは、初期プログラム・ロード(IPL)に続
いて仮想マシン構成中の直接アクセス記憶装置からロー
ドすることができ、あるいは多数のホスト・オペレーテ
イング・システム常駐装置からソフトウエア・モジユー
ルとしてホストによりロードすることもできる(言いか
えると、SCPはゲスト記憶中に再ロードされるシステム
・データ・フアイル中にゲスト・オペレーテイング・シ
ステムのイメージを保持することができる)。選択され
た(IPLされた)SCPはゲストMP中の各従属マシンCPU毎
に作業を作成することができ、その場合には従属マシン
CPUを指名することができる(仮想マシンの使用者がSCP
のIPLコマンドを入力した後は、仮想マシンが最初に仮
想マシンSCPコマンド環境に入ることは広く理解されて
いる)。従属マシンは、ベース・マシンと同時に走行す
るかまたは、ベース・マシンと交互に走行するために構
築される。従属マシンの記憶はベース・マシンの記憶と
は異なる(このことはサービス従属マシンの場合にもあ
てはまる)。現在実現されている従属マシンは、実MPま
たはUP構成と記憶を共有することはない。
各従属マシンは特定のベース仮想マシンに対応づけられ
ているので、同一のベース・マシンに連結された従属マ
シンは局所巡回リストにつながれ、通常の大域巡回リス
ト(GCL)にはつながれない。大域システム巡回リスト
はシステムの各活動使用者毎のベース仮想マシンを含ん
でいる。言いかえると、各活動使用者毎に、第3図に示
す仮想マシン定義ブロツク(ゲストVMDBK)によつて表
示されるベース仮想マシン(ゲスト)が存在する。第3
図は1〜nまでの各使用者のゲストVMDBKを示してお
り、各ゲストVMDBKは別の1つのゲストVMDBKに対するポ
インタを含む。最初のゲストVMDBKは実オペレーテイン
グ・システム(ホスト・オペレーテイング・システム)
をあらわすシステムVMDBK中のポインタによつて指定さ
れる(システムVMDBKはSCP中の固定部分であり、システ
ム初期時間にシステムによつて使用するために作成され
る。その後のすべてのVMDBKは、チエイン、すなわちシ
ステムVMDBKで始まりシステムVMDBKで終わる大域巡回リ
ストに加えられる)。すなわち、最初のゲストVMDBKを
指定するシステムVMDBKで開始され、最初のゲストVMDBK
に指定が戻るn番目のゲストVMDBKまでに至るVMDBKポイ
ンタのチエイン(VMDCYCLE)が大域システム巡回リスト
を形成する。この巡回リストはシステムVMDBKに連結さ
れているので、システムは、大域巡回リストを検索する
ことによつて(すべての活動使用者の)各活動ベース仮
想マシンを検出することができる。しかし、従属マシン
がベース仮想マシンとともに構成される場合は、VMDBK
の局所巡回リスト(LCL)もまた作成される。言いかえ
ると、局所巡回リストはこのベース仮想マシン(単一使
用者)にのみ連結されているから、一般に、システム上
で活動的な仮想マシンの大域巡回リストを検索している
間に、システム(ホスト)コマンドが従属マシンを検出
することが排除される。第4図を参照して説明すると、
もしi番目(i=1乃至n)のゲストが1つ又はそれ以
上の従属マシンを利用しているなら、局所巡回リストが
作成され、これによりi番目のゲストVMDBK(ベース・
マシン)がi番目のゲスト従属マシンVMDBKのうち最初
のものを指定することになる。i番目のゲストVMDBKで
開始し且つ当該i番目のガストVMDBKを再び指定するよ
うなi番目のゲスト従属マシンVMDBKのうち最後のもの
(k番目)に至るVMDBKポインタのチェーンが、この局
所巡回リストを形成する。i番目のベース・マシンを表
すVMDBKは大域巡回リスト中に依然として残っている
が、システムはこのi番目のベース・マシンに連結され
た従属マシンから分離されているために、これを検出す
ることができない。局所巡回リストは単一使用者のシス
テムのみに関連していて、大域巡回リストからは分離し
ているので、この大域巡回リストを検索しても、活動的
な各ベース仮想マシン、すなわち各ゲストVMDBKが示さ
れるだけで、各従属マシン、すなわち各従属VMDBKは示
されないのである。その結果、活動的な1つのベース仮
想マシンに対する局所巡回リストは、活動的な他のベー
ス仮想マシンに対する巡回リストで使用されているVMDB
K名称のコピーであるVMDBK簡略名称を含むことができ
る。もし局所巡回リストが大域巡回リストの一部である
なら、このようなことは許されないであろう。従って、
単一デイレクトリにおける従属マシンの定義は、特定タ
イプの従属マシンのサービスを必要とする(ようなコマ
ンドを発行する)各使用者(ベース仮想マシン)のため
のプロトタイプ(特定タイプの従属マシンのアーキテク
チャを定義)としての役割を果たすことができる。言い
かえると、スプール・ファイルの編集又はホスト制御プ
ログラム・コマンドのシーケンスを発行及び実行すると
いうようなサービス機能を提供する従属マシンは、一度
だけ定義されるのであって、各使用者がこれらのサービ
スを必要とする度に定義されるのではない。一般に、デ
イレクトリによる従属マシンの定義を、単一のシステム
・セッション中に任意の数のカストマイズ従属マシンを
作成するためのプロトタイプとして使用することができ
る。このプロトタイピングは、単一のベース仮想マシン
又は互いに異なる任意の数のベース仮想マシンについ
て、多数の類似する従属マシンを定義するために使用す
ることができる。このデイレクトリは、システム・プロ
グラムによって保守されるファイルであって、各仮想マ
シンの初期構成、すなわち使用者が必要とするI/O装置
並びにベース・マシン及び従属マシンをそれぞれ記述す
る一連のレコードを含んでいる(このデイレクトリは、
システム・ボリューム(すなわちデイスク・パック等)
の指定領域に置かれた一連の制御ブロックである。これ
らの制御ブロックは、システムに対するアクセスを制御
したり、或いはログ・オンしようとしている使用者のた
めに特定の仮想マシン構成を記述するステートメントを
提供するために使用される。これらのステートメント
は、使用者の識別子と、装置構成と、ログ・オン時の当
該使用者のために作成される仮想マシンの初期セットア
ップとを含んでいる。またこのデイレクトリは、その内
部で直接アクセス記憶装置(DASD)ボリュームが或る使
用者によって所有されていると定義されている場合に、
他の使用者から発行されたこのボリュームのアクセス要
求を有効化するためにも使用される。)。
もし仮想MPシステムが従属仮想マシンを使用して作成さ
れるならば、デイレクトリ中の情報は各活動ベース仮想
マシン毎の従属CPUの最大個数をあらわす。マルチ・プ
ロセツサ構成の場合、各従属CPUはベースCPU、すなわち
システム/370またはシステム/370拡張アーキテクチヤと
同一のアーキテクチヤを持つている。しかし、上述した
ように、もし従属マシンがサービス機能、例えばスプー
ル・フアイルの編集用に使用されているならば、デイレ
クトリはベースCPUのアーキテクチヤとは異なる従属マ
シンのアーキテクチヤを定義することになる。その結
果、かかるサービスを遂行する従属マシンがIBMシステ
ム/370アーキテクチャを利用することができるのに対
し、そのベース・マシンはIBMシステム/370拡張アーキ
テクチャを利用することができる。このサービス従属マ
シンのデイレクトリ定義は、必要に応じて、これと同じ
サービスを遂行すべき追加の従属マシンを作成するため
のプロトコルとして使用される。
典型的なデイレクトリは次のエントリを含む。
(1)使用者の識別子、権限の種別及び会計データ。
(2)デイレクトリの種類、例えば通常またはプロトタ
イプ(サービス従属マシン)。
(3)使用者のCPU記述(システム/370またはシステム/
370-XA)。
(4)定義され得る従属CPUの数。
(5)省略及び最大ゲスト(ベース仮想マシン)実記憶
サイズ。
(6)使用者を共有された直接アクセス記憶装置に接続
するコマンド。
(7)使用者自身の直接アクセス記憶装置の定義。
(8)使用者のプリンタと、パンチと、カード・リーダ
と、コンソールの構成。
(9)自動的にプログラムを初期ロードされるべき装置
(もし存在するなら)。
VMDBKは仮想マシンについての状況情報を含む。VMDBKに
含まれていない仮想マシンについての情報は、VMDBK中
に在駐(固定)されているポインタによつて指定され
る。例えば、VMDBKは、仮想マシンのI/O構成を記述する
VDEVに対するポインタを含む(VDEVは装置のタイプ、キ
ユー(queue)されたI/O要求、キユーされたタスク、そ
の所有者であるVMDBKに対するポインタ、及びそれの関
連RDEVを含む)。一部を第5図に示した典型的なVMDBK
は次のようなフイールドを含む。
(1)VMDCYCLEは、大域巡回リスト・チエイン用の前進
(順方向)ポインタとして機能する大域巡回リスト・チ
エイン・ポインタである。このシステム中のすべてのゲ
ストVMDBKは第3図に示すように、システムVMDBK中に在
駐されている単一スレツド(thread)チエイン中に連結
されている。しかし、システムVMDBKは巡回リストの中
にはない。
(2)VMDLCYCLは局所巡回リスト・チエインの前進ポイ
ンタとして機能する。従属仮想マシン構成においては、
その構成におけるすべての従属仮想CPUを連結するため
に局所巡回リストが使用される。局所巡回リストは、第
4図に示すようにベースVMDBKに在駐された単一スレツ
ドの前進指定チエインである。
(3)VMDORIGはLOGON時に確立されたゲスト(ベース)
VMDBKのアドレスを含み、局所巡回リストのためのアン
カー(anchor)である。従属仮想VMDBKはベースVMDBKか
ら定義される。すべての従属VMDBKは、位置構成のベー
スVMDBKをアドレスするためにVMDORIGを使用する。
(4)VMDBASEは、記憶及びI/O構成を所有するVMDBKの
アドレスを含む(VMDBASEはすべての従属マシンに対し
てその従属VMDBKを指定する。) (5)VMDTYPEに含まれるコードはVMDBKのタイプ、例え
ばシステムVMDBKと、(ログオンから生じる)使用者VMD
BKと、従属VNDBKと、定義されたCPU VMDBK(仮想MP構成
の一部)などを識別する。
(6)VMDCFREQはコンソール機能エントリ・フラグであ
る。このフィールドは、(後述する)モジュールHCPCFM
に入ってコンソール機能のエントリ要件を支援するよう
に、ベースVMDBKが要求された場合を指示する。このフ
ィールドは、任意のコンソール機能が処理される前に全
てのVMDBKがHCPCFMに入ることを保証するために使用さ
れる。これは、コンソール機構を処理する前に、局所巡
回リスト中の全てのVMDBKをENDOP(CPUがアイドルであ
る時点)に到達させるような技術の一部である。
(7)VMDCFDSPはコンソール機能ENDOPフラグである。
このフイールドは、ゲストがコンソール機能モードのた
めにENDOPに保持されている時を示す。モジュールHCPCF
Mは、コンソール機能モードに入るためにVMDBKが停止さ
れたときは何時でもこのフイールドをセツトする。この
フイールドは、別のVMDBKが走り始める前にリセツトさ
れる。
(8)VMDCFCPUは、SCPコマンドを受け取ることになつ
ているMP構成中のVMDBKのアドレスを含む。(ベースCPU
アドレスを含む)ベースCPUに関連づけられた従属VMDBK
がこのフイールドに割りあてられることになる。
(9)VMDVRTERMは、使用者表示ステーシヨン実装置ブ
ロツク・アドレスを含む。これは、使用者がログ・オン
した端末のRDEVである。
(10)VMDVCONSは、ゲスト・システム・コンソールに対
応する仮想装置ブロツク(VDEV)のアドレスを含む。
(11)VMDCPUIDは、ゲストVMDBKが作成されるときにロ
グオンの時点で特定されるゲストCPUを識別する。
(12)VMDCPSERは、ログオンまたはゲストのデイレクト
リにおいて特定されるゲストCPUの通し番号を識別す
る。
(13)VMDCPUADはVMDBKが表示する仮想CPUの2進アドレ
スを含む。
(14)VMDCFCNTが、コンソール機能ENDOPカウントを含
む。このフイールドの正の値は、仮想構成中で走行する
VMDBKのカウントをあらわす。これのゼロの値はアドレ
ス構成、すなわち仮想構成中のすべてのCPUがENDOPにあ
ることを示す。これの負の値は、コンソール機能がその
構成のために走行していることを示す。このフイールド
は、コンソール機能の処理を直列化するためのCONSOLE
FUNCTION LOCKである。このフイールドが排他的(VMDCF
CNT=0)に保持されると、コンソール機能タスクが走
行中となり、いかなる第2のコンソール機能も開始でき
ない(このフイールドはHCPCFM出口処理により変更され
ることになる)。
(15)VMDCFPNDは、コンソール機能がペンデイングであ
ることを示す。このフイールドは仮想マシン構成のため
のコンソール機能タスクの処理を制御する。CFタスクが
開始されると(VMDCFREQ=16進‘FF')、このフイール
ドは、扱うべきより多くのコンソール機能が存在する限
りCFタスクの活動を維持するためにゼロにセツトされ
る。
(16)VMDCFPDRには、現在のすべてのコンソールREAD要
求が処理された時にすべて1が割りあてられる。このフ
イールドは、新しいREAD要求が何らペンデイングでない
ことを保証するためにテストされる。もしこのフイール
ドがゼロを含むならば、そのフイールドが位置するVMDB
KのためにCP READがスケジユールされる。
従属仮想マシンまたはベース仮想マシンのすべてのコン
ソール(端末)動作はモジユールHCPCFM(CPのコンソー
ル機能管理プログラム)を介してホスト・オペレーテイ
ング・システムにより管理される(コンソールは、仮想
マシン・オペレーテイング・システムと連絡するために
使用される実際の端末の1つの態様であると考えられて
いる。端末は、仮想マシン中のゲスト・オペレーテイン
グ・システムを初期化するべく仮想装置にプログラムを
初期ロードするために使用された後は、仮想マシン・コ
ンソールとなる。しかし、その同一の物理端末がホスト
・オペレーテイング・システムのみならずゲスト・オペ
レーテイング・システムとも連絡する。言いかえると、
仮想マシンがシステムにログオンするときは、その仮想
マシンの仮想オペレータのコンソールが実際の端末のキ
ーボードである)。システム・オペレータによる初期プ
ログラム・ロードの間は、実システムをコンソール機能
モードに置いてコマンドを待機させるためにモジュール
HCPCFMに入る。ゲスト仮想マシンの仮想マシン使用者
は、使用者の仮想マシンを初期化するためにホスト・シ
ステムにLOGONコマンドを発行する(LOGONコマンドはモ
ジユールHCPLOGとHCPLGNとを使用する)。LOGONコマン
ドに応答して、使用者のデイレクトリ・エントリが予め
確立されているフアイルから読み出される。そのデイレ
クトリ・エントリに与えられている情報を用いて、LOGO
NはモジユールHCPBVMに、ベースCPUを定義するベースVM
DBKを構成することを要求する(そのデイレクトリは、
新しく作成されたベースCPU上で走らせるべきオペレー
テイング・システムを初期ロードすることもできる。)
もしそのデイレクトリが従属マシンのためのエントリを
さらに含むならば、モジユールHCPBVMは各々が従属プロ
セツサを表すような追加的なVMDBKを繰り返し構成す
る。この追加的なVMDBKは第4図に示すようにベースVMD
BKから(VMDLCYCLチエインに沿つて)連鎖されている。
従属VMDBKはゲストVMDBKの特性を共有することができ、
その場合、従属VMDBKはそのI/Oをも共有してもよく、あ
るいはゲストVMDBKとは異なり固有のI/Oを有してもよ
い。その後者の場合、仮想I/O構成が発生されなくては
ならない時は常に、SCPがタスク生成し、連結し、ゲス
トVMDBKに対する接続機構の列として特定されたI/Oのシ
ミユレーシヨンを与える。
仮想マシンの初期化が完了すると、ホストSCPが、少く
とも1つのVMDBKと、少くとも1つのVDEVと、セグメン
ト・テーブルとを作成しており、これらはすべて自由記
憶及び動的ページング領域に記憶されている。
仮想マシンがその仮想記憶中のアドレスを参照すると、
CPは直ちにページ及びスワップ・テーブルを構築する。
CPは、これらのページ及びスワップ・テーブル用の記憶
域として、当該仮想マシンが占有する仮想記憶の1メガ
・バイト毎に1ページ分の空間を動的ページング領域か
ら取り上げる。
モジユールHCPCFMは、ゲスト仮想マシン構成中のどのVM
DBKを走行させるべきかを判断し、ゲスト・マシンによ
る使用者端末(端末I/O)上での情報読み取りまたは書
き込み要求を管理し制御するためのSCPの一部である。
端末I/Oに対する要求は(ベースまたはその従属CPU上で
走行する)ゲストSCPにより、またはサービス従属CPU上
で走行するサービスSCPにより、またはホスト・システ
ムもしくはシステム・オペレータから初期化することが
できる。もしデータ、例えばメツセージが一度に1ライ
ン分端末のデイスプレイに書き込まれる(表示される)
なら、混合メッセージ又は部分的に完成したメッセージ
について問題が生ずることはない。しかし、端末のビデ
オ・デイスプレイは一度に全画面分のデータを供給する
から、上述の全ての要求が単一の端末について同時に発
生することを許すと、すなわち単一の端末デイスプレイ
への複数の書き込み要求を許すと、不完全で無秩序なメ
ッセージ(例えば不完全な、使用者とシステムの対話)
を生じかねないであろう。モジユールHCPCFMは、例えば
I/O実行要求を行つたゲスト(ベース・マシンまたは従
属マシン)を表すVMDBKに、そのコンソールの“所有
権”を割りあてることにより、この問題が発生するのを
防止する。そして、I/O実行要求が認められたゲスト
は、実際にはメツセージが個別のデイスプレイ映像上で
クループ分けされているときに、あたかもその端末を
“所有”しているかのように端末デイスプレイへそのメ
ツセージを書き込む。ゲストSCPは使用者がシステムを
クリアするためのキーを押すまで端末との間でデータの
やり取りをする。もし、システム、例えばサービス従属
マシン、ゲストに対するホストSCPの連絡、ホスト・オ
ペレーテイング・システムのオペレータからの(警告)
メツセージまたは他の使用者によつてメツセージが発生
されることがないなら、HCPCFMがゲストSCPに“クリ
ア”割り込みをかけ、これにより端末のビデオ・デイス
プレイをブランクにする。この割り込みは、あたかもゲ
ストが実際に(実)端末を管理しているかのように、す
なわち使用者が端末上で表示クリア・キーを押したかの
ように受け取られる。もしシステムがメツセージを発生
したなら、“表示クリア”割り込みをゲストSCPに渡す
前に、HCPCFMがこれらのすべてのメツセージの書き込み
を許容する。もしシステムが端末に割りあてられている
間にゲストが端末との間でデータをやり取りしようと試
みると、HCPCFMは、システムがその端末を最早“所有”
しなくなるまでゲストに使用中(busy)の状況を受け取
らせる。もし、使用者が予定の相応の時間(この時間
は、端末デイスプレイ上に表示されるメツセージの緊急
性に依存する)内に端末をクリアしないときは、HCPCFM
が端末自体をクリアする。このモジユールは、もしゲス
トが別のゲストと同時に実行される予定でないなら、そ
の端末を引き渡そうとするゲストを留保する。端末は、
ベース仮想マシンと従属仮想マシンとの間で、前後にス
ワツプすることができる。
e3.主MPまたはUP構成へのサービス サービス従属マシンには、主構成(main configuratio
n)を検査するために使用されるプログラムがロードさ
れ得る。例えば、デバツグ・サービス従属マシンが、主
構成中で走行するSCPを検査し、テストし、変更しある
いはデバツグするように、そのプログラムはデバツグ・
サービスを与えることもできる。
従属マシン中で重大なエラーが発生すると、そのエラー
は仮想マシン中で走行するアプリケーシヨン・プログラ
ムと同様に処理される。従属マシン中の機能に応じて、
その機能が終了されるかまたは、仮想マシンがリセツト
されて記憶がクリアされる。
第6a及び6b図は、モジユールHCPBVMがどのようにしてVM
DBKを構成するかについて示すフローチヤートである。
このフローチヤートにおいて、ブロツク100はいくつか
の汎用レジスタ(CPR)からの入力パラメータを与え
る。このパラメータは、仮想マシンのタイプ、(もし使
用者がこのように識別されているなら)端末RDEVのアド
レス、使用者(要求者)のVMDBKのアドレス、モジユー
ル(HCPBVMBK)に対する入口地点のアドレス及び保管域
のアドレスである(このモジユールから出たとき、その
モジユールによつて作成されたVMDBKのアドレスが予定
のCPR中にロードされる。以下の記載を参照)。ブロツ
ク110では、実記憶のフレームが新しいVMDBKのために得
られる。このフレームは新しいVMDBKを含み、“CP"とフ
ラグされてロツクされる(もしV=R(優先ゲスト)VM
DBKを確立するための要求がなされなかつたなら、その
新しいVMDBKのために記憶にフレームが確保される)。
ログ・オン時に確立されたVMDBKのアドレスは新しいVMD
BK中のフイールドVMDORIGに与えられ、そのゲストMP構
成の記憶とI/O構成を所有するVMDBKのアドレスはその新
しいVMDBKのフイールドVMDBASEに与えられる。
ブロツク120は、チヤネル・コマンド・ワード変換が有
効であることを示す。このCCWは、実行すべきコマンド
を指定し、またI/O動作を開始するコマンドに対して
は、その動作に関連する記憶領域と、その領域との間の
転送が完了したとき行なわれるべき動作(その他にも、
この分野で広く知られている他のオプシヨンも)を指定
する。
ブロツク130は、作成中のVMDBKのタイプに応じて初期化
されるべきVMDBK中の他のフイールドを用意する。VMDBK
のタイプは新しいVMDBK中のフイールドVMDTYPE中にコー
ドされている(他の初期化はスケジユーラ・フイールド
及びフレーム・テーブル・ポインタに関与している。フ
レーム・テーブル・ポインタは、使用者が現在はフレー
ム・テーブル・エントリを所有しないように初期化され
る)。ブロック130はまた、デイスパッチング状況をコ
ンソール機能待機へ設定するように用意する。そして、
省略時メツセージ・レベルがセツトされ、使用者は未だ
システムにログ・オンしていないとしてフラグされる。
使用者のページ・ゼロは使用できないとしてフラグさ
れ、“停止”状態に置かれる。このとき、そのVMDBKが
マスターCPU上にのみデイスパッチされることを示すた
めにフラグがセツトされ、また陰のテーブルが存在しな
いことを示すためにフラグがセツトされる。ゲストCPUI
Dがデフオールト値、すなわちホストCPUIDに初期化さ
れ、すべての外部割り込みがペンデイングであり有効化
されているとしてセツトされることになる(これは、後
でディスパッチャにより訂正される)。
ブロツク140はVMDBK自由記憶領域を初期化する。
ブロツク150はチヤネル割り込みブロツク、保管域ブロ
ツク及び仮想CPUタイマのためのタイマ要求ブロツクな
どの制御ブロツクに記憶を割り振る。このとき命令オペ
ランド・バツフアも割り振られる。
ブロツク160は、セツトされるべきシステム/370モード
・デフオールトを用意する。
ブロツク165は、作成されつつあるVMDBKがベース・マシ
ンのためのものであるか、または仮想MP構成における従
属マシンのためのものであるかを判断するためのテスト
を与える(もし作成されるべきVMDBKが従属マシンまた
はベース・マシンのどちらかのためのものであるなら
ば、新しいVMDBK中にプリセツサ制御データ・ブロツク
(FINBK)のためのスペースが割り振られることにな
る)。
ブロツク170は、もしその作成されているVMDBKがベース
または従属マシンのためのものであるならば、FINBKに
自由記憶を割り振る。そうでなければ、ブロツク180
が、(前に作成された)ベースVMDBKから得られ新しいV
MDBKのフイールドに記憶されるべきFINBKのアドレスを
用意する。
ブロツク185は、セグメントがゼロであり、すなわちこ
のセグメントが割り当てられていなければ通常はそのゲ
ストにはアドレス不能であり、しかも無効である(コア
中にページが無い)ことを示すように、そのゲストのセ
グメント・テーブル・エントリを初期化する。また、そ
のゲストのセグメント・テーブル起点へのポインタも初
期化される。
ブロツク190は、監視プログラム呼び出し(SVC)割り込
みを代行受信するために新しいVMDBKを用意する。SVC代
行受信は、SVC命令が実行されるときに生ずる。このSVC
代行受信は、古いプログラム状況ワード(PSW)を予定
の実位置に記憶させ、新しいPSWを予定の実位置からフ
エツチさせる。
ブロツク200は、使用者が自動ログされた使用者である
か、またはあるタイプの端末にログ・オンされた使用者
であるかを判断するためのテストを与える。前者の場
合、実質的に新しいVMDBKが作成される。そうでなけれ
ば、新しいVMDBKは、ログ・オンに使用されている端末
のタイプに基づきさらに初期化される(自動ログされた
使用者とは、その仮想マシンがSCP初期化処理の間に自
動的にログオンされ、または使用者の自動ログされるべ
きデイレクトリ・エントリにおいて自動ログされるよう
に指定されている1次システム・オペレータである)。
ブロツク210は、使用者の端末のタイプに基づき新しいV
MDBKの初期化の継続を用意する。使用者はこのとき実装
置制御ブロツク(RDEV)により識別されることになる。
ブロツク220は、新しいVMDBKのために一時的なログオン
IDを作成する。
ブロツク230は、このデータ処理装置上で現在活動して
いるVMDBKの巡回リストにパッチされるべき新しいVMDBK
を用意する。
こうしてモジユールHCPBVMが一旦完了すると、新しいVM
DBKが作成され、クリアされ、(部分的に)初期化され
て他のVMDBKに連鎖されている。汎用レジスタ11は、現
在作成されたばかりのVMDBKを含んでいる。
第7a及び7b図は、モジユールHCPCFMの動作を表すフロー
チヤートを示す。このモジユールは一般的には使用者の
端末からのCP READ(制御プログラム)要求を処理し、
処理のためそれらを適当なコンソール機能ルーチンに案
内し、ENDOPに保持されている仮想MPによりCP機能を開
始する(コンソール機能とは、システム・オペレータが
実際の端末で実行するタスクである。すべての仮想MPが
停止したとき、HCPCFMは、どのVMDBKが特定のコンソー
ル機能動作をペンデイングとしているかを決定し、その
コンソール機能に制御を渡す)。
ブロツク300は、コマンド・ラインを読み取り処理する
ために必要な入力パラメータを用意する。それらのうち
最も重要なパラメータは、使用者のVMDBKアドレスであ
る。
ブロツク310は、コンソール機能処理が開始可能となる
前に、局所巡回リスト(仮想MPシステム)中の各VMDBK
がENDOP(命令動作終了)になければならないことを要
求する(ENDOPはいかなる命令シミユレーシヨンも活動
していない、すなわちゲスト命令ストリームの実行が命
令の間にあることを示す)。その巡回リストの保留ロツ
クが得られる。局所巡回リスト中の各VMDBKが捜査され
ると、局所巡回リスト・ロツクがリリースされ、各VMDB
KはENDOPに設定される(HCPCFMはこのVMDBK中のフラグ
をセットすることにより、該当する仮想プロセッサに対
し、或るコンソール機能タスクがHCPCFMによる実行に備
えてキューされていることをSCPが認識する場合には、E
NDOPで停止するように通知する)。使用者は、コンソー
ル機能モードへ入ることが要求され、局所巡回リスト中
で別のVMDBKに転送が行われるときに、そのモジユール
を出てデイスパツチヤ(dispatcher)へ至る。使用者は
また、CFMへ入ることが要求され、(使用者のVMDBKを除
いて)すべてのVMDBKがENDOPにはないときにもそのモジ
ユールを出てデイスパツチヤへ至る。さらにまた、実行
されるべきコンソール機能動作が残つておらず、(VMDB
Kがログ・オフしているときに仮想マシンが実装置から
の応答を待つているのでないならば)局所巡回リスト中
の仮想マシンが走行するようにセツトされているときに
も使用者はこのモジユールを出る。使用者はさらに、CF
Mに入ること以外のより優先度の高い機能が実行されな
くてはならない時にもこのモジユールを出る(フイール
ドVMDCFDSPの内容が、VMDBK中のフイールドVMDCFCNTの
内容と同期してないときには、エラーが生じ、使用者は
このモジユールを出る。これらのフイールドは、前に説
明されている)。
ブロツク320は、コンソール機能処理、例えば(使用者
にデータ入力を促すことを)開始するためのCF READ要
求を用意する。この時点で、局所巡回リスト中のすべて
のVMDBKはENDOPになくてはならず、ログ・オフしている
VMDBKからの任意のI/O要求応答は削除されなくてはなら
ない(SCPは、その構成のすべてのプロセツサがENDOPに
到達している時のみ、仮想CPUのためにいくつかの機能
をシミユレートすることができる)。
ブロツク330は、どれかのVMDBKがログ・オフしているか
どうかを判断するために巡回リスト中の各VMDBKのVMDFO
RCEビットを検査する(最も優先度が高いコンソール機
能がログオフ機能である)。もしログオフされるべきVM
DBKが使用者のVMDBKではないなら、モジユールはログオ
フしているVMDBKにスワツプする。もしログオフしてい
るVMDBKがベースVMDBKではないなら、モジユールは、ロ
グオフしているVMDBKが使用者のコンソールの所有権を
持つているかどうかを判断する。そして、もしそうな
ら、所有権は放棄されなければならない。また、ベース
VMDBKが指名される。ログオフ手続きが次に呼び出さ
れ、システムから非ベースVMDBKが除去される。
ブロツク340は、選択されるべき最も高い優先度のコン
ソール機能を含むVMDBKを用意する。もしこのVMDBKが現
在のVMDBKであるなら、CFMが進行する。そうでなけれ
ば、選択された(最高優先度の)VMDBKに切換えが行わ
れ、すでに終了しているENDOPの同期化に続く時点でHCP
CFMに再び入る。次にコンソールがこの(最高優先度
の)VMDBKによつて使用される(第7a図においては、HCP
CFMへの再入力がライン345によつて示されている。すな
わち、ライン345は、CF処理開始の直前にモジユールHCP
CFMへの再入力が行われることを示す)。次のような
(最高から最低への)階層により、実行することのでき
る残りのCP機能動作の優先権が確立される。
(1)スタツクされたコンソール機能出力の処理。
(2)もしペンデイングであるならデイスプレイのトレ
ースの実行。
(3)(CPEBKの検査によつて)ペンデイングであるな
ら、CFM呼び出しの発行。
(4)コンソール機能バツフア中のコマンドの実行。
(5)ペンデイング・コンソール機能読み取りの発行
(最低優先度)。
もし最高優先度のVMDBKが選択されたならば、(その最
高優先度のVMDBKへの)切換が行われた前のVMDBKはログ
オフされず現在のVMDBKがシステムに対してログオンさ
れない。こうして1つのコンソールが各VMDBKによつて
共有される。
上記“スタツクされたコンソール機能出力の処理”動作
は表示すべきコンソール機能出力を用意する。しかし、
もし使用者がログオフの処理中かまたはそのライン出力
に介入しそれを停止しているならば、この動作はCF出力
を与えることがない。
もしペンデイングのCFM呼び出しが1つのVMDBK上で生ず
るがそれが異なるVMDBK上で実行されなくてはならない
なら、“もしペンデイングであるならCFM呼び出しの発
行”動作が、そのペンデイングCFM呼び出しを発生したV
MDBKから、CFの実行を意図されたVMDBKへ、ペンデイン
グCFM呼び出しを移す。このことは、仮想構成中のCPUに
或るコマンドを導くために、仮想マシンのオペレータが
CPUコマンドを使用する場合に生じうる。もしCFM呼び出
しがないなら、この動作はコンソール読み取りを探すこ
とになる。
ブロツク350(第7a図と第7b図に示されている)はコン
ソール機能処理が終了することを示す。即ち、その仮想
構成について全てのコンソール機能は完了する。また、
任意の走行可能な従属マシンがあるかどうかを判断する
ために局所巡回リストが走査される。そして走行可能な
従属マシンが存在するなら、そのコンソールに連結され
た走行可能な従属マシンに対してスワツプが行われる。
もし走行可能な従属マシンが存在しないのなら、ベース
仮想マシンがコンソールに連結され、そのベース・マシ
ンに対してスワツプが行われる。
第7b図は、コンソール機能処理が終了し、走行中のVMDB
Kが存在しているか否かを判断するために局所巡回リス
トが走査される場合に生じる状況を示す(上記ブロツク
350を参照)。ブロツク400は、局所巡回リスト中のどれ
かの従属マシンが走行可能か否かを判断する。もし走行
可能な従属マシンが存在しなければ、GPR11がベース・
マシンVMDBKを指定するように(GPR11の内容の)スワツ
プが行われる(ブロツク410)。コンソールの所有権は
以下で述べるようにしてベース・マシンに与えられる
(ブロツク420)。尚、GPR9は復帰コードを含む。もし
未解決のCPゲストI/Oが存在するなら、遊休ゲスト用の
全画面はそのI/Oを表示するために留保されなければな
らない(ブロツク425)。そうでなく、走行可能な従属
マシンが存在するなら、GPR11が、走行中の従属マシンV
MDBKを指定するようにスワツプが行われる(ブロツク43
0)。次にコンソールはこの従属マシンによつて所有さ
れる(ブロツク440)。次に、その従属マシンが走行す
るために、保管域とともに制御プリグラム実行ブロツ
ク、すなわちCPEXブロツク(またはCPEBK)が作成され
る(ブロツク450)。
どの場合でも、CPUが走行可能であるなら(ブロツク46
0)、CF READがペンデイングでない場合(ブロツク47
0)に仮想マシンVMDBKが走る(ブロツク480)。もしCF
READがペンデイング(VMDBK中のVMDCFPDRフイールドの
説明を参照)であるなら、コマンド処理が行われ(ブロ
ツク475)、CFMタスクが再開される(ブロツク310に行
く)。実際、モジユールHCPCFMは、仮想構成のために処
理すべき要求がそれ以上なくなるまで巡回し続ける。
もしCPUが走行可能でないなら(ブロツク460)、“ラン
・オフ・セツト(set run off)”が有効になるときコ
ンソール機能READが要求される。もしすべてのCPUが停
止しているなら、走行する予定であつたタスクがスタツ
クされ(ブロツク463)、CF READがペンデイングにされ
る(コンソール機能READの通知が完了すると(前記VMDC
FPDRの説明を参照)GPR1がコンソール読み取り一般シス
テム・データ・ブロツク(GSDBK)のアドレスを含むこ
とになる)。
コンソールを特定のVMDBKに連結することは、ほぼ次の
ようにして行われる。
(1)仮想装置(VDEV)ロツクが入手される(このこと
は、仮想コンソールへの出力が停止した後に行われ
る)。
(2)もしロツクが入手された後“待機”が要求された
なら、VDEVロツクがドロツプされ、デイスパツチヤに入
る。そうでなければ、VDEVロツクが保持され、実装置
(RDEV)ロツクが入手される。
(3)すでに連結されている仮想装置ブロツクとコンソ
ール実装置ブロツクの間のポインタがクリアされる。
(4)RDEV及びVDEVロツクがリリースされる。
(5)実装置ブロツクがベース/従属VMDBKのための仮
想コンソール装置ブロツクに接続される。
(6)次にRDEV及びVDEVロツクが入手されリリースされ
る(VDEVは仮想マシン装置構成の一部である仮想装置の
記述を含む仮想装置ブロツクである。それは、シミユレ
ーシヨン及び状況情報のみならず別の装置特性をも含
む。この構成の各仮想装置毎に1つのVDEVが存在する。
SCPは、初期仮想装置構成を作成するためにデイレクト
リ中の情報を使用する。RDEVは実システムの実装置構成
の一部である実装置の記述を含む実装置ブロツクであ
る。このRDEVはまた、装置記述のみならず状況情報も含
む。)。
F.発明の効果 以上のように、本発明によれば、従属仮想マシンに特定
のサービス機能又はプログラムを配置すると、かかるサ
ービス機能又はプログラムをSCPの内部機能領域から実
質的に分離することが可能であり、従ってかかるサービ
ス機能又はプログラム内のエラーに対するSCPの脆弱性
を低減させることができる。
【図面の簡単な説明】
第1図は、MPシステム及び実サービス・プロセツサをも
つデータ処理装置のブロツク図、 第2図は、従属マシンを含むデータ処理装置のブロツク
図、 第3図は、大域巡回リストを示す図、 第4図は、局所巡回リストを示す図、 第5図は、ゲストVMDBKのエントリを示す図、 第6a図及び第6b図は、第2図のデータ処理装置の使用者
のためにVMDBKを作成し、一部を初期化する動作を示す
フローチヤート、 第7a図及び第7b図は、仮想MPがENDOPに保持された後に
どのようにしてコンソール機能処理を開始することがで
きるか、特にどのようにして選択された使用者のVMDBK
が同一のコンソールを共有できるかを示すフローチヤー
トである。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】主記憶、I/O装置及び該I/O装置を制御する
    ためのホスト・オペレーテイング・システム・プログラ
    ムを走らせる実CPUを有する少なくとも1つの実マシン
    (例えば、第2図のデータ処理装置)と、 ゲスト・オペレーテイング・システムを走らせるベース
    仮想CPUを有する少なくとも1つのベース仮想マシン
    (例えば、第2図の仮想マシン1乃至n)と、 上記ベース仮想マシンの各々を表すベース仮想マシン定
    義ブロックをそれぞれのポインタで順次に連鎖すること
    により形成された大域巡回リスト(例えば、第3図のリ
    スト)とをを備えるデータ処理装置であって、 少なくとも1つのプログラムを走らせる従属仮想CPUを
    有し且つ該従属仮想CPUを上記ベース仮想マシンのうち
    対応する特定のベース仮想マシンのベース仮想CPUに結
    合された少なくとも1つの従属仮想マシン(例えば、第
    2図の従属仮想マシン1a)と、 上記特定のベース仮想マシンへ結合された上記従属仮想
    マシンの各々を表す従属仮想マシン定義ブロックをそれ
    ぞれのポインタで順次に連鎖することにより形成された
    局所巡回リスト(例えば、第4図のリスト)とを備え、
    上記局所巡回リストを上記大域巡回リストから分離する
    ようにしたデータ処理装置。
JP61088408A 1985-05-23 1986-04-18 デ−タ処理装置 Expired - Lifetime JPH0754471B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US737355 1985-05-23
US06/737,355 US4660144A (en) 1985-05-23 1985-05-23 Adjunct machine

Publications (2)

Publication Number Publication Date
JPS61272833A JPS61272833A (ja) 1986-12-03
JPH0754471B2 true JPH0754471B2 (ja) 1995-06-07

Family

ID=24963586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61088408A Expired - Lifetime JPH0754471B2 (ja) 1985-05-23 1986-04-18 デ−タ処理装置

Country Status (9)

Country Link
US (1) US4660144A (ja)
EP (1) EP0210345B1 (ja)
JP (1) JPH0754471B2 (ja)
AU (1) AU579234B2 (ja)
BR (1) BR8602065A (ja)
CA (1) CA1234634A (ja)
DE (1) DE3665946D1 (ja)
ES (1) ES8707351A1 (ja)
MX (1) MX165180B (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4975836A (en) * 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
JPS61190638A (ja) * 1985-02-20 1986-08-25 Hitachi Ltd 仮想計算機のフアイル制御方式
JPS61206057A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
US4849880A (en) * 1985-11-18 1989-07-18 John Fluke Mfg. Co., Inc. Virtual machine programming system
JPS62159239A (ja) * 1985-12-30 1987-07-15 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 仮想マシンの編集システム
JPH0658650B2 (ja) * 1986-03-14 1994-08-03 株式会社日立製作所 仮想計算機システム
US4920481A (en) * 1986-04-28 1990-04-24 Xerox Corporation Emulation with display update trapping
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
US5038281A (en) * 1986-09-19 1991-08-06 International Business Machines Corporation Acceleration of system interrupts between operating systems in guest-host relationship
US5062040A (en) * 1986-12-22 1991-10-29 At&T Bell Laboratories Handling of notification of asynchronous events by user and stub processes of a distributed process executing on a plurality of processors of a multi-processor system
US4845624A (en) * 1987-03-05 1989-07-04 International Business Machines Corporation Relational data base lock avoidance system
JPH02151926A (ja) * 1988-12-02 1990-06-11 Fujitsu Ltd 端末装置切替方式
US5339418A (en) * 1989-06-29 1994-08-16 Digital Equipment Corporation Message passing method
JP2708608B2 (ja) * 1990-05-25 1998-02-04 富士通株式会社 仮想計算機のipl処理方式
US5381535A (en) * 1990-10-24 1995-01-10 International Business Machines Corporation Data processing control of second-level quest virtual machines without host intervention
US6411697B1 (en) * 1999-05-20 2002-06-25 International Business Machines Corp. System and method for providing customer personalized and modifiable subscriber services
JP4291964B2 (ja) * 2001-04-19 2009-07-08 株式会社日立製作所 仮想計算機システム
US20050060704A1 (en) * 2003-09-17 2005-03-17 International Business Machines Corporation Managing processing within computing environments including initiation of virtual machines
US7082981B2 (en) * 2004-02-09 2006-08-01 Perez Jr Jose R Retractable pet guard
US7975270B2 (en) * 2004-03-10 2011-07-05 International Business Machines Corporation Facilitating allocation of resources in a heterogeneous computing environment
US8972977B2 (en) * 2004-06-30 2015-03-03 Microsoft Technology Licensing, Llc Systems and methods for providing seamless software compatibility using virtual machines
US20070283147A1 (en) * 2006-05-30 2007-12-06 Fried Eric P System and method to manage device access in a software partition
US7996835B2 (en) * 2006-10-10 2011-08-09 International Business Machines Corporation System, method and program for managing communication with multiple configurations for virtual machine
EP2798455B1 (en) * 2011-12-30 2018-07-25 Intel Corporation Direct ring 3 submission of processing jobs to adjunct processors
CN103150279B (zh) * 2013-04-02 2015-05-06 无锡江南计算技术研究所 一种主机与基板管理控制器共享设备的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
JPS6057438A (ja) * 1983-09-08 1985-04-03 Hitachi Ltd 仮想計算機システム制御装置
US4564903A (en) * 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system

Also Published As

Publication number Publication date
BR8602065A (pt) 1987-01-06
US4660144A (en) 1987-04-21
AU5572586A (en) 1986-11-27
EP0210345A2 (en) 1987-02-04
DE3665946D1 (en) 1989-11-02
MX165180B (es) 1992-10-30
EP0210345A3 (en) 1987-12-09
CA1234634A (en) 1988-03-29
AU579234B2 (en) 1988-11-17
EP0210345B1 (en) 1989-09-27
ES555235A0 (es) 1987-07-16
JPS61272833A (ja) 1986-12-03
ES8707351A1 (es) 1987-07-16

Similar Documents

Publication Publication Date Title
JPH0754471B2 (ja) デ−タ処理装置
US9396013B2 (en) Method for controlling a virtual machine and a virtual machine system
US9201703B2 (en) Sharing kernel services among kernels
US9189291B2 (en) Sharing a kernel of an operating system among logical partitions
US6711605B2 (en) Multi OS configuration method and computer system
US8032899B2 (en) Providing policy-based operating system services in a hypervisor on a computing system
JP3659062B2 (ja) 計算機システム
EP0230353A2 (en) Coprocessor management in a virtual memory virtual machine data processing system
JPH0689253A (ja) 汎用のオペレーティング・システム・インターフェースを有するデバイス・ドライバを含むデータ処理システム
JPH11149385A (ja) マルチos構成方法
JPH06100956B2 (ja) ポインタ制御を行うための装置
JPH02210542A (ja) 仮想計算機システムにおける実行制御方式
JP2001216172A (ja) マルチos構成方法
US5812846A (en) Method and apparatus for passing control from a first process to a second process
JPH09282196A (ja) 複合論理プロセッサシステムのプログラム走行制御方式
JP2864255B2 (ja) 仮想計算機方式の計算機システム
JPH04346136A (ja) 仮想命令プロセッサ構成制御方法
JP3022398B2 (ja) 仮想計算機方式
JPH0363768B2 (ja)
Mizell Understanding device drivers in Operating System/2
JPH0696004A (ja) 計算機システムにおけるi/o実行方法
JPH09265407A (ja) 仮想プロセッサシステムのプログラム走行制御方法
JPH0296833A (ja) 異機種ジョブ制御方式
JPH03103929A (ja) 情報処理システム