(57)【要約】【課題】  ＯＳカーネルの起動の初期段階から常に動作可能で、かつ、データ転送効率のよいネットワークブート装置を提供する。【解決手段】  ネットワークブート装置１０は、オペレーティングシステムの起動の初期の段階で動作可能なドライバ３２を利用して、オペレーティングシステム５１の実行に伴って要求されるディスクアクセスをネットワーク上のストレージ５０へのアクセスにリダイレクトする低レベル・エミュレーション部２１と、オペレーティングシステム５１が制御するネットワークドライバ３１を利用する高レベル・エミュレーション部２３と、低レベル・エミュレーション部２１と高レベル・エミュレーション部２２とを切り替えてディスク・アクセス要求を送信するディスク・アクセス振り分け部２３とを備える。【選択図】      図１
2009230433.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上のストレージに記憶されたオペレーティングシステムを起動するネットワークブート装置であって、
前記オペレーティングシステムが制御するドライバとしてインストールされ、前記オペレーティングシステムが制御するネットワークドライバのうち前記オペレーティングシステムの起動の初期の段階ではまだ有効に動作可能ではないものを利用せずに、前記オペレーティングシステムが制御するネットワークドライバのうち前記オペレーティングシステムの起動の初期の段階で有効に動作可能なドライバを利用して、前記オペレーティングシステムの実行に伴って要求されるディスクアクセスをネットワーク上の前記ストレージへのアクセスにリダイレクトする、低レベル・エミュレーション手段と、
前記低レベル・エミュレーション手段に比べてデータ転送効率がよく、前記オペレーティングシステムが制御するネットワークドライバを利用して、前記オペレーティングシステムの実行に伴って要求されるディスクアクセスをネットワーク上の前記ストレージへのアクセスにリダイレクトする、高レベル・エミュレーション手段と、
前記高レベル・エミュレーション手段が利用するネットワークドライバが有効に動作可能であるか否かを前記オペレーティングシステムから収集し、該高レベル・エミュレーション手段が有効に動作可能であるか否かを判定する判定手段と、
前記判定手段による判定結果に基づいて、前記高レベル・エミュレーション手段が動作可能であるか否かを示す振り分けフラグを記憶する手段と、
前記ストレージに記憶されたデータにアクセスするためのディスク・アクセス要求を該ストレージに送信する際、前記振り分けフラグにしたがって、前記低レベル・エミュレーション手段と前記高レベル・エミュレーション手段とを切り替えて該ディスク・アクセス要求を送信する手段と、
を備えたことを特徴とするネットワークブート装置。
【請求項２】
請求項1に記載のネットワークブート装置において、
前記高レベル・エミュレーション手段が動作可能であることを前記振り分けフラグが示していない場合、前記オペレーティングシステムの起動時におけるユーザ空間の初期化プロセスの実行ファイルを読み出すためのディスク・アクセス要求を保留するディスク・アクセス保留部
をさらに備えたことを特徴とするネットワークブート装置。
【請求項３】
請求項1または請求項２に記載のネットワークブート装置において、
前記判定手段は、前記高レベル・エミュレーション手段が動作可能であることを前記振り分けフラグが示していない場合、前記高レベル・エミュレーション手段によるディスク・アクセス要求を定期的に実行することにより、該高レベル・エミュレーション手段が動作可能であるか否かを判定する
ことを特徴とするネットワークブート装置。
【請求項４】
ネットワーク上のストレージに記憶されたオペレーティングシステムを起動するネットワークブート装置に用いられるプログラムであって、
前記ネットワークブート装置のコンピュータを、
前記オペレーティングシステムが制御するドライバとしてインストールされ、前記オペレーティングシステムが制御するネットワークドライバのうち前記オペレーティングシステムの起動の初期の段階ではまだ有効に動作可能ではないものを利用せずに、前記オペレーティングシステムが制御するネットワークドライバのうち前記オペレーティングシステムの起動の初期の段階で有効に動作可能なドライバを利用して、前記オペレーティングシステムの実行に伴って要求されるディスクアクセスをネットワーク上の前記ストレージへのアクセスにリダイレクトする、低レベル・エミュレーション手段、
前記低レベル・エミュレーション手段に比べてデータ転送効率がよく、前記オペレーティングシステムが制御するネットワークドライバを利用して、前記オペレーティングシステムの実行に伴って要求されるディスクアクセスをネットワーク上の前記ストレージへのアクセスにリダイレクトする、高レベル・エミュレーション手段、
前記高レベル・エミュレーション手段が利用するネットワークドライバが有効に動作可能であるか否かを前記オペレーティングシステムから収集し、該高レベル・エミュレーション手段が有効に動作可能であるか否かを判定する判定手段、
前記判定手段による判定結果に基づいて、前記高レベル・エミュレーション手段が動作可能であるか否かを示す振り分けフラグを記憶する手段、
前記ストレージに記憶されたデータにアクセスするためのディスク・アクセス要求を該ストレージに送信する際、前記振り分けフラグにしたがって、前記低レベル・エミュレーション手段と前記高レベル・エミュレーション手段とを切り替えて該ディスク・アクセス要求を送信する手段、
として実現させることを特徴とするプログラム。
【請求項５】
ネットワーク上のストレージに記憶されたオペレーティングシステムが制御するネットワークドライバのうち前記オペレーティングシステムの起動の初期の段階ではまだ有効に動作可能ではないものを利用せずに、前記オペレーティングシステムが制御するネットワークドライバのうち前記オペレーティングシステムの起動の初期の段階で有効に動作可能なドライバを利用して、前記オペレーティングシステムの実行に伴って要求されるディスクアクセスをネットワーク上の前記ストレージへのアクセスにリダイレクトする、低レベル・エミュレーション手段と、
前記低レベル・エミュレーション手段に比べてデータ転送効率がよく、前記オペレーティングシステムが制御するネットワークドライバを利用して、前記オペレーティングシステムの実行に伴って要求されるディスクアクセスをネットワーク上の前記ストレージへのアクセスにリダイレクトする、高レベル・エミュレーション手段と、
を備えたネットワークブート装置に用いられるネットワークブート方法であって、
前記ネットワークブート装置のコンピュータの起動時に、前記低レベル・エミュレーション手段を起動する手段と、
前記高レベル・エミュレーション手段が利用するネットワークドライバが有効に動作可能であるか否かを前記オペレーティングシステムから収集し、該高レベル・エミュレーション手段が有効に動作可能であるか否かを判定する判定ステップと、
前記判定ステップによる判定結果に基づいて、前記高レベル・エミュレーション手段が動作可能であるか否かを示す振り分けフラグをメモリに書き込むステップと、
前記ストレージに記憶されたデータにアクセスするためのディスク・アクセス要求を該ストレージに送信する際、前記振り分けフラグにしたがって、前記低レベル・エミュレーション手段と前記高レベル・エミュレーション手段とを切り替えて該ディスク・アクセス要求を送信するステップと、
を備えたことを特徴とするネットワークブート方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＯＳカーネルの起動の初期段階から常に動作可能で、かつ、データ転送効率のよいネットワークブート装置に関する。
【背景技術】
【０００２】
一般的に、汎用オペレーティングシステムは、ローカルディスク（内蔵ディスク）にインストールされている。このようなローカルディスクにインストールされているオペレーティングシステムをネットワーク上のストレージ（記憶装置）に格納し、ネットワークに接続されたコンピュータからネットワーク経由で起動（ネットワークブート）しようとする場合には、特別な技術が必要となる。
【０００３】
具体的には、ストレージにインストールされているオペレーティングシステムをネットワークブートする場合、あたかもローカルディスクから起動しているようにエミュレーションする技術が用いられる。
【０００４】
第一のエミュレーションするための技術として、ＢＩＯＳが提供するサービスルーチンをフックして、ローカルディスクへのアクセスをネットワーク上のストレージへのアクセスにリダイレクトする、「仮想ディスクＢＩＯＳサービスルーチン」が用いられる。仮想ディスクＢＩＯＳサービスルーチンでは、ＢＩＯＳが提供するサービスルーチンをフックして、ネットワーク上のストレージの指定されたセクタからデータを読み出し、それらのデータがあたかもローカルディスクから読み出されたかのようにメモリに転送する。
【０００５】
第二のエミュレーションするための技術として、オペレーティングシステムにインストールされ、ローカルディスクへのアクセスをネットワーク上のストレージへのアクセスにリダイレクトする、「仮想ディスクドライバ」の技術が用いられる。仮想ディスクドライバでは、ネットワーク上のストレージの指定されたセクタからデータを読み出し、それらのデータがあたかもローカルディスクから読み出されたかのようにメモリに転送し、あるいは、メモリ上にあるデータを、ネットワーク上のストレージの指定されたセクタに書き込む。
【０００６】
これらの技術を用いて、オペレーティングシステムを起動する流れを、図７を用いて説明する。なお、ネットワークブートに対応したコンピュータの例として、ＰＸＥ（Preboot Execution Environment）規格に準拠したコンピュータ１０ａが挙げられる。
【０００７】
まず、コンピュータ１０ａの電源が投入されると、コンピュータ１０ａに内蔵されたＲＯＭ１１に記憶されたＢＩＯＳ（Basic Input and Output System）１２とＰＸＥ１３とが実行され、ハードウェアの初期化が行なわれる。その後、ネットワーク１００を介してサーバ６０から仮想ディスク用のＮＢＰ(Network Bootstrap Program)６１がＲＡＭ１４に読み込まれ実行される。ＮＢＰ６１が実行されると、仮想ディスクＢＩＯＳサービスルーチン６２が展開され、仮想ディスクのエミュレーションがはじまる。
【０００８】
次に、仮想ディスクＢＩＯＳサービスルーチン６２により、ブートローダ１５がＲＡＭ１４によみこまれ実行される。ブートローダ１５が実行されると、仮想ディスクＢＩＯＳサービスルーチン６２を介して、ネットワーク１００上のストレージ５０からＯＳカーネル１６がＲＡＭ１４に読み込まれ実行される。
【０００９】
ＯＳカーネル１６にはあらかじめ仮想ディスクドライバ１７がインストールされている。ＯＳカーネル１６が実行されると、仮想ディスクＢＩＯＳサービスルーチン６２は使用されなくなり、オペレーティングシステム５１の仮想ディスクドライバ１７が使用されるようになる。そして、この仮想ディスクドライバ１７によりネットワーク１００上のストレージ５０にアクセスし、オペレーティングシステムのデータをＲＡＭ１４に読み込んで起動する。
【特許文献１】特表２００５−５２３５２３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明者らの検討によれば、一般的には、上記の仮想ディスクドライバは、オペレーティングシステムが制御するネットワークドライバを利用して、ローカルディスクへのアクセスをネットワーク上のストレージへのアクセスにリダイレクトする。
【００１１】
しかしながら、オペレーティングシステムが制御するネットワークドライバ（たとえばTCP/IPドライバ）は、ＯＳカーネルの起動の初期段階では利用可能ではない場合がある。
【００１２】
一方、オペレーティングシステムが制御するネットワークドライバを極力利用しないで、ローカルディスクへのアクセスをネットワーク上のストレージへのアクセスにリダイレクトすると、オペレーティングシステムが制御するネットワークドライバのうちオペレーティングシステムの起動の初期段階では動作可能ではないもの（たとえばTCP/IPドライバ）を利用した場合に比べて、データ転送効率が悪いという問題がある。
【００１３】
本発明は、上記実情に鑑みてなされたものであり、ＯＳカーネルの起動の初期段階から常に動作可能で、かつ、データ転送効率のよいネットワークブート装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は上記課題を解決するために、ネットワーク上のストレージに記憶されたオペレーティングシステムを起動するネットワークブート装置であって、オペレーティングシステムが制御するドライバとしてインストールされ、オペレーティングシステムが制御するネットワークドライバのうちオペレーティングシステムの起動の初期の段階ではまだ有効に動作可能ではないものを利用せずに、オペレーティングシステムが制御するネットワークドライバのうちオペレーティングシステムの起動の初期の段階で有効に動作可能なドライバを利用して、オペレーティングシステムの実行に伴って要求されるディスクアクセスをネットワーク上のストレージへのアクセスにリダイレクトする、低レベル・エミュレーション手段と、低レベル・エミュレーション手段に比べてデータ転送効率がよく、オペレーティングシステムが制御するネットワークドライバを利用して、オペレーティングシステムの実行に伴って要求されるディスクアクセスをネットワーク上のストレージへのアクセスにリダイレクトする、高レベル・エミュレーション手段と、高レベル・エミュレーション手段が利用するネットワークドライバが有効に動作可能であるか否かをオペレーティングシステムから収集し、該高レベル・エミュレーション手段が有効に動作可能であるか否かを判定する判定手段と、判定手段による判定結果に基づいて、高レベル・エミュレーション手段が動作可能であるか否かを示す振り分けフラグを記憶する手段と、ストレージに記憶されたデータにアクセスするためのディスク・アクセス要求を該ストレージに送信する際、振り分けフラグにしたがって、低レベル・エミュレーション手段と高レベル・エミュレーション手段とを切り替えて該ディスク・アクセス要求を送信する手段とを備えたネットワークブート装置を提供する。
【００１５】
＜用語＞
なお、本明細書において、「インストール」とは、ハードディスク上へのプログラム等の格納を意味する。そして、「コンピュータにインストール」することは、「コンピュータに内蔵されたハードディスクにインストール」することを意味する。また、「オペレーティングシステムにインストール」することは、「オペレーティングシステムがインストールされているハードディスクにインストール」することを意味している。
【００１６】
また、本明細書において、「起動の初期の段階」とは、ＯＳカーネルの実行が開始した後、その実行に伴ってディスクアクセスが初めて発生する時点までをいう。
【発明の効果】
【００１７】
本発明によれば、ＯＳカーネルの起動の初期段階から常に動作可能で、かつ、データ転送効率のよいネットワークブート装置を提供することが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して本発明の実施形態を説明する。
【００１９】
＜第１の実施形態＞
（ネットワークブート装置の構成）
図１は本発明の第１の実施形態に係るネットワークブート装置１０の構成を示す模式図であり、図２はネットワークブート装置１０における仮想ディスクドライバの機能を説明するための模式図である。なお、既に説明した部分と同一の部分には同一の符号を付し、重複した説明を省略する。また、以下の各実施形態についても同様にして重複した説明を省略する。
【００２０】
ネットワークブート装置１０は、一般的なコンピュータ１０ａにソフトウェアが組み込まれたものであり、ネットワーク１００上のストレージ５０に記憶されたオペレーティングシステム５１を起動する。オペレーティングシステムの例としてはWindows(登録商標)が挙げられる。
【００２１】
このネットワークブート装置１０は、低レベル・エミュレーション部２１、高レベル・エミュレーション部２２、ディスク・アクセス振り分け部２３を具備している。
【００２２】
低レベル・エミュレーション部２１は、仮想ディスクドライバとして機能するものであり、オペレーティングシステムのネットワークドライバのうちＯＳカーネル１６の起動の初期段階では利用可能ではないもの（たとえばTCP/IPドライバ）を利用しないものである。
【００２３】
補足すると、低レベル・エミュレーション部２１は、ネットワークブート装置１０のコンピュータ１０ａの起動時に、オペレーティングシステム５１が制御するネットワークドライバ３１（たとえばTCP/IPドライバ）を利用せずに、他のネットワークドライバ３２（たとえばＮＤＩＳドライバ）を利用する。そして、低レベル・エミュレーション部２１は、オペレーティングシステムの実行に伴って要求されるディスクアクセスをネットワーク上のストレージ５０へのアクセスにリダイレクトする。
【００２４】
例えば、低レベル・エミュレーション部２２は、図３に概念を示すように、通信プロトコルにTFTP(Trivial File Transfer Protocol)を使い、ネットワークドライバにNDIS(Network Driver Interface Specification)ドライバ等を実装する。
【００２５】
なお、低レベル・エミュレーション部２２は、オペレーティングシステムが制御するネットワークドライバ３１を利用していないので、ＯＳカーネル１６の起動の初期段階からオペレーティングシステム５１の稼動中は常に動作可能となっている。
【００２６】
高レベル・エミュレーション部２２は、仮想ディスクドライバとして機能するものであり、オペレーティングシステム５１のネットワークドライバのうちＯＳカーネル１６の起動の初期段階では利用可能ではないもの（たとえばTCP/IPドライバ)を利用するものである。
【００２７】
具体的には、高レベル・エミュレーション部２２は、低レベル・エミュレーション部２１に比べてデータ転送効率がよく、オペレーティングシステム５１のネットワークドライバ３１を利用して、オペレーティングシステムの実行に伴って要求されるディスクアクセスをネットワーク上のストレージ５０へのアクセスにリダイレクトするものである。
【００２８】
例えば、高レベル・エミュレーション部２２は、プロトコルにiSCSI(Internet Small Computer System Interface)を使い、TCP/IPのTDI(Transport Driver Interface)クライアントとして実装される。
【００２９】
ディスク・アクセス振り分け部２３は、ストレージ５０へのディスク・アクセス要求が実行されるたびに、低レベル・エミュレーション部２１を使用してアクセスするか、高レベル・エミュレーション部２２を使用してアクセスするかを選択するものであり、振り分けフラグ記憶部２４と切り替え判定部２５とを有している。なお、ディスク・アクセス要求は、ＯＳカーネル１６によって実行される。
【００３０】
振り分けフラグ記憶部２４は、高レベル・エミュレーション部２２が利用するネットワークドライバが有効に動作可能であるか否かを示す「振り分けフラグ」をＲＡＭ１４上に記憶するものである。
【００３１】
切り替え判定部２５は、高レベル・エミュレーション部２２が利用するネットワークドライバ３１の動作可能状況をインストールしたオペレーティングシステム５１から収集し、高レベル・エミュレーション部２２が動作可能か否かを判定するものである。なお、ネットワークドライバ３１の動作可能状況は、たとえば、Plug and Play通知（PnP通知とも記載する）などを通して収集される。
【００３２】
切り替え判定部２５は、「高レベル・エミュレーション部２２が動作可能」と判定した場合、振り分けフラグの情報を“動作可能”に書き換える。また、切り替え判定部２５は、「高レベル・エミュレーション部２２が動作不能」と判定した場合、振り分けフラグの内容を“動作不能”に書き換える。動作不能に書き換えた場合、切り替え判定部２５は、高レベル・エミュレーション部２２に要求しているディスク・アクセスをすべてキャンセルし、それを低レベル・エミュレーション部２１に回送する。
【００３３】
（ネットワークブート装置１０の動作）
次に本実施形態に係るネットワークブート装置１０の動作を図４を用いて説明する。
【００３４】
始めに、ネットワークブート装置１０のコンピュータ１０ａの電源が入れられる。
【００３５】
コンピュータ１０ａに電源が入れられると（Ｓ１）、ＢＩＯＳ１２がＮＢＰ６１を読み込む（Ｓ２）。コンピュータ１０ａはＮＢＰ６１の処理により、ストレージ５０にアクセスし（Ｓ３）、ＯＳカーネル１６を読み込む（Ｓ４）。
【００３６】
ＯＳカーネル１６が読み込まれると低レベル・エミュレーション部２１が起動し、ＯＳカーネル１６が実行される。そして、ＯＳカーネル１６の実行によりストレージ５０からオペレーティングシステム５１のデータがＲＡＭ１４に読み込まれる（Ｓ５）。
【００３７】
オペレーティングシステム５１のデータの読み込みが進んでいくと、高レベル・エミュレーション部２２が利用するネットワークドライバ３１の動作可能状況をオペレーティングシステムから収集できるようになる。
【００３８】
そこで、ディスク・アクセス振り分け部２３により、高レベル・エミュレーション部２２が動作可能であるか否かが判定される（Ｓ６）。具体的には、インストールしたオペレーティシステム５１からPlug and Play通知が送出されるので、このPlug and Play通知に基づいて、オペレーティングシステム５１が制御するTCP/IPドライバが利用可能であるか否かが判定される。
【００３９】
続いて、ディスク・アクセス振り分け部２３により、判定結果に基づいて、高レベル・エミュレーション部２２が動作可能であるか否かを示す振り分けフラグがＲＡＭ１４に書き込まれる。
【００４０】
そして、ディスク・アクセス振り分け部２３により、ストレージ５０に記憶されたデータを読み込むためのディスク・アクセス要求が、振り分けフラグにしたがって、低レベル・エミュレーション部２１から高レベル・エミュレーション部２２に切り替えられて転送される。
【００４１】
これにより、高レベル・エミュレーション部２２により、その後のＯＳカーネル１６が実行されるようになる（Ｓ７）。
【００４２】
（ネットワークブート装置の作用効果）
以上説明したように、本実施形態に係るネットワークブート装置１０は、ネットワークブート装置１０のコンピュータ１０ａの起動時に、オペレーティングシステム５１が制御するネットワークドライバのうちオペレーティングシステム５１の起動の初期の段階ではまだ有効ではないもの３１を利用せずに、オペレーティングシステムが制御するネットワークドライバのうちオペレーティングシステムの起動の初期の段階で有効に動作可能なドライバ３２を利用して、オペレーティングシステム５１の実行に伴って要求されるディスクアクセスをネットワーク上のストレージ５０へのアクセスにリダイレクトする低レベル・エミュレーション部２１と、オペレーティングシステム５１が制御するネットワークドライバ３１を利用して、オペレーティングシステム５１の実行に伴って要求されるディスクアクセスをネットワーク上のストレージ５０へのアクセスにリダイレクトする高レベル・エミュレーション部２３と、高レベル・エミュレーション部２３が利用するネットワークドライバ３１が有効に動作可能であるか否かをオペレーティングシステム５１から収集し、低レベル・エミュレーション部２１と高レベル・エミュレーション部２２とを切り替えてディスク・アクセス要求を送信するディスク・アクセス振り分け部２３とを備えているので、ＯＳカーネル１６の起動の初期段階から常に動作可能で、かつ、データ転送効率のよいネットワークブート装置１０を提供することができる。
【００４３】
補足すると、ネットワークブート装置１０では、オペレーティングシステム５１の起動に際して、ディスク・アクセス振り分け部２３が、ディスク・アクセス要求を低レベル・エミュレーション部２１に振り分けることにより、ＯＳカーネル１６の起動直後でも仮想ディスクとして動作できる。また、オペレーティングシステム５１が制御するネットワークドライバ３１が動作可能になると、ディスク・アクセス振り分け部２３は、ディスク・アクセス要求を高レベル・エミュレーション部２２に振り分けるので、データ転送効率のよい仮想ディスクとして動作できる。
【００４４】
なお、オペレーティングシステム５１の稼動中に、オペレーティングシステム５１が制御するTCP/IPドライバ等の設定を変更した場合、一時的にTCP/IPが利用不能になる。この場合、利用不能になったことがオペレーティングシステムから切り替え判定部２５に通知されるので、ディスク・アクセス振り分け部２３は、実行中のすべてのディスク・アクセス要求を低レベル・エミュレーション部２１に振り分ける。これにより、オペレーティングシステム５１の処理を継続可能とすることができる。
【００４５】
その後、TCP/IPドライバの設定の変更処理が完了し、TCP/IPが利用可能になった場合、利用可能になったことがPlug and Play通知などでオペレーティングシステム５１から切り替え判定部２５に通知される。そこで、ディスク・アクセス振り分け部２３は、ディスク・アクセス要求を高レベル・エミュレーション部２２に振り分け、効率的なデータ転送の状態に戻す。
【００４６】
要するに、ネットワークブート装置１０は、ディスク・アクセス振り分け部２３がディスク・アクセス要求を適切に振り分けることにより、オペレーティングシステムの稼動中の大半の時間において、高レベル・エミュレーション部２２を用いて効率のよいデータ転送を行うことができる。一方、ネットワークブート装置１０は、ＯＳカーネル１６の起動直後や、図５に概念を示すようにTCP/IPドライバの設定変更などの特別な時間では、低レベル・エミュレーション部２１を用いるので、仮想ディスクドライバとしての動作を継続することができる。
【００４７】
なお、このネットワークブート装置１０を用いれば、シンクライアントシステムを構築することができ、データの集中管理及びセキュリティ性の向上に資することになる。
【００４８】
＜第２の実施形態＞
図６は本発明の第２の実施形態に係るネットワークブート装置１０Ｓの構成を示す模式図である。
【００４９】
本実施形態に係るネットワークブート装置１０Ｓは、ディスク・アクセス振り分け部２３Ｓがディスク・アクセス保留部２６を備えている。
【００５０】
ディスク・アクセス保留部２６は、高レベル・エミュレーション部２２が動作可能であることを振り分けフラグが示していない場合、オペレーティングシステム５１の起動時におけるユーザ空間の初期化プロセスの実行ファイルの読み出し要求を保留するものである。
【００５１】
このディスク・アクセス保留部２６を具備することにより、ネットワークブート装置１０は、オペレーティングシステム５１の起動時間を最適化することができる。
【００５２】
補足すると、オペレーティングシステム５１の起動時には、TCP/IP等のネットワークドライバの初期化だけではなく、ユーザ空間のさまざまなプロセスの初期化が行われる。これらのプロセスは並列的に初期化が行われるため、いずれの初期化が先に完了するかは不定である。
【００５３】
オペレーティングシステム５１が制御するTCP/IP等のネットワークドライバ３１の初期化がユーザ空間の初期化プロセスより先であれば、ユーザ空間の初期化プロセスは高レベル・エミュレーション部２２により実行されるので、データの転送効率が高い状態で処理が行われる。
【００５４】
しかしながら、オペレーティングシステム５１が制御するTCP/IP等のネットワークドライバ３１の初期化がユーザ空間の初期化プロセスより後回しになる場合がある。この場合、ユーザ空間の初期化プロセスが低レベル・エミュレーション部２１によって実行されるので、データ転送効率が低い状態で処理されることになる。ユーザ空間の初期化は処理量が多いため、オペレーティングシステム５１の起動時間が長くなるという問題が生じる。
【００５５】
この点、ディスク・アクセス保留部２６を設けることにより、TCP/IP等のネットワークドライバ３１を初期化し、高レベル・エミュレーション部２２への切り替え後に、ユーザ空間を初期化するという順序が必ず保たれるようになり、オペレーティングシステム５１の起動時間を安定して短くすることができるようになる。
【００５６】
＜第３の実施形態＞
本実施形態においては、切り替え判定部２５が、高レベル・エミュレーション部２２が動作可能であることを振り分けフラグが示していない場合、高レベル・エミュレーション部２２によるディスク・アクセス要求を定期的に実行することにより、高レベル・エミュレーション部２２が動作可能であるか否かを判定する。
【００５７】
第１の実施形態に係る切り替え判定部では、オペレーティングシステム５１からPlug and Play通知を受け取った場合に、低レベル・エミュレーション部２１から高レベル・エミュレーション部２２へ処理を切り替えている。
【００５８】
これに対し、本実施形態に係る切り替え判定部２５は、高レベル・エミュレーション部２２に対して定期的にディスク・アクセス要求を行い、それが成功した場合に、オペレーティングシステム５１からのPlug and Play通知とは独立して切り替え判定を行う。
【００５９】
また、切り替え判定部２５は、振り分けフラグが「高レベル・エミュレーション部２２が動作可能」であることを示しているときに、高レベル・エミュレーション部２２に対するディスク・アクセス要求がエラーまたはタイムアウトとなった場合には、オペレーティングシステム５１からのPlug and Play通知とは独立して切り替え判定を行う。
【００６０】
このため、本実施形態に係るネットワークブート装置１０では、Plug and Play通知を受け取る前に切り替え判定を行うことができるので、オペレーティングシステム５１の起動時間を安定させるとともに短縮化することができる。
【００６１】
＜その他＞
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【００６２】
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【００６３】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【００６４】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が上記実施形態を実現するための各処理の一部を実行しても良い。
【００６５】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【００６６】
また、記憶媒体は１つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【００６７】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【００６８】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【図面の簡単な説明】
【００６９】
【図１】本発明の第１の実施形態に係るネットワークブート装置１０の構成を示す模式図である。
【図２】同実施形態における仮想ディスクドライバの機能を説明するためのす模式図である。
【図３】同実施形態に係る低レベル・エミュレーション部２２を説明するための模式図である。
【図４】同実施形態に係るネットワークブート装置１０の動作を説明するための図である。
【図５】同実施形態に係るネットワークブート装置１０の作用効果を説明するための図である。
【図６】本発明の第２の実施形態に係るネットワークブート装置１０Ｓの構成を示す模式図である。
【図７】一般的なネットワークブートを説明するための図である。
【符号の説明】
【００７０】
１０…ネットワークブート装置、１１…ＲＯＭ、１２…ＢＩＯＳ、１３…ＰＸＥ、１４…ＲＡＭ、１５…ブートローダ、１６…ＯＳカーネル、１７…仮想ディスクドライバ、１８・・・ネットワークドライバ、２１…低レベル・エミュレーション部、２２…高レベル・エミュレーション部、２３…ディスク・アクセス振り分け部、２４…振り分けフラグ記憶部、２５…切り替え判定部、２６…ディスク・アクセス保留部、５０…ストレージ、５１…オペレーティングシステム、６０…サーバ、６１…ＮＢＰ、６２…仮想ディスクＢＩＯＳサービスルーチン、１００…ネットワーク。
【図１】
2009230433.tif 000003
【図２】
2009230433.tif 000004
【図３】
2009230433.tif 000005
【図４】
2009230433.tif 000006
【図５】
2009230433.tif 000007
【図６】
2009230433.tif 000008
【図７】
2009230433.tif 000009