(57)【特許請求の範囲】
【請求項１】
制御部と、揮発性記憶部と、不揮発性記憶部と、を備えた情報処理装置であって、
前記制御部は、
オペレーティングシステムの起動時に、前記揮発性記憶部の一部の領域を前記オペレーティングシステムに仮想ドライブとしてマウントさせる仮想ドライブ設定処理と、
前記オペレーティングシステムの終了時に、前記仮想ドライブのデータを前記不揮発性記憶部にバックアップするバックアップ処理と、を実行し、
前記オペレーティングシステムからの前記仮想ドライブに対するリード要求時に、当該要求がなされたデータが前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域に保持されているか否かを判断し、要求がなされたデータが前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域に保持されていないと判断した場合に、前記不揮発性記憶部におけるバックアップから該当するデータを読み出し、前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域に展開することを特徴とする情報処理装置。
【請求項２】
前記制御部は、前記仮想ドライブのデータが前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域に保持されているか否かを示す対応リストに基づいて前記判断を行い、
前記対応リストのうち、前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域に展開したデータについて、前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域に保持されている旨に更新することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、前記オペレーティングシステムからの前記仮想ドライブに対するライト要求時に、前記対応リストのうち、前記ライト要求に対応するデータが前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域に保持されている旨に更新することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記バックアップは、前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域のデータをセクタ単位でコピーしたものであることを特徴とする請求項１乃至請求項３のいずれかに記載の情報処理装置。
【請求項５】
前記制御部は、オペレーティングシステムの起動後に所定時間が経過すると、前記不揮発性記憶部におけるバックアップから所定のデータを読み出し、前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域に展開する処理を実行することを特徴とする請求項１乃至請求項４のいずれかに記載の情報処理装置。
【請求項６】
前記制御部は、待機状態時に前記不揮発性記憶部におけるバックアップから所定のデータを読み出し、前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域に展開する処理を実行することを特徴とする請求項１乃至請求項５のいずれかに記載の情報処理装置。
【請求項７】
前記制御部は、読み出した前記所定のデータから前記仮想ドライブの論理フォーマットを示す管理情報を解析し、前記仮想ドライブが前記揮発性記憶部上で使用している記憶領域に対応するデータのみを、前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域に展開する処理を実行することを特徴とする請求項５または請求項６に記載の情報処理装置。
【請求項８】
揮発性記憶部と、不揮発性記憶部と、を備えた情報処理装置が実行するプログラムであって、
オペレーティングシステムの起動時に、前記揮発性記憶部の一部の領域を前記オペレーティングシステムに仮想ドライブとしてマウントさせる仮想ドライブ設定処理と、
前記オペレーティングシステムの終了時に、前記仮想ドライブのデータを前記不揮発性記憶部にバックアップするバックアップ処理と、を実行し、
前記オペレーティングシステムからの前記仮想ドライブに対するリード要求時に、当該要求がなされたデータが前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域に保持されているか否かを判断し、要求がなされたデータが前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域に保持されていないと判断した場合に、前記不揮発性記憶部におけるバックアップから該当するデータを読み出し、前記オペレーティングシステムに前記仮想ドライブとしてマウントさせた領域に展開することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置およびプログラムに関し、特に起動時の処理に関する。
【背景技術】
【０００２】
従来、情報処理装置の起動時間を短縮する手法が提案されている。例えば、特許文献１には、デジタルカメラにおいて、起動のために必要な最低限のプログラムを読み出し、起動後に、所定の撮影モードを実現するために必要なプログラムを判断し、必要と判断したプログラムを読み出すことで、起動時に全てのプログラムを読み出すよりも起動時間を短縮する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−６５３５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１の様な技術では、以下の様な情報処理装置の起動時間を短縮することはできない。
【０００５】
すなわち、近年、高速な揮発性メモリ（ＲＡＭ）上の一部領域に仮想ドライブを設定して、ＯＳ（オペレーティングシステム）側に仮想的にＨＤＤとしてマウントさせることで、高速なＨＤＤとして利用するものが普及している。仮想ドライブ内のデータは、ＲＡＭ上に記憶されているため、終了時に仮想ドライブのイメージをＨＤＤにバックアップしておき、次回起動時に、ＨＤＤにバックアップした仮想ドライブのイメージをＲＡＭに展開し、仮想ドライブの内容を復元する処理が行われている。ここで、復元にはＨＤＤからデータを読み出す必要があるため、仮想ドライブの容量が大きくなると、この復元の時間が長くなり、ＯＳの起動完了前（ユーザに操作を解放する前）に仮想ドライブのマウントを行うと、ＯＳの起動時間が長くなるという課題がある。
【０００６】
そこで、この発明は、仮想ドライブを不揮発性の記憶部にバックアップする場合において、オペレーティングシステムの起動時間を短縮することができる情報処理装置、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置は、制御部と、揮発性記憶部と、不揮発性記憶部と、を備えている。制御部は、オペレーティングシステム（ＯＳ）の起動時に、揮発性記憶部の一部の領域をＯＳに仮想ドライブとしてマウントさせる仮想ドライブ設定処理と、ＯＳの終了時に、仮想ドライブのデータを不揮発性記憶部にバックアップするバックアップ処理と、を実行する。そして、制御部は、ＯＳからの仮想ドライブに対するリード要求時に、当該要求がなされたデータがＯＳに仮想ドライブとしてマウントさせた領域に保持されているか否かを判断し、要求がなされたデータがＯＳに仮想ドライブとしてマウントさせた領域に保持されていないと判断した場合に、不揮発性記憶部におけるバックアップから該当するデータを読み出し、ＯＳに仮想ドライブとしてマウントさせた領域に展開することを特徴とする。
【０００８】
つまり、本発明の情報処理装置は、ＯＳの起動時に、まず揮発性記憶部（ＲＡＭ）上の一部領域に仮想ドライブを設定してＯＳ側にマウントさせる処理を行うが、従来の様にバックアップからデータを読み出さずにＯＳからのアクセス（リード要求）を待つ状態とする。これにより、ＯＳの起動時に復元処理を行うことがなく、不揮発性記憶部（ＨＤＤ等）へアクセスすることがなくなるため、速やかなＯＳの起動を実現することができる。ただし、このままでは実際にリード要求がなされたとしても、仮想ドライブとして確保したＲＡＭ上の領域には何もデータがない（未フォーマットと同じ）状態であるため、リード要求に対応するデータを読み出すことができない。そこで、制御部は、リード要求がなされたデータについて、ＲＡＭ上に保持されていないと判断した場合に、バックアップからデータを読み出し、ＲＡＭに展開する。このように、実際に要求がなされた一部の領域のみＨＤＤ等の不揮発性記憶部から読み出す処理を行うことで、ＯＳの起動時間を短縮しながらも適切なアクセスを実現することができる。
【０００９】
なお、ＲＡＭ上にデータが保持されているか否かの判断は、対応リストに基づいて行う。対応リストには、仮想ドライブとして確保したＲＡＭ上の全領域について、データが保持されているか否かを記載しておく。ＯＳが起動した直後は全てのデータがＲＡＭ上に保持されていないとされる。一度バックアップからデータを読み出し、ＲＡＭに展開した場合は、以後、不揮発性記憶部からデータを読み出す必要がないため、ＲＡＭ上にデータが保持されている旨に更新する。また、ライト要求がなされ、ＲＡＭ上にデータが書き込まれた場合にも、ＲＡＭ上にデータが保持されている旨に更新する。
【００１０】
なお、バックアップ処理は、ＲＡＭ上に記憶されている各種データのうち、仮想ドライブとして割り当てた領域内の全てのデータをセクタ単位で不揮発性記憶部にコピーして記憶する処理であり、対応リストもセクタ単位で記載することで、ＲＡＭと不揮発性記憶部を１対１に対応させることが望ましい。
【００１１】
また、上述のように、実際にリード要求がなされた一部の領域のみ不揮発性記憶部から読み出す処理を行う場合、ＯＳの起動後の最初のリード要求時にはＲＡＭよりも低速の不揮発性記憶部にアクセスする必要が生じる。そこで、制御部は、起動後に所定時間が経過すると、不揮発性記憶部におけるバックアップから所定のデータを（例えば先頭のセクタから順に）読み出し、揮発性記憶部に展開する処理を実行することが望ましい。
【００１２】
また、待機状態（ＣＰＵがアイドル状態である）時に不揮発性記憶部におけるバックアップから所定のデータを読み出し、揮発性記憶部に展開する態様であってもよい。
【００１３】
さらに、制御部は、読み出した前記所定のデータから前記仮想ドライブの論理フォーマットを示す管理情報を解析し、前記仮想ドライブが前記揮発性記憶部上で使用している記憶領域に対応するデータのみを、前記揮発性記憶部に展開する処理を実行することが望ましい。この場合、仮想ドライブとして確保していた全領域（全セクタ）ではなく、実際にＲＡＭ上に書き込んで使用していた領域だけがバックアップイメージから展開されるため、ＲＡＭに展開する時間を短縮することができ、ＲＡＭの容量を無駄に消費することもない。
【発明の効果】
【００１４】
この発明によれば、仮想ドライブのデータをバックアップする場合において、オペレーティングシステムの起動時間を短縮することができる。
【図面の簡単な説明】
【００１５】
【図１】情報処理装置の主要構成を示すブロック図である。
【図２】情報処理装置の機能ブロック図である。
【図３】セクタ対応リストの例を示す図である。
【図４】仮想ドライブ有効時の動作を示すフローチャートである。
【図５】リード要求時の動作を示すフローチャートである。
【図６】ライト要求時の動作を示すフローチャートである。
【図７】アイドル時に展開する場合の動作を示すフローチャートである。
【図８】所定時間経過後に展開する場合の動作を示すフローチャートである。
【発明を実施するための形態】
【００１６】
図１は、本発明の情報処理装置（ＰＣ１）の主要構成を示すブロック図である。ＰＣ１は、ＵＳＢやＶＧＡ端子等の各種入出力インタフェース（Ｉ／Ｆ）１２、バス１４、ＣＰＵ１３、内蔵物理ドライブ１５、およびＲＡＭ１６を備えており、一般的なＰＣの構成となっている。Ｉ／Ｆ１２、ＣＰＵ１３、内蔵物理ドライブ１５、およびＲＡＭ１６は、それぞれバス１４を介して接続されている。
【００１７】
Ｉ／Ｆ１２には、マウスやキーボード等のユーザが操作入力を行う操作部１１や表示器（ＬＣＤ）２が接続されている。Ｉ／Ｆ１２は、操作部１１から入力される操作信号をＣＰＵ１３に出力したり、ＣＰＵ１３から入力される画面表示用の映像信号を表示器２に出力したりする。
【００１８】
内蔵物理ドライブ１５は、ＨＤＤやＳＳＤ（Solid State Drive）等からなる不揮発性の記憶部であり、オペレーティングシステム（ＯＳ）やアプリケーション等のプログラムを記憶している。
【００１９】
ＣＰＵ１３は、内蔵物理ドライブ１５に記憶されているＯＳやアプリケーション等のプログラムを揮発性の記憶部（ワークメモリ）であるＲＡＭ１６に展開し、種々の動作を行う。これにより、本発明における制御部（プログラム）の動作を実現する。本実施形態においては、ＯＳの例としてＷｉｎｄｏｗｓ（登録商標）を用いる。
【００２０】
Ｗｉｎｄｏｗｓ（登録商標）では、ＰＣ１を起動したとき、ＣＰＵ１３は、まず操作部１１等の各種周辺機器のドライバを読み込み、各種周辺機器をマウントする。操作部１１等の基本的な周辺機器のマウントが完了すると、起動を完了したとして、ユーザの操作を受け付ける状態となる。
【００２１】
また、本実施形態のＰＣ１において、ＣＰＵ１３は、ＲＡＭ１６に割り当てた一部領域をＯＳに仮想ドライブ１６１としてマウントさせる。この動作は、ＰＣ１の起動（ＯＳの起動）に伴って起動するプログラム（仮想ドライブ作成プログラム）によって実現される。
【００２２】
仮想ドライブ１６１は、ＯＳ側からは物理ドライブ（ＨＤＤ）と同様に扱われる。仮想ドライブ１６１は、ＯＳの起動が完了してユーザの操作を受け付ける状態となった後にマウントさせる態様も可能であるが、仮に、仮想ドライブ１６１をマウントする前にＯＳ側から仮想ドライブ１６１へのアクセス要求を行おうとしても、対応するドライブが存在しないことになるため、データが読み出せない状態となる。そのため、ＣＰＵ１３は、マウスやキーボード等の基本的な周辺機器と同様に、起動完了前に先に仮想ドライブ１６１をマウントさせる。
【００２３】
仮想ドライブ１６１は、ＯＳ側からはＨＤＤと同様に扱われるものであるが、本来は揮発性の記憶部であるＲＡＭ１６上に展開されたものである。したがって、ＰＣ１の電源がオフされると仮想ドライブ１６１内のデータは全て失われる。そこで、本実施形態のＰＣ１では、終了動作時に仮想ドライブ１６１をバックアップイメージ１５１として内蔵物理ドライブ１５にバックアップする処理を行う。このバックアップ処理は、ＲＡＭ１６上に記憶されている各種データのうち、仮想ドライブ１６１に割り当てた領域内の全てのデータをセクタ単位で内蔵物理ドライブ１５にコピーして記憶する処理である。
【００２４】
ＣＰＵ１３は、次回起動時に仮想ドライブ１６１をＯＳにマウントさせた後、バックアップイメージ１５１を再びＲＡＭ１６上の同じ領域にコピーすることで仮想ドライブ１６１の内容を終了時の状態に復元することができる。
【００２５】
ここで、バックアップイメージ１５１は、内蔵物理ドライブ１５に記憶されているため、ＲＡＭ１６への復元時間は内蔵物理ドライブ１５の転送速度に依存する。そのため、仮想ドライブ１６１に割り当てた容量が大きくなると、復元時間が長くなる。したがって、起動完了前に先に仮想ドライブ１６１をマウントしてバックアップイメージ１５１の内容を復元する場合、ＯＳの起動時間が長くなってしまう。
【００２６】
そこで、本実施形態のＰＣ１では、仮想ドライブ１６１をマウントしてもバックアップイメージ１５１を読み出さずに、実際にＯＳからアクセス要求がなされた一部の領域のみＲＡＭ１６に展開する処理を行うことで、起動時間を短縮しながらも適切なアクセスを実現する。
【００２７】
以下、図２〜図８を参照してＰＣ１の詳細な動作について説明する。
【００２８】
まず、ＰＣ１が起動すると、図２の機能ブロック図に示す様に、ＯＳ２１および仮想ドライブ作成プログラム２２がＣＰＵ１３により起動される。仮想ドライブ作成プログラム２２は、ＯＳ２１の起動に伴って起動される。
【００２９】
ＣＰＵ１３が仮想ドライブ作成プログラム２２を起動すると、仮想ドライブ作成プログラム２２は、ＲＡＭ１６上の所定領域に仮想ドライブ１６１を設定し、ＯＳ２１側に内蔵物理ドライブとしてマウントさせる処理を行う。これにより、ＯＳ２１の起動が完了する。
【００３０】
また、仮想ドライブ作成プログラム２２は、セクタ判定部２２１およびセクタ対応リスト２２２を実現する。セクタ判定部２２１は、ＯＳ２１から仮想ドライブ１６１にアクセス要求がなされた場合に動作する機能部である。セクタ判定部２２１は、ＯＳ２１から仮想ドライブ１６１にアクセス要求がなされた場合、セクタ対応リスト２２２を参照し、アクセス要求がなされたセクタについて、ＲＡＭ１６上に対応するデータが保持されているか否かを判断する。
【００３１】
図３は、セクタ対応リスト２２２の例を示す図である。セクタ対応リスト２２２は、ＲＡＭ１６に確保した仮想ドライブ１６１の先頭セクタから順に全てのセクタについて、ＲＡＭ１６上にデータが保持されているか否か（「データなし」または「データあり」）を記載している。セクタ対応リスト２２２は、仮想ドライブ作成プログラム２２が起動して仮想ドライブ１６１がマウントされるタイミングで作成される。すなわち、図４のフローチャートに示すように、ＣＰＵ１３は、仮想ドライブ作成プログラム２２の設定が「リード要求時にセクタ単位で読み込み」に設定されていると（ｓ１１）、仮想ドライブ１６１をマウントさせるだけで、バックアップイメージ１５１を読み出さないため、全てのセクタについて「データなし」とする（ｓ１２）。
【００３２】
なお、ｓ１１の判断は、ユーザが設定ユーティリティ等を起動し、このユーティリティ上で指定する。仮にユーティリティ上で「有効時に全て読み込み」に設定した場合、ＣＰＵ１３は、仮想ドライブ１６１をマウントさせた後、バックアップイメージ１５１の全セクタをＲＡＭ１６上に展開する（ｓ１３）。この場合、セクタ対応リスト２２２には、全てのセクタについて「データあり」とする（ｓ１４）。
【００３３】
なお、セクタ対応リスト２２２は、ＲＡＭ１６上の一部領域に作成してもよいし、内蔵物理ドライブ１５等の他の記憶部に作成してもよい。
【００３４】
そして、セクタ判定部２２１は、ＯＳ２１から仮想ドライブ１６１にリード要求がなされた場合、図５のフローチャートに示す動作を行う。
【００３５】
まず、セクタ判定部２２１は、上述のように、「リード要求時にセクタ単位で読み込み」に設定されているか、「有効時に全て読み込み」に設定されているかを判断する（ｓ３１）。「有効時に全て読み込み」に設定されている場合、バックアップイメージ１５１のデータは全てＲＡＭ上に展開済みであるため、ＯＳ２１には、リード要求に対応するデータをＲＡＭ１６から読み出させる（ｓ３１）。
【００３６】
「リード要求時にセクタ単位で読み込み」に設定されている場合、セクタ判定部２２１は、ＯＳ２１からリード要求がなされたセクタについてセクタ対応リスト２２２を参照する（ｓ３３）。該当セクタのデータがＲＡＭ１６上に保持されていない（データなしと記載されている）場合、バックアップイメージ１５１から対応するデータを読み出し、ＲＡＭ１６に展開する処理を行う（ｓ３４）。
【００３７】
バックアップイメージ１５１は、上述の様にＲＡＭ１６上に記憶されている各種データのうち、仮想ドライブ１６１に割り当てた領域内の全てのデータをセクタ単位で内蔵物理ドライブ１５にコピーしたものであるため、セクタ対応リスト２２２に記載されているＲＡＭ１６の各セクタと、バックアップイメージ１５１における各セクタとは、１対１に対応する。したがって、セクタ判定部２２１は、バックアップイメージ１５１のうち、ＯＳ２１からリード要求がなされたセクタのデータを読み出し、ＲＡＭ１６に展開する処理を行う。これにより、ＯＳ２１は、ＲＡＭ１６上の各セクタからデータを読み出すことになる（ｓ３２）。
【００３８】
セクタ判定部２２１は、バックアップイメージ１５１からデータを読み出し、ＲＡＭ１６に展開する処理を行った場合、セクタ対応リスト２２２のうち、該当セクタの記載を「データあり」に変更する（ｓ３５）。その後、ＯＳ２１から同じセクタのリード要求がなされた場合、セクタ対応リスト２２２にはＲＡＭ１６上に保持されている（「データあり」と記載されている）ため、バックアップイメージ１５１からデータを読み出すことはなく、ＯＳ２１はＲＡＭ１６上の各セクタからデータを読み出す（ｓ３３→ｓ３２）。よって、一度リード要求がなされたセクタについては、以後、同じデータのリード要求がなされたとしても、ＲＡＭ１６から該当データを読み出すことになるため、データ転送速度は、ＲＡＭ１６の転送速度に依存することになり、内蔵物理ドライブ１５の転送速度よりも高速にデータ転送を行うことができる。
【００３９】
次に、図６は、ライト要求時の動作を示すフローチャートである。セクタ判定部２２１は、ＯＳ２１から仮想ドライブ１６１にライト要求がなされた場合、対応データをＲＡＭ１６上に書き込み（ｓ５１）、書き込んだセクタについて「データあり」に変更する処理を行う（ｓ５２）。仮想ドライブ１６１（ＲＡＭ１６上）にデータが書き込まれた場合、以後はＲＡＭ１６からデータを読み出すことが可能であるため、その後、ＯＳ２１から同じセクタのリード要求がなされた場合にＲＡＭ１６上の各セクタからデータを読み出すように設定する（図５のｓ３３→ｓ３２の動作となる）。
【００４０】
以上のようにして、本実施形態のＰＣ１では、仮想ドライブ１６１をマウントしても即座にバックアップイメージ１５１を読み出さずに、実際にＯＳからアクセス要求がなされた一部の領域のみＲＡＭ１６に展開する処理を行うことで、起動時間を短縮しながらも適切なアクセスを実現することができる。
【００４１】
ただし、上述の動作では、最初のリード要求時に内蔵物理ドライブ１５からデータを読み出すことになるため、最初のリード要求に対しては内蔵物理ドライブ１５の転送速度に依存し、ＲＡＭ転送速度よりも遅くなってしまう。
【００４２】
そこで、以下のようにして実際のリード要求がなされる前に予めバックアップイメージ１５１からデータを読み出す動作を行う態様とすることが考えられる。
【００４３】
図７は、ＣＰＵアイドル時にバックアップイメージ１５１からデータを読み出す場合の動作を示すフローチャートである。
【００４４】
まず、仮想ドライブ作成プログラム２２は、ＣＰＵの状態を判断する（ｓ７１）。すなわち、ＣＰＵの負荷（使用率）が所定の閾値未満である等、アイドル状態になっているか否かを確認する。ビジー状態である場合、アイドル状態になるまで待機する。
【００４５】
アイドル状態であると判断した場合、先頭セクタから順にバックアップイメージ１５１のデータをＲＡＭ１６に展開する（ｓ７２）。すなわち、セクタ対応リスト２２２を参照し、各セクタの状態が「データあり」であるか、「データなし」であるかを確認し（ｓ７３）、「データなし」と記載されていた場合にバックアップイメージ１５１から対応セクタのデータを読み出す（ｓ７４）。そして、仮想ドライブ作成プログラム２２は、読み出したセクタについて、セクタ対応リスト２２２を「データあり」に変更する（ｓ７５）。
【００４６】
この様な処理をセクタアドレスが終了するまで繰り返す（ｓ７６）。セクタアドレスが終了していない場合は、もう一度ＣＰＵの状態を判断し（ｓ７７）、アイドル状態であると判断した場合に、次セクタからセクタ対応リスト２２２の参照から処理を繰り返す。
【００４７】
一方、図８は、所定時間経過後にバックアップイメージ１５１からデータを読み出す場合の動作を示すフローチャートである。
【００４８】
まず、仮想ドライブ作成プログラム２２は、起動してから予め設定された時間が経過したか否かを判断する（ｓ９１）。この所定時間は、上述のユーティリティ上でユーザにより指定される。ユーザが何も設定していない場合は、例えば３０秒程度の所定時間が設定されている。
【００４９】
所定時間が経過したと判断した場合、先頭セクタから順にバックアップイメージ１５１のデータをＲＡＭ１６に展開する（ｓ９２）。図７と同様に、セクタ対応リスト２２２を参照し、各セクタの状態が「データあり」であるか、「データなし」であるかを確認し（ｓ９３）、「データなし」と記載されていた場合にバックアップイメージ１５１から対応セクタのデータを読み出す（ｓ９４）。また、仮想ドライブ作成プログラム２２は、読み出したセクタについて、セクタ対応リスト２２２を「データあり」に変更する（ｓ９５）。
【００５０】
この様な処理をセクタアドレスが終了するまで繰り返す（ｓ９６）。セクタアドレスが終了していない場合は、次セクタからセクタ対応リスト２２２の参照から処理を繰り返す。
【００５１】
このように、ＣＰＵがアイドル状態であるとき、あるいは起動後に所定時間が経過した後に予めバックアップイメージ１５１からデータを読み出しておくことで、最初のリード要求に対しても内蔵物理ドライブ１５にアクセスせずにＲＡＭ１６上からデータを読み出すようにすることも可能である。
【００５２】
なお、図７に示した動作と、図８に示した動作とを組み合わせてもよい。すなわち、起動後に所定時間が経過し、かつＣＰＵ１３がアイドル状態である場合に限り、バックアップイメージ１５１から読み出す動作とする態様も可能である。
【００５３】
なお、上述の例では、全てのセクタについてバックアップイメージ１５１からＲＡＭ１６に展開する例を示したが、実際にＲＡＭ１６上に書き込みがなされたセクタだけをバックアップイメージ１５１から展開する態様も可能である。
【００５４】
すなわち、仮想ドライブ作成プログラム２２は、バックアップイメージ１５１から読み出し済のデータのうち、仮想ドライブ１６１の論理フォーマットを示す管理情報を解析する。管理情報を解析することで、仮想ドライブ１６１のうち、実際にどの領域が書き込み使用されているのかを判断することができる。したがって、仮想ドライブ作成プログラム２２は、管理情報を解析し、仮想ドライブ１６１として確保されている領域のうち、実際にＲＡＭ１６上で使用されている領域に対応するデータのみをバックアップイメージ１５１から読み出し、ＲＡＭ１６上に展開する。これにより、仮想ドライブ１６１として確保していた全領域（全セクタ）ではなく、実際にＲＡＭ１６上に書き込んで使用していた領域だけがバックアップイメージ１５１から展開されるため、ＲＡＭ１６に展開する時間を短縮することができる。
【００５５】
また、上記管理情報を読み出すことで、仮想ドライブ１６１の容量を動的に変化させることも可能である。例えば、仮想ドライブ作成プログラム２２は、管理情報を読み出し、仮想ドライブ１６１で使用している領域（書き込み済の領域）を少し超える程度の領域を仮想ドライブ１６１として割り当て、所定の空き領域を確保する。例えば、実際に使用している領域が５００ＭＢ程度とすると、空き領域を５０ＭＢ程度として仮想ドライブ１１に割り当てる領域を５５０ＭＢとする。この空き容量は、ユーザが設定ユーティリティ等を起動し、このユーティリティ上で指定する。
【００５６】
その後、仮想ドライブ１６１に新たなデータの書き込みがなされ、使用している領域が大きくなると、仮想ドライブ１６１に割り当てる領域を増やし、仮想ドライブ１６１の容量を大きくする。例えば、新たに１０ＭＢのデータの書き込みがなされ、使用されている領域が５１０ＭＢとなると、仮想ドライブ１１に割り当てる領域を５６０ＭＢに変更する。また、データの消去がなされ、使用している領域が小さくなった場合には、即座に割り当てる領域を減らし、仮想ドライブ１６１の容量を小さくする。例えば、２０ＭＢのデータが消去され、使用されている領域が４９０ＭＢとなると、仮想ドライブ１１に割り当てる領域を５４０ＭＢに変更する。これにより、仮想ドライブ１６１の空き領域を一定に保ち、リアルタイムに仮想ドライブ１６１の容量を変化させることができる。ただし、仮想ドライブ１６１の容量を大きくする場合、ＯＳが使用するＲＡＭの容量分を考慮して、ある程度の限界を設定しておくことが望ましい。例えば、仮想ドライブ１６１の容量の上限値を設定しておき、上限値に達した時点で仮想ドライブ１６１の容量増大を中止する、あるいは、ＲＡＭ１６の空き容量に下限値を設定しておき、ＲＡＭ１６の空き容量が下限値に達した時点で仮想ドライブ１６１の容量増大を中止する、等である。
【００５７】
なお、仮想ドライブ１６１に割り当てる領域は、リアルタイムに変更する必要はない。例えば、仮想ドライブ作成プログラム２２は、終了動作時に仮想ドライブ１６１の空き容量を確認し、設定された所定の空き容量となるように、次回起動時に仮想ドライブ１６１をマウントさせる。
【００５８】
以上より、ユーザの使用状況に応じて仮想ドライブ作成プログラム２２が自動的に仮想ドライブ１６１の容量を調整することになり、割り当てされただけで使用されずに無駄になるＲＡＭ領域を低減し、かつＯＳ側の動作を阻害することもない動作を実現することができる。
【００５９】
なお、終了時のバックアップは、仮想ドライブ１６１の内容を全てコピーし、新たにバックアップイメージ１５１を作成する態様に限らず、仮想ドライブ１６１のうち、新たに書き込みされたデータだけを部分的にコピーし、バックアップイメージ１５１を更新することにより、終了時間を短縮することも可能である。
【００６０】
なお、本実施形態においては、ＯＳとしてＷｉｎｄｏｗｓ（登録商標）を示したが、他のＯＳ（例えばＬｉｎｕｘ等）においても同様である。
【符号の説明】
【００６１】
１…ＰＣ
２…表示器
１１…操作部
１２…各種入出力インタフェース
１３…ＣＰＵ
１４…バス
１５…内蔵物理ドライブ
１５１…バックアップイメージ
１６…ＲＡＭ
１６１…仮想ドライブ
【図１】
0005685070.tif 000002
【図２】
0005685070.tif 000003
【図３】
0005685070.tif 000004
【図４】
0005685070.tif 000005
【図５】
0005685070.tif 000006
【図６】
0005685070.tif 000007
【図７】
0005685070.tif 000008
【図８】
0005685070.tif 000009