JP3752193B2 - ホスト・オペレーティング・システムとゲスト・オペレーティング・システムとの間でアクセス装置の使用を割り振る方法 - Google Patents

ホスト・オペレーティング・システムとゲスト・オペレーティング・システムとの間でアクセス装置の使用を割り振る方法 Download PDF

Info

Publication number
JP3752193B2
JP3752193B2 JP2002117052A JP2002117052A JP3752193B2 JP 3752193 B2 JP3752193 B2 JP 3752193B2 JP 2002117052 A JP2002117052 A JP 2002117052A JP 2002117052 A JP2002117052 A JP 2002117052A JP 3752193 B2 JP3752193 B2 JP 3752193B2
Authority
JP
Japan
Prior art keywords
operating system
request
host
guest
access device
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 - Fee Related
Application number
JP2002117052A
Other languages
English (en)
Other versions
JP2003036178A (ja
Inventor
レオン・エドワード・グレッグ
ダニエル・ジョセフ・ストラウス
アンドリュー・トーマス・トーファーナー
ジェームズ・ローレンス・ティルベリー
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2003036178A publication Critical patent/JP2003036178A/ja
Application granted granted Critical
Publication of JP3752193B2 publication Critical patent/JP3752193B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/45537Provision of facilities of other operating environments, e.g. WINE

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータおよびコンピュータ・ソフトウェアに関する。詳細には、ホスト・オペレーティング・システムとゲスト・オペレーティング・システムとの間でアクセス装置の使用を割り振る方法に関する。
【0002】
【従来の技術】
あらゆるコンピュータ・システムは、そのオペレーティング・システムによって管理および実施される。オペレーティング・システムは、ユーザ・インターフェースの提供、メモリの使用の調整、コンピュータ・システムに結合された装置の使用の調整、および様々なアプリケーション・プログラムの動作の管理を含む様々な機能を担当する。
【0003】
しかし、異なるコンピュータ・システムが共通のハードウェアまたは装置を共用する必要がある状況がある。たとえば、異なるコンピュータ・システムが共通のディスク・ドライブまたは共通のプリンタを共用することが必要な可能性がある。共通の装置またはアクセス装置の使用を実施するには、何らかの形態の共用機構またはリソース割振りがコンピュータ・システム間で必要とされる。
【0004】
そのような共用構成では、アクセス装置の使用は、ホスト・コンピュータ・システムとして知られる特定のコンピュータ・システム内のホスト・オペレーティング・システムによって管理される。アクセス装置の使用を可能にするために、ホスト・オペレーティング・システムは、ゲスト・コンピュータ・システムとして知られる他のコンピュータ・システムのオペレーティング・システムと通信する。これらのゲスト・コンピュータ・システムのオペレーティング・システムは、ゲスト・オペレーティング・システムとして知られている。
【0005】
アクセス装置の共用を実施する一解決法は、ホスト・オペレーティング・システムを修正することである。しかし、ホスト・オペレーティング・システムは通常、変更することが難しい大きく複雑なコードを備える。さらに、ホスト・オペレーティング・システムの修正は、ゲスト・オペレーティング・システムによって動作されるゲスト・コンピュータ・システムによる特定のアクセス装置の本当の共用を妨げる。ホスト・オペレーティング・システムおよびゲスト・オペレーティング・システムの現在のインプリメンテーションによれば、アクセス装置の多様な使用をサポートせずモノリシックである。ゲスト・オペレーティング・システムが、ホスト・オペレーティング・システムによってサポートされていないアクセス装置またはハードウェアの特定の特徴にアクセスする必要があるときに、問題が発生する可能性がある。
【0006】
【発明が解決しようとする課題】
したがって、ゲスト・コンピュータ・システムが、必ずしもホスト・オペレーティング・システムによってサポートされていないアクセス装置の機能を使用できるようにする解決法を提供することが当技術分野に必要である。
【0007】
【課題を解決するための手段】
本発明の態様は、ホスト・オペレーティング・システムとゲスト・オペレーティング・システムとの間でアクセス装置の使用を割り振る方法を提供する。アクセス装置の割振りによって、ゲスト・コンピュータ・システムは、アクセス装置の機能がホスト・オペレーティング・システムによってサポートされているか否かにかかわらず、その機能または特徴を使用することができる。一実施形態では、アクセス装置を使用するための受信要求のソースが、ホスト・オペレーティング・システムまたはゲスト・オペレーティング・システムのいずれかとして判定される。ホスト・オペレーティング・システムがアクセス装置の鍵を有するか、またはゲスト・オペレーティング・システムがアクセス装置の鍵を有するかの判定が実行される。この鍵によって、ホスト・オペレーティング・システムまたはゲスト・オペレーティング・システムのいずれかがアクセス装置を使用することができる。受信済みの要求がアクセス装置の状態を変更するための変更要求であるかまたはアクセス装置を読み取るための受動要求であるかの判定も実行される。ホスト・オペレーティング・システムおよびゲスト・オペレーティング・システムからの要求の処理は、受信済みの要求が変更要求であり、ホスト・オペレーティング・システムもゲスト・オペレーティング・システムも鍵を有していない場合を除いて類似している。このような場合、ホスト・オペレーティング・システムからの要求が受け入れられ、ゲスト・オペレーティング・システムからの要求が拒否される。
【0010】
本発明の教示は、添付の図面を参照しながら以下の詳しい説明を読めば容易に理解できよう。
【0011】
よりわかりやすくするために、可能な場合には同じ番号を使用して、図に共通の同じ要素を示した。
【0012】
【発明の実施の形態】
図1は、例示としてコンピュータ・システム100を示す。コンピュータ・システム100は、クライアント・コンピュータ、サーバ・コンピュータ、ポータブル・コンピュータ、および組込み制御装置などのコンピュータ、コンピュータ・システム、または他のプログラマブル電子装置を示す。コンピュータ・システム100は、スタンドアロン装置であるかまたはコンピュータ・ネットワーク・システムに結合されている。一実施形態では、コンピュータ・システム100は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズから市販されているAS/400である。
【0013】
一実施形態では、コンピュータ・システム100は、バス104を介してメイン・メモリ106から命令およびデータを取得する少なくとも1つのプロセッサ102を有するマルチ・ユーザ・プログラミング環境でホスト・コンピュータ・システム100として示される。メイン・メモリ106は、ホスト・オペレーティング・システム108、共用管理プログラム110、および様々なアプリケーション・プログラム(図示しない)を含んでいる。メイン・メモリ106は、ランダム・アクセス・メモリ、不揮発性メモリまたはバックアップ・メモリ(たとえばプログラマブル・メモリまたはフラッシュ・メモリ、および読取り専用メモリなど)を含む1つのメモリ装置またはメモリ装置の組み合わせを備える。さらに、メモリ106には、物理的にコンピュータ・システム100の他の場所に位置するメモリ、たとえば仮想メモリとして使用される記憶容量、または大容量記憶装置に格納された記憶容量、またはバス104を介してコンピュータ・システム100に結合された別のコンピュータに格納された記憶容量が含まれる。
【0014】
コンピュータ・システム100は通常、多くの周辺装置に結合されている。一実施形態では、コンピュータ・システム100は、記憶媒体120、入力装置122、出力装置124、アクセス装置126、および少なくとも1つのネットワーク・コンピュータ・システム128に結合されている。記憶媒体120は、記憶インターフェース112を介してコンピュータ・システム100に結合されている。記憶媒体120は、永続または削除可能な直接アクセス記憶装置(DASD)のいずれかを備える。記憶インターフェース112の一例は、フロッピ(R)・ドライブ、光ディスク・ドライブ、およびテープ・バックアップなどのディスク・ドライブである。
【0015】
入力装置122および出力装置124は、入出力インターフェースまたは端末インターフェース114を介してコンピュータ・システム100に結合されている。入力装置122は、コンピュータ・システム100に入力を提供するために使用されるどのような装置でも備えることができる。入力装置122の例には、キーボード、キーパッド、ライト・ペン、タッチ・スクリーン、ボタン、マウス、トラック・ボール、および音声認識装置などが含まれる。出力装置124は、従来のどのような表示画面でも備えることができる。入力装置122とは別々に示されているが、出力装置124および入力装置122は組み合わせることが可能である。たとえば内蔵タッチ・スクリーンと表示画面、内蔵キーボードと表示、またはテキスト音声コンバータと組み合わされた音声認識装置を使用することができる。
【0016】
アクセス装置126は、アクセス・インターフェース116を介してコンピュータ・システム100に統合されている。アクセス装置126の一例は、書き込み可能なDVDドライブである。しかし、アクセス装置126は、ホスト・コンピュータ・システム100および他のネットワーク・コンピュータ・システム128からアクセスすることができる装置を備える。アクセス・インターフェース116は、コンピュータ・システム100または他のネットワーク・コンピュータ・システム128のいずれかによってアクセス装置126の使用を調整する。アクセス・インターフェース116は、バス104からの信号をアクセス装置126またはアクセス装置126に結合された入出力(I/O)アダプタに適した形式に変換する。
【0017】
コンピュータ・システム100は、例示として、少なくとも1つのゲスト・コンピュータ・システムに接続した。一実施形態では、ゲスト・コンピュータ・システムであるネットワーク・コンピュータ・システム128は、ネットワーク・インターフェース118を介して(ホスト)コンピュータ・システム100に結合した。各ゲスト・コンピュータ・システム128の動作は、それぞれのゲスト・オペレーティング・システム1301、・・・、130n(本明細書においては通常130として示す)によって調整または管理される。ゲスト・オペレーティング・システム130は、ネットワーク・コンピュータ・システム128が、ホスト・コンピュータ・システム100に結合されたアクセス装置126を使用することができるように要求を調整する。ゲスト・オペレーティング・システム130の例には、IBM OS/400、UNIX(R)、IBM AIX、Microsoft Windows(R)、Windows(R) NT、およびLinuxなどが含まれる。ゲスト・オペレーティング・システム130からのこのような要求の処理については、図5を参照しながらさらに説明する。
【0018】
ホスト・オペレーティング・システム108は、コンピュータ・システム100を動作するために使用されるソフトウェアである。ホスト・オペレーティング・システム108の例には、IBM OS/400、UNIX(R)、IBM AIX、およびMicrosoft Windows(R)などが含まれる。一実施形態では、ホスト・オペレーティング・システム108はまた、アクセス装置126を使用するための要求を送信する。ホスト・オペレーティング・システム108からのこのような要求の処理については、図4を参照しながらさらに説明する。共用管理プログラム110は、ホスト・オペレーティング・システム108およびゲスト・オペレーティング・システム130の両方からのアクセス装置126を使用するための要求を処理する。これらの要求の処理では、共用管理プログラム110は、ホスト・オペレーティング・システム108またはゲスト・オペレーティング・システム130からの特定の要求を受け入れるかまたは拒否する。受け入れられた要求は、アクセス・インターフェース116に送信される。拒否された要求は、アクセス装置126を使用するために要求を送信したオペレーティング・システム108または130に送信される。
【0019】
共用管理プログラム110は、ホスト・オペレーティング・システム108への割込みを最小限に抑えながら、アクセス装置126の共用を実施する。これは、アクセス装置116の共用を実施するためにホスト・オペレーティング・システム108に必要な修正量を制限する。ホスト・オペレーティング・システム108は、たとえば要求を送信したり、または拒否された要求を受け取るなど、共用管理プログラム110とやり取りすることのみ必要である。共用管理プログラム110を実施する一実施形態については、図3〜5を参照しながらさらに説明する。
【0020】
ホスト・オペレーティング・システム108およびゲスト・オペレーティング・システム130は、例示として、別々のコンピュータ・システム、つまりホスト・コンピュータ・システム100およびゲスト・オペレーティング・システム128で示されているが、ホスト・オペレーティング・システム108およびゲスト・オペレーティング・システム130は、同じコンピュータ・システムに存在することも可能である。たとえば論理的にパーティションで区切られたコンピュータ・システムが、ホスト・オペレーティング・システム108およびゲスト・オペレーティング・システム130の両方を含むことができる。さらに、ホスト・オペレーティング・システム108およびゲスト・オペレーティング・システム130が異なる種類であることも可能である。一実施形態では、ホスト・オペレーティング・システム108がIBM OS/400であり、ゲスト・オペレーティング・システム130がMicrosoft Windows(R) NTである。
【0021】
通常、本発明の実施形態を実施するために実行されるルーチンは、オペレーティング・システムの一部として実施されるかまたは特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、または命令のシーケンスとして実施されるかにかかわらず、共用管理プログラム110またはプログラム110に存在する。プログラム110は一般的に、様々なときにコンピュータ・システム100の様々なメモリおよび記憶装置に存在する1つまたは複数の命令を備える。コンピュータ・システム100の1つまたは複数のプロセッサ102によって読み取られ実行されるときに、プログラム110は、コンピュータ・システム100に、本発明の様々な態様を実施するステップまたは要素を実行するために必要なステップを実行させる。さらに、本発明を、完全な機能を持つコンピュータおよびコンピュータ・システムの状況で以下に説明するが、本発明の様々な実施形態は、様々な形のプログラム製品として配布することが可能であり、本発明が、配布を実施するために実際に使用される信号担持(signal bearing)またはコンピュータ読み取り可能な媒体の種類に関係なく等しく適用されることが当業者には理解されよう。信号担持またはコンピュータ読み取り可能な媒体の例には、それに限定されるものではないが、揮発性および不揮発性メモリ装置、フロッピ(R)、および他のリムーバブル・ディスク、ハード・ディスク・ドライブ、光ディスク(たとえばCD−ROMおよびDVDなど)などの記録型媒体が含まれる。
【0022】
さらに、以下に説明する様々なプログラムおよび装置を、それらが本発明の特定の実施形態で実施されるアプリケーションに基づいて識別する。しかし、以下の特定のプログラムまたは装置名は単に便宜的に使用されていることを理解すべきであり、本発明は、そのような名称によって識別されるおよび/または暗示される特定のアプリケーションのみでの使用に限定されるものではない。
【0023】
図2は、図1の内蔵コンピュータ・システム100の構成要素を示すプロセス図200である。具体的には、プロセス図200は、ホスト・オペレーティング・システム108と共用管理プログラム110とゲスト・オペレーティング・システム130との間で送信される信号およびデータ構造について説明する。1つのゲスト・オペレーティング・システム130について以下に説明するが、プロセス図200は、複数のゲスト・オペレーティング・システム130がアクセス装置126の使用を要求する状況にも適用される。
【0024】
共用管理プログラム110は、パス202を介してゲスト・オペレーティング・システム130からの要求を受け取り、および/または、パス204を介してホスト・オペレーティング・システムからの要求を受け取る。パス202を介した要求は、ゲスト・コンピュータ・システム128がアクセス装置126を使用するための要求である。パス204を介した要求は、ホスト・コンピュータ・システム100がアクセス装置126を使用するための要求である。ゲスト・オペレーティング・システム130は、パス208を介してアクセス装置126に論理的にリンクされている。しかし、ゲスト・オペレーティング・システム130は、共用管理プログラム110またはアクセス・インターフェース116を認識していない。
【0025】
パス202を介したゲスト・オペレーティング・システムからの要求には、ホスト・オペレーティング・システム108によってサポートされていない機能が含まれる。たとえば特定のアクセス装置126は、様々な機能を実施することができる。ホスト・オペレーティング・システム108は、これらの機能のうちの限られた数、つまりこれらの機能のサブセットの使用をサポートする。別のゲスト・オペレーティング・システム130が異なる機能の使用をサポートする。ホスト・オペレーティング・システム108およびゲスト・オペレーティング・システム130は、アクセス装置126の異なる使用をサポートしないモノリシックであるので、別のプログラム110が、ホスト・オペレーティング・システム108およびゲスト・オペレーティング・システム130からの要求を処理するために使用される。これによって、ゲスト・コンピュータ・システム128は、ホスト・オペレーティング・システム108がサポートしないアクセス装置126の機能を使用することができる。
【0026】
共用管理プログラム110はこれらの要求を処理して、ホスト・コンピュータ・システム100がアクセス装置126を使用するかまたはゲスト・コンピュータ・システム128がアクセス装置126を使用するかを判定する。一実施形態では、要求は「受動」要求または「変更」要求を含んでいる。受動要求は、アクセス装置126の状態を使用するが変更しない要求である。それに対し、変更要求は、アクセス装置126の状態の変更を必要とする要求である。受動要求の一例は、アクセス装置126のデータの読取りである。能動要求は、アクセス装置126への書込みまたはアクセス装置126のマイクロコードの変更を含む。このような要求の処理については、図3〜5を参照しながらさらに説明する。
【0027】
特定の要求を受け入れるかまたは拒否するかを判定するために、共用管理プログラム110は「鍵」220を使用して、特定のコンピュータ・システム、たとえばホスト・コンピュータ・システム100およびゲスト・コンピュータ・システム128によるアクセス装置126の使用を追跡する。特定のコンピュータ・システムは、それに対応するオペレーティング・システムが鍵220を有する場合にアクセス装置126を使用することができる。鍵220の一実施形態はデータ構造である。例示として、ゲスト・オペレーティング・システム130が鍵220を有する。コンピュータ・システム、たとえばゲスト・コンピュータ・システム128がアクセス装置126の使用を完了すると、鍵220は取り除かれるかまたはそうでない場合はオペレーティング・システム130の有効期限が切れる。これによって、別のオペレーティング・システムによる装置126の使用が可能になる。
【0028】
一実施形態では、鍵220を有するオペレーティング・システム、たとえばゲスト・オペレーティング・システム130が、鍵220の制御を解放するために要求を送信する。そのような要求に応じて、共用管理プログラム110が、要求オペレーティング・システムから鍵220を解放し、すべてのオペレーティング・システムへリセット信号を送信する。リセット信号の1つの形は、「シミュレート媒体変更信号(simulated media change signal)」である。オペレーティング・システムは、アクセス装置126の実際の変更として信号を処理し、そのキャッシュをリセットする。これによって、メモリまたはキャッシュの同期が可能になる。
【0029】
共用管理プログラム110が、アクセス装置126を使用するための特定の要求を受け入れるかまたは承認した場合、受け入れられた要求は、パス206を介してアクセス・インターフェース116へ渡される。要求の一実施形態は、ゲスト・オペレーティング・システム130、たとえばMicrosoft Windows(R)からのSCSI(Small Computer System Interface)コマンドである。SCSIコマンドは、ホスト・オペレーティング・システム108、たとえばIBM AS/400によってサポートされていない音声コマンドを備える。そのような音声コマンドの例には、PAUSE/RESUME、PLAY AUDIO TRACK/INDEX、PLAY AUDIO(12)、およびPLAY AUDIO(10)が含まれる。2つの異なる種類のPLAY AUDIOコマンドは、コマンドのバイト数、たとえば10または12バイトで指定されている。ゲスト・オペレーティング・システム130からのこれらの音声コマンドによって、ゲスト・コンピュータ・システム128のユーザは、ホスト・オペレーティング・システム108によってサポートされていないアクセス装置126、たとえばDVDドライブまたはCDプレーヤを使用することができる。
【0030】
アクセス・インターフェース116は、渡された要求をアクセス装置126またはアクセス装置126に結合されたI/Oアダプタに適した形式に変換する。そのようにして、アクセス・インターフェース116は、ホスト・コンピュータ・システム100またはゲスト・コンピュータ・システム128のいずれかによるアクセス装置126の使用を調整する。
【0031】
共用管理プログラム110が要求を拒否する場合、要求を提供したオペレーティング・システムは拒否を通知される。拒否は、パス210を介してホスト・オペレーティング・システム108に送信された信号またはパス212を介してゲスト・オペレーティング・システム130に送信された信号である。拒否信号の1つの形は、悪いコード信号である。悪いコード信号は、要求を行ったオペレーティング・システム以外のオペレーティング・システムによってアクセス装置126が現在使用されていることを示す。
【0032】
図3は、共用管理プログラム110で実施される方法300を示す流れ図である。具体的には、方法300はステップ302で始まり、要求が受け取られるステップ304へ進む。ステップ306で照会は、要求が、アクセス装置126を使用するコンピュータ・システム100のホスト・オペレーティング・システム108からの要求であるかどうかを判定する。要求がホスト・オペレーティング・システム108からである場合、方法300はステップ308で要求を処理し、次の要求を受け取るためにステップ304へ進む。ステップ308の一実施形態については、図4を参照しながらさらに説明する。
【0033】
要求がホスト・コンピュータ・システム108からでない場合、方法300は、要求が、アクセス装置126を使用するゲスト・コンピュータ・システム128のゲスト・オペレーティング・システム130からであるかどうかを照会が判定するステップ310へ進む。ステップ310は、各ネットワーク・コンピュータ・システム128のゲスト・オペレーティング・システム130に対して繰り返すことができる。要求がゲスト・オペレーティング・システム130からである場合、方法300は引き続きステップ312で要求を処理し、ステップ304で次の要求を受け取る。ステップ312の一実施形態については、図5を参照しながらさらに説明する。
【0034】
要求がゲスト・オペレーティング・システム130からでない場合、方法300は、鍵220を有するオペレーティング・システムから鍵220を解放する要求があるかどうかを照会が判定するステップ314へ進む。ステップ314は、ホスト・オペレーティング・システム108およびゲスト・オペレーティング・システム130の両方からの要求に適用される。ステップ314で要求がない場合、方法300は引き続きステップ304で次の要求を処理する。
【0035】
ステップ314で要求がある場合、方法300は、鍵220が要求オペレーティング・システムから解放され、リセット信号、たとえば「シミュレート媒体変更信号(simulated media change signal)」が、プログラム110とやり取りするすべてのオペレーティング・システムへ送信されるステップ316へ進む。この信号は、アクセス装置126の現在の状態をオペレーティング・システムに通知するために使用される。変更要求がホスト・オペレーティング・システム108またはゲスト・オペレーティング・システム130に以前に提供されていた場合、アクセス装置126の状態の変更が発生していたであろう。
【0036】
「シミュレート媒体変更(simulated media change)」信号は、通常アクセス媒体126に変更がない場合でも、すべてのオペレーティング・システムに媒体126で変更が発生することを「信じる」ように強制する。シミュレート媒体変更信号(simulated media change signal)に応じて、キャッシュまたはメモリの同期が実行される。つまり、各オペレーティング・システムが、それに関連するコンピュータ・システムに関連するキャッシュまたは他のメモリを消去する。たとえばホスト・オペレーティング・システム108は、メモリ106内のキャッシュを消去し、ゲスト・オペレーティング・システム130は、ゲスト・コンピュータ・システム128のキャッシュを消去する。一実施形態では、キャッシュは、アクセス装置126の過去の状態のすべての情報に関して消去され、新しい情報によって更新される。
【0037】
クセス装置126の特定の種類に依存して、ステップ316は、オペレーティング・システムへ他の形のリセット信号を提供することができる。たとえばアクセス装置126がプリンタである場合、ステップ316は、別の種類のリセット信号を送信する。そのような信号を受け取ると、オペレーティング・システムは、ページを排出したり形式の変更の信号を送るなど、プリンタ上の動作を開始する。
【0038】
方法300、特にステップ310および312を、1つのゲスト・オペレーティング・システム130の状況で説明しているが、方法300は、各ネットワーク・コンピュータ・システム128を管理するために使用されるすべてのゲスト・オペレーティング・システム1301、・・・、130nに適用される。
【0039】
図4は、ホスト・オペレーティング・システム108からの要求を処理する方法400を示す流れ図である。方法400は、図3を参照しながら上述したステップ308として実施される。具体的には、方法400はステップ402で始まり、照会が、ホスト・オペレーティング・システム108が「鍵」220を有するかどうかを判定するステップ404へ進む。鍵220によって、ホスト・コンピュータ・システム100は、アクセス装置126、たとえば書き込み可能なDVDドライブを使用することができる。オペレーティング・システム108がアクセス装置126の鍵220を有する場合、アクセス装置は、オペレーティング・システム108に「ロックされている」と見なされる。
【0040】
ホスト・オペレーティング・システム108がステップ404で鍵220を有する場合、方法400はステップ414へ進む。ホスト・オペレーティング・システム108が鍵220を有していない場合、方法400は、照会が、他方の、つまりゲスト・オペレーティング・システム130が鍵220を有するかどうかを判定するステップ406へ進む。つまり、ステップ406は、アクセス装置126がゲスト・オペレーティング・システム130によってロックされているかどうかを判定する。他方の、つまりゲスト・オペレーティング・システム130が鍵220を有する場合、方法400はステップ408へ進み、要求を拒否してホスト・オペレーティング・システム108へ拒否を通知する。拒否の1つの形は、パス210を介した悪いリターン・コードである。拒否の理由は、アクセス装置126がゲスト・オペレーティング・システム130によって現在ロックまたは使用されていることである。ステップ408の後、方法400はステップ416で終了する。
【0041】
他方のオペレーティング・システム、たとえばゲスト・オペレーティング・システム130も鍵220を有していない場合、方法400はステップ410へ進む。ステップ410は、要求が変更要求、つまりアクセス装置126の媒体を変更する要求であるかどうかを判定する。要求が変更要求である場合、方法400はステップ412へ進み、ホスト・オペレーティング・システム108へ鍵220を提供する。つまり、ステップ412は、アクセス装置126をホスト・オペレーティング・システム108に暗黙的にロックする。ロックされると、ゲスト・オペレーティング・システム130は、鍵220が解放されるかまたは有効期限が切れなければ装置126を使用することができない。ステップ412の後、方法400はステップ414へ進む。
【0042】
要求が変更要求でない場合、つまり受動要求である場合、方法400はステップ414へ進む。この状況で、ホスト・オペレーティング・システム108およびゲスト・オペレーティング・システム130はどちらも鍵220を有していないので、装置126を依然として使用する。方法400の他の実施形態は、要求が変更要求であるかどうかに関係なく、ステップ410でホスト・オペレーティング・システム108へ鍵220を提供する。ステップ414で、方法400は要求を受け入れる。ステップ414の後、方法400はステップ416で終了する。
【0043】
ステップ414で受け入れられた要求は、アクセス・インターフェース116へ渡される。アクセス・インターフェース116は、パス206を介して渡された受信要求上で装置管理機能を実行する。一実施形態では、装置管理機能は、アクセス装置126に結合されたI/Oアダプタによって処理するために適した形式への要求の変換を含んでいる。
【0044】
図5は、ゲスト・オペレーティング・システム130からの要求を処理する方法500を示す流れ図である。方法500は、図3を参照しながら上述したステップ312として実施される。方法500を、1つのゲスト・オペレーティング・システム130の状況で説明しているが、方法500は、各ネットワーク・コンピュータ・システム128を管理するために使用されるすべてのゲスト・オペレーティング・システム1301、・・・、130nに適用される。
【0045】
図5で、ゲスト・オペレーティング・システム130からの要求が、図3のホスト・オペレーティング・システム108からの要求と同様に処理されることを留意されたい。要求が変更要求であり、ホスト・オペレーティング・システム108もゲスト・オペレーティング・システム130も鍵220を有していない場合に、大きな違いが発生する。その場合、ホスト・オペレーティング・システム108からの要求が受け入れられ、ゲスト・オペレーティング・システム130からの要求が拒否される。
【0046】
具体的には、方法500はステップ502で始まり、照会が、ゲスト・オペレーティング・システム130からの要求が装置126の状態を変更するための変更要求であるかどうかを判定するステップ504へ進む。要求が変更要求でない場合、方法500は、照会が、別のオペレーティング・システムが鍵220を有するかどうかを判定するステップ506へ進む。つまり、ステップ506は、アクセス装置226が別のオペレーティング・システム、つまりホスト・オペレーティング・システム108または他のゲスト・オペレーティング・システム130によってロックされているかどうかを判定する。
【0047】
別のオペレーティング・システムが鍵220を有する場合、方法500は、要求が拒否されるステップ508へ進む。ゲスト・オペレーティング・システム130は、パス212を介してこの拒否を通知される。拒否の理由は、アクセス装置126が別のオペレーティング・システム、つまりホスト・オペレーティング・システム108または他のゲスト・オペレーティング・システム130によって現在ロックまたは使用されていることである。ステップ508の後、方法500はステップ516で終了する。別のオペレーティング・システムが鍵220を有していない場合、方法500は、要求が受け入れられるステップ510へ進む。他の実施形態では、方法500は、ステップ510より前でゲスト・オペレーティング・システム130へ鍵220を提供することもできる。ステップ510の後、方法500はステップ516で終了する。
【0048】
ステップ504に戻ると、要求が変更要求である場合、方法500は、照会が、要求ゲスト・オペレーティング・システム130が鍵220を有するかどうかを判定するステップ512へ進む。鍵220によって、ゲスト・コンピュータ・システム128は、ゲスト・オペレーティング・システム130を介してアクセス装置126の排他的な使用を有することができる。アクセス装置126の使用の後、鍵220がゲスト・オペレーティング・システム130から解放される。そのようにして、鍵220が解放された後に、別のオペレーティング・システム、たとえばホスト・オペレーティング・システム108または別のゲスト・オペレーティング・システム130がアクセス装置126を使用できるので、ゲスト・オペレーティング・システム130を介したアクセス装置126の使用は、事実上「一時的」なものである。
【0049】
ゲスト・オペレーティング・システム130が鍵220を有していない場合、方法500はステップ514へ進み、要求を拒否してゲスト・オペレーティング・システムに通知する。拒否の理由は、ゲスト・オペレーティング・システム130が鍵220を有していなければ、ゲスト・オペレーティング・システム130からの変更要求が拒否されることである。ステップ514の後、方法500はステップ516で終了する。ゲスト・オペレーティング・システム130が鍵220を有する場合、方法500は、アクセス・インターフェース116への要求を受け入れるためにステップ510へ進み、ステップ516で終了する。
【0050】
ステップ510で受け入れられた要求は、アクセス・インターフェース116へ渡される。アクセス・インターフェース116は、渡された要求をアクセス装置126に結合されたI/Oアダプタによって処理するために適した形式に変換する。変換には、要求のトランスポート「ラッパ」(wrapper)の置換が含まれる。この変換は、図4のホスト・オペレーティング・システムからの要求の装置管理機能に概念的に類似しているが、ゲスト・オペレーティング・システム130からの要求を変換するためにさらに詳細な処理を必要とする。
【0051】
本発明の教示を組み込む様々な実施形態について本明細書で詳しく説明したが、当業者は、これらの教示をさらに組み込む他の多くの様々な実施形態を容易に考え出すことができよう。
【図面の簡単な説明】
【図1】本発明を実施するコンピュータ・システムの構成図である。
【図2】図1のコンピュータ・システムの構成要素を示すプロセス図である。
【図3】共用管理プログラムで実施される方法を示す流れ図である。
【図4】ホスト・オペレーティング・システムからの要求を処理する方法を示す流れ図である。
【図5】ゲスト・オペレーティング・システムからの要求を処理する方法を示す流れ図である。
【符号の説明】
100 コンピュータ・システム
102 プロセッサ
104 バス
106 メイン・メモリ
108 ホスト・オペレーティング・システム
110 共用管理プログラム
112 記憶インターフェース
114 端末インターフェース
116 アクセス・インターフェース
118 ネットワーク・インターフェース
120 記憶装置
122 入力装置
124 出力装置
126 アクセス装置
128 ネットワーク・コンピュータ・システム
1301 ゲスト・オペレーティング・システム
130n ゲスト・オペレーティング・システム

Claims (8)

  1. ホスト・コンピュータ・システム内のメモリに格納されたホスト・オペレーティング・システムと前記ホスト・コンピュータ・システムに結合されたゲスト・コンピュータ・システム内のメモリに格納されたゲスト・オペレーティング・システムとの間で前記ホスト・コンピュータ・システムに結合されたアクセス装置の使用を割り振る方法であって、前記方法は前記ホスト・オペレーティング・システムおよび前記ゲスト・オペレーティング・システムと通信するように前記ホスト・コンピュータ・システム内のメモリに格納された共用管理プログラムによって実行されるものにおいて、
    前記共用管理プログラムにおいて、前記アクセス装置を使用するための要求を前記ホスト・オペレーティング・システムおよび前記ゲスト・オペレーティング・システムのうち一方のオペレーティング・システムから受信するステップと、
    記受済みの要求が、前記ホスト・オペレーティング・システムからの要求であるかどうかを判定するステップと、
    前記受信済みの要求が前記ホスト・オペレーティング・システムからの要求である場合に、前記ホスト・オペレーティング・システムおよび前記ゲスト・オペレーティング・システムのうち一方のオペレーティング・システム、前記アクセス装置の使用を可能にするための前記アクセス装置の鍵を有するかどうかを判定するステップと、
    前記受信済みの要求が、前記アクセス装置の状態を変更するための変更要求および前記アクセス装置を読み取るための受動要求のうち何れの要求であるかを判定するステップと、
    前記受信済みの要求が前記ホスト・オペレーティング・システムからの変更要求であり、前記ホスト・オペレーティング・システムも前記ゲスト・オペレーティング・システムも前記鍵を有していない場合に、前記ホスト・オペレーティング・システムからの前記変更要求を受け入れるステップと、
    前記受信済みの要求が前記ゲスト・オペレーティング・システムからの変更要求であり、前記ホスト・オペレーティング・システムも前記ゲスト・オペレーティング・システムも前記鍵を有していない場合に、前記ゲスト・オペレーティング・システムからの前記変更要求を拒否するステップとを含む方法。
  2. さらに、前記ホスト・オペレーティング・システムおよび前記ゲスト・オペレーティング・システムのうち一方のオペレーティング・システムが前記鍵を有する場合に、当該一方のオペレーティング・システムからの前記受信済みの要求を受け入れるステップを含む、請求項1に記載の方法。
  3. 前記ゲスト・オペレーティング・システムが前記アクセス装置の使用後に前記鍵を解放し、前記アクセス装置の一時的な使用を可能にする、請求項2に記載の方法。
  4. さらに、前記ホスト・オペレーティング・システムおよび前記ゲスト・オペレーティング・システムのうち一方のオペレーティング・システムが前記鍵を有する場合に、他方のオペレーティング・システムからの前記受信済みの要求を拒否するステップを含む、請求項1に記載の方法。
  5. さらに、前記受信済みの要求が受動要求であり、前記ホスト・オペレーティング・システムも前記ゲスト・オペレーティング・システムも前記鍵を有していない場合に、前記ホスト・オペレーティング・システムおよび前記ゲスト・オペレーティング・システムのうち一方のオペレーティング・システムからの前記受動要求を受け入れるステップを含む、請求項1に記載の方法。
  6. 前記ホスト・オペレーティング・システムおよび前記ゲスト・オペレーティング・システムが異なる種類のオペレーティング・システムである、請求項1に記載の方法。
  7. 前記ホスト・オペレーティング・システムおよび前記ゲスト・オペレーティング・システムのうち一方のオペレーティング・システムが前記鍵を有する場合に、前記アクセス装置が当該一方のオペレーティング・システムにロックされていると見なされる、請求項1に記載の方法。
  8. さらに、前記受済みの要求が、前記鍵を有する前記ホスト・オペレーティング・システムおよび前記ゲスト・オペレーティング・システムのうち一方のオペレーティング・システムからの前記鍵を解放するための要求であるかどうかを判定するステップと、
    前記受信済みの要求が前記鍵を解放するための要求である場合に、前記鍵を有する前記一方のオペレーティング・システムから前記鍵を解放するステップと、
    前記鍵の解放後に、前記ホスト・オペレーティング・システムおよび前記ゲスト・オペレーティング・システムへリセット信号を送信し、前記リセット信号が、前記ホスト・オペレーティング・システムおよび前記ゲスト・オペレーティング・システムに、前記ホスト・コンピュータ・システムおよび前記ゲスト・コンピュータ・システムに関連するキャッシュ・メモリの状態をそれぞれリセットさせるステップとを含む、請求項1に記載の方法。
JP2002117052A 2001-04-20 2002-04-19 ホスト・オペレーティング・システムとゲスト・オペレーティング・システムとの間でアクセス装置の使用を割り振る方法 Expired - Fee Related JP3752193B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/839483 2001-04-20
US09/839,483 US6966062B2 (en) 2001-04-20 2001-04-20 Method and apparatus for allocating use of an access device between host and guest operating systems

Publications (2)

Publication Number Publication Date
JP2003036178A JP2003036178A (ja) 2003-02-07
JP3752193B2 true JP3752193B2 (ja) 2006-03-08

Family

ID=25279844

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002117052A Expired - Fee Related JP3752193B2 (ja) 2001-04-20 2002-04-19 ホスト・オペレーティング・システムとゲスト・オペレーティング・システムとの間でアクセス装置の使用を割り振る方法

Country Status (2)

Country Link
US (1) US6966062B2 (ja)
JP (1) JP3752193B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010034686A1 (en) * 1997-12-10 2001-10-25 Eder Jeff Scott Method of and system for defining and measuring the real options of a commercial enterprise
JP2003345654A (ja) * 2002-05-23 2003-12-05 Hitachi Ltd データ保護システム
JP2004005214A (ja) * 2002-05-31 2004-01-08 Toshiba Corp 情報処理装置およびシステムロック方法
US20040128492A1 (en) * 2002-12-27 2004-07-01 Mitac Technology Corp. Memory device for assistant execution of computer program in semi-opening or all-opening machine
US7877747B2 (en) 2004-02-20 2011-01-25 Hewlett-Packard Development Company, L.P. Flexible operating system operable as either native or as virtualized
US8024727B2 (en) * 2006-06-15 2011-09-20 Microsoft Corporation Enhancing or replacing host operating system functionality by leveraging guest operating system functionality
US20070294707A1 (en) * 2006-06-15 2007-12-20 Microsoft Corporation Enhancing or replacing host operating system functionality by leveraging guest operating system functionality
US8762999B2 (en) * 2007-09-27 2014-06-24 Oracle America, Inc. Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
US8341643B2 (en) * 2010-03-29 2012-12-25 International Business Machines Corporation Protecting shared resources using shared memory and sockets
US20210165673A1 (en) * 2019-12-02 2021-06-03 Microsoft Technology Licensing, Llc Enabling shared graphics and compute hardware acceleration in a virtual environment

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4354227A (en) * 1979-11-19 1982-10-12 International Business Machines Corp. Fixed resource allocation method and apparatus for multiprocessor systems having complementarily phased cycles
EP0365728B1 (en) * 1988-10-28 1993-12-29 International Business Machines Corporation Resource access for a multiprocessing computer system
US5471609A (en) * 1992-09-22 1995-11-28 International Business Machines Corporation Method for identifying a system holding a `Reserve`
EP0834806B1 (en) * 1996-08-28 2008-04-23 Hitachi, Ltd. Process executing method and resource accessing method in computer system
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US6131113A (en) * 1998-02-24 2000-10-10 International Business Machines Corporation Managing a shared resource in a multi-processor system
US6453392B1 (en) * 1998-11-10 2002-09-17 International Business Machines Corporation Method of and apparatus for sharing dedicated devices between virtual machine guests
US6401110B1 (en) * 1998-11-30 2002-06-04 International Business Machines Corporation Method for managing concurrent processes using dual locking

Also Published As

Publication number Publication date
US20020156934A1 (en) 2002-10-24
JP2003036178A (ja) 2003-02-07
US6966062B2 (en) 2005-11-15

Similar Documents

Publication Publication Date Title
US8495131B2 (en) Method, system, and program for managing locks enabling access to a shared resource
CN102938039B (zh) 针对应用的选择性文件访问
US7363629B2 (en) Method, system, and program for remote resource management
US8161128B2 (en) Sharing of data across disjoint clusters
US7529859B2 (en) System and article of manufacture for fencing of resources allocated to non-cooperative client computers
US20060136779A1 (en) Object-based storage device with low process load and control method thereof
US8677014B2 (en) Fine granularity exchange level load balancing in a multiprocessor storage area network
EP2153309B1 (en) Physical network interface selection
JP4748950B2 (ja) 記憶領域管理方法及びシステム
WO2007052442A1 (ja) 情報処理方法および情報処理装置
JP3752193B2 (ja) ホスト・オペレーティング・システムとゲスト・オペレーティング・システムとの間でアクセス装置の使用を割り振る方法
WO2007052443A1 (ja) 情報処理方法および情報処理装置
JPWO2008126202A1 (ja) ストレージシステムの負荷分散プログラム、ストレージシステムの負荷分散方法、及びストレージ管理装置
US9590839B2 (en) Controlling access to a shared storage system
US20050240928A1 (en) Resource reservation
US7844784B2 (en) Lock manager rotation in a multiprocessor storage area network
US7996631B1 (en) System and method for accessing storage devices attached to a stateless client
KR101535792B1 (ko) 운영체제 구성 장치 및 방법
US7370081B2 (en) Method, system, and program for communication of code changes for transmission of operation requests between processors
JP3897049B2 (ja) 計算機システム
US20060036790A1 (en) Method, system, and program for returning attention to a processing system requesting a lock
US20090132228A1 (en) Tape management method and tape management system
US11544013B2 (en) Array-based copy mechanism utilizing logical addresses pointing to same data block
JP4997063B2 (ja) 計算機の起動方法及び計算機システム
JP4438785B2 (ja) 計算機システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050913

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051209

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081216

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091216

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091216

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101216

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101216

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111216

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111216

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121216

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121216

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131216

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees