(57)【特許請求の範囲】
【請求項１】
複数のプロセッサ上において、各プロセッサのオペレーティング・システムのための別々のオペレーティング・システム・パーティションを割当てられた共用システム資源から複数のオペレーティング・システムをブートする方法であって、
前記複数のプロセッサの所与のプロセッサにより、前記共用システム資源からマスタ・ブート・レコードを読出し、前記複数のオペレーティング・システムから使用される所与のオペレーティング・システムのパーティションを決定するステップと、
前記プロセッサにより予約済みオペレーティング・システム・ブート・パーティションをアクセスするために、前記プロセッサにより、固有の予約キーを用いて、前記共用システム資源の一部分を予約するステップと、
前記プロセッサにより予約済みオペレーティング・システム・パーティションをアクセスするために、前記プロセッサにより、前記固有の予約キーを用いて、前記共用システム資源の一部分を予約するステップと
を含み、
共用システム資源の一部分の予約が、前記共用システム資源上の一続きの連続セクタの基本排他的書込み持続予約により実行される、方法。
【請求項２】
前記マスタ・ブート・レコードが初期に前記プロセッサにより前記共用システム資源から予約無しに読込まれる、請求項１記載の方法。
【請求項３】
前記オペレーティング・システム・ブート・パーティション及び前記オペレーティング・システム・パーティションのために、前記共用システム資源の一部分を予約するための前記固有の予約キーが、プロセッサＩＤ、クラスタＩＤ、マルチ・プロセッサ・パーティションＩＤ、不均等メモリ・アクセス・コンプレックスＩＤ、及び不均等メモリ・アクセス・ノードＩＤの少なくとも１つから作成される、請求項１記載の方法。
【請求項４】
前記システム資源がシステム・ハード・ディスク・ドライブ、ＺＩＰディスク・ドライブ、ＪＡＺディスク・ドライブ、書換可能ＣＤディスク、フレキシブル・ディスク・ドライブ、テープ・ドライブまたは類似の装置の１つである、請求項１記載の方法。
【請求項５】
分散データ処理システム内の複数のプロセッサ上において、各プロセッサのオペレーティング・システムのための別々のオペレーティング・システム・パーティションを割当てられた共用システム資源から複数のオペレーティング・システムを実行する方法であって、
前記複数のプロセッサの各々により、共用システム資源からマスタ・ブート・レコードを読出し、前記複数のプロセッサにおけるオペレーティング・システムを識別するステップと、
前記複数のプロセッサの各々により予約済みオペレーティング・システム・ブート・パーティションをアクセスするために、前記複数のプロセッサの各々により、各プロセッサに固有の予約キーを用いて、前記共用システム資源の一部分を予約するステップと、
前記複数のプロセッサの各々により予約済みオペレーティング・システム・パーティションをアクセスするために、前記複数のプロセッサの各々により、前記予約キーを用いて、前記共用システム資源の一部分を予約するステップと
を含み、共用システム資源の一部分の予約が、前記共用システム資源上の一続きの連続セクタの基本排他的書込み持続予約により実行され、前記複数のプロセッサが前記共用システム資源から前記複数のオペレーティング・システムを同時に実行する方法。
【請求項６】
複数のプロセッサ上において、共用システム資源から複数のオペレーティング・システムをブートするために、前記共用システム資源上の前記複数のプロセッサから前記複数のオペレーティング・システムをインストールするステップをさらに含み、該インストールするステップは、
前記複数のプロセッサの所与のプロセッサであって、前記複数のオペレーティング・システムから所与のオペレーティング・システムをインストールするプロセッサが、前記共用システム資源上のマスタ・ブート・レコードに対する排他的アクセスを予約するステップと、
前記プロセッサがオペレーティング・システム・ブート情報を前記マスタ・ブート・レコード内のパーティション・テーブルに追加するステップと、
前記プロセッサが前記マスタ・ブート・レコードに対する前記排他的アクセスを解除するステップと
を含む、請求項１または５記載の方法。
【請求項７】
前記共用システム資源の前記マスタ・ブート・レコードに対する排他的アクセスの予約が、前記マスタ・ブート・レコードを含む前記共用システム資源の一部分の基本排他的書込み持続予約により実行される、請求項６記載の方法。
【請求項８】
前記マスタ・ブート・レコードの前記基本排他的書込み持続予約が失敗した場合、エラー・メッセージがオペレーティング・システム・インストール・プログラムに送信される、請求項６記載の方法。
【請求項９】
複数のプロセッサ上において、各プロセッサのオペレーティング・システムのための別々のオペレーティング・システム・パーティションを割当てられた共用システム資源から複数のオペレーティング・システムをブートする分散データ処理システムであって、
前記複数のプロセッサの所与のプロセッサが前記共用システム資源からマスタ・ブート・レコードを読出し、前記複数のオペレーティング・システムからブートされるオペレーティング・システムを決定する手段と、
前記プロセッサが固有の予約キーを用いて、前記プロセッサによる予約済みオペレーティング・システム・ブート・パーティションのアクセスのために、前記共用システム資源の一部分を予約する手段と、
前記プロセッサが前記固有の予約キーを用いて、前記プロセッサによる予約済みオペレーティング・システム・パーティションのアクセスのために、前記共用システム資源の一部分を予約する手段と
を含み、
共用システム資源の一部分の予約が、前記共用システム資源の連続セクタ・ブロックの基本排他的書込み持続予約により実行される、システム。
【請求項１０】
前記マスタ・ブート・レコードが初期に前記プロセッサにより前記共用システム資源から予約無しに読込まれる、請求項９記載のシステム。
【請求項１１】
前記共用システム資源上の前記オペレーティング・システム・ブート・パーティション及び前記オペレーティング・システム・パーティションのために、前記共用システム資源の一部分を予約するための前記固有の予約キーが、プロセッサＩＤ、クラスタＩＤ、マルチ・プロセッサ・パーティションＩＤ、不均等メモリ・アクセス・コンプレックスＩＤ、及び不均等メモリ・アクセス・ノードＩＤの少なくとも１つから作成される、請求項９記載のシステム。
【請求項１２】
分散データ処理システム内の複数のプロセッサ上において、各プロセッサのオペレーティング・システムのための別々のオペレーティング・システム・パーティションを割当てられた共用システム資源から複数のオペレーティング・システムを実行する分散データ処理システムであって、
前記複数のプロセッサの各々により、共用システム資源からマスタ・ブート・レコードを読出し、前記複数のプロセッサにおけるオペレーティング・システムを識別する読出し手段と、
前記複数のプロセッサの各々により予約済みオペレーティング・システム・ブート・パーティションをアクセスするために、前記複数のプロセッサの各々により各プロセッサに固有の予約キーを用いて前記共用システム資源の一部分を予約する予約手段と、
前記複数のプロセッサの各々により予約済みオペレーティング・システム・パーティションをアクセスするために、前記複数のプロセッサの各々により、前記予約キーを用いて前記共用システム資源の一部分を予約し、オペレーティング・システム・パーティションをアクセスする予約手段と
を含み、共用システム資源の一部分の予約が、前記共用システム資源上の一続きの連続セクタの基本排他的書込み持続予約により実行され、前記複数のプロセッサが前記共用システム資源から前記複数のオペレーティング・システムを同時に実行するシステム。
【請求項１３】
複数のプロセッサ上において、各プロセッサのオペレーティング・システムのための別々のオペレーティング・システム・パーティションを割当てられた共用システム資源から複数のオペレーティング・システムをブートする、ネットワーク・ワークステーションにおいて使用されるプログラムが記録されたコンピュータ読取り可能な記録媒体であって、前記プログラムは、
前記複数のプロセッサの所与のプロセッサにより、前記共用システム資源からマスタ・ブート・レコードを読出し、前記複数のオペレーティング・システムからブートされる所与のオペレーティング・システムを決定するステップと、
前記プロセッサにより予約済みオペレーティング・システム・ブート・パーティションをアクセスするために、前記プロセッサにより固有の予約キーを用いて前記共用システム資源の一部分を予約するステップと、
前記プロセッサにより予約済みオペレーティング・システム・パーティションをアクセスするために、前記プロセッサにより前記固有の予約キーを用いて前記共用システム資源の一部分を予約するステップと
を前記コンピュータに実行させるものであり、共用システム資源の一部分の予約が、前記共用システム資源上の一続きの連続セクタの基本排他的書込み持続予約である、記録媒体。
【請求項１４】
前記固有の予約キーが、プロセッサＩＤ、クラスタＩＤ、マルチ・プロセッサ・パーティションＩＤ、不均等メモリ・アクセス・コンプレックスＩＤ、及び不均等メモリ・アクセス・ノードＩＤの少なくとも１つから作成される、請求項１３記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、改善されたデータ処理システムに関し、特に、複数のオペレーティング・システムをサポートする方法及び装置に関する。
【０００２】
【従来の技術】
オペレーティング・システム（ＯＳ）のローディング及び実行は、ブートストラップ・プログラムを使用して達成される。通常、オペレーティング・システムの始動は、２ステップ・プロセスにより行われ、ロードすべきオペレーティング・システムを決定する”単純な”ブート・プログラムと、選択されたオペレーティング・システムを実際にロードするより複雑なブート・プログラムとが関連する。単純ブート・プログラムは通常、不揮発性システムＲＡＭ（ＮＶＲＡＭ）に記憶されて、システム資源初期化を実行するために使用される。特に、単純ブート・プログラムは、中央処理ユニット（ＣＰＵ）内のレジスタを初期化し、またシステム・ディスク及びメモリのための制御装置などの、デバイス制御装置を初期化する。単純ブート・プログラムはメモリを読み書きでき、システム・ディスク上のブート・ブロックからロードできる。ブート・ブロックはマスタ・ブート・レコード（ＭＢＲ）を含み、システム・ディスク・ドライブのセクタ０に配置される。
【０００３】
マスタ・ブート・レコード（ＭＢＲ）はシステム・ディスクからロードされ、パーティション・テーブル及び特定の実行可能コードを含む。マスタ・ブート・レコード実行可能コードは、パーティション・テーブルを走査することにより、単一アクティブ・パーティションを探索し、アクティブ・パーティションからメモリに第１のセクタをロードし、このコードすなわち選択オペレーティング・システムのブート・コードを実行する。このオペレーティング・システム・ブート・コードは、現在ブートされているオペレーティング・システムをロードし、そのオペレーティング・システムを定義された態様で開始する。
【０００４】
ハード・ディスクが例えばＭＳ−ＤＯＳパーティション、ＬＩＮＵＸパーティション、ウィンドウズＮＴパーティション、及びＩＢＭ  ＯＳ２パーティションを含む場合、ユーザはアクティブ・パーティションを変更することにより、始動するシステムを変更することができる。アクティブ・パーティションは、この情報を不揮発性システムＲＡＭ（ＮＶＲＡＭ）に記憶することにより、セットされ得る。通常、システム・ディスク・ドライブ上にインストールされた最後のオペレーティング・システムが、このオペレーティング・システムがブートされるようにＮＶＲＡＭを更新する。しかしながら、オペレーティング・システムは、異なるオペレーティング・システムがアクティブ・パーティションとしてＮＶＲＡＭ内で指定されることを可能にする、ユーティリティ・プログラムを提供できる。これにより次のリブート時に、異なるオペレーティング・システムがブートされ得るようになる。
【０００５】
【発明が解決しようとする課題】
前述の方法は、ユーザがシステム起動時に、ブートされるオペレーティング・システムを選択することを可能にするが、この方法は異なるマシン上で２つ以上のオペレーティング・システムを、同一のシステム・ディスクから同時に実行することを可能にしない。従って、例えばＯＳ／２パーティションをアクティブ・パーティションとして有する、共用システム・ディスクを利用する任意のマシンは、ＯＳ／２オペレーティング・システム下で稼働しなければならない。これはシステムの多様性を制限し、ファイル・システムのタイプなど、アクセスされ得るシステム資源に制限を課することになる。従って、異なるマシンが異なるオペレーティング・システムを実行でき、同時に適切なシステム資源をアクセスできるように、システム・ディスク・ドライブなどの共用システム資源をアクセスする方法及びシステムを有することが好都合である。
【０００６】
【課題を解決するための手段】
本発明は、異なるコンピュータ上で複数のオペレーティング・システムを同一の共用システム資源から同時に実行する方法及びシステムを提供する。これは例えば、持続的な基本的ディスク予約を用いて達成される。各マシンは予約無しにマスタ・ブート・レコードを読出し、ブートされるオペレーティング・システムのパーティションを決定する。各マシンは次に、オペレーティング・システム・ブート・パーティションをアクセスするために、基本排他的書込み持続予約（ｅｌｅｍｅｎｔａｌ  ｅｘｃｌｕｓｉｖｅ  ｗｒｉｔｅ  ｐｅｒｓｉｓｔｅｎｔ  ｒｅｓｅｒｖａｔｉｏｎ）を行う。これに続いて、各マシンは、オペレーティング・システム・パーティションそれ自体をアクセスするために、別の基本排他的書込み持続予約を行う。各マシンはたとえそれらが同一のオペレーティング・システムを実行していても、異なるオペレーティング・システム・パーティションを割当てられる。これらの予約のための固有の予約キーがプロセッサＩＤ、クラスタＩＤ、マルチ・プロセッサ・パーティションＩＤ、不均等メモリ・アクセス・コンプレックスＩＤ、及び不均等（ｎｏｎ−ｕｎｉｆｏｒｍ）メモリ・アクセス・ノードＩＤの少なくとも１つから作成される。
【０００７】
【発明の実施の形態】
本発明の特徴である新規の機構が、特許請求の範囲で述べられる。しかしながら、本発明そのもの及びその好適な利用モード、更に本発明の目的及び利点は、後述の実施例を添付の図面と一緒に参照することにより最もよく理解されよう。ここで図面を通じて、同一の参照番号は同一の要素を表す。
【０００８】
本発明は、同一の物理ディスク上に存在する複数のオペレーティング・システムを異なるコンピュータ上で同時に実行する方法を提供する。一般的なコンピュータ・システムでは、システム・ディスク・ドライブがディスクの製造時に決定される固定サイズ及び数量の物理セクタに分割される。ディスク・ドライブ上のパーティションは、互いに隣接するセクタの論理シーケンスである。複数オペレーティング・システムを同一のディスク・ドライブ上に存在させるために、オペレーティング・システムの各コピーがディスク上で自身のパーティションを割当てられる。この予約は排他的であり得、これは特定の固有のキーを有するコンピュータだけが、割当てられたパーティションをアクセスできることを意味する。パーティション予約はまた持続的であり得、すなわち、予約がシステムのハード・リセットなどのイニシエータ障害に渡って保護される。持続予約はそれらが解除されるまで、ディスク・ドライブにより保存される。
【０００９】
持続予約はまた基本的（ｅｌｅｍｅｎｔａｌ）であり得、すなわちハード・ディスクの連続セクタのグループを予約できることを意味する。ディスクの予約部分内のデータが変更される場合、基本持続予約は書込み予約である。コンピュータにディスクの一部分の基本排他的書込み持続予約を与えると言うことは、固有の予約キーを有するコンピュータだけが、ディスク・ドライブのその部分をアクセスできることを意味する。単一プロセッサ・マシンでは、このキーは例えばプロセッサＩＤである。不均等メモリ・アクセス（ＮＵＭＡ：ｎｏｎ−ｕｎｉｆｏｒｍ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）マシンなどのマルチ・プロセッサ・マシンでは、このキーはクラスタＩＤ、複数のプロセッサ・パーティションＩＤ、ＮＵＭＡコンプレックスＩＤ、またはＮＵＭＡノードＩＤを含む。このキーは単に予約キーと呼ばれる。
【００１０】
図を参照すると、図１は本発明が実施され得るデータ処理システムを示す。分散データ処理システム１００は、例えばローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、インターネット、イントラネットなどのコンピュータのネットワークである。分散データ処理システム１００は、少なくとも１つのネットワーク１０２を含み、これは分散データ処理システム１００内で一緒に接続される様々な装置及びコンピュータ間の通信リンクを提供するために使用される媒体である。ネットワーク１０２はワイヤまたは光ファイバ・ケーブルなどの永久接続、または電話接続を通じて形成される一時接続を含み得る。
【００１１】
図示の例では、サーバ１０４が記憶ユニット１０６と一緒に、ネットワーク１０２に接続される。更に、クライアント１０８、１１０及び１１２がネットワーク１０２に接続され、追加のサーバ１１４、１１６及び１１８も同様に接続される。これらのクライアント１０８、１１０及び１１２は、例えばパーソナル・コンピュータまたはネットワーク・コンピュータである。本願の目的上、ネットワーク・コンピュータはネットワークに接続される任意のコンピュータと見なされ、これはネットワークに接続される別のコンピュータからプログラムまたは他のアプリケーションを受信する。図示の例では、サーバ１０４はデータ及びアプリケーションをクライアント１０８乃至１１２に提供する。クライアント１０８、１１０及び１１２はサーバ１０４のクライアントである。分散データ処理システム１００は追加のサーバ、クライアント、ディスク１０６及び１２２などの共用ディスク・ドライブ、及び図示されない他の装置を含み得る。
【００１２】
図示の例では、分散データ処理システム１００はネットワーク１０２を有するインターネットであり、これはＴＣＰ／ＩＰプロトコル一式を使用して互いに通信するネットワーク及びゲートウェイの世界的な集合を表す。インターネットの中心部は、主要ノードまたはホスト・コンピュータ間の高速データ通信回線の中枢であり、数千の商業用、政府用、教育用、及び他のコンピュータ・システムがデータ及びメッセージを経路指定する。勿論、分散データ処理システム１００は、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、または広域ネットワーク（ＷＡＮ）などの、多数の異なるタイプのネットワークとしても実現され得る。例えばＬＡＮ上では、ディスク・ドライブ１０６がクライアント１０８、１１０、１１２間で共用され、これらのクライアントの各々が、ディスク１０６上に存在する異なるオペレーティング・システムをブートし得る。
【００１３】
図１は本発明の１例として意図されたもので、本発明の体系的な制限を意味するものではない。例えば本発明において、”コンピュータ”は、各プロセッサがそれ自身のメモリ・パーティションを有するのであれば、複数のプロセッサを有する単一マシン内のプロセッサであってもよい。この場合、各オペレーティング・システムが、それ自身のプロセッサ及びそれ自身のメモリ・パーティションを割当てられるのであれば、複数オペレーティング・システムが同時に”同一マシン”上で実行され得る。
【００１４】
図２を参照すると、本発明が実施され得るデータ処理システムのブロック図が示される。データ処理システム２００は、図１のコンピュータ１０８などの、本発明のプロセスを実行するコードまたは命令が配置されるコンピュータの一例である。データ処理システム２００は、ＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）ローカル・バス・アーキテクチャを使用する。図示の例ではＰＣＩバスが使用されるが、マイクロ・チャネルやＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ：業界標準アーキテクチャ）などの、他のバス・アーキテクチャも使用され得る。プロセッサ２０２及び主メモリ２０４が、ＰＣＩブリッジ２０８を通じてＰＣＩローカル・バス２０６に接続される。ＰＣＩブリッジ２０８はまた、プロセッサ２０２のための集積メモリ制御装置及びキャッシュ・メモリを含み得る。
【００１５】
ＰＣＩローカル・バス２０６への追加の接続が、直接コンポーネント相互接続により、または増設ボードにより形成される。図示の例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１０、ＳＣＳＩ（ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）ホスト・バス・アダプタ２１２、及び拡張バス・インタフェース２１４が、直接コンポーネント接続により、ＰＣＩローカル・バス２０６に接続される。それにひきかえ、オーディオ・アダプタ２１６、グラフィックス・アダプタ２１８、及びオーディオ／ビデオ・アダプタ２１９は、拡張スロットに挿入される増設ボードにより、ＰＣＩローカル・バス２０６に接続される。拡張バス・インタフェース２１４は、キーボード及びマウス・アダプタ２２０、モデム２２２、及び追加のメモリ２２４のための接続を提供する。ＳＣＳＩホスト・バス・アダプタ２１２は、ハード・ディスク・ドライブ２２６、テープ・ドライブ２２８、及びＣＤ−ＲＯＭドライブ２３０のための接続を提供する。典型的なＰＣＩローカル・バスは、３つまたは４つのＰＣＩ拡張スロットまたは増設コネクタをサポートする。
【００１６】
オペレーティング・システムはプロセッサ２０２上で実行され、図２のデータ処理システム２００内の様々なコンポーネントの制御を調整及び提供するために使用される。オペレーティング・システムは、ＩＢＭから提供されるＯＳ／２、或いはマイクロソフト社から提供されるウィンドウズＮＴなどの市販のオペレーティング・システムであってよい。オペレーティング・システム、アプリケーションまたはプログラムのための命令は、ハード・ディスク・ドライブ２２６などの記憶装置上に配置され、主メモリ２０４にロードされてプロセッサ２０２により実行される。また、本発明で詳述するように、オペレーティング・システムが図１のディスク１０６などの、ネットワーク上の共用ディスク・ドライブ上に存在し、図２に示されるコンピュータ・システムがオペレーティング・システムをこの共用ディスク・ドライブからロードすることが可能である。
【００１７】
当業者であれば分かるように、図２のハードウェアは、実施例に応じて変化し得る。フラッシュＲＯＭ（または等価な不揮発性メモリ）や光ディスク・ドライブなどの他の内部ハードウェアまたは周辺装置も、図２に示されるハードウェアに加えて、またはそれらの代わりに使用され得る。また、本発明のプロセスは、マルチプロセッサ・データ処理システムにも適用され得る。
【００１８】
例えば、データ処理システム２００は、ネットワーク・コンピュータとして任意に構成される場合には、ＳＣＳＩホスト・バス・アダプタ２１２、ハード・ディスク・ドライブ２２６、テープ・ドライブ２２８、及びＣＤ−ＲＯＭ２３０を含まなくてもよい。これらは図２において点線で囲まれて示され、これによりオプション要素であることが示される。この場合、データ処理システム２００は、ＬＡＮアダプタ２１０またはモデム２２２などのネットワーク通信インタフェースを含み得る。別の例では、データ処理システム２００は、ネットワーク通信インタフェースを含むか否かに関わらず、ネットワーク通信インタフェースを頼ることなくブート可能な、スタンドアロン・システムとして構成される。図２に示される例及び前述の例は、体系的な制限を意味するものではない。例えば、本発明は不均等メモリ・アクセス（ＮＵＭＡ）コンピュータなどの、マルチ・プロセッサ・システムにおいても実施され得る。
【００１９】
図３を参照すると、本発明の好適な実施例に従い、異なるマシン上で同一のディスクから同時に実行される複数オペレーティング・システムが示される。図示の例では、複数の装置によりアクセスされるシステム資源がハード・ディスク・ドライブ３００であるが、本発明はこうした実施例に限られるものではない。基本排他的持続予約を用いて区分化される任意のシステム資源が、本発明の趣旨及び範囲から逸れることなく使用され得る。例えば、システム資源はＺＩＰディスク・ドライブ、ＪＡＺディスク・ドライブ、または書換可能ＣＤディスクなどである。また、図示のコンピュータ・システムは、不均等メモリ・アクセス・コンピュータなどのマルチ・プロセッサ・システム内の個々のプロセッサであってもよい。
【００２０】
ディスク・ドライブ３００は複数のマシンによりアクセスされ、これらは単純化のため、予約ＩＤ１乃至７により示される。各コンピュータは、ディスク３００上のオペレーティング・システムを実行し、そのオペレーティング・システムのための別々のパーティションを割当てられ、その予約ＩＤをこのパーティションを予約するためのキーとして使用する。図示の例では、コンピュータ３０２がブート・プロセスの開始時に、マスタ・ブート・レコード３０４をアクセスしている。コンピュータ３０６は既にマスタ・ブート・レコードを読出しており、ＯＳ／２オペレーティング・システムをブートするように決定している。コンピュータ３０６は現在、ＯＳ／２ブート・パーティション３０８を実行している。コンピュータ３１０は現在、マイクロソフト社の製品であるウィンドウズＮＴオペレーティング・システムを実行中である。その予約ＩＤ（＃３）が、ディスク３００上のウィンドウズＮＴパーティション３１２の基本持続予約を行うためにキーとして使用される。コンピュータ３１４はＬｉｎｕｘを実行しており、その予約ＩＤ（＃４）をキーとして使用して、ディスク３００上のＬｉｎｕｘパーティション３１６を予約済みである。コンピュータ３１８はＭＳ−ＤＯＳを実行中で、その予約ＩＤ（＃５）をキーとして使用して、ディスク３００上のＭＳ−ＤＯＳパーティション３２０を予約済みである。コンピュータ３２２はＬｉｎｕｘを実行中であるが、ここでディスク３００上のＬｉｎｕｘパーティション３２４は、コンピュータ３１４により予約されたＬｉｎｕｘパーティション３１６とは異なることが分かる。コンピュータ３２６はＯＳ／２を実行中で、その予約ＩＤ（＃７）をキーとして使用して、ディスク３００上のＯＳ／２パーティション３２８を予約済みである。こうして、共用ディスク・ドライブ上の異なる予約ＩＤ及び異なるパーティションを使用することにより、異なるコンピュータが共用ディスク・ドライブから異なるオペレーティング・システムを同時に実行できる。
【００２１】
図３では、予約ＩＤが単純な整数として示される。当業者であれば分かるように、実際の値はより複雑であり得る。更に、図３のディスク・ドライブ３００上のパーティションは、物理ディスク空間の実際の相対量を表していない。例えば、マスタ・ブート・レコードは、ディスクの１セクタしか占有しないのに対して、オペレーティング・システム・パーティションは数万セクタを占有し得る。
【００２２】
図４を参照すると、本発明の１実施例に従い、新たなオペレーティング・システムがシステムに追加されるとき、マスタ・ブート・レコードを更新するオペレーションの概略を示すフローチャートが示される。例えば、マスタ・ブート・レコード内のパーティション・テーブルは、図３に示されるパーティション３１２、３１６、３２０、３２４及び３２８などの、オペレーティング・システム・パーティションがディスク・ドライブ３００に追加される度に変更されなければならない。オペレーティング・システムがインストールされるとき、ディスク・ドライブ３００などのシステム資源上のパーティションが予約され、パーティション情報がマスタ・ブート・レコード３０４に追加される。インストール・プロセスの間に２つのオペレーティング・システムがマスタ・ブート・レコードを同時に変更しようとしないことが重要である。さもないと、マスタ・ブート・レコード内のパーティション・テーブルが、複数オペレーティング・システムに対応した正しい情報を含まなくなる。
【００２３】
オペレーティング・システムまたはオペレーティング・システムのために作用するユーティリティ・プログラムは、マスタ・ブート・レコード領域の基本排他的書込み持続予約を行う（ステップ４００）。予約が成功しない場合（ステップ４０２がＮＯ）、マスタ・ブート・レコードの変更が失敗し（ステップ４０４）、エラー信号がオペレーティング・システム・インストール・プログラムに送信される（ステップ４０６）。オペレーティング・システム・ブート・パーティションの予約が成功すると（ステップ４０２がＹＥＳ）、オペレーティング・システムまたはユーティリティ・プログラムが、ブート・パーティション情報をマスタ・ブート・レコードに追加する（ステップ４０８）。オペレーティング・システムまたはユーティリティ・プログラムは次に、マスタ・ブート・レコード領域の基本排他的書込み持続予約を解除し（ステップ４１０）、マスタ・ブート・レコードの変更が終了する。
【００２４】
当業者であれば分かるように、図４に示されるプロセスは、オペレーティング・システムにより呼び出されるユーティリティ・プログラムにより実行される。このアプローチを用いることにより、ユーティリティ・プログラムの変更は、オペレーティング・システムそのものの変更を要求しない。
【００２５】
図５を参照すると、本発明の１実施例に従い、ブート・プロセスのオペレーションの概略を示すフローチャートが示される。この時点では、２つ以上のオペレーティング・システムが同一のシステム資源上に成功裡にインストールされているものと仮定する。図３のマシンは、オペレーティング・システムをブートする様々なステージで示される。コンピュータ３０２はマスタ・ブート・レコード３０４を読出しており、コンピュータ３０６はＯＳ／２ブート・パーティション３０８を読出しており、コンピュータ３１０、３１４、３１８、３２２及び３２６は、ブート・プロセスを完了している。
【００２６】
最初に、ブート・コードが予約無しにシステム資源を読出す（ステップ５００）。次に、ブート・コードが持続予約キーをシステム資源に登録する（ステップ５０２）。ブート・コードがマスタ・ブート・レコード（ＭＢＲ）を読出し、ブートされるオペレーティング・システムのパーティションを、ＮＶＲＡＭに記憶されるアクティブ・オペレーティング・システム・パーティション情報にもとづき決定する（ステップ５０４）。ブート・コードは次に、オペレーティング・システム・ブート・パーティションの基本排他的書込み持続予約を行う（ステップ５０６）。予約が成功しなかった場合（ステップ５０８）、ブートは失敗する（ステップ５１０）。
【００２７】
オペレーティング・システム・ブート・パーティションの予約が成功すると（ステップ５０８がＹＥＳ）、オペレーティング・システム・ブート・パーティション内のコードが実行される（ステップ５１２）。オペレーティング・システム・ブート・パーティションは、オペレーティング・システム・パーティションの基本排他的書込み持続予約を行う（ステップ５１４）。予約が成功しない場合（ステップ５１６がＮＯ）、ブートは失敗する（ステップ５１８）。オペレーティング・システム・ブート・パーティションの予約が成功すると（ステップ５１６がＹＥＳ）、オペレーティング・システム・パーティション内のコードが実行される（ステップ５２０）。
【００２８】
複数オペレーティング・システムが互いに干渉するのを防止するために、各オペレーティング・システムは固有の予約キーを有する。更に、同一のディスク・ドライブから同一のオペレーティング・システムをブートするブート・プロセスが他のマシン上に存在し得る環境において、オペレーティング・システム・ブート・プロセスの保全性を確保するために、オペレーティング・システム・ブート・コードがオペレーティング・システム・パーティションの基本持続予約を行う。ここで重要な点は、様々なオペレーティング・システム・パーティションのファイル・システム構成が互換である必要がないことである。各ブート・プログラムがマスタ・ブート・レコード内の情報を正しく読取り、解釈できることだけが要求される。
【００２９】
要するに、従来技術では、２つ以上のオペレーティング・システムが同一のディスクからブートされたが、たとえこれらのオペレーティング・システムが異なるマシン上で実行されていても同時に実行できなかった。本発明で述べたような持続基本ディスク予約を使用することにより、複数のオペレーティング・システムを異なるマシン上で同一のシステム資源から同時に実行できる。
【００３０】
本発明の前述の説明は、システム・ディスク・ドライブを共用する複数のコンピュータを想定したが、本発明はこうした実施例に限られるものではない。特に、本発明の方法は、各プロセッサが自身のメモリ・パーティションを有し、自身のオペレーティング・システム下で動作する、複数のプロセッサを有するマシンに拡張される。この場合、各オペレーティング・システムが自身のプロセッサ及び自身のメモリ・パーティションを割当てられれば、複数のオペレーティング・システムが”同一マシン”上で同時に実行され得る。当業者であれば分かるように、同様なセットアップがＮＵＭＡ（不均等メモリ・アクセス）コンプレックスでも可能である。
【００３１】
重要な点は、本発明は完全機能型のデータ処理システムの状況において述べられてきたが、当業者であれば分かるように、本発明のプロセスは命令のコンピュータ読取り可能媒体の形態及び様々な形態で配布され得、また本発明は配布のために実際に使用される特定タイプの信号担持媒体に関係無しに、同様に当てはまることである。コンピュータ読取り可能媒体の例には、フロッピー・ディスク、ハード・ディスク・ドライブ、ＲＡＭ及びＣＤ−ＲＯＭなどの記録型媒体、並びにデジタル及びアナログ通信リンクなどの伝送型媒体が含まれる。
【００３２】
本発明の説明は例証のために提供されたもので、本発明はここで開示された形態に制限されるものではない。当業者であれば、多くの変更及び変形が明らかであろう。例えば、ストレージ・エリア・ネットワーク（ＳＡＮ：Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）が普及するにつれ、本発明において概略されるような共用化が一層増えることになる。前述の実施例は、本発明の原理の実用化を最もよく説明するために、また当業者が本発明を理解し、特定の用途に適するように、様々な変更を有する様々な実施例に対応できるように、選択されたものである。
【００３３】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３４】
（１）複数のプロセッサ上において、共用システム資源から複数のオペレーティング・システムをブートする方法であって、
前記複数のプロセッサの所与のプロセッサにより、前記共用システム資源からマスタ・ブート・レコードを読出し、前記複数のオペレーティング・システムから使用される所与のオペレーティング・システムのパーティションを決定するステップと、
オペレーティング・システム・ブート・パーティションをアクセスするために、前記プロセッサにより、固有の予約キーを用いて、前記共用システム資源の一部分を予約するステップと、
オペレーティング・システム・パーティションをアクセスするために、前記プロセッサにより、前記固有の予約キーを用いて、前記共用システム資源の一部分を予約するステップと
を含む、方法。
（２）共用ディスクの一部分の予約が、前記共用システム資源上の一続きの連続セクタの基本排他的書込み持続予約により実行される、前記（１）記載の方法。
（３）前記マスタ・ブート・レコードが初期に前記プロセッサにより前記共用システム資源から予約無しに読込まれる、前記（１）記載の方法。
（４）前記オペレーティング・システム・ブート・パーティション及び前記オペレーティング・システム・パーティションのために、前記共用システム資源の一部分を予約するための前記固有の予約キーが、プロセッサＩＤ、クラスタＩＤ、マルチ・プロセッサ・パーティションＩＤ、不均等メモリ・アクセス・コンプレックスＩＤ、及び不均等メモリ・アクセス・ノードＩＤの少なくとも１つから作成される、前記（１）記載の方法。
（５）前記システム資源がシステム・ハード・ディスク・ドライブ、ＺＩＰディスク・ドライブ、ＪＡＺディスク・ドライブ、書換可能ＣＤディスク、フレキシブル・ディスク・ドライブ、テープ・ドライブまたは類似の装置の１つである、前記（１）記載の方法。
（６）分散データ処理システム内の複数のプロセッサ上において、共用システム資源から複数のオペレーティング・システムを実行する方法であって、
前記複数のプロセッサの各々により、共用ディスクからマスタ・ブート・レコードを読出し、前記複数のプロセッサにおけるオペレーティング・システムを識別するステップと、
オペレーティング・システム・ブート・パーティションをアクセスするために、前記複数のプロセッサの各々により、各プロセッサに固有の予約キーを用いて、前記共用システム資源の一部分を予約するステップと、
オペレーティング・システム・パーティションをアクセスするために、前記複数のプロセッサの各々により、前記予約キーを用いて、前記共用システム資源の一部分を予約するステップと
を含み、前記複数のプロセッサが前記共用システム資源から前記複数のオペレーティング・システムを同時に実行する方法。
（７）共用システム資源上の複数のプロセッサから複数のオペレーティング・システムをインストールする、データ処理システムにおける方法であって、
前記複数のプロセッサの所与のプロセッサであって、前記複数のオペレーティング・システムから所与のオペレーティング・システムをインストールするプロセッサが、前記共用システム資源上のマスタ・ブート・レコードに対する排他的アクセスを予約するステップと、
前記プロセッサがオペレーティング・システム・ブート情報を前記マスタ・ブート・レコード内のパーティション・テーブルに追加するステップと、
前記プロセッサが前記マスタ・ブート・レコードに対する前記排他的アクセスを解除するステップと
を含む、方法。
（８）前記共用システム資源の前記マスタ・ブート・レコードに対する排他的アクセスの予約が、前記マスタ・ブート・レコードを含む前記共用システム資源の一部分の基本排他的書込み持続予約により実行される、前記（７）記載の方法。
（９）前記マスタ・ブート・レコードの前記基本排他的書込み持続予約が失敗した場合、エラー・メッセージがオペレーティング・システム・インストール・プログラムに送信される、前記（７）記載の方法。
（１０）複数のプロセッサ上において、共用システム資源から複数のオペレーティング・システムをブートする分散データ処理システムであって、
前記複数のプロセッサの所与のプロセッサが前記共用システム資源からマスタ・ブート・レコードを読出し、前記複数のオペレーティング・システムからブートされるオペレーティング・システムを決定する手段と、
前記プロセッサが固有の予約キーを用いて、オペレーティング・システム・ブート・パーティションのアクセスのために、前記共用システム資源の一部分を予約する手段と、
前記プロセッサが前記固有の予約キーを用いて、オペレーティング・システム・パーティションのアクセスのために、前記共用システム資源の一部分を予約する手段と
を含む、システム。
（１１）共用ディスクの一部分の予約が、前記共用ディスクの連続セクタ・ブロックの基本排他的書込み持続予約により実行される、前記（１０）記載のシステム。
（１２）前記マスタ・ブート・レコードが初期に前記プロセッサにより前記共用システム資源から予約無しに読込まれる、前記（１０）記載のシステム。
（１３）前記共用システム資源上の前記オペレーティング・システム・ブート・パーティション及び前記オペレーティング・システム・パーティションのために、前記共用システム資源の一部分を予約するための前記固有の予約キーが、プロセッサＩＤ、クラスタＩＤ、マルチ・プロセッサ・パーティションＩＤ、不均等メモリ・アクセス・コンプレックスＩＤ、及び不均等メモリ・アクセス・ノードＩＤの少なくとも１つから作成される、前記（１０）記載のシステム。
（１４）分散データ処理システム内の複数のプロセッサ上において、共用システム資源から複数のオペレーティング・システムを実行する分散データ処理システムであって、
前記複数のプロセッサの各々により、共用ディスクからマスタ・ブート・レコードを読出し、前記複数のプロセッサにおけるオペレーティング・システムを識別する読出し手段と、
前記複数のプロセッサの各々により、オペレーティング・システム・ブート・パーティションをアクセスするために、各プロセッサに固有の予約キーを用いて前記共用システム資源の一部分を予約する予約手段と、
前記複数のプロセッサの各々により、前記予約キーを用いて前記共用システム資源の一部分を予約し、オペレーティング・システム・パーティションをアクセスする予約手段と
を含み、前記複数のプロセッサが前記共用システム資源から前記複数のオペレーティング・システムを同時に実行するシステム。
（１５）複数のプロセッサ上において、共用システム資源から複数のオペレーティング・システムをブートする、ネットワーク・ワークステーションにおいて使用されるコンピュータ読取り可能媒体上のコンピュータ・プログラム製品であって、
前記複数のプロセッサの所与のプロセッサにより、前記共用システム資源からマスタ・ブート・レコードを読出し、前記複数のオペレーティング・システムからブートされる所与のオペレーティング・システムを決定するステップと、
前記プロセッサにより、オペレーティング・システム・ブート・パーティションをアクセスするために、固有の予約キーを用いて前記共用システム資源の一部分を予約するステップと、
前記プロセッサにより、オペレーティング・システム・パーティションをアクセスするために、前記固有の予約キーを用いて前記共用システム資源の一部分を予約するステップと
を実行する命令を含む、プログラム製品。
（１６）前記固有の予約キーが、プロセッサＩＤ、クラスタＩＤ、マルチ・プロセッサ・パーティションＩＤ、不均等メモリ・アクセス・コンプレックスＩＤ、及び不均等メモリ・アクセス・ノードＩＤの少なくとも１つから作成される、前記（１５）記載のプログラム製品。
【図面の簡単な説明】
【図１】本発明が実施され得るネットワーク化データ処理環境を示す図である。
【図２】本発明が実施され得るデータ処理システムを示すブロック図である。
【図３】本発明の１実施例に従い、同一のシステム資源上で同時に実行される複数オペレーティング・システムを示す図である。
【図４】本発明の１実施例に従い、新たなオペレーティング・システムがシステムに追加されるとき、マスタ・ブート・レコードを更新するオペレーションの概略を示すフローチャートである。
【図５】本発明の１実施例に従い、ブート・プロセスのオペレーションの概略を示すフローチャートである。
【符号の説明】
１００  分散データ処理システム
１０２  ネットワーク
１０４、１１４、１１６、１１８  サーバ
１０６、１２２  記憶ユニット
１０８、１１０、１１２  クライアント
２００  データ処理システム
２０２  プロセッサ
２０４  主メモリ
２０６  ＰＣＩローカル・バス
２０８  ＰＣＩブリッジ
２１０  ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ
２１２  ＳＣＳＩ（ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）ホスト・バス・アダプタ
２１４  拡張バス・インタフェース
２１６  オーディオ・アダプタ
２１８  グラフィックス・アダプタ
２１９  オーディオ／ビデオ・アダプタ
２２０  キーボード及びマウス・アダプタ
２２２  モデム
２２４  追加のメモリ
２２６  ハード・ディスク・ドライブ
２２８  テープ・ドライブ
２３０  ＣＤ−ＲＯＭドライブ
３００  ディスク・ドライブ
３０２、３０６、３１０、３１４、３１８、３２２、３２６  コンピュータ
３０４  マスタ・ブート・レコード
３０８  ＯＳ／２ブート・パーティション
３１２  ウィンドウズＮＴパーティション
３１６  Ｌｉｎｕｘパーティション
３２０  ＭＳ−ＤＯＳパーティション
３２４  Ｌｉｎｕｘパーティション
３２８  ＯＳ／２パーティション
【図１】
0003629518.tif 000002
【図２】
0003629518.tif 000003
【図３】
0003629518.tif 000004
【図４】
0003629518.tif 000005
【図５】
0003629518.tif 000006