JP2019061654A - 情報処理装置及び方法 - Google Patents

情報処理装置及び方法 Download PDF

Info

Publication number
JP2019061654A
JP2019061654A JP2018131722A JP2018131722A JP2019061654A JP 2019061654 A JP2019061654 A JP 2019061654A JP 2018131722 A JP2018131722 A JP 2018131722A JP 2018131722 A JP2018131722 A JP 2018131722A JP 2019061654 A JP2019061654 A JP 2019061654A
Authority
JP
Japan
Prior art keywords
data
ram disk
application
compression
information
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.)
Granted
Application number
JP2018131722A
Other languages
English (en)
Other versions
JP7214999B2 (ja
Inventor
大樹 櫻田
Daiki Sakurada
大樹 櫻田
山本 英明
Hideaki Yamamoto
英明 山本
宏幸 石原
Hiroyuki Ishihara
宏幸 石原
智英 北口
Tomohide Kitaguchi
智英 北口
龍太 青木
Ryuta Aoki
龍太 青木
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to US16/140,697 priority Critical patent/US10860257B2/en
Publication of JP2019061654A publication Critical patent/JP2019061654A/ja
Application granted granted Critical
Publication of JP7214999B2 publication Critical patent/JP7214999B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】データの性質に応じた圧縮を施すこと。
【解決手段】発明の一実施形態の情報処理装置は、複数のRAMディスクのぞれぞれの圧縮方式を設定した設定情報と、前記設定情報の設定に従い、前記圧縮方式毎にRAMディスクを作成する作成部と、データの書込みおよび読込みを要求するアプリケーションと、前記アプリケーションによる前記データの書込みの要求に基づき、前記アプリケーションに対応するRAMディスクに該RAMディスクの圧縮方式で前記データを書込むファイルシステムと、を有する。
【選択図】図2

Description

本発明は、情報処理装置及び方法に関する。
従来、主記憶装置の一部をRAMディスクの記憶領域に割り当て、その記憶領域に一時ファイルなどのデータを書き込む技術が一般に利用されている。組み込み機器のように搭載できるメモリの量が限られている場合には、要求される書き込みデータを効率よくRAMディスクの記憶領域に収めるため、データの圧縮が行われる。
主記憶装置と補助記憶装置との間の記録管理方式について技術を開示した文献がある。この技術では、CPUが送出した論理アドレスに対応するデータが主記憶装置に存在しない場合に、補助記憶装置内の論理アドレスに対応するデータをページ単位で読み出し、読み出したデータを圧縮して主記憶装置に格納し、主記憶装置内のデータの内、CPUが要求するものを読み出して伸張することが記載されている(特許文献1参照)。
しかし、搭載できるメモリの量が限られる一方で、要求される書き込みデータの量が多く上回る場合には、それらをより効果的に圧縮する必要が生じる。従来は、ファイルシステムのオプション機能などにより各データに対し所定の圧縮アルゴリズムで一律に圧縮を施していたため、データの性質によっては最適な圧縮ではなかった。データの中には既に圧縮済みのデータも含まれているため、このようなデータを圧縮した場合には、圧縮の向上が望めず、圧縮前よりも圧縮率が悪くなったりすることもある。このようにデータの性質に応じた圧縮を施すことができないという問題がある。
本発明は、上記に鑑みてなされたものであって、データの性質に応じた圧縮を施すことが可能な情報処理装置及び方法を提供することを目的とする。
上述した課題を解決するために、発明の一実施形態の情報処理装置は、複数のRAMディスクのぞれぞれの圧縮方式を設定した設定情報と、前記設定情報の設定に従い、前記圧縮方式毎にRAMディスクを作成する作成部と、データの書込みおよび読込みを要求するアプリケーションと、前記アプリケーションによる前記データの書込みの要求に基づき、前記アプリケーションに対応するRAMディスクに該RAMディスクの圧縮方式で前記データを書込むファイルシステムと、を有する。
本発明によれば、データの性質に応じた圧縮を施すことが可能になるという効果を奏する。
図1は、実施の形態にかかる情報処理装置のハードウェア構成の一例を示す図である。 図2は、SSDのソフトウェアの構成の一例を示す図である。 図3は、情報処理装置の主な機能構成の一例を示す図である。 図4は、設定情報のテーブル構造の一例を示す図である。 図5は、RAMディスクの作成手順の一例を示すフロー図である。 図6は、メモリ管理部が管理するDRAMの記憶領域についてのメモリマップの一例を示す図である。 図7は、属性情報の一例を示す図である。 図8は、アプリの一時ファイルをRAMディスク領域に書き込む手順の一例を示すシーケンス図である。 図9は、書込んだ一時ファイルのデータをアプリで読込む手順の一例を示すシーケンス図である。 図10は、変形例1に係るSSDのソフトウェアの構成の一例を示す図である。 図11は、データ情報のデータ構成の一例を示す図である。 図12は、ファイル管理情報の一例を示す図である。 図13は、アプリの一時ファイルをRAMディスク領域に書き込む手順の一例を示すシーケンス図である。 図14は、RAMディスクに書込まれている一時ファイルのデータをアプリが取得する手順の一例を示すシーケンス図である。 図15は、変形例2に係るSSDのソフトウェアの構成の一例を示す図である。 図16は、情報処理装置におけるRAMディスク管理モジュールの動作について説明する図である。 図17は、変形例3に係るDRAMのメモリマップの一例を示す図である。 図18は、マウント情報の一例を示す図である。 図19は、リマウントが繰り返された場合のRAMディスクの状態遷移の一例を示す図である。 図20は、RAMディスクリマウントモジュールが行うリマウントの手順の一例を示すフロー図である。 図21は、圧縮アルゴリズムが異なる設定の一時ファイルをアプリが同じRAMディスク領域に書き込む手順の一例を示すシーケンス図である。 図22は、変形例4に係るデータ情報のデータ構成の一例を示す図である。 図23は、RAMディスクが異なる圧縮アルゴリズムでマウントされる度に遷移するマウントの状態の一例を示す図である。 図24は、長期滞留データをリマウントにより高圧縮する際の情報処理装置全体の動作の一例を示すシーケンス図である。 図25は、変形例5に係るハードウェア構成の一例を示す図である。 図26は、RAMディスク内に存在するデータを外部ストレージへ保存するための手順の一例を示すシーケンス図である。
以下、添付図面を参照しながら、本発明にかかる情報処理装置及び方法の実施の形態を詳細に説明する。
(実施の形態)
本実施の形態にかかる情報処理装置は、例えばMFP(MultiFunction Peripheral)の情報処理装置などへの適用が可能である。当該情報処理装置の主記憶装置は、DRAM(Dynamic Random Access Memory)などにより構成し、プログラムやデータの「記憶部」はSSD(Solid State Drive)やHDD(Hard Disk Drive)などにより構成する。
図1は、実施の形態に係る情報処理装置のハードウェア構成の一例を示す図である。図1に示す情報処理装置1は、CPU11と、DRAM12と、SSD13とを有し、これらはバス14により相互に接続されている。その他、組み込み機器に応じてデバイス機器のコントローラなどが接続される。例えばMFPであれば、画像処理エンジンや、各種の通信インタフェースや、タッチパネルや液晶ディスプレイのコントローラなどが接続される。
CPU11は、中央演算処理装置であり、情報処理装置1全体を統括的に制御する。DRAM12は、CPU11が高速に情報の読み書きを行う揮発性メモリであり、CPU11の作業領域として利用される。SSD13は、不揮発性のメモリであり、各種プログラムやデータを格納する。
図2は、SSD13のソフトウェアの構成の一例を示す図である。図2には、OS(Operating System)のソフトウェアと共にSSD13にインストールする主なソフトウェアの構成の一例を示している。
設定情報100は、RAMディスクを作成するための設定を有するテーブル情報である。
RAMディスク作成プログラム101は、RAMディスクを作成するなどの機能をカーネルに追加するモジュール型のプログラムである。
圧縮ファイルシステムプログラム102は、圧縮機能を有するファイルシステムのプログラムである。
各種のアプリケーションプログラム103、104、・・・は、特定機能を有し、特定の処理を行う際にファイルを入出力するアプリケーションのプログラムである。例えばMFPのコピーやファックスなどの特定機能を有するアプリケーションのプログラムである。なお、以下では「アプリケーション」を単に「アプリ」と省略して呼ぶものとする。
(機能構成)
図3は、情報処理装置1の主な機能構成の一例を示す図である。各機能は、CPU11がSSD13にインストールされている各種プログラムをDRAM12にロードして実行することにより実現される。図3に示す機能の内、デバイスドライバ201、圧縮ファイルシステム202、各種のアプリ203、204、・・・は、それぞれ、RAMディスク作成プログラム101(図2参照)、圧縮ファイルシステムプログラム102(図2参照)、各種のアプリケーションプログラム103、104、・・・(図2参照)の機能部として実現される。その他、OS(本例ではUnix系のリナックス(登録商標)とする)のソフトなどに基づいてカーネル空間402の各種機能部が実現される。図3に示す各種のアプリ203、204、・・・はユーザ空間401で動作し、その他の各種機能部はカーネル空間402で動作する。なお、図3に破線で示すDRAM12とSSD13は、図1に示すハードウェア構成であり、説明のために機能部と共に図示したものである。
各種のアプリ203、204、・・・は、システムコール205にファイルの書込みやファイルの読出しなどの処理を要求する。例えば、MFPにおいて画像編集アプリを使用する場合、非圧縮ファイル或いはJPEGファイルやPDF(登録商標)ファイルなどの圧縮済みのファイルの書込みや読出しを要求する。
仮想ファイルシステム200は、ファイルシステムの違いを吸収し、ユーザ空間401から一つのファイルシステムとして見えるようにする。
圧縮ファイルシステム202は、複数のRAMディスクのファイルを管理する。具体的に圧縮ファイルシステム202は、各RAMディスクのサイズ、RAMディスクのパス、RAMディスクの圧縮方式を属性情報300として個別に有し、各属性情報300に基づいて各RAMディスクのファイルを個別に管理する。例えば、圧縮ファイルシステム202は、各種のアプリ203、204、・・・が一時ファイルの書込み先として指定するRAMディスクに対応する圧縮方式で処理を施し、処理後のファイルを当該RAMディスクにデバイスドライバ201を介して書き込む。
その他のファイルシステム206は、圧縮ファイルシステム202とは異なる種類のファイルシステムである。例えば、OSに予め組み込まれているファイルシステムである。
メモリ管理部207は、DRAM12のメモリ領域の予約などの割り当ての管理を行う。
デバイスドライバ201は、「作成部」やDRAM12のデバイスドライバとして機能する。
ドライバ208は、SSD13などのドライバとして機能する。
(RAMディスクの作成)
次に、情報処理装置1における各種処理について説明する。先ず、RAMディスクの作成手順について説明する。以下では設定情報100について説明し、その後で作成手順について説明する。ここでは、作成するRAMディスクの数を一例として4個に限定して示す。なお、作成するRAMディスクの数は一例であり、適宜増減させてよい。
図4は、設定情報100のテーブル構造の一例を示す図である。図4に示す設定情報100は、RAMディスク番号t1と、圧縮方式t2と、パスt3と、サイズt4とを対応付けたものである。
RAMディスク番号t1には、RAMディスクを一意に識別するインデックス番号を設定する。この例では、4個のRAMディスクのそれぞれのインデックス番号として、「1」、「2」、「3」、「4」を設定したものを示している。
圧縮方式t2には、RAMディスク番号t1に設定した各RAMディスクの圧縮方式を設定する。図4には、RAMディスク「1」〜RAMディスク「3」に圧縮のための所定の圧縮アルゴリズム「A」〜「C」を設定し、RAMディスク「4」に非圧縮を表す「D」を設定している。
パスt3には、RAMディスク番号t1に設定した各RAMディスクのパス情報を設定する。
サイズt4には、RAMディスク番号t1に設定した各RAMディスクのディスク容量であるサイズ情報を設定する。
図5は、RAMディスクの作成手順の一例を示すフロー図である。ここでは、情報処理装置1のシステム起動時に行われる処理の流れを説明する。情報処理装置1がブートし、OSがDRAM12の所定の記憶領域にロードされると、RAMディスク作成プログラム101が読み込まれ、RAMディスクを作成する作成部が追加される。
作成部は、先ず、SSD13に格納されている設定情報100(図4参照)を取得する(S1)。
続いて、作成部は、取得した設定情報100の内の未作成の1つのRAMディスクについてサイズt4を参照し、当該RAMディスク用の領域として、サイズt4に設定されているサイズの確保をメモリ管理部207(図3参照)に要求する(S2)。メモリ管理部207は、この起動時の初期段階にRAMディスク用の領域を確保する。
続いて、作成部は、ステップS2で確保したRAMディスクの領域をフォーマットする(S3)。フォーマットの際、作成部は、当該RAMディスクを管理する圧縮ファイルシステム202(図3参照)の属性情報300(図7参照)にサイズ情報を設定する。
続いて、作成部は、設定情報100のパスt3を参照し、パスt3に設定されているRAMディスクのマウントポイントに当該RAMディスク(当該RAMディスクのイメージ)をマウントするマウント操作を行う(S4)。作成部は、このマウント操作において、設定情報100のパスt3の設定に対応する圧縮方式t2を上記圧縮ファイルシステム202の圧縮方式として設定する。更に、作成部は、この操作の際に、当該RAMディスクを管理する圧縮ファイルシステム202の属性情報300にパスと圧縮方式とを設定する。
続いて、作成部は、設定情報100において他に未作成のRAMディスクがあるかを判定する(S5)。他に未作成のRAMディスクがある場合(S5:Yes判定)、未作成のRAMディスクの内の1つについてステップS2から同様に処理を行い、RAMディスクを作成する。
本例では、1巡目にRAMディスク番号「1」のRAMディスクを作成し、2巡目にRAMディスク番号「2」のRAMディスクを作成し、3巡目にRAMディスク番号「3」のRAMディスクを作成し、4巡目にRAMディスク番号「4」のRAMディスクを作成する。この作成処理の際に、各RAMディスクの圧縮ファイルシステム202が有する各属性情報300を設定する。
他に未作成のRAMディスクがない場合(S5:No判定)、本処理を終了する。
(メモリマップ)
図6は、メモリ管理部207が管理するDRAM12の記憶領域についてのメモリマップの一例を示す図である。メモリ管理部207は、図6に示すDRAM12のOS管理対象領域120とOS管理対象外領域130の内、OS管理対象領域120に、複数のRAMディスク領域を割り当てる。本例ではRAMディスク番号「1」〜「4」の4つのRAMディスク領域、それぞれ、RAMディスク領域121、RAMディスク領域122、RAMディスク領域123、およびRAMディスク領域124を、RAMディスク区切りで割り当てる。OS管理対象領域120のRAMディスクを除く記録領域125は、タスクの処理などに割り当てる。
(属性情報)
図7は、属性情報300の一例を示す図である。属性情報300は、図5に示すRAMディスクの作成処理により、起動処理において設定される。図7に示すように、属性情報300には、各RAMディスクのパス情報、圧縮方式、サイズ情報が設定される。
(アプリの一時ファイルの処理)
続いて、各アプリ203、204、・・・(図3参照)の一時ファイルをDRAM12(図3参照)のRAMディスク領域121、122、123、124(図6参照)に書込む手順、書込んだ一時ファイルを各アプリ203、204、・・・で読込む手順について説明する。なお、以下では、各アプリ203、204、・・・の内のアプリ203について説明するが、その他のアプリ204・・・についても同様とする。また、理解を容易にするために、図3に示す機能ブロックの内の主な機能ブロックを示し、その他の機能ブロックについては適宜説明し、図示については省略する。
図8は、アプリ203の一時ファイルをRAMディスク領域121、122、123、124に書き込む手順の一例を示すシーケンス図である。図8に示すように、先ず、アプリ203が設定情報100を取得する(S11、S12)。具体的に、アプリ203は、システムコール205(図3参照)を介して設定情報を要求し(S11)、SSD13から設定情報100の圧縮方式とパスを取得する(S12)。
続いて、アプリ203は、出力する一時ファイルの性質(例えば拡張子など)に基づいて圧縮が必要なファイルか圧縮が不要なファイルかを判断し(S13)、圧縮方式に対応するRAMディスクのパスを取得済みの設定情報から抽出する(S14)。具体的に、アプリ203は、圧縮が必要なファイルの場合には、そのファイルに最適な圧縮アルゴリズムを、設定情報100の圧縮方式t2に設定されている圧縮アルゴリズム「A」〜「C」の内から判断し、その圧縮アルゴリズムに対応するパスをパスt3から抽出する。例えば、テキストデータを出力する場合、アプリ203は、圧縮アルゴリズム「A」〜「C」の内から圧縮率が最も良いアルゴリズムが最適と判断する。また、アプリ203は、圧縮が不要なファイルについては、設定情報100の圧縮方式t2に設定されている非圧縮「D」のパスをパスt3から抽出する。
続いて、アプリ203が、当該一時ファイルをRAMディスクに書き込む要求と共に圧縮方式のパスと一時ファイルの生データとをシステムコール205に渡す。なお、アプリ203は、ステップS14で抽出したパスに対応する圧縮アルゴリズムを、その後においても各一時ファイルの書込みの要求の際にシステムコール205に渡す。圧縮ファイルシステム202は、書込みの要求があると、次のようにRAMディスクに一時ファイルを書き込む。
先ず、圧縮ファイルシステム202は、アプリ203からシステムコール205に渡された圧縮方式のパスおよび一時ファイルの生データの通知を受けると(S15)、各圧縮ファイルシステム202の自己の属性情報300の設定から、通知されたパスに対応する圧縮方式で生データを処理する(S16)。例えば、圧縮ファイルシステム202は、アプリ203から渡された圧縮方式のパスがパスt3(図4参照)の「/ramdisk0」の場合、これに対応する圧縮アルゴリズム「A」の設定に従い、生データを圧縮処理する。圧縮ファイルシステム202は、「/ramdisk1」の場合には、圧縮アルゴリズム「B」の設定に従って生データを圧縮処理する。圧縮ファイルシステム202は、「/ramdisk2」の場合には、圧縮アルゴリズム「C」の設定に従って生データを圧縮処理する。圧縮ファイルシステム202は、「/ramdisk3」の場合には、これに対応する非圧縮「D」から、生データの圧縮処理を省略する。
続いて、圧縮ファイルシステム202は、デバイスドライバ201を介して、RAMディスク領域121、122、123、124の内、アプリ203から渡された圧縮方式のパスに対応するRAMディスク領域にデータを格納する(S17)。
図9は、書込んだ一時ファイルのデータをアプリ203で読込む(取得する)手順の一例を示すシーケンス図である。図9に示すように、先ず、アプリ203がパスを指定してファイルの読込要求を行う(S21)。具体的には、アプリ203は、システムコール205を通じて上記読込要求を行う。
圧縮ファイルシステム202は、上記読込要求で指定されたパスに基づき、デバイスドライバ201にRAMディスク領域121、122、123、124の内のパスに対応するRAMディスク領域からのデータの読み取りを指示し(S22)、デバイスドライバ201から読み取りデータを取得する(S23)。
続いて、圧縮ファイルシステム202は、自己の属性情報300から圧縮方式を判断し、読み取ったデータの処理を行う(S24)。例えば、圧縮ファイルシステム202は、圧縮アルゴリズム「A」、「B」、「C」の場合、それぞれのアルゴリズムに基づいて圧縮データを伸張処理する。また、圧縮ファイルシステム202は、非圧縮「D」の場合、読み取ったデータの伸張処理を省略する。
続いて、アプリ203が、圧縮ファイルシステム202から、伸張等を終えたファイルを受け取る(S25)。具体的に、圧縮ファイルシステム202からは、システムコール205を介して上記ファイルが返信される。
以上のように、本実施の形態では、データの性質(アプリ)に応じて最適な圧縮アルゴリズムを選択したり、圧縮済みのデータの場合には圧縮/伸張の処理を省略したりするため、データの性質(アプリ)に応じた最適な圧縮を施すことが可能になる。また、圧縮方式毎にRAMディスクの記憶領域を割り当てるため、各RAMディスクの記憶領域のサイズをデータの性質に応じて異ならせることも可能であり、記憶領域の効率の良い利用が可能になる。また、DRAMはSSDに比べてスループットが高く、CPUでの演算負荷が大きいが、圧縮の効果が期待できない圧縮済みのデータについて圧縮/伸張の処理を省略するため、その分のCPUでの演算負荷を低減することが可能になる。また、頻繁に書込みを行う一時データをDRAMのRAMディスク領域に書込むことができるため、一時データの書込みに基づくSSDの寿命短縮を抑止することが可能になる。
なお、本実施の形態では、圧縮か非圧縮かの判断をユーザ空間401のアプリ203、204、・・・が行う例を示したが、カーネル空間402内で圧縮ファイルシステム202などが行うように変形してもよい。
(変形例1)
実施の形態では、アプリ毎に各アプリに適する圧縮アルゴリズムを使ってファイルの書込みおよび読込みを行う場合の態様を示したが、ここでは、その変形例として、各アプリがファイルの書込み時に書込み対象のデータの性質に応じて圧縮アルゴリズムを指定する指定手段を設けた場合の態様について示す。なお、ここでは主に実施の形態と異なる部分について説明するものとし、実施の形態と同様な箇所については図示及び説明を適宜省略する。また、各アプリ203、204、・・・の内のアプリ203を一例とする説明については、その他のアプリ204・・・についても同様とする。
図10は、変形例1に係るSSD13のソフトウェアの構成の一例を示す図である。図10には、実施の形態に示したソフトウェアの構成(図2参照)において更にデータ情報150とファイル管理情報151とを含めた構成を示している。データ情報150は、複数のデータ種別と圧縮アルゴリズムとを対応付けた情報である。ファイル管理情報151は、各アプリ203、204、・・・(図3参照)がファイル名毎にファイルとRAMディスクのパスとを対応付けて管理するためにある。ファイル管理情報151は、アプリ203、204、・・・がそれぞれ備え、ファイルの書込み時や読込み時に適宜設定する。
図11は、データ情報150のデータ構成の一例を示す図である。図11に示すように、データ情報150には、データの種別t151と圧縮アルゴリズムt152とが対応付けられている。データの種別t151には、データの性質を示す情報が設定されている。データの性質を示す情報とはアプリ203、204、・・・が生データから判別することができるデータの性質を示す情報、例えばテキストデータであるか画像データであるかなどを示す情報である。他方の圧縮アルゴリズムt152には、データの種別t151の設定に対応する最適な圧縮アルゴリズムが設定されている。
例えば、テキストデータの場合、データの種別t151にテキストデータであることを示す情報が、圧縮アルゴリズムt152にテキストデータの圧縮に適した圧縮アルゴリズムが設定されている。また、JPEGの画像データなど、既に圧縮済みのデータの場合には、データをさらに圧縮するとリソースの浪費に繋がる。このため、データの種別t151に圧縮済みのデータが設定されているものについては、その圧縮アルゴリズムt152に圧縮を行わない非圧縮が設定されている。
図12は、ファイル管理情報151の一例を示す図である。図12には、各アプリ203、204、・・・のうちの一つのファイル管理情報151を示している。図12に示すように、ファイル管理情報151には、ファイル名とパスとが対応付けて設定される。
図12に示す設定例は、RAMディスクへのデータの書込みやRAMディスクからのデータの読込みが複数回行われた後の設定例である。この例では、1つのアプリ(例えばアプリ203)が、ファイル1をRAMディスク領域121(図6参照)に書込み、ファイル2をRAMディスク領域122(図6参照)に書込み、ファイル3をRAMディスク領域123(図6参照)に書込み、ファイル4をRAMディスク領域124(図6参照)に書込んだ後の、当該アプリ(アプリ203)のファイル管理情報151の設定状態を示している。パスは、一意性を持たせるために「ramdisk*/アプリ名/ファイル名」の形式としている。なお、各アプリ203、204、・・・は自己のアプリ名以下のディレクトリを自由に使用できるものとする。
変形例1に係るアプリは、ファイルの書込み時に書込み対象のデータの性質に応じて圧縮アルゴリズムを指定する指定手段を有する。指定手段は、例えば、書込み対象のデータの性質を判別する判別手段の判別結果から圧縮アルゴリズムを指定する。判別手段は、例えばテキストデータや画像データなどを判別する。指定手段による圧縮アルゴリズムの指定は、データ情報150や設定情報100などを利用する。以下に、変形例1に係る情報処理装置1におけるRAMディスクへの一時ファイルの書込みと読込みのシーケンスについて説明する。なお、アプリ203を一例に説明するが、その他のアプリ204・・・についても同様とする。
図13は、アプリ203の一時ファイルをRAMディスク領域121、122、123、124に書き込む手順の一例を示すシーケンス図である。なお、図13において、RAMディスク領域121、122、123、124の図示は省略している。
最初にアプリ203は、生データから書込みたいデータの性質を判別する(S31)。
続いてアプリ203は、データ情報150からデータの性質に対応する圧縮アルゴリズムを示す情報を取得する(S32、S33)。
続いてアプリ203は、ステップS32、S33で取得した圧縮アルゴリズムに対応するRAMディスクのパスを設定情報100から取得する(S34、S35)。
続いてアプリ203は、ステップS34、S35で取得したRAMディスクのパスを使ってデータの書込み要求を行う(S36)。具体的にアプリ203は、RAMディスク*/アプリ名/ファイル名」のディレクトリ構造のパスで当該データの書込みを要求する。
圧縮ファイルシステム202は、データの書込み要求があると、自己の属性情報300の設定に従って当該データを圧縮処理する(S37)。具体的に、圧縮ファイルシステム202は、アプリ203から書込み要求のあったRAMディスクのパスに対応する圧縮アルゴリズムでデータを圧縮する。なお、圧縮ファイルシステム202は、書込み要求のあったRAMディスクが属性情報300において非圧縮として設定されている場合、当該データの圧縮を行わないものとし、これも圧縮処理の一つに含めている。
続いて、圧縮ファイルシステム202は、自己の属性情報300の設定に従い、当該データの圧縮方式に対応するRAMディスクにデバイスドライバ201を介して圧縮処理後のデータを書き込む(S38、S39)。
アプリ203は、圧縮ファイルシステム202がデータの書込みを完了すると(S40)、自己のファイル管理情報151を、当該データのファイル名とパスとを設定(追加設定)することにより更新する(S41)。
ここでは、一例として、1つのアプリが一つのファイル名のデータをRAMディスクに書込むまでのシーケンスを示したが、同じアプリが別のファイル名のデータをRAMディスクに書込む場合も、同様の手順で行われる。つまり、同じアプリであっても異なる種別のデータを扱う場合、各データで異なる圧縮方式が適用される可能性があり、異なる圧縮方式が適用された場合は、それぞれで別のRAMディスクにデータが書込まれることになる。
図14は、RAMディスクに書込まれている一時ファイルのデータをアプリ203が取得する手順の一例を示すシーケンス図である。なお、図14においても、RAMディスク領域121、122、123、124の図示は省略している。
最初にアプリ203は、自己のファイル管理情報151(図12参照)から、取得したいファイル名のパスを取得する(S51)。
続いてアプリ203は、そのパスのデータの読込みの要求を行う(S52)。
圧縮ファイルシステム202は、アプリ203から上記読込の要求があると、自己の属性情報300の設定の、上記パスにあるデータをデバイスドライバ201を介してRAMディスクから読み込む(S53、S54)。
続いて圧縮ファイルシステム202は、自己の属性情報300の上記パスに対応する圧縮アルゴリズムでデータを伸張処理する(S55)。このとき、属性情報300の属性が非圧縮であれば、圧縮ファイルシステム202は上記パスにあるデータの伸張を行わない。当該データの伸長を行わないものも伸張処理の一つに含まれる。
アプリ203は、圧縮ファイルシステム202から、伸張処理を終えたデータが返される(S56)。
(変形例1の効果)
変形例1に示すように1つのプロセスが様々なデータ形式を扱うことがある。その場合、アプリが1つのアルゴリズムしか使えないとするとアプリ内のすべてのデータに対し、同一の圧縮アルゴリズムしか使えないことになる。その場合、すべてのデータに対して適切な圧縮アルゴリズムを選択することが困難になる。例えば、既に圧縮済みでこれ以上の圧縮が望めないようなデータも含まれ、これを圧縮処理すると、CPUの演算負荷がさらに増えてしまうことになる。
しかし、変形例1の構成であれば、アプリがデータの性質に応じた最適な圧縮アルゴリズムをデータごとに指定できるため、CPU負荷を減らすことや、効率的な圧縮処理によってDRAMの書き込むデータ量を増やすことが可能になる。よって、DRAMへのデータの書込み量とCPUの演算負荷のバランスをとることが可能になる。
(変形例2)
RAMディスクの空き領域が所定値を下回る場合、RAMディスクに書込まれてから長期滞留しているデータ(長期滞留データ)の削除や移動を行うことにより、データが書込めるようにしてもよい。以下、実施の形態や他の変形例と同様の箇所については図示及び説明を適宜省略し、主に異なる部分について説明する。
図15は、本変形例2に係るSSD13のソフトウェアの構成の一例を示す図である。本変形例2に係るSSD13のソフトウェアの構成は、実施の形態に示したソフトウェアの構成(図2参照)において、さらにデータ情報150とファイル管理情報151とRAMディスク管理プログラム171とを含む。データ情報150とファイル管理情報151は、それぞれ、図11と図12に示す構成、つまり変形例1と同様であるため、ここでの詳しい説明は省略する。
RAMディスク管理プログラム171は、RAMディスクを管理する機能(管理手段)をカーネルに追加するモジュール型のプログラムである。
本変形例2では一例として、データ情報150とファイル管理情報151とを含む構成で説明するが、これらを構成に含めなくても実施は可能である。
本変形例2に係る情報処理装置におけるRAMディスクの作成手順や、各アプリによるRAMディスクへの一時ファイルの書込みの手順や、RAMディスクからの取得の手順などは、変形例1と同様である。本変形例2は、RAMディスク管理プログラム171による情報処理装置全体の動作が、実施の形態や変形例1と主に異なる。以下では、RAMディスク管理プログラム171による情報処理装置全体の動作について詳しく説明する。
(RAMディスク管理モジュール)
RAMディスク管理モジュール(「管理手段」の一例)210(図16参照)は、CPU11がDRAM12にRAMディスク管理プログラム171(図15参照)をロードして実行することにより実現される。
(RAMディスク管理プログラムによる情報処理装置全体の動作)
図16は、情報処理装置1におけるRAMディスク管理モジュール210の動作について説明する図である。図16には、RAMディスク管理モジュール210がRAMディスク領域121、122、123、124(図6参照)に書込まれているデータの空き領域を確保するときの情報処理装置全体のシーケンスを示している。なお、図22において、RAMディスク領域121、122、123、124の図示は省略している。
最初に、RAMディスク管理モジュール210は、一定間隔でデバイスドライバ201に各RAMディスク領域121、122、123、124の空き容量を確認する(S101)。
ステップS101の確認により、いずれかのRAMディスク領域121、122、123、124の空き容量が一定値より少ないと判定されたとする。その場合、RAMディスク管理モジュール210は、空き容量が一定値より少ないRAMディスク領域内に長期に滞留しているデータ(長期滞留データ)がないかをチェックし、圧縮ファイルシステム202からデータ情報(長期滞留データ)を取得する(S102)。
続いて、RAMディスク管理モジュール210は、データを削除する場合と、データを削除しない場合とに分けて次の処理を行う。なお、データを削除するかどうかについては、例えば他のRAMディスク領域に十分な空き領域があるか、その時点で設定されている圧縮アルゴリズムよりも高圧縮率の圧縮アルゴリズムに変更可能かどうか、などにより判断する。変更可能であれば、データを削除せずに、他のRAMディスク領域にデータを移動する。
先ずデータを削除する場合について説明する。データを削除する場合、RAMディスク管理モジュール210は、取得した長期滞留データの書き込み元のアプリ(一例としてアプリ203とする)に対し、ファイル名を通知して当該データの削除を要求する(S103)。要求を受けたアプリ203は当該データを削除し(S104)、自己のファイル管理情報151の当該データの設定を更新する(S105)。
一方、データを削除しない場合、RAMディスク管理モジュール210は、当該データの移動を行う(S106、S107)。具体的に、RAMディスク管理モジュール210は、圧縮ファイルシステム202に対し、ステップS102で取得した長期滞留データの移動を要求する(S106)。RAMディスク管理モジュール210は、移動後の新しいパスをRAMディスク管理モジュール210へ通知する(S107)。この一連の処理において、圧縮ファイルシステム202は、伸張した長期滞留データを別のRAMディスク領域の圧縮アルゴリズムで圧縮し、そのRAMディスク領域に圧縮後のデータを書き込む。
そして、RAMディスク管理モジュール210が当該長期滞留データの書き込み元のアプリ203へ当該長期滞留データの新しいパスへの更新を指示することにより(S108)、アプリ203がファイル管理情報151の当該長期滞留データの設定を更新する(S109)。
なお、この例では、長期滞留データを削除する場合において、RAMディスク管理モジュール210からデータ削除の要求を受けるとアプリ203が当該データを削除する例を示した。しかし、アプリ203は当該データが削除可能であるかを判断してから当該データを削除してもよい。アプリ203が当該データを削除可能ではないと判断した場合には、それをRAMディスク管理モジュール210に通知し、RAMディスク管理モジュール210が圧縮ファイルシステム202に当該データの書込みを指示し、圧縮ファイルシステム202から当該データとは異なる別の長期滞留データを取得する。
(変形例2の効果)
RAMディスクに長期滞在するデータが存在する場合、RAMディスクの容量を圧迫し、RAMディスクに書き込めるデータ量が制限される、RAMディスクは揮発性メモリのため、電源を消した時にRAMディスク内のデータが消えてしまう。しかし、変形例2の構成であれば、長期滞在するデータが存在する際に、RAMディスク上のデータを消去することや別のRAMディスク領域に移動することで、空き領域の少ないRAMディスク領域に書き込むデータ量を増やすことができる。
(変形例3)
任意のRAMディスクの圧縮アルゴリズムを動的に変更する手段を設けてもよい。ここでは、RAMディスクを異なる圧縮アルゴリズムで設定し直す(リマウントする)ことにより、同じRAMディスク領域を複数の圧縮アルゴリズムで使い分ける構成について示す。一例として、RAMディスク領域を一つとし、複数のプロセスが同じRAMディスク領域を使用する形態について示す。なお、実施の形態や他の変形例と同様の箇所については図示及び説明を適宜省略し、ここでは主に異なる部分について説明する。
本変形例3に係るSSD13のソフトウェアの構成は、実施の形態に示したソフトウェアの構成(図2参照)において、さらにデータ情報150(図11参照)を含む。また、実施の形態に示した設定情報100(図4参照)やRAMディスク作成プログラム101とは構成が異なる。具体的に、本変形例3に係る設定情報100は、RAMディスク一つ分の設定のみを有する。例えば設定情報100(図4参照)のRAMディスク番号「1」の設定のみを有する。また、RAMディスク作成プログラム101は、RAMディスクの作成の他に、RAMディスクのリマウントを行うプログラムと、マウント情報とを含む。マウント情報は、RAMディスクのマウント状態を示す情報であり、RAMディスク作成プログラム101により使用される。
本変形例3に係る情報処理装置においても、実施の形態や、その他の変形例と同様に、作成部が設定情報100の設定に基づいてRAMディスクを作成する。本変形例3では、設定情報100がRAMディスク一つ分の設定のみを有するため、DRAM12には一つのRAMディスクが作成される。その作成された一つのRAMディスクを対象に、後述するRAMディスクリマウントモジュール(「設定変更手段」の一例)209(図21参照)が、データの書込みの際、そのデータに対応する圧縮アルゴリズムでリマウントを行う。
図17は、本変形例3に係るDRAM12のメモリマップの一例を示す図である。図17に示すように、本変形例3ではOS管理対象領域120に一つのRAMディスク領域1200が割り当てられることになる。
(マウント情報)
マウント情報は、初期化の際に設定されるRAMディスク初期化情報と、リマウントの度に更新されるRAMディスク更新情報とを有する。マウント情報は、「設定変更手段」の一部である。
図18は、本変形例3に係るマウント情報の一例を示す図である。図18に示すマウント情報160は、RAMディスク初期化情報161と、RAMディスク更新情報162とを有する。
RAMディスク初期化情報161には、RAMディスク作成時におけるRAMディスクの圧縮アルゴリズムとパスとサイズの一セット分の情報が設定される。
RAMディスク更新情報162には、当該RAMディスクについて、リマウントされた圧縮アルゴリズムと、リマウントを要求した要求元のプロセス(プロセス名等)とが設定される。なお、RAMディスク更新情報162には、RAMディスクがリマウントされる度に最新の情報が上書きされる。
図19は、リマウントが繰り返された場合のRAMディスクの状態遷移の一例を示す図である。図19において、RAMディスク領域121は、図19(a)、図19(b)、図19(c)の順で状態が遷移する。
図19(a)は、初期化時にRAMディスク領域1200が圧縮アルゴリズムAでマウントされた場合の例である。図19(a)には、圧縮アルゴリズムAがマウントされた後にRAMディスク領域1200に圧縮アルゴリズムAで圧縮されたデータd1が書き込まれた状態を表している。
なお、初期化の際、マウント情報160(図18参照)のRAMディスク初期化情報161には、RAMディスクの圧縮アルゴリズム(この場合、圧縮アルゴリズムA)とパスとサイズの一セット分の情報が設定される。
図19(b)は、図19(a)と同じRAMディスク領域1200にアプリがデータd2を圧縮アルゴリズムBで書き込んだ場合の例を示している。図19(b)に示すように、図19(a)で圧縮アルゴリズムAがマウントされていたRAMディスク領域1200が圧縮アルゴリズムBにリマウントされる。そして、圧縮アルゴリズムBにリマウントされた領域に、圧縮アルゴリズムBで圧縮されたデータd2が書き込まれる。なお、リマウント前に書き込まれていたデータd1は圧縮アルゴリズムAの状態を保持している。
図19(b)に示す状態において、マウント情報160のRAMディスク更新情報162は、リマウントを行った圧縮アルゴリズムBと要求元のプロセスとを示す情報により更新されている。
図19(c)は、図19(b)と同じRAMディスク領域1200にアプリがデータd3を圧縮アルゴリズムCで書き込んだ場合の例を示している。図19(c)に示すように、図19(b)で圧縮アルゴリズムBがマウントされていたRAMディスク領域1200が圧縮アルゴリズムCにリマウントされる。そして、圧縮アルゴリズムCでリマウントされた領域に、圧縮アルゴリズムCで圧縮されたデータd3が書き込まれる。なお、リマウント前に書込まれていたデータd1は圧縮アルゴリズムAの状態を保持し、データd2は圧縮アルゴリズムBの状態を保持している。
図19(c)に示す状態において、マウント情報160のRAMディスク更新情報162は、リマウントを行った圧縮アルゴリズムCと要求元のプロセスとを示す情報により更新されている。
続いて、同じRAMディスク領域を、異なる圧縮アルゴリズムのデータにより使い分けるためのリマウントの手順について説明する。各プロセスは、自ら生データの最適な圧縮方式を指定し、各自のデータの書込みの要求を行う。本変形例3では、先ず、RAMディスクリマウントモジュール209(図21参照)が複数のプロセスからの異なる圧縮アルゴリズムでマウントする要求を受け取り、リマウントの処理を行う。なお、RAMディスクリマウントモジュール209は、複数のプロセスから要求を受けとることになるため、最初に占有権の取得を行う。
図20は、RAMディスクリマウントモジュール209(図21参照)が行うリマウントの手順の一例を示すフロー図である。
RAMディスクリマウントモジュール209は、最初に占有権の取得を行い、処理対象のプロセスの一つから要求を受ける(S61)。なお、他のプロセスは、占有権が取得されている間は、その占有権が開放されるまで、待機する。
RAMディスクリマウントモジュール209は、占有権を取得すると、先ずマウント情報160を参照する(S62)。
続いて、RAMディスクリマウントモジュール209は、プロセスからのデータの書込みなどの要求に基づき、RAMディスクのリマウント処理が必要かを判断する(S63)。具体的に、RAMディスクリマウントモジュール209は、プロセスから受け取った圧縮アルゴリズムがRAMディスク更新情報162の最新の圧縮アルゴリズムに一致するかを判定し、圧縮アルゴリズムが一致しない場合にリマウント処理が必要と判断する。
圧縮アルゴリズムが一致する場合(S63:Yes)、RAMディスクリマウントモジュール209は、ステップS64、S65のリマウント処理を行わずに、プロセスが要求した圧縮アルゴリズムで圧縮されたデータをRAMディスク領域に書込み、占有権を開放する(S66)。
圧縮アルゴリズムが一致しない場合(S63:No)、RAMディスクリマウントモジュール209は、ステップS64、S65のリマウント処理を行う。それから、RAMディスクリマウントモジュール209は、プロセスが要求した圧縮アルゴリズムで圧縮されたデータをRAMディスク領域に書込み、占有権を開放する(S66)。
なお、リマウント処理において、RAMディスクリマウントモジュール209は、RAMディスクのマウントポイントに当該RAMディスクをリマウントする(S64)。更に、RAMディスクリマウントモジュール209は、この操作の際に、圧縮ファイルシステム202の属性情報300にパスと圧縮方式とを設定する。
また、リマウント処理において、RAMディスクリマウントモジュール209は、マウント情報160のRAMディスク更新情報162を、リマウントした圧縮アルゴリズムと、そのリマウントを要求した要求元のプロセスの情報とにより更新する。
図21は、圧縮アルゴリズムが異なる設定の一時ファイルをアプリ203が同じRAMディスク領域1200に書き込む手順の一例を示すシーケンス図である。
最初にアプリ203は、生データから書込みたいデータの性質を判別する(S71)。
続いてアプリ203は、データ情報150を参照し、データの性質に対応する圧縮アルゴリズムを取得する(S72、S73)。
続いてアプリ203は、RAMディスクリマウントモジュール209に占有権の取得を要求する(S74)。これによりRAMディスクリマウントモジュール209は、そのアプリ203の占有権を取得する。他のアプリが占有権を取得している場合は、他のアプリの占有権を開放するまで、新たなアプリの占有権は取得しない。
RAMディスクリマウントモジュール209は、マウント情報を参照し(S75)、圧縮アルゴリズムを比較する(S76)。具体的に、RAMディスクリマウントモジュール209は、アプリ203から受け取った圧縮アルゴリズムとマウント情報160の最新の圧縮アルゴリズムとを比較し、一致するかを判定する。
圧縮アルゴリズムが一致しない場合、RAMディスクリマウントモジュール209は、マウント情報160のRAMディスク更新情報162を更新し(S77)、デバイスドライバ201にリマウント操作を行う(S78)。
圧縮アルゴリズムが一致する場合は、ステップS77、S78をとばす。
続いて、アプリ203が、RAMディスクリマウントモジュール209からの応答に基づき、圧縮ファイルシステムにデータの書込みを要求する(S79)。
圧縮ファイルシステムは、データを受け取ると、データ圧縮を行って(S80)、デバイスドライバ201に書込みを要求する(S81、S82)。
アプリ203は、データの書込みの要求に対する応答があると(S83)、RAMディスクリマウントモジュール209の占有権を開放する(S84)。
書込んだ一時ファイルのデータをアプリ203で読込む手順は、図14において、ステップS51を省略した手順に相当する。本変形例3では、RAMディスク領域を一つだけ設けているためパスは所定の一つである。このため、ステップS51を省略することができる。
なお、本変形例3では、RAMディスク領域を1つに設定したが、RAMディスク領域を複数設定し、各RAMディスク領域においてリマウント処理を行うようにしてもよい。
(変形例3の効果)
本変形例3では、RAMディスクを異なる圧縮アルゴリズムでリマウントすることにより、同じRAMディスク領域を複数の圧縮アルゴリズムで使い分けることができる。従って、RAMディスク領域を圧縮アルゴリズムごとに複数に分ける必要がなく、RAMディスク領域を効率よく使用することができる。
(変形例4)
長期に滞留しているデータを圧縮率の高い圧縮アルゴリズムに切り替えるようにしてもよい。本変形例4では、一例として一つのRAMディスク領域に対し変形例3に示すようなリマウントを行って長期滞留データをより圧縮率の高い圧縮アルゴリズムに切り替えていく例について示す。なお、実施の形態や他の変形例と同様の箇所については図示及び説明を適宜省略し、ここでは主に異なる部分について説明する。
本変形例4に係るSSD13のソフトウェアの構成は、ソフトウェアの構成(図2参照)において、データ情報150(図22参照)とRAMディスク管理プログラム171とを含む。また、RAMディスク作成プログラム101の構成が異なる。
データ情報150は、データの種別と圧縮アルゴリズムとを対応付けた情報である。本変形例4に係る構成では、変形例1に示した構成(図11参照)において、さらに優先順位の異なる複数の圧縮アルゴリズムを設定できるようになっている。データ情報150の構成例については図22を用いて後述する。
RAMディスク管理プログラム171は、RAMディスクを管理する機能をカーネルに追加するモジュール型のプログラムである。RAMディスク作成プログラム101は、RAMディスクの作成の他に、RAMディスクのリマウントを行うプログラムと、マウント情報とを含む。各プログラムに基づく情報処理装置全体の動作は図24を用いて後述する。マウント情報の構成については、変形例3で説明済みであるため、ここでの詳しい説明は省略する。
本変形例4は、主に、データ情報150のデータ構成や、長期滞留データをリマウントにより高圧縮する際の情報処理装置全体の動作などが、実施の形態や他の変形例と異なる。以下では、データ情報50のデータ構成や、長期滞留データをリマウントにより高圧縮する際の情報処理装置全体の動作について詳しく説明する。
(データ情報)
図22は、本変形例4に係るデータ情報150のデータ構成の一例を示す図である。図22に示すように、データ情報150には、データの種別t151と第1の圧縮アルゴリズムt152−1と第2の圧縮アルゴリズムt152−2とが対応付けられている。データの種別t151は変形例1と同様に、データの性質を示す情報が設定されている。第1の圧縮アルゴリズムt152−1には、データの種別t151に適した圧縮アルゴリズムが第1の優先順位の圧縮アルゴリズムとして設定されている。第2の圧縮アルゴリズムt152−2には、設定できる中でより高い圧縮アルゴリズムが第二の圧縮アルゴリズムとして設定されている。第二の圧縮アルゴリズムは、RAMディスクの空き容量が少なくなった場合に適用される。なお、CPU負荷率などを考慮しない場合であれば、設定できる中で最も高い圧縮アルゴリズムを第二の圧縮アルゴリズムとして設定してよい。
ここでは、第1の圧縮アルゴリズムt152−1にデータの種別に応じた圧縮アルゴリズムの設定例を示している。第2の圧縮アルゴリズムt152−2には全ての種別に共通するより高圧縮の圧縮アルゴリズム、一例として第1の圧縮アルゴリズムの中でより高圧縮の圧縮アルゴリズムAの設定例を示している。
(RAMディスクの状態遷移)
図23は、RAMディスクが異なる圧縮アルゴリズムでマウントされる度に遷移するマウントの状態の一例を示す図である。図23(a)、図23(b)、図23(c)に示す各状態は、図19の図19(a)、図19(b)、図19(c)に示す各状態に一致し、図23(d)に示す状態は、本変形例4で新たに追加した、長期滞留データの圧縮アルゴリズムの変更を示している。
図23(a)には、圧縮アルゴリズムAがマウントされた後にRAMディスク領域1200に圧縮アルゴリズムAで圧縮されたデータd1が書き込まれた状態を表している。
図23(b)には、図23(a)と同じRAMディスク領域1200にアプリがデータd2を圧縮アルゴリズムBで書き込んだ場合の状態を示している。
図23(c)には、図23(b)と同じRAMディスク領域1200にアプリがデータd3を圧縮アルゴリズムCで書き込んだ場合の状態を示している。
このようにRAMディスク領域1200にはデータd1、d2、d3が順次書き込まれる。RAMディスク管理モジュール210が、データd1とデータd2を長期滞留データとして判断したとする。その場合、各長期滞留データが伸張され、最も圧縮率の高いアルゴリズム(この例では圧縮アルゴリズムA)でRAMディスクがリマウントされて、その領域に、圧縮アルゴリズムAで圧縮し直された長期滞留データが書き込まれる。
図23(d)には、図23(c)と同じRAMディスク領域1200に、RAMディスク管理モジュール210が長期滞留データとして判断したデータd1とデータd2を圧縮アルゴリズムAで書込み直したときの状態を示している。図23(c)と図23(d)とが示すように、圧縮アルゴリズムCでマウントされたRAMディスク領域が圧縮アルゴリズムAにリマウントされ、データd1とデータd2が圧縮アルゴリズムAで書き込み直される。なお、データd1、d2は、その後に別の圧縮アルゴリズムでリマウントされた後においても常に状態を保持する。
また、RAMディスク更新情報162(図18参照)は、最後にリマウントを行った圧縮アルゴリズムAと要求元のプロセスとを示す情報に更新される。
(長期滞留データをリマウントにより高圧縮する際の情報処理装置全体の動作)
図24は、長期滞留データをリマウントにより高圧縮する際の情報処理装置全体の動作の一例を示すシーケンス図である。
最初に、RAMディスク管理モジュール210は、一定間隔でデバイスドライバ201にRAMディスク領域1200の空き容量を確認する(S151)。
ステップS151の確認により、RAMディスク領域1200の空き容量が一定値より少ないと判定されたとする。その場合、RAMディスク管理モジュール210は、RAMディスクリマウントモジュール209に占有権の取得を要求する(S152)。そして、RAMディスク管理モジュール210は、占有権が取得できると、RAMディスク領域1200内に長期滞留データがないかをチェックし、圧縮ファイルシステム202からデータ情報(長期滞留データ)を取得する(S153)。
続いて、RAMディスク管理モジュール210は、データを削除する場合と、データを削除しない場合とに分けて次の処理を行う。なお、データを削除するかどうかについては、例えば、その時点で設定されている圧縮アルゴリズムよりも高圧縮率の圧縮アルゴリズムに変更可能かどうか、などにより判断する。
先ずデータを削除する場合について説明する。データを削除する場合、RAMディスク管理モジュール210は、取得した長期滞留データの書き込み元のアプリ(一例としてアプリ203とする)に対し、ファイル名を通知して当該データの削除を要求する(S154)。要求を受けたアプリ203は当該データを削除する(S155)。
一方、データを削除することができない場合、RAMディスク管理モジュール210は、データ情報150からデータ情報を取得する(S156、S157)。そして、RAMディスク管理モジュール210は、当該長期滞留データが圧縮アルゴリズム(1)で圧縮されている場合、RAMディスクリマウントモジュール209に圧縮アルゴリズム(2)への変更を要求する(S158)。この要求により、RAMディスクリマウントモジュール209は、RAMディスクを圧縮アルゴリズム(1)でリマウントして当該長期滞留データを取得し、さらにRAMディスクを圧縮アルゴリズム(2)でリマウントして当該長期滞留データを書き込む。
その後、この実施により圧縮アルゴリズム(2)の圧縮データが書き込まれると、RAMディスク管理モジュール210は、RAMディスクリマウントモジュール209の占有権を開放する(S159)。
(変形例4の効果)
RAMディスクに長期滞在するデータが存在する場合、RAMディスクの容量を圧迫し、RAMディスクに書き込めるデータ量が制限される、RAMディスクは揮発性メモリのため、電源を消した時にRAMディスク内のデータが消えてしまう。
しかし、変形例4の構成であれば、長期滞在するデータが存在する際に、現在設定されている圧縮アルゴリズムからより高い圧縮アルゴリズムへの変更、またはRAMディスク上のデータを消去することで、RAMディスクに書き込むデータ量を増やすことができる。
(変形例5)
ネットワーク接続が可能で、ネットワークストレージを有する情報処理装置において、RAMディスクに保存したデータをネットワークストレージに保存して永続化するように変形してもよい。以下では、RAMディスク内に存在するデータを外部ストレージ(ネットワークストレージや二次記憶装置など)へ保存する場合の態様について示す。
図25は、変形例5に係るハードウェア構成の一例を示す図である。図25には、一例として、CPU11、DRAM(RAMディスク)12、SSD13、外部ストレージ15がバス14を介して接続されている構成を示している。ここで、外部ストレージ15は、ネットワークストレージ又は二次記憶装置である。二次記憶装置は、SD(登録商標)カードやUSB(Universal Serial Bus)メディアなどである。CPU11は、外部ストレージ15がネットワークストレージである場合、ネットワーク通信インタフェースを介してネットワーク上の外部ストレージと通信接続する。
図26は、RAMディスク12内に存在するデータを外部ストレージ15へ保存するための手順の一例を示すシーケンス図である。
最初、RAMディスク管理モジュール210は、圧縮ファイルシステム202にRAMディスクのデータ情報の取得を要求する(S201)。データ情報は、RAMディスク内の一部の所定のデータでもよいし、全てのデータでもよい。
続いて、RAMディスクのデータを取得するシーケンスを行う(S202)。RAMディスクのデータを取得するシーケンスは、他の変形例において説明したデータ取得のシーケンスを行う。このシーケンスの詳細については他の変形例などに一例を示しているため、ここでの詳しいシーケンスの図示および説明は省略する。
ステップS202に続き、RAMディスク管理モジュール210は、圧縮ファイルシステム202に対し、取得したデータの外部ストレージ15への保存を要求する(S203)。この要求により、圧縮ファイルシステム202が外部ストレージ15にデータの保存を行う(S205)。
(変形例5の効果)
RAMディスク内のデータを外部ストレージに保存することで、情報処理装置の電源を切った後でもデータを永続化することができる。このため、情報処理装置を再び起動した後も、RAMディスク内のデータを復元することが図れる。また、RAMディスク内の一部のデータを外部ストレージへ移動した場合には、RAMディスク内の空き領域が増えるため、書き込むデータ量を増やすことができる。
実施の形態及び各変形例の各装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、実施の形態及び各変形例の各装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、実施の形態及び各変形例の各装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、実施の形態及び各変形例のプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
100 設定情報
102 圧縮ファイルシステムプログラム
103、104 アプリケーションプログラム
特開平5−120131号公報

Claims (16)

  1. 複数のRAMディスクのぞれぞれの圧縮方式を設定した設定情報と、
    前記設定情報の設定に従い、前記圧縮方式毎にRAMディスクを作成する作成部と、
    データの書込みおよび読込みを要求するアプリケーションと、
    前記アプリケーションによる前記データの書込みの要求に基づき、前記アプリケーションに対応するRAMディスクに該RAMディスクの圧縮方式で前記データを書込むファイルシステムと、
    を有することを特徴とする情報処理装置。
  2. 前記アプリケーションは、
    前記データの書込み先として、前記設定情報の設定の内の自身のアプリケーションのデータの性質が対応する圧縮方式のRAMディスクを指定し、
    前記ファイルシステムは、
    前記アプリケーションにより指定されたRAMディスクに該RAMディスクに設定されている圧縮方式で前記データの書込みを行う、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記作成部は、前記圧縮方式毎のRAMディスクの作成において、前記設定情報の設定に従い、前記複数のRAMディスクの記憶領域をDRAMの一部の記憶領域にRAMディスク毎に作成する、
    ことを特徴とする請求項1または請求項2に記載の情報処理装置。
  4. 前記圧縮方式には非圧縮が含まれ、
    前記アプリケーションは、前記データが圧縮済みのデータである場合に、前記データの書込み先として前記複数のRAMディスクの内の非圧縮の設定のRAMディスクを指定し、
    前記ファイルシステムは、前記アプリケーションにより非圧縮の設定のRAMディスクが指定された場合に、前記データを圧縮を省略して前記指定されたRAMディスクに書込む、
    ことを特徴とする請求項1乃至3のうちの何れか一項に記載の情報処理装置。
  5. 前記アプリケーションは、
    前記アプリケーションのファイルごとにデータの性質が対応する圧縮方式を指定する指定手段と、
    前記指定手段により指定された圧縮方式に対応するRAMディスクを前記データの書込みを要求した書込み先を示す情報として前記データのファイル名ごとに管理するファイル管理情報と、
    を有する、
    ことを特徴とする請求項1乃至4のうちの何れか一項に記載の情報処理装置。
  6. 前記指定手段は、
    前記アプリケーションのファイルごとにデータの性質を判別する判別手段と、
    前記判別手段により判別されたデータの性質と該データの性質に対応する圧縮方式とが予め対応付けられているデータ情報と、
    に基づき前記アプリケーションのファイルごとにデータの性質が対応する圧縮方式を指定する、
    ことを特徴とする請求項5に記載の情報処理装置。
  7. 前記ファイルシステムは、前記アプリケーションからデータの読込みの要求を受けた場合に、前記アプリケーションから前記ファイル管理情報に含まれる前記データの書込み先を示す情報の指定があると、前記読込の要求を受けたデータを、前記指定された書込み先のRAMディスクから該RAMディスクの圧縮方式に応じて伸張する、
    ことを特徴とする請求項5または6に記載の情報処理装置。
  8. RAMディスクの圧縮方式を設定した設定情報と、
    前記設定情報の設定に従い、前記圧縮方式に対応したRAMディスクを作成する作成部と、
    データの書込みおよび読込みを要求するアプリケーションと、
    前記アプリケーションによる前記データの書込みの要求に基づき、前記RAMディスクに前記データに対応する圧縮方式で前記データを書込むファイルシステムと、
    前記アプリケーションが書込みを要求する前記データにおいて、前記データに対応する圧縮方式が前記RAMディスクの圧縮方式に一致しない場合に、前記RAMディスクの圧縮方式を前記データに対応する圧縮方式に設定し直す設定変更手段と、
    を有することを特徴とする情報処理装置。
  9. 前記設定変更手段は、
    前記ファイルシステムが前記RAMディスクに前記データの書込みを行う度に、前記RAMディスクの圧縮方式が前記データに対応する圧縮方式に一致しないという条件を満たすと、前記RAMディスクの圧縮方式を前記データに対応する圧縮方式に設定し直す、
    ことを特徴とする請求項8に記載の情報処理装置。
  10. 前記設定変更手段が一つのRAMディスクを対象に圧縮方式を異なる圧縮方式へ設定し直すリマウントを繰り返す度に、前記ファイルシステムは、前記一つのRAMディスク領域に前記リマウント後の圧縮方式に対応するデータを書込む、
    ことを特徴とする請求項8または9に記載の情報処理装置。
  11. RAMディスクの空き領域を管理する管理手段を有し、
    前記管理手段は、前記RAMディスクに長期に滞留するデータを削除することにより前記RAMディスクの空き領域を増加させる、
    ことを特徴とする請求項1乃至10のうちの何れか一項に記載の情報処理装置。
  12. 前記管理手段は、複数のRAMディスクのうちの第1のRAMディスクに書込まれているデータを第2のRAMディスクへ移動することにより第1のRAMディスクの空き領域を増加させる、
    ことを特徴とする請求項1乃至11のうちの何れか一項に記載の情報処理装置。
  13. 前記管理手段は、前記RAMディスクに書込まれているデータを該データの圧縮アルゴリズムよりも高い圧縮アルゴリズムで圧縮したデータで書き換えることにより前記RAMディスクの空き領域を増加させる、
    ことを特徴とする請求項1乃至12のうちの何れか一項に記載の情報処理装置。
  14. 前記RAMディスクに書込んだデータを二次記憶装置に保存することにより前記データを永続化させる、
    ことを特徴とする請求項1乃至13のうちの何れか一項に記載の情報処理装置。
  15. 前記RAMディスクに書込んだデータをネットワークを介してネットワークストレージに保存することにより永続化させる、
    ことを特徴とする請求項1乃至14のうちの何れか一項に記載の情報処理装置。
  16. RAMディスクを設定する方法であって、
    複数のRAMディスクのぞれぞれの圧縮方式を設定した設定情報を取得するステップと、
    RAMディスク用の領域を確保するステップと、
    前記RAMディスク用の領域をフォーマットするステップと、
    前記RAMディスク用の領域に前記圧縮方式をマウントするステップと、
    を前記複数のRAMディスクの数だけ繰り返す、
    ことを特徴とする方法。
JP2018131722A 2017-09-25 2018-07-11 情報処理装置及び方法 Active JP7214999B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/140,697 US10860257B2 (en) 2017-09-25 2018-09-25 Information processing apparatus and information processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017184096 2017-09-25
JP2017184096 2017-09-25

Publications (2)

Publication Number Publication Date
JP2019061654A true JP2019061654A (ja) 2019-04-18
JP7214999B2 JP7214999B2 (ja) 2023-01-31

Family

ID=66177431

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018131722A Active JP7214999B2 (ja) 2017-09-25 2018-07-11 情報処理装置及び方法

Country Status (1)

Country Link
JP (1) JP7214999B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07261937A (ja) * 1994-03-24 1995-10-13 Ee I Sofuto Kk 圧縮データの読出・書込方法および装置
JPH10312297A (ja) * 1997-03-12 1998-11-24 Toshiba Corp マルチタスク機能を有する情報処理システムにおける資源管理方法、資源管理装置及び記録媒体
JP2000089983A (ja) * 1998-09-10 2000-03-31 Casio Comput Co Ltd データ保存装置及びデータ保存方法
US20070073941A1 (en) * 2005-09-29 2007-03-29 Brink Peter C Data storage using compression
JP2008257584A (ja) * 2007-04-06 2008-10-23 Hitachi Ltd Ramディスクの処理方法及びシステム
JP2008269050A (ja) * 2007-04-17 2008-11-06 Hitachi Ltd 圧縮制御装置及び方法
JP2016071393A (ja) * 2014-09-26 2016-05-09 横河レンタ・リース株式会社 データ管理装置、データ管理方法、及びデータ管理プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07261937A (ja) * 1994-03-24 1995-10-13 Ee I Sofuto Kk 圧縮データの読出・書込方法および装置
JPH10312297A (ja) * 1997-03-12 1998-11-24 Toshiba Corp マルチタスク機能を有する情報処理システムにおける資源管理方法、資源管理装置及び記録媒体
JP2000089983A (ja) * 1998-09-10 2000-03-31 Casio Comput Co Ltd データ保存装置及びデータ保存方法
US20070073941A1 (en) * 2005-09-29 2007-03-29 Brink Peter C Data storage using compression
JP2008257584A (ja) * 2007-04-06 2008-10-23 Hitachi Ltd Ramディスクの処理方法及びシステム
JP2008269050A (ja) * 2007-04-17 2008-11-06 Hitachi Ltd 圧縮制御装置及び方法
JP2016071393A (ja) * 2014-09-26 2016-05-09 横河レンタ・リース株式会社 データ管理装置、データ管理方法、及びデータ管理プログラム

Also Published As

Publication number Publication date
JP7214999B2 (ja) 2023-01-31

Similar Documents

Publication Publication Date Title
JP6553566B2 (ja) メモリシステムおよび制御方法
US9208067B2 (en) Storage system and storage control method that compress and store data elements
RU2658886C1 (ru) Способ управления файлами, распределенная система хранения и узел управления
JP5955870B2 (ja) 仮想ディスクの最適圧縮のための方法、コンピュータ可読記憶媒体及びシステム
KR100874702B1 (ko) 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법
US8645614B2 (en) Method and apparatus for managing data of flash memory via address mapping
JP6725120B2 (ja) データ処理方法、記憶装置、ソリッドステートディスク及び記憶システム
US20030225972A1 (en) Storage system
JP2009527847A (ja) Fatボリュームにおけるファイルベースの圧縮
JP6011349B2 (ja) ストレージ装置、およびデータ圧縮方法
JP2006259962A (ja) ストレージシステム
JP2007226596A (ja) 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法
WO2014188528A1 (ja) メモリ装置、計算機システム及びメモリ装置の制御方法
JP5944502B2 (ja) 計算機システム及び制御方法
JP2018169773A (ja) ストレージ装置、ストレージ装置の制御方法及びプログラム
US10860257B2 (en) Information processing apparatus and information processing method
US20170255393A1 (en) Storage device and storage method
US9395930B2 (en) Information processing system, control method of information processing system, and recording medium
US11176089B2 (en) Systems and methods for implementing dynamic file systems
US20180365159A1 (en) Storage system, method and non-transitory computer-readable storage medium
JP7214999B2 (ja) 情報処理装置及び方法
JP2016062406A (ja) メモリシステム、メモリシステムの制御方法及びプログラム
CN114003573A (zh) 文件系统的压缩方法、装置、设备、存储介质、程序产品
JP2008257584A (ja) Ramディスクの処理方法及びシステム
US20110106861A1 (en) Interface Techniques Providing Contiguous Storage For Files

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210520

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221026

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: 20221220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230102

R151 Written notification of patent or utility model registration

Ref document number: 7214999

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151