JP4122998B2 - 情報処理装置およびプログラム制御方法 - Google Patents
情報処理装置およびプログラム制御方法 Download PDFInfo
- Publication number
- JP4122998B2 JP4122998B2 JP2003038278A JP2003038278A JP4122998B2 JP 4122998 B2 JP4122998 B2 JP 4122998B2 JP 2003038278 A JP2003038278 A JP 2003038278A JP 2003038278 A JP2003038278 A JP 2003038278A JP 4122998 B2 JP4122998 B2 JP 4122998B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- data
- cluster chain
- file
- hard disk
- 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
Links
Images
Description
【発明の属する技術分野】
本発明は、オペレーティングシステム等のプログラムに基づいて各種情報処理を行う情報処理装置、および、このような情報処理装置によるプログラム制御方法に関する。
【0002】
【従来の技術】
現在普及しているコンピュータには、例えばWindows(登録商標) CE(Windows(登録商標)は、マイクロソフト社の登録商標)などのオペレーティングシステム(以下、単にOSと呼ぶこともある。)と称される基本的なプログラムが搭載されており、各種のソフトウェア(プログラム)は、このOSに対応し動作するよう形成されているのが通常である。このようなコンピュータを立ち上げると、BIOS(Basic Input Output System)がブートローダをRAMにコピーして起動させ、このブートローダがハードディスクに記憶されたOSイメージファイルをRAMにロードすることで、OSは起動され動作可能となる。
【0003】
従来のブートローダによるOSイメージのロード処理は、ファイルアロケーションテーブル(File Allocation Table;単にFATと呼ぶ。)を終始参照することで実行されている。しかしながら、FATを参照したロード処理は、参照するデータ量の関係上、さほど高速に実行できるものではなく、そのため、OSの起動時間の短縮を妨げる一要因となっていた。
【0004】
このような状況を改善するための発明には、例えば、下記の特許文献1に開示されたプログラム制御方法がある。当該プログラム制御方法は、通常は起動処理しか行わない(ブート)ローダにOSの終了処理も行わせるように構成されたものである。より詳しくは、OSの起動中に、コンピュータ各部のパラメータ、OSのエントリーアドレス、OSイメージファイルのクラスタチェーン情報など、次回の起動に必要なデータを含んだファイル(同文献では、コンテキストと呼ばれている。)を作成しておき、次回の起動時に当該ファイルを参照してロード処理を行うように構成されている。
【0005】
また、特許文献2に開示された情報処理装置は、電源をオフにして処理を終了する時に、RAMの内容をOSが管理できる形式のファイル(同文献では、スナップショット(ファイル)と呼ばれている。)として保存しておき、OSの起動時にこのスナップショットをRAMにロードする構成を有する。
【0006】
【特許文献1】
特開2002−82808号公報(段落〔0030〕、〔0035〕および〔0036〕、第2図)
【特許文献2】
特再WO00/54133号公報(第18−19頁、第2図)
【0007】
【発明が解決しようとする課題】
しかしながら、これら従来の発明においては、OSのクラスタチェーン情報を取得する際には常にFATを参照しなければならないため、OSの起動の高速化をテーマとする上での根本的な解決には至っていないと言わざるを得ない。
【0008】
本発明は、このような現状を打破すべく考案されたもので、FATへのアクセスを軽減させることによって、OSなどのプログラムの起動の高速化を実現することが可能な情報処理装置およびプログラム制御方法を提供することをその目的とする。
【0009】
【課題を解決するための手段】
上記目的を達成するために、請求項1に記載の発明は、オペレーティングシステムを含む、各種のプログラムを記憶するハードディスクドライブと、前記プログラムの実行時に展開されるデータを記憶する揮発性記憶手段と、を備え、ファイルアロケーションテーブルを参照して、前記ハードディスクドライブに記憶された前記プログラムを前記揮発性記憶手段にロードすることが可能な情報処理装置であって、前記揮発性記憶手段に記憶されている前記データと、前記データのクラスタチェーン情報とを、前記オペレーティングシステムの終了処理において前記ハードディスクドライブにセーブするセーブ手段と、ファイルアロケーションテーブル又は前記セーブ手段によりセーブされた前記クラスタチェーン情報のいずれかを参照して、前記ハードディスクドライブに記憶されている前記データを前記揮発性記憶手段にロードするロード手段と、を備え、前記クラスタチェーン情報は、前記データのクラスタチェーンが前記ハードディスクドライブに記憶される位置を示す第1の位置情報と、当該クラスタチェーンに対応するファイルアロケーションテーブル内のデータから求められるチェックサム情報を含む第2の位置情報と、を含み、前記ロード手段は、前記第2の位置情報の前記チェックサム情報と、前記データが前記ハードディスクドライブに実際に記憶されている位置を示すファイルアロケーションテーブル内のデータから求められたチェックサム情報とを比較して同一であるか否かを、前記データの前記クラスタチェーンごとに判断する第1の判断手段を含み、前記第1の判断手段により、前記第2の位置情報の前記チェックサム情報と、前記実際に記憶されている位置を示すファイルアロケーションテーブル内のデータから求められたチェックサム情報とは同一であると判断された前記クラスタチェーンについては、前記第1の位置情報を参照して前記揮発性記憶手段にロードし、前記第1の判断手段により、前記第2の位置情報の前記チェックサム情報と、前記実際に記憶されている位置を示すファイルアロケーションテーブル内のデータから求められたチェックサム情報とは相違すると判断された前記クラスタチェーンについては、前記実際に記憶されている位置を示すファイルアロケーションテーブルを参照して前記揮発性記憶手段にロードする、ことを特徴とする。
【0010】
上記目的を達成するために、請求項2に記載の発明は、前記セーブ手段は、前記ロード手段により前記オペレーティングシステムを形成するプログラムがロードされる前記揮発性記憶手段の第1の記憶領域に記憶されているデータを、第1のファイルとして前記ハードディスクドライブにセーブし、 前記第1の記憶領域を除く前記揮発性記憶手段の記憶領域からなる第2の記憶領域に記憶されているデータを、第2のファイルとして前記ハードディスクドライブにセーブするとともに、前記第1のファイルの前記クラスタチェーン情報と、前記第2のファイルの前記クラスタチェーン情報とを、前記第2のファイルに含んで前記ハードディスクドライブにセーブし、前記ロード手段は、前記第1のファイルの前記クラスタチェーン情報と、前記第2のファイルの前記クラスタチェーン情報とを参照して、前記オペレーティングシステムを形成するプログラムを前記揮発性記憶手段にロードする、ことを特徴とする。
【0013】
上記目的を達成するために、請求項3に記載の発明は、オペレーティングシステムを含む、各種のプログラムを記憶するハードディスクドライブと、前記プログラムの実行時に展開されるデータを記憶する揮発性記憶手段と、を備え、ファイルアロケーションテーブルを参照して、前記ハードディスクドライブに記憶された前記プログラムを前記揮発性記憶手段にロードすることが可能な情報処理装置であって、前記揮発性記憶手段に記憶されている前記データと、前記データの各クラスタチェーンが前記ハードディスクドライブに記憶される位置を示すクラスタチェーン情報と、を前記ハードディスクドライブにセーブするセーブ手段と、ファイルアロケーションテーブル又は前記セーブ手段によりセーブされた前記クラスタチェーン情報のいずれかを参照して、前記ハードディスクドライブに記憶されている前記データを前記揮発性記憶手段にロードするロード手段と、を備え、前記セーブ手段は、前記揮発性記憶手段に記憶されている前記データの各クラスタチェーンの容量が所定の容量より大きいか否かを判断する第2の判断手段を含み、前記第2の判断手段によって前記所定の容量より大きな容量を有すると判断された前記クラスタチェーンに対しては、前記データと所定の情報とを前記ハードディスクドライブにセーブし、前記第2の判断手段によって前記所定の容量を超えない容量を有すると判断された前記クラスタチェーンに対しては、前記データと前記クラスタチェーン情報とを前記ハードディスクドライブにセーブし、前記ロード手段は、前記セーブ手段により前記所定の情報がセーブされた前記クラスタチェーンについては、前記ファイルアロケーションテーブルを参照して前記揮発性記憶手段にロードし、前記セーブ手段により前記クラスタチェーン情報がセーブされた前記クラスタチェーンについては、前記クラスタチェーン情報を参照して前記揮発性記憶手段にロードする、ことを特徴とする。
【0014】
上記目的を達成するために、請求項4に記載の発明は、オペレーティングシステムを含む、各種のプログラムをハードディスクドライブに記憶し、前記プログラムの実行時に展開されるデータを揮発性記憶手段に記憶させるステップを備える情報処理装置によるプログラム制御方法であって、前記揮発性記憶手段に記憶されている前記データと、前記データのクラスタチェーン情報とを、前記オペレーティングシステムの終了処理において前記ハードディスクドライブにセーブするセーブステップと、ファイルアロケーションテーブル又は前記セーブステップでセーブされた前記クラスタチェーン情報のいずれかを参照して、前記ハードディスクドライブに記憶されている前記データを前記揮発性記憶手段にロードするロードステップと、を含み、前記クラスタチェーン情報は、前記データのクラスタチェーンが前記ハードディスクドライブに記憶される位置を示す第1の位置情報と、当該クラスタチェーンに対応するファイルアロケーションテーブル内のデータから求められるチェックサム情報を含む第2の位置情報と、を含み、前記ロードステップは、前記第2の位置情報の前記チェックサム情報と、前記データが前記ハードディスクドライブに実際に記憶されている位置を示すファイルアロケーションテーブル内のデータから求められたチェックサム情報とを比較して同一であるか否かを、前記データの前記クラスタチェーンごとに判断する第1の判断ステップを含み、前記第1の判断ステップにより、前記第2の位置情報の前記チェックサム情報と、前記実際に記憶されている位置を示すファイルアロケーションテーブル内のデータから求められたチェックサム情報とは同一であると判断された前記クラスタチェーンについては、前記第1の位置情報を参照して前記揮発性記憶手段にロードし、前記第1の判断ステップにより、前記第2の位置情報の前記チェックサム情報と、前記実際に記憶されている位置を示すファイルアロケーションテーブル内のデータから求められたチェックサム情報とは相違すると判断された前記クラスタチェーンについては、前記実際に記憶されている位置を示すファイルアロケーションテーブルを参照して前記揮発性記憶手段にロードする、ことを特徴とする。
【0015】
【発明の実施の形態】
【0016】
以下、図面を参照しながら、本発明の実施の形態の一例について詳細に説明する。
【0017】
〔第1の実施の形態〕
図1は、本発明に係る情報処理装置(コンピュータ)10のハードウェア構成の概略を示すブロック図である。情報処理装置10は、当該装置の全体制御を司るCPU(Central Processing Unit)11を中心として構成されている。
【0018】
情報処理装置10には、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ハードディスクドライブ(以下、単にHDDと記載する)14などの記憶装置が設けられている。ROM12には、OS起動を行うためのブートローダなどのCPU11が各種処理を実行するためのデータが記憶されている。また、RAM13は、情報処理装置10の主記憶装置で、プログラムの実行時に展開されるデータを記憶する。また、HDD14には、OSイメージファイルやアプリケーションファイルなど、各種のプログラム(ファイル)が格納されている。
【0019】
HDD14のアクセス単位はクラスタと呼ばれ、クラスタは所定数の連続したセクタから構成される。ファイルは複数のクラスタに分かれて記憶されており、ファイルアロケーションテーブル(FAT)と通常呼ばれている、各クラスタの位置情報を提供するマップを参照することで、当該ファイルにアクセスすることができる。
【0020】
FATと同様にクラスタの位置情報を示す情報に、本発明の特徴を成すクラスタチェーン情報がある(詳細は後述する)。このクラスタチェーン情報は、ファイルが記憶されているクラスタの連続部分を単位として作成され、各クラスタチェーンに含まれる各クラスタの位置を示す情報を含んでいる。クラスタチェーン情報を参照する場合、複数のクラスタからなるクラスタチェーンを一度に読み込むことが可能であるので、クラスタをひとつひとつ読み込む必要のあるFATよりも高速で読み込みを行うことができる。
【0021】
さらに、情報処理装置10には、画像を表示するための表示手段やユーザーが操作等の入力を行うための入力手段などのユーザーインターフェイスが設けられている。上記表示手段は、画像データの出力制御を行うビデオコントローラ15と、このビデオコントローラ15から出力される画像データを基に画像を表示するディスプレイ16とを含んで構成されている。また、上記入力手段としては、キーボードやマウス等からなる入力装置17が接続されている。
【0022】
次に、以上のようなハードウェア構成を有する情報処理装置10の使用形態について説明する。
【0023】
情報処理装置10の電源スイッチ(不図示)をオンにして電源を投入すると、BIOSが起動し、ROM12に記憶されているブートローダ(単にローダともいう。)をRAM13にコピーして、ブートローダを起動する。以下、ブートローダによるOSイメージのロード処理(ローダ処理)について、図2に示すフローチャートを参照して説明する。なお、ブートローダおよびCPU11(以下、ブートローダ等とも言う。)は、本発明で言う「ロード手段」、「セーブ手段」、「切換手段」および「第1の判断手段」をそれぞれ構成する。
【0024】
また、以下に登場する「スナップショットファイル」の詳細事項については後述するが、このスナップショットファイルの先頭部分にはクラスタチェーン情報記憶領域が形成されており、当該領域にはクラスタチェーン情報が記憶されているものとして使用状態の説明を続ける。ここで言うクラスタチェーン情報は、OSイメージファイルのクラスタチェーン情報と、スナップショットファイルのクラスタチェーン情報とを含むものとする。
【0025】
ブートローダ等は、先ず、FATファイルをHDD14からRAMに転送し(S1)、スナップショットファイルがHDD14に格納されているか否かを判断する(S2)。スナップショットファイルが存在する場合(S2;Y)、ブートローダ等は、スナップショットファイルのクラスタチェーン情報記憶領域にアクセスし、当該領域の内容の有無を認識することで、クラスタチェーン情報が記録されているか否かを判断する(S3)。なお、(S2;Y)は、S2において「Y」が選択されたことを意味する(以下同様である。)。
【0026】
クラスタチェーン情報が記録されている場合(S3;Y)は、FATファイルのアクセスルールに従って、つまりFATを参照して、クラスタチェーン情報をRAM13に転送する(S4)。そして、ブートローダ等は、RAM13に転送されたクラスタチェーン情報とFATとを照合して、FATが更新されているか否か、即ち、ロード対象となるファイル(OSイメージファイル)が更新されているか否か判断を行う(S5)。この照合処理の詳細については後述する。
【0027】
ブートローダ等によってFATが更新されていないと判断されたとき(S5;N)は、RAM13上のOSイメージファイルのクラスタチェーン情報を参照して、OSイメージをHDD14からRAM13に転送し(S6)、同様にスナップショットファイルのクラスタチェーン情報を参照してスナップショットファイルをHDD14からRAM13に転送する(S7)。そして、OSのエントリポイントにジャンプして(S11)OSを起動し(S12)、ローダ処理を終了する。以上のフローを第1のプロセスと呼ぶこととする。
【0028】
次に第2のプロセスとして、クラスタチェーン情報とFATとの比較判断を行うステップにおいて、ブートローダ等によりFATが更新されていると判断された場合(S5;Y)におけるローダ処理について説明する。
【0029】
FATが更新されていると判断されたら(S5;Y)、更新されたFATを新たなクラスタチェーン情報としてクラスタチェーン情報記憶領域に上書きするとともに(S8)、FATファイルのアクセスルールに従って、OSイメージをRAM13に転送し(S10)、OSのエントリポイントにジャンプして(S11)OSを起動し(S12)、ローダ処理を終了する。
【0030】
また、第3のプロセスとして、ブートローダ等により、スナップショットファイルのクラスタチェーン情報記憶領域にクラスタチェーン情報が記録されていないものと判断された場合(S3;N)のローダ処理を説明する。
【0031】
クラスタチェーン情報記憶領域にクラスタチェーン情報が記録されていないと判断されると(S3;N)、FATファイルのアクセスルールに従って、スナップショットファイルをRAM13に転送し(S9)、OSイメージをRAM13に転送する(S10)。そして、OSのエントリポイントにジャンプし(S11)OSを起動して(S12)、ローダ処理を終了する。
【0032】
最後に、第4のプロセスを説明する。第4のプロセスは、例えば第1回目の起動時のように、HDD14にスナップショットファイルが存在しないケース(S2;N)に対応する。この場合、ブートローダ等は、FATファイルのアクセスルールに従ってOSイメージをRAM13へ転送し(S10)、OSのエントリポイントにジャンプして(S11)OSを起動し(S12)、ローダ処理を終了する。
【0033】
(スナップショットファイル)
ここで、図3および図4を参照しながら、情報処理装置10の上記使用形態において重要な位置を占めるスナップショットファイルの詳細について説明する。スナップショットファイルは、OSによって管理可能な形式の「スナップショット」と呼ばれるデータを含むファイルである。
【0034】
図3は、スナップショットファイルの作成プロセスを示すフローチャートである。なお、以下の説明では、スナップショットファイルはOSの終了処理において作成されるものとなっているが、例えばOSイメージがRAM13に展開している任意の時点など、その他のタイミングで作成処理を実行してもよい。
【0035】
OSの終了を選択する終了ボタン(不図示)をクリックするなどして、OSの終了要求があると(S21)、ブートローダは、スナップショットすべきRAM13の領域(スナップショット対象領域)を調査する(S22)。
【0036】
このとき、RAM13上のデータの構造を、OSイメージを記憶する領域(第1の記憶領域)と、OSイメージ以外のデータを記憶する領域(第2の記憶領域)とに分割すると、上記スナップショット対象領域は、上記第2の記憶領域に相当する。よって、ここでは、OSイメージ以外のデータをスナップショット対象データと呼称する。スナップショット対象データには、RAM13やHDD14などのパラメータ、OSのエントリアドレス、OSに渡すパラメータ、OSイメージファイルのクラスタチェーン情報など、次回のOSの起動に必要なデータが含まれている。
【0037】
以下、RAM13に記憶されているOSイメージとスナップショット対象データとをまとめてRAMデータと呼ぶこととする。
【0038】
なお、Windows(登録商標) CEでは、RAM13上のOSイメージは、単一の領域を形成して展開されるので、スナップショット対象領域の特定は容易である。
【0039】
スナップショット対象領域が調査により特定されると、ブートローダは、RAMデータのクラスタチェーン情報を作成して記憶するとともに(S23)、RAMデータをHDD14にセーブする(S24)。このとき、OSイメージは、OSイメージファイル(第1のファイル)としてセーブされ、スナップショット対象データは、スナップショットファイル(第2のファイル)としてセーブされる。また、スナップショットファイルの先頭部分には、所定の空き領域が形成されている。
【0040】
RAMデータのセーブが終了すると、ブートローダは、S23で作成したRAMデータのクラスタチェーン情報を、S24で形成された上記空き領域に書き込む(S25)。以上で、スナップショットファイルの作成処理は完了し、通常のOSの終了処理を経て、OSは終了される。
【0041】
このようなプロセスで生成されるスナップショットファイルは、その先頭に、RAMデータのクラスタチェーン情報、即ち、OSイメージファイルのクラスタチェーン情報およびスナップショットファイルのクラスタチェーン情報が記憶されている。なお、クラスタチェーン情報は、連続したクラスタチェーンごとに作成される。また、上記空き領域は、図2の説明中におけるクラスタチェーン情報記憶領域に相当する。
【0042】
次に、クラスタチェーン情報の構成内容について説明する。クラスタチェーン情報は、一つの連続したクラスタチェーンを示すデータと、FATにおけるこのクラスタチェーンに対応するデータとの関係を示す1つのデータエントリからなる。
【0043】
図4には、RAMデータの或るクラスタチェーンのクラスタチェーン情報20が示されている。クラスタチェーン情報20は、当該クラスタチェーンに関するデータ(第1の位置情報)として、先頭セクタアドレス21および連続セクタ数22を含み、また、当該FATに関するデータ(第2の位置情報)として、FATベリファイ用セクタアドレス23、FATの連続セクタ数24およびFATの先頭ワードのオフセット25、サイズ情報26およびチェックサム情報27を含んでいる。
【0044】
先頭セクタアドレス21には、当該クラスタチェーンの先頭のセクタアドレスが記憶されている。また、連続セクタ数22には、当該クラスタチェーンの連続するセクタ数が記憶されている。
【0045】
FATベリファイ用セクタアドレス23には、当該クラスタチェーンの先頭のFATにおけるセクタアドレスが記憶されている。また、FATの連続セクタ数24には、当該FATにおける連続するセクタ数が記憶されている。また、FATの先頭ワードのオフセット25には、当該FATのベリファイ先頭からのオフセット(距離)が記憶されている。ここで、「ベリファイ」とは、当該クラスタチェーンと当該FATとの照合処理を意味する。
【0046】
また、サイズ情報26には、クラスタチェーン情報20に含まれる上記FATに関するデータと、OSイメージファイルの実際の位置情報を示すFATファイルに含まれる当該クラスタチェーンに関するデータとを比較してそれらの同一性を判断するための(図2のS5参照)チェックサム演算に係るワード数が記憶されている。また、チェックサム情報27には、チェックサム演算の結果が記憶されている。なお、本実施形態では、クラスタチェーンとFATとの照合にチェックサムを用いているが、一般に、巡回符号積和演算を使用して当該照合処理を実行することができる。
【0047】
チェックサムによるクラスタチェーン情報とFATファイルとの照合処理は、チェックサム情報27と、FATファイル内の当該クラスタチェーンに対応するデータをワード単位で巡回符号積和演算した結果とを比較して行われる。比較の結果、両者が一致していれば、先頭セクタアドレス21および連続セクタ数22は有効とされ、クラスタチェーン情報20を参照した読み込みを実行する(図2のS5のNを選択する場合に対応する)。一方、不一致との結果を得た場合は、更新されたFATを新たなクラスタチェーン情報として上書きし(図2のS8)、FATを参照して読み込みを実行する(図2のS5のYを選択する場合に対応する)。
【0048】
この照合処理は、あらかじめ読み込んでおいたFATファイル内のデータをメモリとして見て、所定のオフセット(距離)に配置されたクラスタチェーンの内容を高速で比較することで実行される。このような高速処理により、FATの内容が更新されている場合の不安定な動作が回避される。
【0049】
また、図3のS24にあるように、スナップショットファイルを作成する際には、その先頭部分に空き領域が形成される。この空き領域は、ある所定の容量を有している。本実施形態においては、上記空き領域にクラスタチェーン情報20を所望の個数配列し、前記クラスタチェーン情報20の配列を参照することで対象ファイルの読み書きを行う際のハードディスクドライブ14に記録されている実体としてのデータの先頭位置、長さ及び読み込み順序を決定するための演算処理の簡略化、高速化を実現した。具体的には、各クラスタチェーン情報20は28バイトの容量を有し、先頭セクタアドレス21に8バイト、連続セクタ数22に2バイト、FATベリファイ用セクタアドレス23に8バイト、FATの連続セクタ数24に2バイト、FATの先頭ワードのオフセット25に2バイト、サイズ情報26に2バイト、そしてチェックサム情報27に4バイトがそれぞれ割り振られている。上記空き領域の容量は、各クラスタチェーン情報の容量とともに、セーブされるRAMデータのフラグメント状態などを考慮して適宜設定する。なお、当然ながら、各クラスタチェーン情報の容量は28バイトである必要はなく、また、クラスタチェーン情報を構成する各情報の容量も上記のものである必要もない。
【0050】
(作用)
以下、情報処理装置10の奏する作用について説明する。
【0051】
図2の説明中にある第1のプロセスでは、FATの参照は極力抑えられており、特にOSイメージおよびスナップショットファイルのロード処理はクラスタチェーン情報を参照して行われるので、ローダ処理の高速化が実現される。(Windows(登録商標) CEを使用したテストでは、FAT参照では10秒程度、第1のプロセスでは8秒程度と、ローダ処理時間は約2秒短縮された。)
【0052】
第2のプロセス、第3のプロセスおよび第4のプロセスでは、従来のようにFATファイルのアクセスルールにのみ従ってOSイメージをロードするので、ローダ処理時間の短縮は実現できない。
【0053】
したがって、可能な限り上記第1のプロセスを経由するように構成することが好ましい。例えば、(購入直後などの)第1回目のOS終了時に、図3に示すクラスタチェーン情報が書き込まれたスナップショットファイルの作成処理を実行し、第2回目の起動はこのクラスタチェーン情報を参照して行う。それ以後は、図2のS8に示すクラスタチェーン情報の上書きを行い、かつ、各終了時に図3に示す処理を実行する。
【0054】
したがって、従来はFATを参照してOSイメージをロードしていた区間のほぼ全てにおいて、クラスタチェーン情報を参照した直接のディスクアクセスを実行することが可能となるので、OSの高速起動を実現することが可能である。また、OSの起動に必要なデータを含んでいるスナップショットファイルのロードについても同様にクラスタチェーン情報を参照して行うことができ、起動の更なる高速化が図られる。
【0055】
特に、OSとしてWindows(登録商標) CEを使用する場合、OSイメージファイルのHDD14内での配置は固定されており、また、スナップショットファイルについても固定ファイルの使用が推奨されているので、恒常的なOSの起動の高速化を達成することが可能となる。
【0056】
また、スナップショットファイルを固定ファイルとしておけば、図2のS8でクラスタ情報を上書きする場合にも、FATを参照せずに、直接のディスクアクセスによるデータの更新処理を行うことができるので、処理の高速化を図ることが可能となる。
【0057】
さらに、本実施形態の情報処理装置10によれば、クラスタチェーン情報を参照した高速処理と、FATを参照した通常の処理とをクラスタチェーンごとに切り換えて行うことが可能である。スナップショットファイルの有無(図2のS2)やクラスタチェーン情報の有無(同図のS3)に対応する切り換えは当然であるが、図2のS5に示すように、更新されたクラスタチェーンのみをFAT参照した処理に切り換えることができるので、ローダ処理の短時間化および安定化を達成することが可能となる。
【0058】
〔第2の実施の形態〕
次に説明する本発明の第2の実施形態は、上記第1の実施形態の情報処理装置10に一つの機能を付加したものである。したがって、付加する機能の要点についてのみ説明する。
【0059】
情報処理装置10は、OS終了時に、先頭部分には所定容量の空き領域を有するスナップショットファイルを作成するよう構成されている。しかし、RAMデータにフラグメントの大きな箇所があるときには、対応するクラスタチェーン情報が上記所定容量を超えてしまうこともあり得る。本実施形態は、このようなケースに対処するための機能を提供するものである。
【0060】
図5は、上記機能を実現するためのOS終了時における、ブートローダ及びCPU11(ブートローダ等とも言う。)によるローダ処理を示すフローチャートである。同図に示すローダ処理は、図3に示すローダ処理に代替するものであり、図3に示すローダ処理と同一のステップには同一の符号が付されている。なお、本実施形態のブートローダ等は、本発明の「第2の判断手段」を構成するものでもある。
【0061】
OSの終了要求があると(S21)、ブートローダ等は、スナップショット対象領域を調査する(S22)。スナップショット対象領域の調査が終了すると、ブートローダ等は、セーブされるRAMデータのフラグメント状態の調査を行い、部分的にまたは全体的にフラグメントが大きな箇所があるか否かを判断する(S31)。
【0062】
フラグメントが大きな箇所がない場合(S31;N)、ブートローダ等は、第1の実施形態のケースと同様に、RAMデータのクラスタチェーン情報を作成、記憶し(S23)、RAMデータをHDD14にセーブし(スナップショットファイルの先頭部分には所定容量の空き領域が形成されている)(S24)、当該空き領域にクラスタチェーン情報を書き込み(S40)、通常のOSの終了処理を経て、OSは終了される。
【0063】
一方、フラグメントが大きな箇所が存在するとき(S31;Y)、フラグメントが大きな箇所については、クラスタチェーン情報の代わりに、クラスタチェーン情報は無効である旨を示す無効情報と、当該箇所のクラスタ数とを記憶しておく(S32)。同時に、フラグメントが大きいと判断されなかった箇所については、クラスタチェーン情報を作成して記憶しておく(S33)。なお、上記無効情報とクラスタ数とは、本発明の「所定の情報」を定義している。
【0064】
ブートローダ等は、フラグメントが大と判断された箇所の無効情報およびクラスタ数(以下、無効情報等ともいう。)と、フラグメントが大とは判断されなかった箇所のクラスタチェーン情報とを記憶したら、RAMデータをセーブし(S24)、最後に、スナップショットファイルの先頭の空き領域に上記無効情報等およびクラスタチェーン情報を書き込み(S40)、通常のOSの終了処理を経て、OSは終了される。
【0065】
なお、S31においてフラグメントが大きいか否か判断するときの判断基準は、任意に設定することが可能である。例えば、第1の実施形態でのクラスタチェーン情報20に包含されているFATの連続セクタ数24が矮小であるクラスタチェーン情報20が一定数以上連続して出現する区間を「フラグメントが大きい箇所である」と判断し、無効情報と無効なクラスタ数に置き換えて記録することで、高速化に寄与するクラスタチェーン情報20だけを効率よく記録するといった構成が可能になる。
【0066】
このような構成のスナップショットファイルを作成することで、図2のS3に示すクラスタチェーン情報の有無の判断を容易に行うことが可能となる。詳しくは、クラスタチェーン情報が書き込まれている場合(S3;Y)には、そのデータを参照して読み込みを実行し、一方、無効情報およびクラスタ数が書き込まれている場合(S3;N)には、クラスタチェーン情報を参照した高速処理を無効としてFATを参照した処理を実行するように切換処理を行うことができる。
【0067】
また、クラスタチェーン情報を参照した高速処理を行う中で、フラグメントが大きな箇所に限ってFATを参照した処理に切り換えて行うことが可能となるので、処理の高速化と安定化の双方の向上を図ることが可能となる。
【0068】
以上、詳細に説明した実施形態は、本発明を実施するための具体的構成の一例を開示したに過ぎないものであり、本発明の主旨を限定して解するための要件を提供するものではない。
【0069】
【発明の効果】
本発明によれば、クラスタチェーン情報を参照した直接のディスクアクセスによりOS等のプログラムの起動処理を実行することで、上記プログラムの起動の高速化を図ることができるので、起動時間を短縮することが可能となる。
【0070】
また、上記プログラムのFATの更新の有無やフラグメント状態に対応して、クラスタチェーン情報およびFATを切り換えて参照することができるので、起動処理の安定性を担保した上での高速化を図ることができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態の情報処理装置のハードウェア構成の概略を示すブロック図である。
【図2】 第1の実施の形態の情報処理装置のオペレーティングシステムの起動時における処理を示すフローチャートである。
【図3】 第1の実施の形態の情報処理装置のオペレーティングシステムの終了時における処理を示すフローチャートである。
【図4】 第1の実施の形態の情報処理装置により作成されるクラスタチェーン情報のデータ構成を示す模式図である。
【図5】 本発明の第2の実施の形態の情報処理装置のオペレーティングシステムの終了時における処理を示すフローチャートである。
【符号の説明】
10 情報処理装置
11 CPU
12 ROM
13 RAM
14 ハードディスクドライブ
20 クラスタチェーン情報
Claims (4)
- オペレーティングシステムを含む、各種のプログラムを記憶するハードディスクドライブと、
前記プログラムの実行時に展開されるデータを記憶する揮発性記憶手段と、を備え、
ファイルアロケーションテーブルを参照して、前記ハードディスクドライブに記憶された前記プログラムを前記揮発性記憶手段にロードすることが可能な情報処理装置であって、
前記揮発性記憶手段に記憶されている前記データと、前記データのクラスタチェーン情報とを、前記オペレーティングシステムの終了処理において前記ハードディスクドライブにセーブするセーブ手段と、
ファイルアロケーションテーブル又は前記セーブ手段によりセーブされた前記クラスタチェーン情報のいずれかを参照して、前記ハードディスクドライブに記憶されている前記データを前記揮発性記憶手段にロードするロード手段と、
を備え、
前記クラスタチェーン情報は、前記データのクラスタチェーンが前記ハードディスクドライブに記憶される位置を示す第1の位置情報と、当該クラスタチェーンに対応するファイルアロケーションテーブル内のデータから求められるチェックサム情報を含む第2の位置情報と、を含み、
前記ロード手段は、
前記第2の位置情報の前記チェックサム情報と、前記データが前記ハードディスクドライブに実際に記憶されている位置を示すファイルアロケーションテーブル内のデータから求められたチェックサム情報とを比較して同一であるか否かを、前記データの前記クラスタチェーンごとに判断する第1の判断手段を含み、
前記第1の判断手段により、前記第2の位置情報の前記チェックサム情報と、前記実際に記憶されている位置を示すファイルアロケーションテーブル内のデータから求められたチェックサム情報とは同一であると判断された前記クラスタチェーンについては、前記第1の位置情報を参照して前記揮発性記憶手段にロードし、
前記第1の判断手段により、前記第2の位置情報の前記チェックサム情報と、前記実際に記憶されている位置を示すファイルアロケーションテーブル内のデータから求められたチェックサム情報とは相違すると判断された前記クラスタチェーンについては、前記実際に記憶されている位置を示すファイルアロケーションテーブルを参照して前記揮発性記憶手段にロードする、
ことを特徴とする情報処理装置。 - 前記セーブ手段は、
前記ロード手段により前記オペレーティングシステムを形成するプログラムがロードされる前記揮発性記憶手段の第1の記憶領域に記憶されているデータを、第1のファイルとして前記ハードディスクドライブにセーブし、
前記第1の記憶領域を除く前記揮発性記憶手段の記憶領域からなる第2の記憶領域に記憶されているデータを、第2のファイルとして前記ハードディスクドライブにセーブするとともに、
前記第1のファイルの前記クラスタチェーン情報と、前記第2のファイルの前記クラスタチェーン情報とを、前記第2のファイルに含んで前記ハードディスクドライブにセーブし、
前記ロード手段は、
前記第1のファイルの前記クラスタチェーン情報と、前記第2のファイルの前記クラスタチェーン情報とを参照して、前記オペレーティングシステムを形成するプログラムを前記揮発性記憶手段にロードする、
ことを特徴とする請求項1記載の情報処理装置。 - オペレーティングシステムを含む、各種のプログラムを記憶するハードディスクドライブと、
前記プログラムの実行時に展開されるデータを記憶する揮発性記憶手段と、を備え、
ファイルアロケーションテーブルを参照して、前記ハードディスクドライブに記憶された前記プログラムを前記揮発性記憶手段にロードすることが可能な情報処理装置であって、
前記揮発性記憶手段に記憶されている前記データと、前記データの各クラスタチェーンが前記ハードディスクドライブに記憶される位置を示すクラスタチェーン情報と、を前記ハードディスクドライブにセーブするセーブ手段と、
ファイルアロケーションテーブル又は前記セーブ手段によりセーブされた前記クラスタチェーン情報のいずれかを参照して、前記ハードディスクドライブに記憶されている前記データを前記揮発性記憶手段にロードするロード手段と、
を備え、
前記セーブ手段は、
前記揮発性記憶手段に記憶されている前記データの各クラスタチェーンの容量が所定の容量より大きいか否かを判断する第2の判断手段を含み、
前記第2の判断手段によって前記所定の容量より大きな容量を有すると判断された前記クラスタチェーンに対しては、前記データと所定の情報とを前記ハードディスクドライブにセーブし、
前記第2の判断手段によって前記所定の容量を超えない容量を有すると判断された前記クラスタチェーンに対しては、前記データと前記クラスタチェーン情報とを前記ハードディスクドライブにセーブし、
前記ロード手段は、
前記セーブ手段により前記所定の情報がセーブされた前記クラスタチェーンについては、前記ファイルアロケーションテーブルを参照して前記揮発性記憶手段にロードし、
前記セーブ手段により前記クラスタチェーン情報がセーブされた前記クラスタチェーンについては、前記クラスタチェーン情報を参照して前記揮発性記憶手段にロードする、
ことを特徴とする情報処理装置。 - オペレーティングシステムを含む、各種のプログラムをハードディスクドライブに記憶し、
前記プログラムの実行時に展開されるデータを揮発性記憶手段に記憶させるステップを備える情報処理装置によるプログラム制御方法であって、
前記揮発性記憶手段に記憶されている前記データと、前記データのクラスタチェーン情報とを、前記オペレーティングシステムの終了処理において前記ハードディスクドライブにセーブするセーブステップと、
ファイルアロケーションテーブル又は前記セーブステップでセーブされた前記クラスタチェーン情報のいずれかを参照して、前記ハードディスクドライブに記憶されている前記データを前記揮発性記憶手段にロードするロードステップと、
を含み、
前記クラスタチェーン情報は、前記データのクラスタチェーンが前記ハードディスクドライブに記憶される位置を示す第1の位置情報と、当該クラスタチェーンに対応するファイルアロケーションテーブル内のデータから求められるチェックサム情報を含む第2の位置情報と、を含み、
前記ロードステップは、
前記第2の位置情報の前記チェックサム情報と、前記データが前記ハードディスクドライブに実際に記憶されている位置を示すファイルアロケーションテーブル内のデータから求められたチェックサム情報とを比較して同一であるか否かを、前記データの前記クラスタチェーンごとに判断する第1の判断ステップを含み、
前記第1の判断ステップにより、前記第2の位置情報の前記チェックサム情報と、前記実際に記憶されている位置を示すファイルアロケーションテーブル内のデータから求められたチェックサム情報とは同一であると判断された前記クラスタチェーンについては、前記第1の位置情報を参照して前記揮発性記憶手段にロードし、
前記第1の判断ステップにより、前記第2の位置情報の前記チェックサム情報と、前記実際に記憶されている位置を示すファイルアロケーションテーブル内のデータから求められたチェックサム情報とは相違すると判断された前記クラスタチェーンについては、前記実際に記憶されている位置を示すファイルアロケーションテーブルを参照して前記揮発性記憶手段にロードする、
ことを特徴とするプログラム制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003038278A JP4122998B2 (ja) | 2003-02-17 | 2003-02-17 | 情報処理装置およびプログラム制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003038278A JP4122998B2 (ja) | 2003-02-17 | 2003-02-17 | 情報処理装置およびプログラム制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004246787A JP2004246787A (ja) | 2004-09-02 |
JP4122998B2 true JP4122998B2 (ja) | 2008-07-23 |
Family
ID=33022852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003038278A Expired - Fee Related JP4122998B2 (ja) | 2003-02-17 | 2003-02-17 | 情報処理装置およびプログラム制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4122998B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0655096U (ja) * | 1993-01-05 | 1994-07-26 | 株式会社日本製鋼所 | 熱標定射撃用標的装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5061438B2 (ja) * | 2005-08-29 | 2012-10-31 | 富士通株式会社 | 情報処理装置、起動方法及び起動プログラム |
CN100370422C (zh) * | 2005-10-13 | 2008-02-20 | 华为技术有限公司 | 设备启动方法 |
JP4895264B2 (ja) * | 2005-12-27 | 2012-03-14 | 株式会社メガチップス | 記憶装置および情報処理装置 |
JP2008052407A (ja) * | 2006-08-23 | 2008-03-06 | Mitsubishi Electric Corp | クラスタシステム |
JP5728982B2 (ja) | 2010-02-26 | 2015-06-03 | 株式会社Jvcケンウッド | 処理装置および書込方法 |
-
2003
- 2003-02-17 JP JP2003038278A patent/JP4122998B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0655096U (ja) * | 1993-01-05 | 1994-07-26 | 株式会社日本製鋼所 | 熱標定射撃用標的装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2004246787A (ja) | 2004-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7322029B2 (en) | Method and system for recovering program code in a computer system | |
JP4459215B2 (ja) | ゲーム装置および情報処理装置 | |
JP4886866B2 (ja) | 主記憶装置へのアクセスを高速化する方法および記憶装置システム | |
US6785808B2 (en) | System and method for altering an operating system start-up sequence prior to operating system loading | |
JP2008276555A (ja) | 情報処理装置、およびファームウェア更新方法 | |
CN110825419B (zh) | 一种固件刷新方法、装置及电子设备和存储介质 | |
CN114398318A (zh) | 用户空间文件系统的文件操作方法及用户空间文件系统 | |
JP4122998B2 (ja) | 情報処理装置およびプログラム制御方法 | |
KR101999617B1 (ko) | 전자 장치, gpt 복원 방법 및 컴퓨터 판독가능 기록매체 | |
JP3627915B2 (ja) | ブートブロックフラッシュメモリ制御回路、およびそれを備えたicメモリカードと半導体記憶装置、並びにブートブロックフラッシュメモリの消去方法 | |
JP5217155B2 (ja) | ファイル圧縮自動判定方式および方法、並びに、プログラム | |
JP7348752B2 (ja) | 情報処理装置 | |
KR100558394B1 (ko) | 전자장치 및 그 프로그램 업데이트 방법 | |
JP6080492B2 (ja) | 情報処理装置、起動方法およびプログラム | |
JP3951808B2 (ja) | ハードディスクドライブサブシステム | |
JPH1021123A (ja) | 情報処理装置 | |
JP2013109404A (ja) | 情報処理装置 | |
JP2005222531A (ja) | データ記録装置及びデータ記録方法 | |
JP2009301504A (ja) | コンピュータ、記録媒体および情報処理方法 | |
JP2010277495A (ja) | 圧縮記録装置および圧縮記録方法 | |
JP2007265230A (ja) | 情報処理装置及びそのファイル読み込み方法 | |
JP2008009688A (ja) | データアクセスシステム、データアクセスプログラム及びデータアクセス方法 | |
JP2664168B2 (ja) | 情報処理装置の起動方法 | |
JP3546962B2 (ja) | インストール装置、インストール方法およびインストールプログラムを記録した媒体 | |
US8555020B2 (en) | Reclaiming space occupied by an expired variable record in a non-volatile record storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050207 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070403 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070424 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070703 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070903 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071002 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071225 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080222 |
|
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: 20080408 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080421 |
|
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: 20110516 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120516 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120516 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130516 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140516 Year of fee payment: 6 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |