[go: up one dir, main page]

JP2018124717A - 情報処理装置及びその制御方法、並びにプログラム - Google Patents

情報処理装置及びその制御方法、並びにプログラム Download PDF

Info

Publication number
JP2018124717A
JP2018124717A JP2017015414A JP2017015414A JP2018124717A JP 2018124717 A JP2018124717 A JP 2018124717A JP 2017015414 A JP2017015414 A JP 2017015414A JP 2017015414 A JP2017015414 A JP 2017015414A JP 2018124717 A JP2018124717 A JP 2018124717A
Authority
JP
Japan
Prior art keywords
file
storage medium
data
volatile storage
processing apparatus
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
JP2017015414A
Other languages
English (en)
Other versions
JP2018124717A5 (ja
Inventor
孝明 宮田
Takaaki Miyata
孝明 宮田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2017015414A priority Critical patent/JP2018124717A/ja
Priority to US15/876,745 priority patent/US10656870B2/en
Publication of JP2018124717A publication Critical patent/JP2018124717A/ja
Publication of JP2018124717A5 publication Critical patent/JP2018124717A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】HDDに対する読み書きの失敗や、物理故障を抑止することが可能となる情報処理装置及びその制御方法、並びにプログラムを提供する。【解決手段】MFP8において、ファイルディスクリプタを扱うシステムコールへのフックを行うAPIフッカを用いて、HDD15へのアクセス頻度がファイル毎に記録される。また、この記録されたアクセス頻度が一定量を超過したファイルに対して、APIフッカを用いて、そのファイルのアクセス先がHDD15からRAM24のRamdisk上に移動する。【選択図】図2

Description

本発明は、情報処理装置及びその制御方法、並びにプログラムに関し、特に、搭載されるHDDのアクセス制御を行う情報処理装置及びその制御方法、並びにプログラムに関する。
従来より、画像形成装置は、ネットワーク送受信可能な状態での待機時(ネットワーク待機時)や節電状態での待機時(節電待機時)に、内部のアプリケーションやネットワーク先のサーバから頻繁に搭載されるHDDへのアクセスを受ける場合がある。
かかる場合、HDD稼働時間における、HDDの磁気ヘッドがプラッタ(磁気ディスク)上にいる時間(アクセス時間)が、コンシューマ向けHDDの安定動作の目安となる、HDD duty 20%を超える可能性がある。このように、アクセス時間がHDD duty 20%を超えると、プラッタの回転により軸受けから気化したグリスが、磁気ヘッドとプラッタ間の気圧変化により、磁気ヘッドへゴミ(パーティクル)として付着する確率が上がる。また、その結果、HDD読み書きに失敗する確率が上がるだけでなく、最悪の場合はHDDが物理的に故障する恐れもある。
ここで、HDD Dutyの比率を低減するには、HDD上のデータを、一時的に異なる記憶装置に退避し、その記憶装置上でデータのアクセスを行う方法がある。
例えば、省電力機能を有する画像形成装置において、サスペンド時にHDDのデータをRAM上のRamdiskに移動し、レジューム時にそのRamdiskに移動したデータをHDDに戻すという技術が知られている(例えば特許文献1参照)。これにより、省電力状態時にHDD上のデータにアクセスする必要がなくなるため、HDDの電源をOFFすることが可能となる。
特許第5209993号公報
しかしながら、特許文献1では、HDD上のデータのRamdiskへの移動を、サスペンド時に限定している。すなわち、この技術では、ネットワーク待機時等、節電待機時以外のHDDのアクセス頻度が多いタイミングにおけるHDD Dutyの比率を低減することはできない。
本発明は、HDDに対する読み書きの失敗や、物理故障を抑止することが可能となる情報処理装置及びその制御方法、並びにプログラムを提供することである。
本発明の請求項1に係る情報処理装置は、不揮発性記憶媒体と、揮発性記憶媒体とを備えた情報処理装置において、ファイルディスクリプタを扱うシステムコールのフックを行うフック手段と、前記フック手段を用いて、前記不揮発性記憶媒体へのアクセス頻度をファイル毎に記録する記録手段と、前記フック手段を用いて、前記記録されたアクセス頻度が一定量を超過したファイルに対するアクセス先を前記不揮発性記憶媒体から前記揮発性記憶媒体に移動する移動手段とを備えることを特徴とする。
本発明の請求項8に係る情報処理装置は、不揮発性記憶媒体と、揮発性記憶媒体とを備えた情報処理装置において、ファイルディスクリプタを扱うシステムコールのフックを行うフック手段と、前記フック手段を用いて、前記不揮発性記憶媒体へのアクセス頻度をファイル毎に記録する記録手段と、前記記録されたアクセス頻度が一定量を超過したファイルに対するアクセスが前記ファイルへの追記である場合、前記フック手段を用いて、前記ファイルのうち前記追記されたデータのアクセス先のみを前記揮発性記憶媒体に移動する移動手段とを備えることを特徴とする。
本発明によれば、HDDに対する読み書きの失敗や、物理故障を抑止することが可能となる。
本発明の情報処理装置としてのMFPの詳細なハードウェア構成を示すブロック図である。 実施例1における、HDD上のファイルの移動処理の手順を示すフローチャートである。 実施例1における、ファイル再移動処理の手順を示すフローチャートである。 実施例1における、シャットダウン開始時のファイル再移動処理の手順を示すフローチャートである 実施例2における、HDD上のファイルの移動処理の手順を示すフローチャートである。 実施例2における、ファイル再移動処理の手順を示すフローチャートである。 実施例2における、シャットダウン開始時のファイル再移動処理の手順を示すフローチャートである。 実施例3における、HDD上のファイルの移動処理の手順を示すフローチャートである。 実施例3における、ファイル再移動処理の手順を示すフローチャートである。 実施例3における、シャットダウン開始時のファイル再移動処理の手順を示すフローチャートである。 実施例1における、アプリケーションからのHDD上のファイルに対するアクセスが1分間に1000回未満の場合の、APIフッカを用いた処理の流れを示す図である。 実施例1における、アプリケーションからのHDD上のファイルに対するアクセスが1分間に1000回以上となった場合の、APIフッカを用いた処理の流れを示す図である。
以下、本発明を実施するための形態について図面を用いて説明する。
図1は、本発明の情報処理装置としてのMFP8の詳細なハードウェア構成を示すブロック図である。
操作部4は、LCD/タッチパネル10と操作キー11から構成される。LCD/タッチパネル10は、ユーザへの情報の表示や、ボタン画像を表示した後、ボタンを指等で押すことでインタラクティブな操作を可能とすることを目的としている。操作キー11は、印刷部数等を指定するための数字ボタン、コピーボタン、ストップボタン等の良く使用するためのボタンを物理的なボタンスイッチ等で構成する。
人感センサ41は操作部4の近傍に物理的に配置されているものである。人感センサ41の検知閾値は、操作部4にて段階的に設定可能であり、例えば、ユーザがMFP8に近づいてきたとき、まだ遠い時点でも検知するように設定できる。また、ごく近くまでユーザが近づかないと検知しないようにも設定できる。MFP8では、人感センサ41がユーザを検知したときに、電力モードが節電モードであった場合、スタンバイモードに遷移させることも可能である。ここで、節電モードとは、CPU16がS3状態であることを含む電力モードであり、スタンバイモードとは、CPU16がS0状態であることを含む電力モードである。
節電ボタン12は操作部4の近傍、もしくは同一ユニット上に物理的に配置されている、節電モードから復帰するためのスイッチである。つまり、後述する電源制御部18のスイッチ22により操作部4の電源が落とされている場合でも節電ボタン12に対する押下を検出することが可能なように、操作部4とは電気的に分離された構成になっている。すなわち、節電ボタン12は、操作部4とは別個に独立した状態で制御部5と接続している。この節電ボタン12をユーザが押下することで、MFP8を節電モードに入れることや、スタンバイモードにトグル遷移させることが可能である。
ユーザ認証入力装置9は、認証プリントのためにユーザの認証を行うユーザ認証部6を有する。
コントローラ部1は、制御部5、ネットワーク接続部13、及び印刷データ記憶部15から構成される。ネットワーク接続部13は、PC39から例えばネットワーク40を介して依頼を受け付ける。印刷データ記憶部15は、受信した印刷データを蓄積するHDDからなるメモリである(以下、「HDD15」という。)。制御部5は、CPU16、SPI Flash23、及びRAM24から構成されるデバイスであり、ネットワーク接続部13及びHDD15と相互に接続され、コントローラ部1全体を制御する。CPU16は、ネットワーク接続部13を介して受信した外部データが印刷データか否かの判断等の処理を行う。SPI Flash23は、CPU16の起動に必要な制御用ファームウェアを格納する。RAM24は、CPU16への命令を一時的に格納すると共に、必要に応じてそのメモリ領域の一部をデータ書き込みが可能なRamdiskにする。
また、プリンタ部3、スキャナ部2、ユーザ認証入力装置9、操作部4の電源を細かく制御して、節電モードからのユーザの待ち時間を減らすため、電源制御部18はCPU16がリモート制御可能なスイッチ19〜22を有する。これらのスイッチ19〜22は図1に示す矢印のように、プリンタ部3、スキャナ部2、ユーザ認証入力装置9、及び操作部4のそれぞれに接続され、CPU16はこれらのスイッチ19〜22のオン・オフを制御することでMFP8全体の電力を制御する。尚、これらのスイッチ19〜22はFETやリレーなどで構成してもよい。
さらにコントローラ部1内のHDD15は、スタンバイモードであっても、CPU16の指示によりHDD15単体のみを省電力状態に移動させることが可能である。
(実施例1)
次に図2〜4,11,12を用いて、実施例1に係るファイルディスクリプタを扱うシステムコールをフックするAPIフッカの動作を説明する。
図2は、実施例1における、HDD15上のファイルの移動処理の手順を示すフローチャートである。この処理では、HDD15上のファイルに対して1分間に1000回以上のアクセスがあった場合、HDD15にそのファイルのシンボリックリンクが作成され、Ramdiskにそのファイルが移動する。尚、この処理は、CPU16が、HDD15上にある本処理を実行するためのプログラムをRAM24上で展開することにより実行される。
ここで、APIフッカとは、既存のシステムコールと同じAPI名でありながら、既存のシステムコールの動作と、これに先立ち、プログラマの所望の動作を付加するライブラリ関数のことである。図2の場合では、APIフッカを用いて、既存のread(),write()などのファイルディスクリプタを扱うシステムコールの実行に先立ち行われる動作として、以下の3つの動作が付加される。具体的には、ファイルのアクセス頻度の検出と、シンボリックリンクの作成と、Ramdiskへのファイル移動という動作が付加される。このとき、アクセス頻度の情報は、ファイルディスクリプタを扱う各APIフッカで共有しておくことで、あるファイルに対するアクセス頻度を計測することが可能となる。
ここで、APIフッカと既存のシステムコールが同じAPI名であるという問題が生じる。この問題は、OSの一つであるLinux(登録商標)の場合、同じAPI名が複数ある場合、ロードされたライブラリ順にAPI名を検索し、最も早くに検索できたAPI名が利用されるという特徴を用いて解決する。具体的には、環境変数LD_PRELOADを設定することで、APIフッカを含む関数ライブラリが最も早くロードされるようにしておくようにする。これにより、アプリケーションが例えばread()システムコールを呼び出した際であっても、既存のシステムコールであるread()ではなく、APIフッカであるread()が呼び出されることになる。
CPU16は、ステップS200にて、APIフッカにより、アクセス頻度が1分間に1000回を超過するファイルの検出を行う。ここで、ファイルが検出されない場合、ステップS230の処理に移る。尚、本実施例ではアクセス頻度が多いファイルか否かの判断基準として、1分間に1000回という基準を用いたが、これに限定されるものではなく、アクセス頻度が一定量を超えるものであればよい。以下後述する他の実施例においても同様である。
ステップS200にて、ファイルが検出された場合は、ステップS210に移り、ファイルがHDD15上のものか否かを判定する。ここで、HDD15上のものでなければ、ステップS230の処理に移る。
ステップS210にて、ファイルがHDD15上のものであれば、ステップS220に移り、APIフッカにより、HDD15にそのファイルのシンボリックリンクのみ作成するとともに、そのファイルをRamdiskに移動する。その後ステップS230の処理に移る。
ステップS230では、APIフッカと同じAPI名である既存のシステムコールを実行し、本処理を終了する。
これらの処理により、HDD15上にあるファイルへのアクセス頻度が、1分間に1000回を超過した場合、アクセス先がRamdiskに変更される。これにより、HDD15への大量のアクセスを抑止することができ、HDD Duty比率を低減することが可能となる。
図3は、実施例1における、ファイル再移動処理の手順を示すフローチャートである。この処理では、図2の処理によりRamdiskに移動したファイルへのアクセスが、1分間に1000回のアクセスを下回った場合、そのファイルがHDD15上に戻される。尚、この処理は、CPU16が、HDD15上にある本処理を実行するためのプログラムをRAM24上で展開することにより実行される。
図3では、APIフッカを用いて、ファイルディスクリプタを扱う既存のシステムコールの実行に先立ち行われる動作として、ファイルのアクセス頻度の検出と、シンボリックリンクの削除と、HDD15へのファイル移動という動作が付加される。その他の、APIフッカの特徴については、図2の場合と同様である。
CPU16は、ステップS300にて、APIフッカにより、アクセス頻度が1分間に1000回を超過していたものが超過しなくなったファイルの検出を行う。ここで、ファイルが検出されない場合、ステップS230の処理に移る。
ステップS300にて、ファイルが検出された場合は、ステップS310に移り、APIフッカにより、HDD15上のシンボリックリンクを削除し、Ramdisk上のその検出されたファイルをHDD15に戻す。引き続き、ステップS230の処理に移る。
ステップS230では、APIフッカと同じAPI名である既存のシステムコールを実行し、本処理を終了する。
これらの処理により、図2の処理によりRamdisk上に移動したファイルへのアクセス頻度が、1分間に1000回を下回った場合、そのファイルをHDD15に戻すことで、容量に制限の多いRamdiskを有効に利用することが可能となる。
図4は、実施例1における、シャットダウン開始時のファイル再移動処理の手順を示すフローチャートである。この処理では、図2の処理によりRamdiskに移動した全てのファイルは、シャットダウン開始時にHDD15上に戻される。尚、この処理は、CPU16が、HDD15上にある本処理を実行するためのプログラムをRAM24上で展開することにより実行される。
図4では、APIフッカを用いて、ファイルディスクリプタを扱う既存のシステムコールの実行に先立ち行われる動作として、以下の4つの動作が付加される。具体的には、シャットダウン開始の検出と、Ramdiskに移動したファイルの検出と、シンボリックリンクの削除と、HDD15へのファイル移動という動作が付加される。その他の、APIフッカの特徴については、図2の場合と同様である。
CPU16は、ステップS400にてAPIフッカによりシャットダウンが開始されたかを検出する。シャットダウンが開始されていない場合は、そのまま本処理を終了する。
ステップS400で、シャットダウンの開始が検出された場合は、ステップS410に移り、図2の処理によりRamdisk上に移動したファイルが存在するかをAPIフッカにより検出する。ここで、ファイルが検出されない場合は、そのまま本処理を終了する。
ステップS410で、Ramdiskに移動したファイルが検出された場合は、ステップS310に移り、APIフッカにより、HDD15上のシンボリックリンクを削除すると共に、Ramdisk上のその検出されたファイルをHDD15に戻す。その後、ステップS400の処理に戻る。
これらの処理により、シャットダウン開始時に、図2の処理によりRamdisk上に移動した全てのファイルをHDD15に戻すことで、Ramdisk上のファイルがシャットダウンによって揮発しないようにすることが可能となる。
図11は、実施例1における、アプリケーションからのHDD15上のファイルに対するアクセスが1分間に1000回未満の場合の、APIフッカを用いた処理の流れを示す図である。
図11では、アプリケーションが、ファイルディスクリプタの関数として、write()関数のみを実行する場合について説明するが、他のファイルディスクリプタの関数が実行された場合も以下の処理と同様の処理が行われる。また、ファイル毎のアクセス頻度の情報は、ファイルディスクリプタを扱う各APIフッカで共有される。
まず、アプリケーションにてHDD15上のファイル/APL_DATA/file_Aに対してwrite()関数1100が実行された場合、CPU16は、writeシステムコール1120ではなく、write APIフッカ1110を呼び出す。
次に、CPU16は、write APIフッカ1110を用いて、アプリケーションのwrite()関数1100の引数で指定されたファイル毎に、単位時間当たりのファイルアクセス頻度を計測する。すなわち、この場合はファイル/APL_DATA/file_Aに対する単位時間当たりのファイルアクセス頻度が計測される。図11の場合は、このファイル/APL_DATA/file_に対して1分間に1000回未満のアクセスしかないので、writeシステムコール1120がそのまま呼び出される。
最後に、writeシステムコール1120により、HDD15上のファイル/APL_DATA/file_Aにデータがwriteされる。
図12は、本実施例における、アプリケーションからのHDD15上のファイルに対するアクセスが1分間に1000回以上となった場合の、APIフッカを用いた処理の流れを示す図である。
図12においても、図11と同様、アプリケーションが、ファイルディスクリプタの関数として、write()関数のみを実行する場合について説明するが、他のファイルディスクリプタの関数が実行された場合も以下の処理と同様の処理が行われる。また、ファイル毎のアクセス頻度の情報は、ファイルディスクリプタを扱う各APIフッカで共有される。
まず、アプリケーションにてHDD15上のファイル/APL_DATA/file_Aに対してwrite()関数1100が実行された場合、write APIフッカ1110が呼び出される。
次に、CPU16は、write APIフッカ1110を用いて、ファイル/APL_DATA/file_Aに対する単位時間当たりのファイルアクセス頻度を計測する。図12では、この計測の結果、1分間に1000回以上のアクセスが発生している。よって、まず、write APIフッカ1110を用いて、HDD15上のファイル/APL_DATA/file_Aを、Ramdisk上の/mnt/ram/file_Aに移動する。次に、write APIフッカ1110を用いて、HDD15上に、/mnt/ram/file_Aへのシンボリックリンクである/APL_DATA/file_Aを作成する。その後、writeシステムコール1120が呼び出される。
最後に、writeシステムコール1120により、HDD15上のシンボリックリンク/APL_DATA/file_Aの実体である、Ramdisk上のファイル/mnt/ram/file_Aにデータがwriteされる。
(実施例2)
実施例2は、APIフッカにて、HDD15上のファイルをRamdisk上に移動する際、Ramdisk上のファイルへのシンボリックリンクが作成されない点が、実施例1と異なり、他は全て実施例1に同じである。従って、実施例1と同一である場合は同一の符号を付し重複した説明は以下省略する。
以下、図5〜7を用いて、実施例2に係る、ファイルディスクリプタを扱うシステムコールをフックするAPIフッカの動作を説明する。
図5は、実施例2における、HDD上のファイルの移動処理の手順を示すフローチャートである。この処理では、HDD15上のファイルに対して、1分間に1000回以上のアクセスがあった場合、そのファイルをRamdiskに移動する。以降、そのファイルに対するアクセスがあった場合は、アクセス先を、移動したRamdisk上に変更する。尚、この処理は、CPU16が、HDD15上にある本処理を実行するためのプログラムをRAM24上で展開することにより実行される。
図5では、APIフッカを用いて、ファイルディスクリプタを扱う既存のシステムコールの実行に先立ち行われる動作として、アクセス頻度の検出と、Ramdiskへのファイル移動という動作が付加される点については、実施例1に同じである。実施例2ではこれに加え、Ramdisk上にファイルを移動させた後、HDD15上のファイルへのアクセス先を、Ramdisk上に変更する動作が付加される。これを行う一つの方法としては、例えば、Ramdisk上にファイルを移動した時点で、open()システムコールにより、Ramdisk上のファイルのファイルディスクリプタを取得しておくという方法がある。これにより、以降、HDD15上のファイルに対するファイルアクセスがあった場合は、上記Ramdisk上のファイルのファイルディスクリプタに差し替えてファイルアクセスを行うことができる。
本実施例によれば、HDD15上のファイルへのアクセス頻度が一定値を超過した時点で、アプリケーションに意識させることなく、そのファイルを、Ramdiskに移動することができる。
図5において、まず、CPU16は、ステップS200にて、APIフッカにより、ファイルアクセス頻度が1分間に1000回を超過するファイルの検出を行う。ここで、ファイルが検出されない場合、ステップS230の処理に移る。
ステップS200にて、ファイルが検出された場合は、ステップS210に移り、ファイルがHDD15上のものか否かを判定する。ここで、HDD15上のものでなければ、ステップS230の処理に移る。
ステップS210にて、ファイルがHDD15上のものであれば、ステップS520に移り、APIフッカにより、そのファイルをRamdiskに移動する。この時併せて、APIフッカにより、以降、そのファイルに対するアクセスが発生した場合のアクセス先をRamdisk上に変更する。すなわち、アクセス先を移動後のRamdisk上のファイルに差し替えるようにしておく。その後、ステップS230の処理に移る。
ステップS230では、APIフッカと同じAPI名である既存のシステムコールを実行し、本処理を終了する。
これらの処理により、HDD15上にあるファイルへのアクセス頻度が、1分間に1000回を超過した場合、アプリケーションに意識させることなく、アクセス先をRamdisk変更する。これにより、HDD15への大量のアクセスを抑止することができ、HDD Duty比率を低減することが可能となる。
図6は、実施例2における、ファイル再移動処理の手順を示すフローチャートである。この処理では、図5の処理によりRamdiskに移動したファイルへのアクセスが、1分間に1000回のアクセスを下回った場合、そのファイルがHDD15上に戻される。尚、この処理は、CPU16が、HDD15上にある本処理を実行するためのプログラムをRAM24上で展開することにより実行される。
図6では、APIフッカを用いて、ファイルディスクリプタを扱う既存のシステムコールの実行に先立ち行われる動作として、アクセス頻度の検出と、HDD15へのファイル移動という動作が付加される点については、図3に同じである。実施例2ではこれに加え、HDD15上にファイルを戻した後、HDD15上のファイルへのアクセス先を、Ramdisk上に変更させなくする動作が付加される。これを行う一つの方法としては、例えば、HDD15上にファイルを戻した時点で、close()システムコールにより、Ramdisk上のファイルのファイルディスクリプタをクローズするという方法がある。これにより、以降、HDD15からRamdisk上に移動されたファイルへのアクセスであっても、本来の通りに、HDD15上のファイルのファイルディスクリプタを用いて、ファイルアクセスが行われる。
CPU16は、ステップS300にて、APIフッカにより、アクセス頻度が1分間に1000回を超過していたものが超過しなくなったファイルの検出を行う。ここで、ファイルが検出されない場合、ステップS230の処理に移る。
ステップS300にて、ファイルが検出された場合は、ステップS610に移り、APIフッカにより、Ramdisk上のその検出されたファイルをHDD15に戻す。この時併せてAPIフッカにより、以降、そのファイルに対するアクセスがあった場合のアクセス先をHDD15に戻す。引き続き、ステップS230の処理に移る。
ステップS230では、APIフッカと同じAPI名である既存のシステムコールを実行し、本処理を終了する。
これらの処理により、図5の処理によりRamdisk上に移動したファイルへのアクセス頻度が、1分間に1000回を下回った場合、そのファイルをHDD15に戻すことで、容量に制限の多いRamdiskを有効に利用することが可能となる。
図7は、実施例2における、シャットダウン開始時のファイル再移動処理の手順を示すフローチャートである。この処理では、図5の処理によりRamdisk上に移動された全てのファイルは、シャットダウン開始時にHDD15上に戻される。尚、この処理は、CPU16が、HDD15上にある本処理を実行するためのプログラムをRAM24上で展開することにより実行される。
図7では、APIフッカを用いて、ファイルディスクリプタを扱う既存のシステムコールの実行に先立ち行われる動作として、以下の4つの動作が付加される。具体的には、第1の動作として、シャットダウン開始の検出という動作が付加され、第2の動作として、Ramdiskに移動したファイルの検出という動作が付加され、第3の動作として、HDD15へのファイル移動という動作が付加される。さらに第4の動作として、HDD15上にファイルを戻した後、HDD15上のファイルへのアクセス先を、Ramdisk上のファイルに変更させなくするという動作が付加される。その他の、APIフッカの特徴については、図5の場合と同様である。
CPU16は、ステップS400にて、APIフッカにより、シャットダウンが開始されたかを検出する。シャットダウンが開始されていない場合は、そのまま本処理を終了する。
ステップS400で、シャットダウンの開始が検出された場合は、ステップS410に移り、図5の処理によりRamdiskに移動したファイルが存在するかを検出する。ここで、ファイルが検出されない場合は、そのまま本処理を終了する。
ステップS410で、Ramdiskに移動したファイルが検出された場合は、ステップS610に移り、APIフッカにより、Ramdisk上のその検出されたファイルをHDD15に戻す。これと併せてAPIフッカにより、以降、そのファイルに対するアクセスがあった場合のアクセス先をHDD15に戻す。その後、ステップS400の処理に移る。
これらの処理により、シャットダウン開始時に、図5の処理によりRamdisk上に移動した全てファイルをHDD15に戻すことで、Ramdisk上のファイルがシャットダウンによって揮発しないようにすることが可能となる。
(実施例3)
実施例3は、APIフッカにて、1分間に1000回以上のアクセスがあったHDD15上のファイルのサイズが、Ramdisk容量の10%以上であった場合の処理が実施例1と異なる。具体的には、かかる場合にそのファイルへのアクセスにより追記があったときは、その追記がされたデータのみをRamdiskに移動する。また、かかる場合であっても上記追記がなかった場合は、そのファイルを一定サイズのデータに分割し、その分割されたデータのうちファイルアクセスのあった箇所のデータのみをRamdiskに移動する。他は、実施例1に同じである。従って、実施例1と同一である場合は同一の符号を付し重複した説明は以下省略する。
以下、図8〜10を用いて、実施例3に係る、ファイルディスクリプタを扱うシステムコールをフックするAPIフッカの動作を説明する。
図8は、実施例3における、HDD上のファイルの移動処理の手順を示すフローチャートである。この処理では、HDD15上のファイルに対して、1分間に1000回以上のアクセスがあった場合、そのファイルサイズが、Ramdisk容量の10%以上であるかを判定する。この判定の結果、ファイルサイズが、Ramdisk容量の10%以上である場合であって、そのファイルへのアクセスにより追記があったときは、その追記がされたデータのみをRamdiskに移動する。また、この判定の結果、ファイルサイズが、Ramdisk容量の10%以上である場合であっても、かかる追記がなかった場合は、ファイルを一定サイズのデータに分割する。その後、その分割されたデータのうちファイルアクセスのあった箇所のデータのみをRamdiskに移動する。尚、その分割対象となるファイルのサイズが、Ramdisk容量の10%未満であった場合は、実施例1と同じ処理が行われる。また、この処理は、CPU16が、HDD15上にある本処理を実行するためのプログラムをRAM24上で展開することにより実行される。
図8では、APIフッカを用いて、ファイルディスクリプタを扱う既存のシステムコールの実行に先立ち行われる動作として、実施例1と同様、以下の3つの動作が付加される。具体的には、アクセス頻度の検出と、シンボリックリンクの作成と、Ramdiskへのファイル移動という動作である。実施例3ではこれに加え、以下の3つの動作が付加される。具体的には、第1の動作として、アクセス頻度が1分間に1000回以上となったファイルサイズの取得という動作が付加される。次に、第2の動作として、前記サイズがRamdisk容量の10%を超過しているかの検出という動作が付加される。最後に、第3の動作として、ファイルを一定サイズのデータに分割した場合にファイルアクセスのあった箇所のデータ、もしくは、追記されたデータのみのRamdiskへの移動という動作が付加される。これを行う一つの方法としては、ファイルアクセスの際、ファイルへの追記があった場合は、まず、その追記されたデータを全てRamdisk上に置く。以降、そのファイルへのアクセスは、lseek()により判明するファイルアクセス先のオフセットに応じて行う。これにより、HDD15上のファイル、もしくは、Ramdisk上に移動した上記追記されたデータにアクセス先を振り分けることができる。また、ファイルアクセスの際、ファイルへの追記がなかった場合は、4KByteのサイズのデータにファイルを分割し、その分割されたデータのうちファイルアクセスのあった箇所のデータのみ、Ramdisk上に置く。以降、そのファイルへのアクセスは、lseek()により判明するファイルアクセス先のオフセットに応じて行う。これにより、HDD15上のファイル、もしくは、上記分割後にRamdisk上に移動したデータにアクセス先を振り分けることができる。尚、追記されたデータ、および、ファイルを4Kbyteで分割した場合の、ファイルアクセスのあった箇所のデータのことを、以下総称して「部分ファイルデータ」という。尚、この際Ramdiskに移したデータについて、ファイル全体か、部分ファイルデータかの区別を管理テーブルに記録しておく。さらに、Ramdiskに移したデータが部分ファイルデータの場合は、対応するRamdisk上のファイルディスクリプタ、及び、HDD15上のファイルとRamdisk上の部分ファイルデータとのオフセットの対応を併せて管理テーブルに記録しておく。これにより、Ramdisk容量を圧迫し得るファイルに対しても、ファイルアクセスがあった部分ファイルデータのみがRamdiskに移動することとなる。このため、アプリケーションに意識させることなく、HDD15上のデータを、Ramdiskに移動することができる。
図8において、まず、CPU16は、ステップS200にて、APIフッカにより、ファイルアクセス頻度が1分間に1000回を超過するファイルの検出を行う。ここで、ファイルが検出されない場合、ステップS230の処理に移る。
ステップS200にて、ファイルが検出された場合は、ステップS210に移り、ファイルがHDD15上のものか否かを判定する。ここで、HDD15上のものでなければ、ステップS230の処理に移る。
ステップS210にて、ファイルがHDD15上のものであれば、ステップS810に移り、APIフッカによりそのファイルのファイルサイズを取得すると共に、取得したファイルサイズがRamdisk容量の10%未満か否かを検出する。ここで、10%未満であれば、ステップS220に移り、HDD15にはそのファイルのシンボリックリンクのみ作成するとともに、そのファイル全体をRamdiskに移動する。
ステップS810にて、ファイルサイズがRamdisk容量の10%以上であった場合は、ステップS820に移り、ファイルに対するアクセスが、ファイルへの追記か否かを検出する。ファイルへの追記であった場合は、ステップS830に移り、APIフッカにより、ファイルに追記されたデータのみRamdiskに置く。
ステップS820にて、ファイル追記ではなかった場合は、ステップS840に移り、ファイルを4Kbyteのサイズのデータに分割し、APIフッカにより、分割されたデータのうちファイルアクセスがあった箇所のデータのみRamdiskに置く。
ステップS220、ステップS830、ステップS840の処理後は、ステップS230にて、APIフッカと同じAPI名である既存のシステムコールを実行し、本処理を終了する。
このように、HDD15上にあるファイルへのアクセス頻度が、1分間に1000回を超過した場合、そのファイルのファイルサイズがRamdisk容量の10%以上と大きい場合がある。かかる場合であっても、これらの処理により、Ramdiskを圧迫させることなく、HDD15への大量のアクセスを抑止することができる。これにより、HDD Duty比率を低減することが可能となる。
尚、本実施例では、ファイルのサイズがRamdisk容量の10%未満か否かを判定したが、10%という数値に限定されるものではない。ファイルのサイズが、そのファイル全体をRamdiskに移動するとRamdiskを圧迫させる、Ramdisk容量の特定の割合未満であるかが判定されればよい。
図9は、実施例3における、ファイル再移動処理の手順を示すフローチャートである。この処理では、図8の処理により全体もしくはその一部が移動したファイルへのアクセスが、1分間に1000回のアクセスを下回った場合、その移動したファイルの全体もしくは一部が、HDD15上に戻される。尚、この処理は、CPU16が、HDD15上にある本処理を実行するためのプログラムをRAM24上で展開することにより実行される。
図9では、APIフッカを用いて、ファイルディスクリプタを扱う既存のシステムコールの実行に先立ち行われる動作として、図3の処理と同じく、アクセス頻度の検出と、シンボリックリンクの削除と、HDD15へのファイル移動という動作が付加される。実施例3ではこれに加え、以下の2つの動作が付加される。具体的には、第1の動作として、Ramdiskに移動したものが部分ファイルデータであった場合、HDD15上のファイルに対して、部分ファイルデータが存在する箇所については、部分ファイルデータを用いて更新する動作が付加される。また、第2の動作として、Ramdisk上の部分ファイルを削除する動作が付加される。これを行う一つの方法としては、例えば、アクセス頻度が1分間に1000回を下回ったファイルの部分ファイルデータがRamdiskに存在していた場合は、その部分ファイルデータでHDD15上のファイルを更新する方法がある。
図9において、まずCPU16は、ステップS300にて、APIフッカにより、ファイルアクセス頻度が1分間に1000回を超過していたものが超過しなくなったファイルの検出を行う。ここで、ファイルが検出されない場合、ステップS230の処理に移る。
ステップS300にて、ファイルが検出された場合は、ステップS910の処理に移り、管理テーブルの参照により、図8の処理によりRamdiskに移動したのは部分ファイルデータか、ファイル全体かの検出を行う。ファイル全体であった場合は(ステップS910でYES)、ステップS310に移り、APIフッカにより、HDD15上のシンボリックリンクを削除すると共に、Ramdisk上のその検出されたファイル全体をHDD15に戻す。
一方、Ramdiskに移動したのは部分ファイルデータであった場合は(ステップS910でNO)、ステップS920に移り、APIフッカにより、Ramdisk上の部分ファイルデータで、HDD15上のファイルデータを更新する。この時併せてAPIフッカにより、Ramdisk上の部分ファイルデータを削除する。
ステップS310、ステップS920それぞれの処理後は、ステップS230にて、APIフッカと同じAPI名である既存のシステムコールを実行し、本処理を終了する。
これらの処理により、図8の処理により、全体もしくはその部分ファイルデータがRamdisk上に移動したファイルへのアクセス頻度が、1分間に1000回を下回った場合、そのファイル全体もしくはその部分ファイルデータをHDD15に戻す。これにより、容量に制限の多いRamdiskを有効に利用することが可能となる。
図10は、実施例3における、シャットダウン開始時のファイル再移動処理の手順を示すフローチャートである。この処理では、図8の処理によりRamdisk上に移動したファイルもしくは部分ファイルデータの全てが、シャットダウン開始時に、HDD15上に戻される。尚、この処理は、CPU16が、HDD15上にある本処理を実行するためのプログラムをRAM24上で展開することにより実行される。
図10では、APIフッカを用いて、ファイルディスクリプタを扱う既存のシステムコールの実行に先立ち行われる動作として、以下の5つの動作が付加される。具体的には、第1の動作として、シャットダウン開始の検出という動作が付加され、第2の動作として、Ramdiskに移動したファイルもしくは部分ファイルデータが存在するかの検出という動作が付加される。また、第3の動作として、シンボリックリンクの削除という動作が付加され、第4の動作として、HDD15へのファイル移動という動作が付加される。最後に、第5の動作として、部分ファイルデータを用いたファイルデータの更新という動作が付加される。その他の、APIフッカの特徴については、図9の場合と同様である。
CPU16は、ステップS400にて、APIフッカにより、シャットダウンが開始されたかを検出する。シャットダウンが開始されていない場合は、そのまま本処理を終了する。
ステップS400で、シャットダウンの開始が検出された場合は、ステップS1010に移り、APIフッカにより、図8の処理でRamdiskに移動したファイル全体、もしくは、部分ファイルデータが存在するかを検出する。ここで、存在しない場合は、そのまま本処理を終了する。
ステップS1010で、ファイル全体、もしくは、部分ファイルデータが検出された場合は、ステップS910に移り、部分ファイルデータ及びファイル全体のいずれが検出されたかを判定する。ここで、検出されたのはファイル全体であった場合は(ステップS1010でYES)、ステップS310に移り、APIフッカにより、HDD15上のシンボリックリンクを削除すると共に、Ramdisk上のその検出されたファイル全体をHDD15に戻す。その後、ステップS400の処理に戻る。一方、検出されたのは部分ファイルデータであった場合は(ステップS1010でNO)、ステップS920に移り、APIフッカにより、Ramdisk上のその検出された部分ファイルデータで、HDD15上のファイルデータを更新する。この時併せてAPIフッカにより、Ramdisk上のその部分ファイルデータを削除する。その後、ステップS400の処理に戻る。
これらの処理により、シャットダウン開始時に、図8の処理でRamdisk上に移動した全てのファイル若しくは部分ファイルデータをHDD15に戻す。これにより、Ramdisk上の全てのファイル若しくは部分ファイルデータがシャットダウンによって揮発しないようにすることが可能となる。
尚、上記実施例1〜3では、HDD15からRAM24上のRamdiskにファイルや部分ファイルデータが移動するような構成であった。しかしながら、揮発性記憶媒体にファイルや部分ファイルデータが移動する構成であればRamdiskに限定されるわけではない。また、上記実施例1〜3の処理はMFP8に対して行われたが、不揮発性記憶媒体及び揮発性記憶媒体を有し、ファイルディスクリプタを扱うシステムコールが実行される情報処理装置であればMFP8に限定されるわけではない。
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。また、上述の実施形態の機能を実現するソフトウェアのプログラムを、記録媒体から直接、或いは有線/無線通信を用いてプログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのプログラムを実行する場合も本発明に含む。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OステップSに供給するスクリプトデータ等、プログラムの形態を問わない。プログラムを供給するための記録媒体としては、例えば、ハードディスク、磁気テープ等の磁気記録媒体、光/光磁気記憶媒体、不揮発性の半導体メモリでもよい。また、プログラムの供給方法としては、コンピュータネットワーク上のサーバに本発明を形成するコンピュータプログラムを記憶し、接続のあったクライアントコンピュータがコンピュータプログラムをダウンロードしてプログラムするような方法も考えられる。
1 コントローラ部
4 操作部
5 制御部
8 MFP
12 節電ボタン
13 ネットワーク接続部
15 HDD
16 CPU
23 SPI Flash
24 RAM

Claims (16)

  1. 不揮発性記憶媒体と、揮発性記憶媒体とを備えた情報処理装置において、
    ファイルディスクリプタを扱うシステムコールのフックを行うフック手段と、
    前記フック手段を用いて、前記不揮発性記憶媒体へのアクセス頻度をファイル毎に記録する記録手段と、
    前記フック手段を用いて、前記記録されたアクセス頻度が一定量を超過したファイルに対するアクセス先を前記不揮発性記憶媒体から前記揮発性記憶媒体に移動する移動手段とを備えることを特徴とする情報処理装置。
  2. 前記ファイルへの前記記録されたアクセス頻度が前記一定量を超過した後に前記一定量を下回った場合、前記フック手段を用いて前記ファイルのアクセス先を前記不揮発性記憶媒体に戻す第1の再移動手段を更に備えることを特徴とする請求項1記載の情報処理装置。
  3. シャットダウンを開始した時に、前記フック手段を用いて前記ファイルのアクセス先を前記不揮発性記憶媒体に戻す第2の再移動手段を更に備えることを特徴とする請求項2記載の情報処理装置。
  4. 前記ファイルへの前記記録されたアクセス頻度が一定量を超過した場合、前記移動手段は、前記フック手段を用いて前記ファイルを前記揮発性記憶媒体に移動し、前記フック手段を用いて前記不揮発性記憶媒体には前記揮発性記憶媒体の前記ファイルへのシンボリックリンクのみを残すことを特徴とする請求項3記載の情報処理装置。
  5. 前記第1及び第2の再移動手段は、前記フック手段を用いて、前記不揮発性記憶媒体の上の前記シンボリックリンクを削除すると共に、前記揮発性記憶媒体の上に移動された前記ファイルを前記不揮発性記憶媒体に戻すことを特徴とする請求項4記載の情報処理装置。
  6. 前記ファイルへの前記記録されたアクセス頻度が一定量を超過した場合、前記移動手段は、前記フック手段を用いて前記ファイルを前記揮発性記憶媒体の上に移動すると共に、前記ファイルのアクセス先を前記揮発性記憶媒体に変更することを特徴とする請求項3記載の情報処理装置。
  7. 前記第1及び第2の再移動手段は、前記フック手段を用いて、前記揮発性記憶媒体の上に移動された前記ファイルを前記不揮発性記憶媒体に戻し、その後、前記アクセス先の変更をさせなくすることを特徴とする請求項6記載の情報処理装置。
  8. 不揮発性記憶媒体と、揮発性記憶媒体とを備えた情報処理装置において、
    ファイルディスクリプタを扱うシステムコールのフックを行うフック手段と、
    前記フック手段を用いて、前記不揮発性記憶媒体へのアクセス頻度をファイル毎に記録する記録手段と、
    前記記録されたアクセス頻度が一定量を超過したファイルに対するアクセスが前記ファイルへの追記である場合、前記フック手段を用いて、前記ファイルのうち前記追記されたデータのアクセス先のみを前記揮発性記憶媒体に移動する移動手段とを備えることを特徴とする情報処理装置。
  9. 前記ファイルへの前記記録されたアクセス頻度が一定量を超過した場合であって、前記ファイルに対するアクセスが前記ファイルへの追記でない場合、前記フック手段を用いて前記ファイルを一定サイズのデータに分割する分割手段をさらに備え、
    前記移動手段は、前記分割手段により前記ファイルが分割された場合、前記分割されたデータのうち前記ファイルに対するアクセスがあった箇所のデータのみを前記フック手段を用いて前記揮発性記憶媒体の上に移動することを特徴とする請求項8記載の情報処理装置。
  10. 前記ファイルへの前記記録されたアクセス頻度が一定量を超過した場合であって、前記ファイルのサイズが前記揮発性記憶媒体の容量の特定の割合未満である場合、前記移動手段は前記フック手段を用いて前記ファイルの全体を前記揮発性記憶媒体に移動することを特徴とする請求項9記載の情報処理装置。
  11. 前記移動手段による移動が行われた場合、前記移動手段により前記ファイルはその全体、前記追記されたデータ、及び前記分割されたデータのいずれが前記揮発性記憶媒体に移動されているかの区別を管理すると共に、前記追記されたデータ及び前記分割されたデータのいずれかのデータが前記揮発性記憶媒体に移動されている場合、前記ファイルと前記移動されたデータとのオフセットの対応を管理する管理手段を更に備え、
    前記ファイルへの前記記録されたアクセス頻度が前記一定量を超過した後に前記一定量を下回った場合、前記管理される区別に基づき、前記移動手段により前記ファイルはその全体、前記追記されたデータ、及び前記分割されたデータのいずれが前記揮発性記憶媒体に移動されているかを判定する第1の判定手段と、
    前記第1の判定手段による判定の結果、前記追記されたデータ及び前記分割されたデータのいずれかのデータが前記揮発性記憶媒体に移動されている場合、前記フック手段を用いて、前記不揮発性記憶媒体の上の前記ファイルを前記移動されたデータにより更新すると共に前記揮発性記憶媒体に移動されたデータを削除することを特徴とする請求項10記載の情報処理装置。
  12. シャットダウンを開始したときに、前記移動手段により移動された前記追記されたデータ及び前記分割されたデータのいずれかのデータが前記揮発性記憶媒体に存在する場合、前記フック手段を用いて、前記不揮発性記憶媒体の上の前記ファイルを前記移動されたデータにより更新すると共に前記揮発性記憶媒体に移動されたデータを削除することを特徴とする請求項9乃至11のいずれか1項に記載の情報処理装置。
  13. 前記フック手段はAPIフッカであることを特徴とする請求項1乃至12のいずれか1項に記載の情報処理装置。
  14. 不揮発性記憶媒体と、揮発性記憶媒体とを備えた情報処理装置の制御方法において、
    ファイルディスクリプタを扱うシステムコールのフックをAPIフッカで行うフックステップと、
    前記APIフッカを用いて、前記不揮発性記憶媒体へのアクセス頻度をファイル毎に記録する記録手段と、
    前記APIフッカを用いて、前記記録されたアクセス頻度が一定量を超過したファイルに対するアクセス先を前記不揮発性記憶媒体から前記揮発性記憶媒体に移動する移動ステップとを有することを特徴とする制御方法。
  15. 不揮発性記憶媒体と、揮発性記憶媒体とを備えた情報処理装置の制御方法において、
    ファイルディスクリプタを扱うシステムコールのフックをAPIフッカで行うフックステップと、
    前記APIフッカを用いて、前記不揮発性記憶媒体へのアクセス頻度をファイル毎に記録する記録ステップと、
    前記記録されたアクセス頻度が一定量を超過したファイルに対するアクセスが前記ファイルへの追記である場合、前記APIフッカを用いて、前記ファイルのうち前記追記されたデータのアクセス先のみを前記揮発性記憶媒体に移動する移動ステップとを有することを特徴とする制御方法。
  16. 請求項14又は請求項15に記載の制御方法を実行することを特徴とするプログラム。
JP2017015414A 2017-01-31 2017-01-31 情報処理装置及びその制御方法、並びにプログラム Pending JP2018124717A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017015414A JP2018124717A (ja) 2017-01-31 2017-01-31 情報処理装置及びその制御方法、並びにプログラム
US15/876,745 US10656870B2 (en) 2017-01-31 2018-01-22 Information processing apparatus that controls access to non-volatile storage medium, method of controlling the same, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017015414A JP2018124717A (ja) 2017-01-31 2017-01-31 情報処理装置及びその制御方法、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2018124717A true JP2018124717A (ja) 2018-08-09
JP2018124717A5 JP2018124717A5 (ja) 2020-03-12

Family

ID=62979857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017015414A Pending JP2018124717A (ja) 2017-01-31 2017-01-31 情報処理装置及びその制御方法、並びにプログラム

Country Status (2)

Country Link
US (1) US10656870B2 (ja)
JP (1) JP2018124717A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12190001B2 (en) 2022-08-09 2025-01-07 Canon Kabushiki Kaisha Printing apparatus having data overwriting, control method of printing apparatus, and storage medium

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5209993B2 (ja) 2008-03-03 2013-06-12 キヤノン株式会社 情報処理装置及びその制御方法
WO2012004837A1 (en) * 2010-07-09 2012-01-12 Hitachi, Ltd. Storage apparatus and storage management method
US8645662B2 (en) * 2011-12-23 2014-02-04 Oracle International Corporation Sub-lun auto-tiering
KR20140037476A (ko) * 2012-09-19 2014-03-27 브레인즈스퀘어(주) 파일의 외부 유출 방지를 위한 시스템 및 그 방법
KR20150043102A (ko) * 2013-10-14 2015-04-22 한국전자통신연구원 하이브리드 메모리의 데이터 관리 장치 및 방법
JP5837266B1 (ja) * 2014-05-07 2015-12-24 日本碍子株式会社 全固体電池を用いた揮発性メモリ用バックアップシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12190001B2 (en) 2022-08-09 2025-01-07 Canon Kabushiki Kaisha Printing apparatus having data overwriting, control method of printing apparatus, and storage medium

Also Published As

Publication number Publication date
US10656870B2 (en) 2020-05-19
US20180217781A1 (en) 2018-08-02

Similar Documents

Publication Publication Date Title
JP4671198B2 (ja) 情報処理装置
US8806514B2 (en) Data control device, data control method, and computer-readable medium
US8135677B2 (en) File management system and method
JP4864557B2 (ja) ソフトウェアの更新処理プログラム及び更新処理装置
US8453139B2 (en) Conditional startup process for a game apparatus and information processing apparatus
US20190004841A1 (en) Memory Sharing For Virtual Machines
JP2010117838A (ja) アプリケーションプラットフォーム、アプリケーションプラットフォームの制御方法、プログラム
CN114270315A (zh) 应用的水合
JP4944812B2 (ja) 情報処理システムと情報処理方法とプログラム
KR101624005B1 (ko) 소프트웨어 컴포넌트 상태에 대한 접근 제어
CN106484779B (zh) 文件操作方法及装置
CN112286448A (zh) 对象访问方法、装置、电子设备及机器可读存储介质
JP2018124717A (ja) 情報処理装置及びその制御方法、並びにプログラム
CN108804519A (zh) 电子设备
JP2009054100A (ja) 情報処理装置、および情報処理装置の制御方法
JPS59139451A (ja) 情報処理方式
JP2009205502A (ja) アプリケーション記録再生装置、アプリケーションの巻き戻し方法、アプリケーション記録再生プログラム
JP2000305830A (ja) コンピュータシステムにおけるファイル管理方法およびファイル管理システム
JP7017161B2 (ja) プログラム、プログラムの実行方法、および端末装置
JP2021068079A (ja) 情報処理装置、情報処理システム、情報処理方法およびプログラム
JP4437116B2 (ja) 文書ファイル移動追跡装置、文書ファイル移動追跡システム、文書ファイル移動追跡方法及びプログラム
CN114416400B (zh) 应用运行方法及其装置
US12353356B2 (en) File processing apparatus, file processing method, and storage medium
JP6350007B2 (ja) 情報処理装置、情報処理システムおよびプログラム
JP2005227983A (ja) 情報記憶装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201215

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210615