JP2006031497A - データファイル保存方法およびデータファイル保存プログラム、ならびに記録媒体 - Google Patents

データファイル保存方法およびデータファイル保存プログラム、ならびに記録媒体 Download PDF

Info

Publication number
JP2006031497A
JP2006031497A JP2004210959A JP2004210959A JP2006031497A JP 2006031497 A JP2006031497 A JP 2006031497A JP 2004210959 A JP2004210959 A JP 2004210959A JP 2004210959 A JP2004210959 A JP 2004210959A JP 2006031497 A JP2006031497 A JP 2006031497A
Authority
JP
Japan
Prior art keywords
application
monitoring process
file
data
application monitoring
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.)
Pending
Application number
JP2004210959A
Other languages
English (en)
Inventor
Kazuaki Taguchi
和明 田口
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2004210959A priority Critical patent/JP2006031497A/ja
Publication of JP2006031497A publication Critical patent/JP2006031497A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】 アプリケーションが正常な状態でなくなっても、レスポンスへの影響を少なく、作業結果のデータを正常にファイルとして保存できるデータファイル保存方法およびデータファイル保存プログラム、ならびに記録媒体を提供する。
【解決手段】 ホストアプリケーション11にアプリケーション監視プロセスクライアント13を組み込みデータセーフ機能付きアプリケーション10が構成される。ホストアプリケーション11とは別プロセスのアプリケーション監視プロセス15によって、ローカルメモリに記憶されたホストアプリケーション11の作業中データ12に基づくファイルデータをホストアプリケーション11が読み取り可能なファイル形式でグローバルメモリ17に記憶する。
【選択図】 図2


Description

この発明は、データファイル保存方法およびデータファイル保存プログラム、ならびに記録媒体に関する。
近年、パーソナルコンピュータなどのコンピュータ機器の普及に伴い、コンピュータ機器を利用するワードプロセッサソフト、表計算ソフト、画像変換ソフトなど様々なアプリケーションソフトウェア(以下、アプリケーションと称する)が使用されている。
このようなアプリケーションを用いて作業を行う場合、作業途中状態のデータは、通常、電源が断たれると記憶状態を維持できない半導体メモリなどの揮発性の記憶装置に一時的に記憶される。そして、ユーザが明示的にアプリケーションの保存機能を実行すると、その揮発性の記憶装置に一時的に記憶された作業途中状態のデータに基づき、作業結果のデータファイルを作成し、作成したデータファイルを、電源が供給されてなくても記憶状態を維持できるハードディスクドライブなどの不揮発性の記憶装置に保存する。
アプリケーションは、内部または外的要因により、外部からの入力を全く受け付けない(所謂フリーズ)状態になったり、異常終了したりする可能性を少なからず持っている。ここで、図11を参照して、通常のパーソナルコンピュータで使用されるアプリケーションがフリーズしたときの状態について説明する。アプリケーション200が起動すると、オペレーティングシステムがアプリケーション200に対して、揮発性であるメインメモリの所定メモリ領域を論理的に割り当てる。アプリケーション200は、この割り当てられたメモリ領域を使用してデータ処理を行う。
アプリケーション200が正常な状態のときには、ユーザ202がアプリケーション200に対して明示的にデータの保存を指示すると、メインメモリ上の作業中データ201に基づく作業結果のデータが、不揮発性のハードディスク203にデータファイル204として保存される。
しかしながら、アプリケーション200がフリーズ状態になると、アプリケーション200は、ユーザ202からの入力が受け付けられなくなるため、ユーザ202からの明示的なデータの保存の指示も受け付けられなくなる。依って、フリーズ状態となった後は、メインメモリ上の作業中データ201に基づく作業結果のデータを、ハードディスク203にデータファイル204として保存することができなくなる。
このように、通常のアプリケーションは、作業途中でフリーズ状態になったり異常終了したりした場合に、不揮発性記憶装置に保存されていない揮発性記憶装置上の作業途中状態のデータを利用することができない。これでは、ユーザは、最後に保存を実行してからフリーズ状態または異常終了状態となる直前までの作業内容を失ってしまうことになる。
そこで、このような事態を避けるために、例えば、作業途中状態のデータに何らかの変更が加わる操作が行われる度に、揮発性記憶装置上の作業途中状態のデータを、不揮発性記憶装置に自動的に保存するようなアプリケーションが存在する。また、例えば、ユーザの明示的な保存の実行に加え、アプリケーションによって、ユーザに予め設定された時間、または決められた一定時間周期で揮発性記憶装置上の作業途中状態のデータを不揮発性記憶装置へ自動的に保存するようなアプリケーションが存在する。
これによって、アプリケーションがフリーズ状態になったり異常終了したりした場合であっても、作業途中状態のデータを保存することができる。
作業途中状態のデータに何らかの変更が加えられる操作が行われる度に、揮発性記憶装置上の作業途中状態のデータを、不揮発性記憶装置に自動的に保存する場合、少量のデータを扱うアプリケーションにとっては問題にならないことが多い。しかしながら、不揮発性記憶装置への書き込み速度は、揮発性記憶装置への書き込み速度に比べて各段に低速であることから、ある一定量以上のデータを扱うアプリケーションでは、操作レスポンスが低下してしまうという問題点があった。
また、アプリケーションによって、ユーザに予め設定された時間、または決められた一定時間周期で揮発性記憶装置上の作業途中状態のデータを不揮発性記憶装置へ自動的に保存する場合、自動保存機能が発動してから保存が終了するまでの間、一時的に操作レスポンスが低下してしまうという問題点があった。依って、短い周期で定期的に自動保存を行うことが困難であった。
したがって、この発明の目的は、アプリケーションがフリーズまたは異常終了した場合など、正常な状態でなくなっても、レスポンスへの影響を少なく、作業結果のデータを正常にファイルとして保存できるデータファイル保存方法およびデータファイル保存プログラム、ならびに記録媒体を提供することにある。
上記目的を達成するために、この発明の第1の発明は、ホストアプリケーションの起動に伴いアプリケーション監視プロセスクライアントが実行させるステップと、アプリケーション監視プロセスクライアントによって、ホストアプリケーションとは別プロセスのアプリケーション監視プロセスを起動するステップと、アプリケーション監視プロセスにより、アプリケーション監視プロセスクライアントとアプリケーション監視プロセスとで共有可能な第1の領域をメモリに確保するステップと、ホストアプリケーションの、メモリに確保された第2の領域に記憶された作業データに基づくデータを、ホストアプリケーションが読み取り可能なファイル形式で第1の領域に所定のタイミングで記憶するステップとを有することを特徴とするデータファイル保存方法である。
また、第2の発明は、コンピュータに、ホストアプリケーションの起動に伴いアプリケーション監視プロセスクライアントを実行させるステップと、アプリケーション監視プロセスクライアントによって、ホストアプリケーションとは別プロセスのアプリケーション監視プロセスを起動するステップと、アプリケーション監視プロセスにより、アプリケーション監視プロセスクライアントとアプリケーション監視プロセスとで共有可能な第1の領域をメモリに確保するステップと、ホストアプリケーションの、メモリに確保された第2の領域に記憶された作業データに基づくデータを、ホストアプリケーションが読み取り可能なファイル形式で第1の領域に所定のタイミングで記憶するステップとを実行させることを特徴とするデータファイル保存プログラムである。
また、第3の発明は、コンピュータに、ホストアプリケーションの起動に伴いアプリケーション監視プロセスクライアントを実行させるステップと、アプリケーション監視プロセスクライアントによって、ホストアプリケーションとは別プロセスのアプリケーション監視プロセスを起動するステップと、アプリケーション監視プロセスにより、アプリケーション監視プロセスクライアントとアプリケーション監視プロセスとで共有可能な第1の領域をメモリに確保するステップと、ホストアプリケーションの、メモリに確保された第2の領域に記憶された作業データに基づくデータを、ホストアプリケーションが読み取り可能なファイル形式で第1の領域に所定のタイミングで記憶するステップとを実行させるデータファイル保存プログラムを記録したことを特徴とするコンピュータで読み取り可能な記録媒体である。
この発明によれば、ホストアプリケーションとは別プロセスのアプリケーション監視プロセスによって、第2の領域に記憶されたホストアプリケーションの作業データに基づくファイルデータを、ホストアプリケーションが読み取り可能なファイル形式で第1の領域に記憶するため、アプリケーションがフリーズ状態となったり、異常終了したりするなど、正常に動作しなくなった場合でも、前回の保存から正常に動作しなくなるまでの間の作業データを無駄にしないようにすることができる。
また、第2の領域に記憶されたホストアプリケーションの作業データに基づくファイルデータを第1の領域に記憶するため、第2の領域から第1の領域へ記憶する所定のタイミングが短い時間間隔であっても、レスポンスへの影響を少なくすることができる。
以下、この発明の実施の形態について図面を参照して説明する。まず、この発明の一実施形態によるデータファイル保存方法およびデータファイル保存システムを適用可能なコンピュータ機器について説明する。図1は、この発明の一実施形態によるコンピュータシステムの構成の一例である。なお、本明細書中における「システム」とは、複数の装置が論理的に集合したものをいい、各構成の装置が同一筐体中にあるか否かは問わない。
コンピュータシステム1は、例えば、入力装置2、CPU(Central Processing Unit)3、出力装置4、ドライブ5、メインメモリ6およびハードディスクドライブ7を有するパーソナルコンピュータなどの一般的なコンピュータ機器である。入力装置2は、キーボード、マウスなどの、ユーザ側からコンピュータシステム1に対してデータを入力する装置である。
CPU3は、ハードディスクドライブ7からメインメモリ6上にプログラムをロードして、ロードしたプログラムに基づく処理を行う。また、CPU3は、入力装置2、出力装置4、ドライブ5、メインメモリ6およびハードディスクドライブ7などのコンピュータシステム1を構成する各装置を制御する。
出力装置4は、ディスプレイ装置、プリンタなどの、コンピュータシステム1からユーザ側に対して情報を提供するための装置である。
ドライブ5は、コンパクトディスク、フロッピー(登録商標)ディスク、DVD(Digital Versatile Disc)、メモリカードなどの、着脱可能な記録媒体に記録されているデータを読み取る装置である。これによって、コンピュータシステム1は、例えば、コンパクトディスク、フロッピーディスク、DVD、メモリカードなどの着脱可能な記録媒体に記録されているプログラムを読み込み、インストールすることができる。また、例えば、コンピュータシステム1に通信機能を持たせることで、コンピュータシステム1は、ネットワークからプログラムをダウンロードしてインストールすることができる。
メインメモリ6は、RAM(Random Access Memory)などからなる電源が断たれると記憶状態を維持できない揮発性の記憶装置である。ハードディスクドライブ7は、電源が供給されてなくても記憶状態を維持できる不揮発性の記憶装置であり、コンピュータシステム1の補助記憶装置である。メインメモリ6は、ハードディスクドライブ7と比較して動作速度は速いが記憶容量が少ない。ハードディスクドライブ7は、メインメモリ6よりも記憶容量は大きいが動作速度が遅い。コンピュータシステム1は、記憶装置をメインメモリ6とハードディスクドライブ7との階層構造とすることで、記憶装置のアクセス時間と記憶容量との間に存在するトレードオフの関係に対処している。
メインメモリ6は、動作速度が速く、揮発性であることから、例えば、アプリケーション実行時の一時的な作業データの記憶に使用される。ハードディスクドライブ7は、容量が大きく、不揮発性であることから、例えば、プログラムファイル、データファイルなどのファイルの保存に使用される。また、これに限らず、ハードディスクドライブ7は、アプリケーション実行時の一時的な作業データの記憶にも使用することができる。
ハードディスクドライブ7には、システム関連のプログラムおよびアプリケーションプログラムなどが記憶されている。コンピュータシステム1が起動すると、ハードディスクドライブ7からメインメモリ6のシステムエリアにオペレーティングシステム(以下、OSと称する)などのシステム関連のプログラムがロードされる。
OSは、アプリケーションとコンピュータシステム1との間に介在する基本ソフトウェアである。OSは、コンピュータシステム1を効率良く使用するように、例えば、入出力の管理、プロセスの管理、メモリの管理、ファイルの管理および時間の管理などを行っている。また、一実施形態で使用されるOSは、複数のプロセスを並行して実行することができるマルチタスク機能、複数のスレッドを生成して実行することができるマルチスレッド機能およびプロセス間でデータを交換し合うプロセス間通信の機能を備えている。
OSは、アプリケーションが起動すると、起動したアプリケーションに対して、メインメモリ6の所定の大きさのメモリ領域を論理的に割り当てる。アプリケーションは、この割り当てられたメモリ領域(以下、ローカルメモリと称する)を使用してデータ処理を行う。一実施形態で使用されるOSは、アプリケーションのタスク、すなわちプロセスを実行する際、スレッド単位でスケジューリングを行う。スケジューリングは、例えば、OSが一定時間おきにアプリケーションを強制的に切り替えることで行われる。
なお、以下の説明では、このようなOSとして、Windows(登録商標)、例えば、Windows 95、Windows 98、Windows NT、Windows Me、Windows 2000、Windows XPのいずれかを適用した場合について説明する。なお、これらWindows 95、Windows 98、Windows NT、Windows Me、Windows 2000、Windows XPを、以下まとめてWindowsと称する。
ここで、図2を参照して、この発明の一実施形態によるデータセーフ機能を有するアプリケーションの一例について説明する。
ホストアプリケーション11は、上述したコンピュータシステム1などのコンピュータ機器を利用するソフトウェアである。ホストアプリケーション11は、データ処理した作業結果をデータファイルとして保存するものであれば、特にその種類を限定するものではない。例えば、ホストアプリケーション11は、映像などのコンテンツを作成するオーサリングソフトなどの専門的なソフトであっても良いし、ワードプロセッサソフト、表計算ソフトなどの汎用的なソフトであっても良い。
ホストアプリケーション11にアプリケーション監視プロセスクライアント13が組み込まれることで、データセーフ機能付きアプリケーション10が構成される。データセーフ機能付きアプリケーション10は、ホストアプリケーション11がフリーズ状態になったり、異常終了したりしても、ローカルメモリ上に一時的に記憶されている作業中データ12が無駄にならないように、アプリケーション監視プロセスクライアント13によるデータセーフ機能を有している。
アプリケーション監視プロセスクライアント13は、ホストアプリケーション11のプロセスに組み込まれるモジュールである。アプリケーション監視プロセスクライアント13は、ホストアプリケーション11のプロセスとは別のプロセスで動作するアプリケーション監視プロセス15とプロセス間通信を行うために、ホストアプリケーション11に実装される。アプリケーション監視プロセスクライアント13は、アプリケーション監視プロセス15との通信によって、本来ホストアプリケーション11とアプリケーション監視プロセス15との間で行われるべき、仮想的なファイルI/O機能を実現する。
したがって、アプリケーション監視プロセスクライアント13をホストアプリケーション11に実装することで、ホストアプリケーション11は、ホストアプリケーション11が通常ファイルの保存に使用するファイルI/O機能(一実施形態では、OSから提供されるファイルI/O機能)を利用する場合の処理と同様に、データセーフ機能に対応したファイルI/Oを取り扱うことができる。
また、アプリケーション監視プロセスクライアント13は、ホストアプリケーション11のプロセスが正常に処理されている間、プロセスの正常を通知する目的として、例えば、プロセス間通信を利用して、定期的にアプリケーション監視プロセス15と通信を行う。以下、この通信のことをキープアライブと称する。
アプリケーション監視プロセスクライアント13は、例えば、プロセス間通信やファイルI/O機能で使用するグローバルメモリの取り扱いなどの、アプリケーション監視プロセスクライアント13が行う処理を、データセーフ機能付きアプリケーション10から隠蔽するように、ホストアプリケーション11に実装される。
グローバルメモリは、ホストアプリケーション11とアプリケーション監視プロセス15とで共有でき、且つホストアプリケーション11のプロセスとの依存関係がないメインメモリのメモリ領域である。このメインメモリ6に確保された第1の領域であるグローバルメモリは、アプリケーション監視プロセス15からの指示を受けたOSによって、メインメモリ6上に論理的に確保される。これによって、ホストアプリケーション11は、アプリケーション監視プロセスクライアント13をファイルI/Oラッパー的な使い方ができ、データセーフ機能付きアプリケーション10からプロセス間通信およびグローバルメモリの共有等の概念を隠蔽することができる。
アプリケーション監視プロセスクライアント13は、ホストアプリケーション11毎に個別に作成しても良いが、部品化することで、新規アプリケーションを作成するときのみならず、既存アプリケーションについても容易にデータセーフ機能に対応させることができる。アプリケーション監視プロセスクライアント13は、例えば、OSがWindowsであれば、ホストアプリケーション11から呼び出して実行できるように、ダイナミック・リンク・ライブラリ(DLL)としてホストアプリケーション11に実装される。
アプリケーション監視プロセス15は、アプリケーション監視プロセスクライアント13より指示されたファイルI/O処理を実際に行うプロセスである。アプリケーション監視プロセス15とアプリケーション監視プロセスクライアント13間の通信は、例えば、イベント(Event)、ミュテックス(Mutex)、セマフォ(Semaphore)等のプロセス間通信に有用なカーネルオブジェクトを利用する。そのときのパラメータ、データの受け渡し、保存/読み込みを行うファイルデータの一時的記憶等は、グローバルメモリを使用する。
グローバルメモリには、例えば、メモリ・マップト・ファイルの形式を利用する。メモリ・マップト・ファイルは、ファイルをメモリとしてアクセスできるようにする機能である。一実施形態では、ファイルI/O処理パラメータ用のメモリとしてグローバルメモリ16を使用し、ファイルデータ用のメモリとしてグローバルメモリ17を使用している。グローバルメモリ17には、メインメモリ6に確保された第2の領域であるローカルメモリ上の作業中データ12中のファイル作成に必要なデータに基づき作成されるファイルデータが記憶される。このファイルデータは、例えば、ホストアプリケーション11が読み取り可能なファイル形式であり、ハードディスクドライブ7に保存する際には、グローバルメモリ17のファイルデータがそのまま保存される。
ここで、ホストアプリケーション11を起動した際に行われる初期化処理について詳細に説明する。図3は、ホストアプリケーション11を起動した際に行われる初期化処理の一例の流れを示すフローチャートである。ホストアプリケーション11が起動することで初期化処理が開始される。なお、ホストアプリケーション11が起動すると、OSによって、メインメモリ6にローカルメモリが確保される。
ホストアプリケーション11が起動すると、ホストアプリケーション11は、アプリケーション監視プロセスクライアント13をロードする(ステップS1)。ロードされたアプリケーション監視プロセスクライアント13が実行されて、実行されたアプリケーション監視プロセスクライアント13によって、アプリケーション監視プロセス15が起動する(ステップS2)。
アプリケーション監視プロセス15は、ファイルI/O処理パラメータ用のメモリ・マップト・ファイルを新規に作成する(ステップS3)。そして、アプリケーション監視プロセス15が作成したメモリ・マップト・ファイルをアプリケーション監視プロセスクライアント13がオープンする(ステップS4)。これによって、アプリケーション監視プロセスクライアント13とアプリケーション監視プロセス15とで、ファイルI/O処理パラメータ用のグローバルメモリ16が共有され、初期化処理が終了する。
ホストアプリケーション11は、例えば、一定間隔またはユーザの明示的な保存実行により作業状態をファイルに保存する場合、アプリケーション監視プロセスクライアント13から提供されるファイルI/O機能を利用する。
アプリケーション監視プロセスクライアント13がホストアプリケーション11に提供するファイルI/O機能は、例えば、OSのファイルI/O機能が提供するものと概念的に一致するものである。以下、このアプリケーション監視プロセスクライアント13からホストアプリケーション11へ提供されるファイルI/O機能について詳細に説明する。
<ファイルの新規作成、既存ファイルのオープン>
図4は、ファイル新規作成または既存ファイルオープンの際のホストアプリケーション11、アプリケーション監視プロセスクライアント13およびアプリケーション監視プロセス15の一例のシーケンス図を示す。
ファイルの新規作成または既存ファイルのオープンが指示されると、まず、ステップS11において、ホストアプリケーション11が、ファイル新規作成用または既存ファイルのオープン用のパラメータをアプリケーション監視プロセスクライアント13へ提供する(SEQ111)。ファイル新規作成用または既存ファイルのオープン用のパラメータとしては、例えば、ファイル名、リード/ライト モード等が必要とされる。
アプリケーション監視プロセスクライアント13は、ホストアプリケーション11から受け取ったファイル新規作成用または既存ファイルのオープン用のパラメータを、グローバルメモリ16のファイルI/O処理パラメータ用のメモリ・マップト・ファイル(以下、パラメータバッファと称する)に書き込む(ステップS12)。次に、ステップS13において、アプリケーション監視プロセスクライアント13は、例えばプロセス間通信のイベントオブジェクトを使用して、新規ファイルの作成または既存ファイルのオープンをアプリケーション監視プロセス15へ通知する(SEQ112)。
アプリケーション監視プロセス15は、ファイル新規作成用または既存ファイルのオープン用のパラメータをパラメータバッファから取得する(ステップS14)。次に、アプリケーション監視プロセス15は、OSのファイルI/O機能を使用して、ファイルの新規作成または既存ファイルのオープンを行う(ステップS15)。さらに、アプリケーション監視プロセス15は、保存/読み込みを行うファイルデータがキャッシュされるグローバルメモリ17のメモリ・マップト・ファイル(以下、ファイルデータバッファと称する)を作成する(ステップS16)。さらに、ステップS17において、アプリケーション監視プロセス15は、ファイルデータ用に作成したファイルデータバッファの識別子をパラメータバッファに書き込み、それをアプリケーション監視プロセスクライアント13に通知する(SEQ113)。
そして、ステップS18において、アプリケーション監視プロセスクライアント13は、ファイルデータバッファの識別子に応じた仮想的なファイルハンドルを、ホストアプリケーション11に提供する(SEQ114)。ホストアプリケーション11は、オープンしたファイルを抽象的に扱うためのものであり、ファイルのオープン以降は、この仮想的なファイルハンドルによってファイルを識別して処理を行う。この仮想的なファイルハンドルによって、ホストアプリケーション11は、ハードディスクドライブ7にアクセスするようにグローバルメモリ17にアクセスすることができる。以上で、ファイルの新規作成または既存ファイルのオープンの処理が終了する。
<ファイルの読み込み>
図5は、ファイル読み込みの際のホストアプリケーション11、アプリケーション監視プロセスクライアント13およびアプリケーション監視プロセス15の一例のシーケンス図を示す。
ファイルの読み込みが指示されると、まず、ステップS21において、ホストアプリケーション11は、ファイルリード用のパラメータをアプリケーション監視プロセスクライアント13へ提供する(SEQ121)。ファイルリード用のパラメータとしては、例えば、リード対象ファイルを表現する仮想ファイルハンドル、読み込む先頭位置(例えばバイト単位)、読み込みサイズ(例えばバイト単位)、データを受け取るためのローカルメモリのバッファ・ポインタ等が必要とされる。
アプリケーション監視プロセスクライアント13は、ホストアプリケーション11から受け取った仮想ファイルハンドルから、ファイルデータバッファの識別子を取得する(ステップS22)。そして、ステップS23において、アプリケーション監視プロセスクライアント13は、ホストアプリケーション11から受け取ったファイルリード用のパラメータの読み込み条件に従って、ファイルデータバッファからローカルメモリへデータをコピーし、それをホストアプリケーション11に通知する(SEQ122)。以上で、ファイルの読み込みの処理が終了する。
<ファイルの書き込み>
図6は、ファイル書き込みの際のホストアプリケーション11、アプリケーション監視プロセスクライアント13およびアプリケーション監視プロセス15の一例のシーケンス図を示す。
ファイルの書き込みが指示されると、まず、ステップS31において、ホストアプリケーション11が、ファイルライト用のパラメータをアプリケーション監視プロセスクライアント13へ提供する(SEQ131)。ファイルライト用のパラメータとしては、例えば、ライト対象ファイルを表現する仮想ファイルハンドル、書き込む先頭位置(例えばバイト単位)、書き込みサイズ(例えばバイト単位)、書き込みデータの入ったローカルメモリのバッファ・ポインタ等が必要とされる。
アプリケーション監視プロセスクライアント13は、ホストアプリケーション11から受け取った仮想ファイルハンドルから、ファイルデータバッファの識別子を取得する(ステップS32)。次に、アプリケーション監視プロセスクライアント13は、ホストアプリケーション11から受け取ったファイルライト用のパラメータの書き込み条件に従って、ローカルメモリからファイルデータバッファへデータをコピーする(ステップS33)。さらに、ステップS34において、アプリケーション監視プロセスクライアント13は、ステップS33で使用したファイルデータバッファの識別子およびファイルライト用のパラメータをパラメータバッファに書き込み、それをホストアプリケーション11に通知する(SEQ132)。以上で、ファイルの書き込みの処理が終了する。
このローカルメモリからファイルデータバッファへのデータの書き込みは、例えば、ファイルデータバッファの内容に変更が加わる操作が行われる度、または所定の時間間隔など、所定のタイミングで行われる。一実施形態では、このファイルデータバッファへの書き込み時には、ファイルデータバッファからハードディスクドライブ7のデータファイル14への書き込みは行わず、後述するキープアライブおよびファイル自動保存の処理の際に行うことで、レスポンスへの影響を少なくしている。
<ファイルのクローズ>
図7は、ファイルクローズの際のホストアプリケーション11、アプリケーション監視プロセスクライアント13およびアプリケーション監視プロセス15の一例のシーケンス図を示す。
ファイルのクローズが指示されると、まず、ステップS41において、ホストアプリケーション11は、仮想ファイルハンドルをアプリケーション監視プロセスクライアント13に提供する(SEQ141)。
アプリケーション監視プロセスクライアント13は、ホストアプリケーション11から受け取った仮想ファイルハンドルから、ファイルデータバッファを特定する(ステップS42)。次に、アプリケーション監視プロセスクライアント13は、特定したファイルデータバッファの識別子をパラメータバッファに書き込む(ステップS43)。さらに、ステップS44において、アプリケーション監視プロセスクライアント13は、プロセス間通信のイベントオブジェクトを使用して、アプリケーション監視プロセス15にファイルのクローズを通知する(SEQ142)。
アプリケーション監視プロセス15は、ファイルデータバッファの識別子等のパラメータを、パラメータバッファから取得する(ステップS45)。次に、アプリケーション監視プロセス15は、OSのファイルI/O機能を使用してファイルをクローズする(ステップS46)。このとき、ファイルに書き込まれていないデータがファイルデータバッファにあれば、データファイル14へ書き込む。次に、ステップS47において、アプリケーション監視プロセス15は、ファイルデータバッファを破棄し、それをアプリケーション監視プロセスクライアント13およびホストアプリケーション11に順次通知する(SEQ143、SEQ144)。以上で、ファイルクローズの処理が終了する。
アプリケーション監視プロセス15は、アプリケーション監視プロセスクライアント13に対して、キープアライブ機能を提供する。アプリケーション監視プロセスクライアント13は、ホストアプリケーション11が正常であるか否かを通知するため、アプリケーション監視プロセス15に対して、ある一定間隔でキープアライブ通知を行っている。
アプリケーション監視プロセスクライアント13からのキープアライブ通知が所定時間以上途絶えた場合には、アプリケーション監視プロセス15は、ホストアプリケーション11がフリーズ状態など、正常に動作しなくなったものとみなし、ファイルデータ用のグローバルメモリ17上のデータをデータファイル14に書き込んで終了する。この仕組みによって、ファイルへの最後の書き込みから正常に動作しなくなる直前までのデータを失うことなく自動的に保存することができる。
以下、アプリケーション監視プロセス15とアプリケーション監視プロセスクライアント13との間で行われるキープアライブ機能および自動保存について、図8および図9を参照して詳細に説明する。
<キープアライブおよびファイル自動保存>
図8は、キープアライブおよびファイル自動保存の際のアプリケーション監視プロセスクライアント13およびアプリケーション監視プロセス15の一例のシーケンス図を示す。図9は、キープアライブおよびファイル自動保存の際のアプリケーション監視プロセス15のサブスレッドが行う一例の処理の流れを示す。
図8に示すように、アプリケーション監視プロセスクライアント13が起動すると、ステップS51において、アプリケーション監視プロセスクライアント13は、アプリケーション監視プロセス15に所定の時間間隔でキープアライブ通知を提供する(SEQ151)。キープアライブ通知は、例えば、プロセス間通信を利用して提供される。また、例えば、キープアライブ通知は、パラメータバッファの所定アドレスにフラグを書き込むようにして提供しても良い。ステップS52において、アプリケーション監視プロセス15は、内部的に最後のキープアライブ通知を受け取った時間を保持し、それをアプリケーション監視プロセスクライアント13に通知する(SEQ152)。
アプリケーション監視プロセス15は、さらに、キープアライブの確認と自動セーブを行うためのサブスレッドを有している。図9は、そのサブスレッドが行う一例の処理の流れを示す。
アプリケーション監視プロセス15は、定期的に、最後のキープアライブ通知を受け取った時間と現在時刻とを比較する(ステップS61)。そして、アプリケーション監視プロセス15は、ステップS61での比較の度に、キープアライブ通知が途絶えたか否か、すなわちホストアプリケーション11が正常に動作しているか否かを判定する(ステップS62)。キープアライブ通知が途絶えたか否かは、キープアライブ通知を受け取ってからの経過時間によって判別することができる。例えば、キープアライブ通知を受け取ってからの経過時間が所定時間を経過した場合に、キープアライブ通知が途絶えたと判断する。
ステップS62で、キープアライブ通知が途絶えていない、すなわちホストアプリケーション11が正常に動作していると判定された場合には、ステップS61およびステップS62の処理を順次繰り返す。ステップS62で、キープアライブ通知が途絶えた、すなわちホストアプリケーション11が正常に動作していないと判定された場合には、ファイルデータバッファの内容をハードディスクドライブ7にデータファイル14として自動的に保存する(ステップS63)。このとき、データファイル14に上書きするように保存しても良いし、データファイル14を残すように、例えばデータファイル14とは別のファイル名で保存しても良い。そして、アプリケーション監視プロセス15は、プロセスを終了する(ステップS64)。
次に、ホストアプリケーション11を終了した際に行われる終了処理について説明する。図10は、ホストアプリケーション11の終了時に行われる終了処理の一例の流れを示すフローチャートである。ユーザによってホストアプリケーション11が終了された場合に終了処理が開始する。
まず、ホストアプリケーション11の終了が指示された場合、上述したファイルクローズ処理によって、ローカルメモリ上の作業中データ12をハードディスクドライブ7にデータファイル14として保存し、ホストアプリケーション監視プロセス15が開いていたファイルデータバッファをクローズする(ステップS71)。
ホストアプリケーション11は、アプリケーション監視プロセスクライアント13へ終了を通知する(ステップS72)。ホストアプリケーション11から終了を通知されたアプリケーション監視プロセスクライアント13は、アプリケーション監視プロセス15に終了を通知する(ステップS73)。
アプリケーション監視プロセスクライアント13から終了を通知されたアプリケーション監視プロセス15は、ファイルI/O処理パラメータ用メモリ・マップト・ファイルを破棄する(ステップS74)。そして、アプリケーション監視プロセス15は、プロセスを終了する(ステップS75)。次に、アプリケーション監視プロセスクライアント13がアンロードされる(ステップS76)。そして、ホストアプリが終了する(ステップS77)。
以上、説明したように、この発明の一実施形態によるデータファイル保存システムおよびデータファイル保存方法では、ホストアプリケーション11と別プロセスで動作するアプリケーション監視プロセス15がグローバルメモリ17に、ローカルメモリの作業中データ12を定期的に保存することで、ホストアプリケーション11がフリーズ状態となったり異常終了したりするなど、正常に動作しなくなった場合であっても、グローバルメモリ17に保存したデータをハードディスクドライブ7に保存することで、前回の保存から正常に動作しなくなるまでの間の作業が無駄になることを防げる。
また、ローカルメモリ上の作業中データ12の定期的な保存は、グローバルメモリ17に対して行い、キープアライブ機能によって、ホストアプリケーション11が正常に動作しなくなったときにのみ、グローバルメモリ17に保存したデータを、ハードディスクドライブ7にデータファイル14として保存すれば良いので、ファイルI/O処理を最適化することができ、レスポンスへの影響を少なくすることができる。
この発明は、上述したこの発明の実施形態に限定されるものでは無く、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。例えば、上述した一実施形態では、OSとしてWindowsを適用した場合について説明したが、OSは、同様の処理を行うことができるならば、特に限定するものではなく、Unix(登録商標)系のOS、Mac OSなど、Windows以外であっても適用することができる。
また、ファイルデータバッファの内容は、キープアライブが途絶えたときにファイルとしてグローバルメモリ17からハードディスクドライブ7へと書き込むとしたが、定期的に書き込み自動保存を行うとしても良い。例えば、アプリケーション監視プロセス15が、アプリケーション監視プロセスクライアント13とは非同期に所定の時間間隔でファイルデータ用グローバルメモリ17上にあるファイルデータをハードディスクドライブ7にデータファイル14として保存することで、データの自動保存が実現できる。このファイルの自動保存をアプリケーション監視プロセスクライアント13の指示とは非同期で行うことで、ホストアプリケーション11のレスポンスに影響なく、データの保存を行うことができる。
また、上述した一実施形態では、ハードディスクドライブ7へのファイルの保存は、全てグローバルメモリ17を介す構成としたが、ユーザによる明示的な保存および定期的な自動保存を行う場合などは、グローバルメモリ17を介さず、従来同様、ローカルメモリ上の作業データを、直接ハードディスクドライブ7に保存しても良い。
また、上述した一実施形態では、ファイルI/O機能は、OSが提供するものと概念的に同じものであるとしたが、開発言語が提供するものであっても良い。
一実施形態によるコンピュータシステムの構成の一例を示す図である。 一実施形態によるアプリケーションを説明するための図である。 初期化処理の一例の流れを示すフローチャートである。 ファイル新規オープンの際の一例のシーケンス図である。 ファイルリードの際の一例のシーケンス図である。 ファイルライトの際の一例のシーケンス図である。 ファイルクローズの際の一例のシーケンス図である。 キープアライブおよび自動保存の際の一例のシーケンス図である。 サブスレッドが行う一例の処理の流れを示すフローチャートである。 終了処理の一例の流れを示すフローチャートである。 従来のアプリケーションを説明するための図である。
符号の説明
1・・・コンピュータシステム
2・・・入力装置
3・・・CPU
4・・・出力装置
5・・・ドライブ
6・・・メインメモリ
7・・・ハードディスクドライブ
10・・・データセーフ機能付きアプリケーション
11・・・ホストアプリケーション
12・・・作業中データ
13・・・アプリケーション監視プロセスクライアント
14・・・データファイル
15・・・アプリケーション監視プロセス
16・・・パラメータ用グローバルメモリ
17・・・ファイルデータ用グローバルメモリ

Claims (9)

  1. ホストアプリケーションの起動に伴いアプリケーション監視プロセスクライアントが実行させるステップと、
    上記アプリケーション監視プロセスクライアントによって、上記ホストアプリケーションとは別プロセスのアプリケーション監視プロセスを起動するステップと、
    上記アプリケーション監視プロセスにより、上記アプリケーション監視プロセスクライアントと上記アプリケーション監視プロセスとで共有可能な第1の領域をメモリに確保するステップと、
    上記ホストアプリケーションの、メモリに確保された第2の領域に記憶された作業データに基づくデータを、上記ホストアプリケーションが読み取り可能なファイル形式で上記第1の領域に所定のタイミングで記憶するステップとを有する
    ことを特徴とするデータファイル保存方法。
  2. さらに、上記ホストアプリケーションが正常に動作しているか否かを判別し、正常に動作していないと判別されたときに、上記アプリケーション監視プロセスによって、上記第1の領域に記憶されているデータを補助記憶装置にデータファイルとして自動的に保存するステップを有することを特徴とする請求項1に記載のデータファイル保存方法。
  3. 上記判別は、上記アプリケーション監視プロセスによって、上記アプリケーション監視プロセスクライアントから上記アプリケーション監視プロセスに所定の時間間隔で提供されるキープアライブ通知が所定時間以上途絶えたときに、上記ホストアプリケーションが正常に動作していないと判別されることを特徴とする請求項2に記載のデータファイル保存方法。
  4. 上記所定のタイミングは、上記第1の領域に記憶されているデータに変更が加わる操作が行われたときであることを特徴とする請求項1に記載のデータファイル保存方法。
  5. 上記所定のタイミングは、所定の時間間隔であることを特徴とする請求項1に記載のデータファイル保存方法。
  6. さらに、上記第1の領域をメモリに確保した際に、上記アプリケーション監視プロセスクライアントから上記ホストアプリケーションに対して、上記ホストアプリケーションが上記補助記憶装置にアクセスするように上記第1の領域にアクセスできるような仮想的なファイルハンドルを提供するステップを有することを特徴とする請求項1に記載のデータファイル保存方法。
  7. さらに、上記アプリケーション監視プロセスによって、上記第1の領域に記憶されているデータを補助記憶装置にデータファイルとして、所定の時間間隔で自動的に保存するステップを有することを特徴とする請求項1に記載のデータファイル保存方法。
  8. コンピュータに、
    ホストアプリケーションの起動に伴いアプリケーション監視プロセスクライアントを実行させるステップと、
    上記アプリケーション監視プロセスクライアントによって、上記ホストアプリケーションとは別プロセスのアプリケーション監視プロセスを起動するステップと、
    上記アプリケーション監視プロセスにより、上記アプリケーション監視プロセスクライアントと上記アプリケーション監視プロセスとで共有可能な第1の領域をメモリに確保するステップと、
    上記ホストアプリケーションの、メモリに確保された第2の領域に記憶された作業データに基づくデータを、上記ホストアプリケーションが読み取り可能なファイル形式で上記第1の領域に所定のタイミングで記憶するステップとを実行させる
    ことを特徴とするデータファイル保存プログラム。
  9. コンピュータに、
    ホストアプリケーションの起動に伴いアプリケーション監視プロセスクライアントを実行させるステップと、
    上記アプリケーション監視プロセスクライアントによって、上記ホストアプリケーションとは別プロセスのアプリケーション監視プロセスを起動するステップと、
    上記アプリケーション監視プロセスにより、上記アプリケーション監視プロセスクライアントと上記アプリケーション監視プロセスとで共有可能な第1の領域をメモリに確保するステップと、
    上記ホストアプリケーションの、メモリに確保された第2の領域に記憶された作業データに基づくデータを、上記ホストアプリケーションが読み取り可能なファイル形式で上記第1の領域に所定のタイミングで記憶するステップとを実行させるデータファイル保存プログラムを記録した
    ことを特徴とするコンピュータで読み取り可能な記録媒体。


JP2004210959A 2004-07-20 2004-07-20 データファイル保存方法およびデータファイル保存プログラム、ならびに記録媒体 Pending JP2006031497A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004210959A JP2006031497A (ja) 2004-07-20 2004-07-20 データファイル保存方法およびデータファイル保存プログラム、ならびに記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004210959A JP2006031497A (ja) 2004-07-20 2004-07-20 データファイル保存方法およびデータファイル保存プログラム、ならびに記録媒体

Publications (1)

Publication Number Publication Date
JP2006031497A true JP2006031497A (ja) 2006-02-02

Family

ID=35897745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004210959A Pending JP2006031497A (ja) 2004-07-20 2004-07-20 データファイル保存方法およびデータファイル保存プログラム、ならびに記録媒体

Country Status (1)

Country Link
JP (1) JP2006031497A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265054A (ja) * 2006-03-29 2007-10-11 Hitachi Software Eng Co Ltd 透かし強制印刷システム、方法及びプログラム
JP2009093451A (ja) * 2007-10-10 2009-04-30 Obic Business Consultants Ltd 情報処理装置、情報処理方法、及びプログラム
CN110941536A (zh) * 2019-11-26 2020-03-31 北京沃东天骏信息技术有限公司 监控方法及系统、第一服务器集群

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265054A (ja) * 2006-03-29 2007-10-11 Hitachi Software Eng Co Ltd 透かし強制印刷システム、方法及びプログラム
JP2009093451A (ja) * 2007-10-10 2009-04-30 Obic Business Consultants Ltd 情報処理装置、情報処理方法、及びプログラム
CN110941536A (zh) * 2019-11-26 2020-03-31 北京沃东天骏信息技术有限公司 监控方法及系统、第一服务器集群

Similar Documents

Publication Publication Date Title
TWI436199B (zh) 電源管理控制器與方法
US6209088B1 (en) Computer hibernation implemented by a computer operating system
JP5911892B2 (ja) ハイバネイトからの多段レジューム
EP2891060B1 (en) Layout and execution of software applications using bpram
US20050086551A1 (en) Memory optimization for a computer system having a hibernation mode
US9740500B2 (en) Layout system for operating systems using BPRAM
JP4902501B2 (ja) 電力制御方法、計算機システム、及びプログラム
JP2016004420A (ja) メモリ管理方法
JPH07219665A (ja) システムの状態を中断し、再開する方法およびそれができるコンピュータ装置
US20010047472A1 (en) System and method for altering an operating system start-up sequence prior to operating system loading
US20070294550A1 (en) Memory Management With Defragmentation In A Computing Device
KR20080017292A (ko) 내장 시스템들을 위한 저장 아키텍쳐
KR101392062B1 (ko) 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법
JP2006031497A (ja) データファイル保存方法およびデータファイル保存プログラム、ならびに記録媒体
JP2009258925A (ja) 計算機システムおよび計算機システムのメモリ管理方法
TWI522924B (zh) 電子裝置及其切換作業系統的方法
JP6080492B2 (ja) 情報処理装置、起動方法およびプログラム
JP4334312B2 (ja) 起動時間短縮演算装置およびデータロード方法
JP2001229053A (ja) ダンプ取得機構を備えた計算機
US11061728B2 (en) Systems and methods for heterogeneous address space allocation
Wang et al. A zero-energy consumption scheme for system suspend to limited NVM
US20130086306A1 (en) Information processor and memory management method
JP6080490B2 (ja) 情報処理装置、起動方法およびプログラム
JP2003165248A (ja) 印刷制御装置および印刷制御方法
JP2005190235A (ja) 計算機システムの凍結・解凍プログラム、その記録媒体、及び計算機システムの凍結・解凍方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070420

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090728

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091124