(57)【要約】【課題】各プロセスが処理に用いる必要なメモリを早急に確保できるデータ圧縮伸張装置を提供する。【解決手段】本発明に係るデータ圧縮伸張装置は、各プロセスが使用するデータを圧縮しながらスワップアウトする際に、スワップアウトされたプロセスとスワップアウトされたデータの圧縮率を対応付けて履歴をとり、次回以降、該当プロセスが起動された場合には、前記履歴を参照してデータの圧縮率が高いプロセスを優先的にスワップアウトさせることを特徴とする。【選択図】  図１
2008226082.tif 000002
【特許請求の範囲】
【請求項１】
プロセスが使用するメモリの使用率を監視し、前記メモリに保存されたデータをスワップデバイスへスワップアウトさせるスワップ処理を制御するＯＳ部と、
前記スワップデバイスにアクセス可能なスワップデバイスドライバ部と、
前記スワップアウトされたデータの圧縮及び伸張を行うデータ圧縮／伸張部と、
前記圧縮されたデータの圧縮率に基づいてスワップアウト対象の優先度を決定する優先度操作部を備え、
前記ＯＳ部は、前記優先度操作部によって決定された前記優先度に基づいてデータのスワップアウトを行うデータ圧縮伸張装置。
【請求項２】
前記優先度操作部は、
前記圧縮／伸張部から前記スワップアウトされたデータの圧縮率を取得する圧縮率取得手段と、
前記スワップアウトされるデータを利用するプロセスのプロセスＩＤを取得するプロセスＩＤ取得手段と、
前記圧縮率取得手段から取得した圧縮率に基づいて、当該スワップアウトされたデータの優先度を決定するスワップ優先順位変更部と、
を有する請求項１記載のデータ圧縮伸張装置。
【請求項３】
前記スワップデバイスドライバ部は、前記データ圧縮／伸張部によって圧縮されたデータの圧縮率又は圧縮サイズのうち少なくとも一方を格納する請求項１又は２記載のデータ圧縮伸張装置。
【請求項４】
前記ＯＳ部は、前記優先度、前記スワップアウトされたデータが利用されたプロセスの有するプロセスＩＤ及び前記スワップアウトされたデータの所在を示すインデックスが関連付けられたスワップ優先度管理テーブルを有する
請求項１乃至３記載のデータ圧縮伸張装置。
【請求項５】
前記優先度操作部は、前記優先度管理テーブルの有する前記優先度を書き換える請求項４記載のデータ圧縮伸張装置。
【請求項６】
前記優先度操作部は、
前記スワップアウトされたデータの前記圧縮率と、当該スワップアウトされたデータが利用されたプロセスの前記プロセスＩＤとを関連付ける請求項１乃至５記載のデータ圧縮伸張装置。
【請求項７】
前記優先度操作部は、前記圧縮率の高いデータを利用するプロセスの対象データを優先的にスワップアウトさせるよう前記優先度を決定する請求項１乃至６記載のデータ圧縮伸張装置。
【請求項８】
スワップアウトされたデータを圧縮し、前記スワップアウトされたデータを利用するプロセスと前記データの圧縮率とを対応付けて履歴を取り、前記履歴を参照してデータの圧縮率が高いプロセスの対象データを優先的にスワップアウトさせるようコンピュータに実行させるためのプログラム。
【請求項９】
前記履歴は、スワップアウトされたデータを利用する前記プロセスのプロセスＩＤと前記スワップアウトされたデータの前記圧縮率とを関連付けられた請求項８記載のコンピュータに実行させるためのプログラム。
【請求項１０】
前記履歴に基づいて、前記圧縮率の高いデータを利用する前記プロセスの対象データが優先的にスワップアウト対象となるよう優先度を書き換える請求項８又は９記載のコンピュータに実行させるためのプログラム。
【請求項１１】
前記履歴は、前記圧縮率、前記プロセスＩＤ、及び前記プロセスが格納された場所を示す格納パスが関連付けられた請求項８乃至１０記載のコンピュータに実行させるためのプログラム。
【請求項１２】
前記履歴をストレージに格納し、前記履歴が消去されてしまった場合には、前記ストレージから前記履歴を取得する請求項８乃至１１のコンピュータに実行させるためのプログラム。
【請求項１３】
プロセスが使用するメモリの使用率を監視し、前記メモリに保存されたデータをスワップデバイスへスワップアウトさせる際に、スワップアウトデータの圧縮を行い、前記圧縮されたデータの圧縮率と、スワップ対象のプロセスＩＤを関連付け、前記圧縮されたデータの圧縮率に基づいて、前記プロセス単位にスワップアウト対象の優先度を決定することを特徴とするデータ圧縮伸張方法。
【請求項１４】
スワップアウトされたデータを圧縮し、前記スワップアウトされたデータを利用するプロセスと前記データの圧縮率とを対応付けて履歴を取り、前記履歴を参照してデータの圧縮率が高いプロセスの対象データを優先的にスワップアウトさせることを特徴とするデータ圧縮伸張方法。
【請求項１５】
前記履歴は、スワップアウトされたデータを利用する前記プロセスのプロセスＩＤと前記スワップアウトされたデータの前記圧縮率とを関連付けることを特徴とする請求項１４記載のデータ圧縮伸張方法。
【請求項１６】
前記履歴に基づいて、前記圧縮率の高いデータを利用する前記プロセスの対象データが優先的にスワップアウト対象となるよう優先度を書き換えることを特徴とする請求項１４又は１５記載のデータ圧縮伸張方法。
【請求項１７】
前記履歴は、前記圧縮率、前記プロセスＩＤ、及び前記プロセスが格納された場所を示す格納パスとを関連付けることを特徴とする請求項１４乃至１６記載のデータ圧縮伸張方法。
【請求項１８】
前記履歴をストレージに格納し、前記履歴が消去されてしまった場合には、前記ストレージから前記履歴を取得することを特徴とする請求項１４乃至１７のデータ圧縮伸張方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア上で動作するソフトウェアが使用するメインメモリを圧縮して一時保存することでメモリ使用効率を向上させるコンピュータシステムに関する。
【背景技術】
【０００２】
従来より、アクセス頻度の低いメモリ領域をハードディスク等のストレージに一時保存して必要な物理メモリの容量を確保するスワップ技術を用いたデータ圧縮伸張装置が知られている。
【０００３】
特許文献１には、物理メモリの使用率を監視し、物理メモリが消耗に近い場合には、ソフトウェアが使用するデータを強制的にスワップアウトさせるデータ圧縮伸張装置が開示されている。これにより、実メモリ・ページを解放することができる。
【０００４】
特許文献２には、スワップアウトを行うプログラムを選択し、このプログラムに割り当てられたファイルをスワップアウトさせるデータ圧縮伸張装置が開示されている。このように、スワップアウトを行うファイルを選択することにより、スワップアウトによって確保される物理メモリの利用を効率よく行うことができる。選択にあたっては、例えば、ファイルが参照された最新の日付が最も古いものや、バックアップファイル、更新されていないファイル、確保しなければならないメモリを解放できると予測されるファイル、或いは、圧縮アルゴリズムに対し最も圧縮効率が高いと予測されるファイルを優先的にスワップアウトさせることが挙げられている。
【０００５】
特許文献３には、プロセスイメージを圧縮しながらスワップアウトさせ、圧縮されたプロセスイメージを伸張しながらスワップインさせるデータ圧縮伸張装置が開示されている。また、特許文献４には、圧縮率に応じてデータを転送する優先順位を変更するデータ圧縮伸張装置が開示されている。
【特許文献１】特許３６４３３１８号（段落００３５、図２）
【特許文献２】特開２０００−２１５０９９号公報（段落００３１、図４）
【特許文献３】特開２０００−２７６３６３号公報（段落０００８）
【特許文献４】特開２００４−２８７４８２号公報（段落００５６）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら特許文献１に示されたデータ圧縮伸張装置では、物理メモリが消耗に近い場合にはソフトウェアが使用するデータを強制的にスワップアウトさせるため、アクティブなプロセスが利用するデータの圧縮／伸張を行うこととなり、実行しているプロセスの処理に大きなオーバーヘッドが生じてしまうという問題点を有する。
【０００７】
また、特許文献２に示されたデータ圧縮伸張装置では、圧縮率が高いと予測されるものを優先的にスワップアウトすることが示されているが、この圧縮率が高いという予測は、例えば、ＭＰＥＧ形式やＪＰＥＧ方式よりも文章ファイルの圧縮率が高いと予測するなど（段落００４８）、ファイル形式やファイルサイズを参照して圧縮率を予測しており、圧縮率が予測できる特定のファイルしかスワップアウトの優先順位の変更することができないという問題点を有する。また、特許文献２には、プロセスの実行優先度が低いプログラムに対して優先的にスワップアウトすることが開示されているが、プロセスが利用するメモリを効率的に圧縮する手法については何ら工夫されていない。
【０００８】
また、特許文献３に示されたデータ圧縮伸張装置では、データを圧縮しながらスワップアウトさせているが、スワップアウトを行う優先順位に対しては何ら工夫されていないため、先に圧縮率の低いデータがスワップアウトされた場合には、確保しなければならないメモリを解放するまでに長い処理時間を要してしまうという問題点を有する。
【０００９】
また、特許文献４に示されたデータ圧縮伸張装置は、複数のブロックのデータを圧縮した後に、圧縮後のサイズが小さいものから順に転送を行うため、所定のブロックのデータの圧縮が完了するまでデータ転送を行うことができないという問題点を有する。
【００１０】
本発明は、このような問題点に鑑みてなされたものであり、スワップデバイスを各プロセスが処理に使用するメモリ領域と同じ領域へスワップデータを圧縮しながら格納するシステムにおいて、各プロセスが処理に用いる必要なメモリを早急に確保できるデータ圧縮伸張装置を提供することを目的とする。
【００１１】
本発明の他の目的は、各プロセスが使用するデータが圧縮されながらスワップアウトされる際に、データの圧縮率を取得し、スワップアウトされたプロセスとその圧縮率を対応付けて履歴をとり、次回以降、該当プロセスが起動された場合には、履歴を参照して既に起動されているプロセスよりもスワップアウトされたデータの圧縮率が高いプロセスを優先的にスワップアウトさせることにより、予め装置に搭載されたＲＡＭなどの物理メモリ容量を効率的に確保することを目的とする。
【００１２】
本発明の更に他の目的は、プロセスの利用頻度が低いデータ領域を圧縮してＲＡＭなどの物理メモリ上に格納するデータ圧縮伸張装置において、より圧縮率の高いデータを優先して圧縮して物理メモリに格納することにより、物理メモリを有効に利用し、装置パフォーマンスを低下させる要因の一つであるメモリ解放処理の回数を削減し、装置性能を向上させることにある。
【００１３】
本発明の他の目的は、プロセスの利用頻度が低いデータ領域を圧縮して、物理メモリと比較してアクセス速度の遅いストレージなどに格納するデータ圧縮伸張装置において、より高い圧縮率のデータを優先して圧縮してストレージなどに格納することで、ストレージなどに転送されるデータ量を削減し、装置性能を向上させることにある。
【課題を解決するための手段】
【００１４】
本発明に係るデータ圧縮伸張装置は、ソフトウェアの処理において、一時的にデータを保存するメモリの使用率を監視し、前記メモリに保存されたデータをスワップデバイスへスワップアウトさせるスワップ処理を制御するＯＳ部と、前記スワップデバイスにアクセス可能なスワップデバイスドライバ部と、前記スワップアウトされたデータの圧縮及び伸張を行うデータ圧縮／伸張部と、前記スワップアウトされたデータの圧縮率に基づいてスワップアウト対象の優先度を決定する優先度操作部を備え、前記ＯＳ部は、前記優先度操作部によって決定された前記優先度に基づいてデータのスワップアウトを行うことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、優先度操作部によって圧縮率の高いデータを利用するプロセスを優先的にスワップアウト対象とするよう優先度を順次決定することにより、物理メモリを有効に利用して各プロセスが処理に用いる必要なメモリを早急に確保することができる。さらに、前記優先度操作部によって、圧縮率の高いデータを優先的にスワップアウトし、スワップデバイスへのデータ転送量を削減することで、必要なメモリを確保する際のスワップ処理時間を削減することができる。
【発明を実施するための最良の形態】
【００１６】
以下、添付した図面を参照して本発明の実施の形態について説明する。
［第１の実施形態］
図１は、本発明の第１の実施形態に係るデータ圧縮伸張装置１０のシステム構成を示したブロック図である。図２は、データ圧縮伸張装置１０のハードウェア１を示したブロック図であり、図３は、データ圧縮伸張装置１０のソフトウェア２を示したブロック図である。
【００１７】
図１に示すように、データ圧縮伸張装置１０は、ハードウェア１及びソフトウェア２を備えて構成されている。データ圧縮伸張装置１０の概要は、プロセス起動管理部５からプロセス管理部６を介してプロセスが起動されると、例えば、プロセス群４のうちプロセスＡがＲＡＭ１３に対してワークメモリなどのメモリを確保するよう要求する。もっとも前記、起動されるプロセスは１つとは限らず、複数のプロセスＡ、Ｂが起動されてもよい。ＯＳ部２０は、ＲＡＭ１３の使用率を監視し、使用率が高い場合にはスワップデバイスドライバ部２２を介してスワップデバイス部２４にスワップ対象となるデータを転送する。プロセスＡ、Ｂを起動する、前記プロセス起動管理部５とは、例えば、アプリケーションランチャー等の名称で呼ばれる起動プログラムや、シェルプログラムである。前記、スワップデバイス部２４は、実装に応じてＲＡＭ１３又はストレージ１２に割り当てられる。
【００１８】
図２に示すように、ハードウェア１は、ＣＰＵ（Central Processing Unit）１１、ストレージ１２、及びＲＡＭ（Random Access Memory）１３を備えて構成されている。ＣＰＵ１１は、ＯＳやＯＳ上で動作する各プロセスにおける演算処理を実行するよう構成されている。ストレージ１２は、例えばハードディスクによって構成することができ、不揮発にプログラム等を記憶し、電力供給がなされない場合にあっても保存しておきたいデータやプログラムなどを保存することができる。ＲＡＭ１３は、演算処理に用いられるデータを一時的に保存するメモリであり、例えば、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ(Static Random Access Memory)によって構成することができる。
【００１９】
図３に示すように、ソフトウェア２は、ＯＳ部２０、優先度操作部２１、スワップデバイスドライバ部２２、データ圧縮／伸張部２３、スワップデバイス部２４を備えて構成されている。
【００２０】
ＯＳ部２０は、各種プロセスのスケジューリングやメモリ管理、デバイスデータの入出力処理などのコンピュータシステム全体を管理する基本ソフトウェアである。優先度操作部２１は、スワップデバイスドライバ部２２からデータの圧縮率Ｒや圧縮サイズＳを受け取り、スワップアウトされたデータを保有するプロセスのＩＤに対応付けると共に、圧縮率Ｒに応じてスワップアウト対象プロセスの優先順位を変更する。なお、優先度操作部２１自身が、データ圧縮／伸張部２３によって圧縮されたデータの圧縮サイズＳから圧縮率Ｒを算出するよう構成することもできる。
【００２１】
スワップデバイスドライバ部２２は、ＯＳ部２０とスワップデバイス部２４との間でスワップデータの取得、書き出し、書き戻しを行う。スワップデバイスドライバ部２２は、データ圧縮／伸張部２３によって圧縮されたデータの圧縮サイズＳや圧縮率Ｒを取得する。データ圧縮／伸張部２３は、スワップデバイスドライバ部２２がスワップアウト時にＯＳ部２０から取得したスワップデータをスワップデバイス部２４へ書き出す場合のデータ圧縮を行うと共に、及びスワップイン時にスワップデバイスドライバ部２２がスワップデバイス部２４から読み出したデータの伸張を行う。スワップデバイス部２４は、スワップデータの書き出し先であり、ＲＡＭ１３あるいはストレージ１２にある。
【００２２】
ＯＳ部２０は、メモリ管理部２５及びスワップ管理部２６を備えて構成されている。メモリ管理部２５は、プログラムの要求に従ってメモリの確保、解放を行うと共に、仮想アドレス若しくは物理アドレス管理などメモリ管理に伴う処理を行う。スワップ管理部２６は、スワップ処理の全体的な管理を行う。スワップ管理部２６は、図４に示すように、スワップ優先度管理テーブルＴを備えている。スワップ優先度管理テーブルＴは、ページインデックス４１、スワップ優先度４２、プロセスＩＤ４３が対応付けて管理されている。ページインデックス４１は、データがスワップアウトされて格納されたスワップ先の場所を示すためのインデックス情報である。スワップ優先度４２は、スワップを行う優先度で、例えば、１〜１０の整数などで表されている。なお前記優先度４２は順位を比較できれば、少数あるいは負の値でも構わない。プロセスＩＤ４３は、各スワップアウトデータに対応するプロセスの識別子を示す情報である。なお、ＯＳ部２０は、その他の基本ソフトウェアとしての機能を備えているが、メモリ管理に伴う処理のみについて説明を行うものとする。
【００２３】
優先度操作部２１は、スワップ優先順位変更部２７、スワップ対象プロセスＩＤ取得部２８、及び圧縮率取得部２９を備えて構成されている。スワップ優先順位変更部２７は、圧縮率取得部２９から得られた圧縮率Ｒと、スワップ対象プロセスＩＤ取得部２８から得られたプロセスＩＤを関連付け、次回以降、起動されるプログラムのスワップ対象となる優先順位を変更する。スワップ対象プロセスＩＤ取得部２８は、スワップアウト対象のプロセスＩＤをスワップ管理部２６から取得する。圧縮率取得部２９は、スワップデバイスドライバ部２２を介してデータ圧縮／伸張部２３が圧縮したデータの圧縮率Ｒを取得する。なお、圧縮率取得部２９は、データ圧縮／伸張部２３から直接圧縮率Ｒのデータを取得するよう構成してもよい。
【００２４】
また、図１に示すように、ＯＳ部２０と優先度操作部２１の間にはフック関数３が介されている。フック関数３は、スワップ管理部２６でスワップ処理が開始されたことを検出し、優先度操作部２１にスワップアウト対象のプログラムのプロセスＩＤを取得開始するよう指示する。
【００２５】
次に、このように構成されたデータ圧縮伸張装置１０のシーケンスについて説明する。図３は、データ圧縮伸張装置１０のシーケンス図である。
【００２６】
メモリ管理部２５は、プロセスＡ、Ｂのメモリ確保要求に従ってメモリを確保していく。メモリ確保要求が増大すると、メモリは次第に枯渇することとなる。スワップ管理部２６は、ＲＡＭ１３の有するメモリの使用状況を定期的に監視し、利用可能なメモリが予め設定された閾値以下になると、スワップアウトを開始するようスワップデバイスドライバ部２２にスワップアウト開始のメッセージを送信する（Ｓ１）。
【００２７】
次に、ＬＲＵ（Least Recently Used）アルゴリズムを用い、プロセスＡ、Ｂ...が確保しているメモリブロックのうち最も使用されていないメモリブロックをスワップアウト対象として選択する。選択されたメモリブロックは、スワップデバイスドライバ部２２を介してＲＡＭ１３内のスワップデバイス部２４にスワップアウトされる。
【００２８】
優先度操作部２１は、ＯＳ部２０の有するスワップ管理部２６から送信されるスワップアウト開始のメッセージ（Ｓ１）をフック関数３によりフックする（Ｓ２）。そして、スワップ対象プロセスＩＤ取得部２８によって選択されたスワップアウト対象のプログラムのプロセスＩＤをＯＳ部２０から取得する（Ｓ３）。
【００２９】
一方、スワップデバイス部２４は、ステップ（Ｓ１）においてＯＳ部２０からスワップアウトデータを受信すると、データ圧縮／伸張部２３にスワップデータを圧縮するようスワップデータ圧縮要求のメッセージを送信する（Ｓ４）。データ圧縮／伸張部２３は、圧縮要求に従ってスワップデータの圧縮を行い、圧縮後のスワップデータをスワップドライバ部２２に転送する。データ圧縮／伸張部２３は、スワップデータの圧縮が完了すると圧縮完了のメッセージをスワップデバイスドライバ部２２に送信する（Ｓ５）。
【００３０】
スワップデバイスドライバ部２２は、圧縮されたスワップデータをスワップデバイス部２４に書き出す（Ｓ６）。スワップデバイス部２４は、この書き出しが完了すると書き出し完了のメッセージをスワップデバイスドライバ部２２に送信して書き出し完了を応答する（Ｓ７）。スワップデバイスドライバ部２２は、スワップデバイス部２４から書き出し完了の応答を受けると、ＯＳ部２０にスワップアウトが完了したことを知らせるスワップアウト完了を応答する（Ｓ８）。
【００３１】
一方、優先度操作部２１は、ＯＳ部２０にスワップアウト完了が応答されるのを監視しており、スワップアウト完了が応答されたのをフック関数３によりフックして（Ｓ９）、スワップデバイスドライバ部２２からステップ（Ｓ３）で取得したプロセスＩＤに対応するスワップデータの圧縮率Ｒ又は圧縮サイズＳを取得する（Ｓ１０）。また、優先度操作部２１は、プロセス毎に取得された圧縮率Ｒ又は圧縮サイズＳの平均を算出しておく。優先度操作部２１は、スワップ優先順位変更部２７においてプロセス毎の圧縮率Ｒを比較して、圧縮率Ｒがより高いプロセスが保有するスワップアウトデータを他のプロセスが有するスワップデータより早くスワップアウトさせるようスワップアウト対象となるプロセスの優先順位を変更する。
【００３２】
優先順位の変更は、例えば、（０．５−圧縮率）×１０を整数化したものを優先度に加算して新たな優先度を設定することで優先度の順位を変更することができる。なお、スワップアウトの優先度が１〜１０の数値で示され、優先度が高いほど数値が高いとする。また、圧縮率は（圧縮後のデータ量／圧縮前のデータ量）である。
【００３３】
次回以降、プロセスＩＤに関連付けられたスワップデータの圧縮率Ｒの履歴を取り、各プロセスが起動し、スワップアウト対象としてマーキングされたときには、より高い圧縮率Ｒを有するデータを利用するプロセスが優先的にスワップアウト対象となるよう動作する。
【００３４】
このように構成されたデータ圧縮伸張装置１０は、プロセス毎の圧縮率Ｒを比較して、圧縮率Ｒの高いものから順にスワップアウトさせることにより、各プロセスＡ、Ｂが処理に用いる際に必要なメモリを早急に確保できる。これにより、予め装置に搭載されたＲＡＭ１３などの物理メモリ容量を効率的に利用することができる。この結果、装置パフォーマンスを低下させる要因の一つであるメモリ解放処理の回数を削減することによりデータ圧縮伸張装置１０の処理速度を向上させることができる。また、圧縮率Ｒの履歴を取ることにより、実際にデータ圧縮を行う前に平均的な圧縮率Ｒの予測が可能となり、効率的にスワップアウトを行うことができる。
【００３５】
また、圧縮率Ｒに基づいてスワップアウト対象となるプロセスの優先順位を変えることにより、ファイルの種類によらず、圧縮率Ｒの高いファイルやデータを優先的な圧縮対象として優先順位を変更することができる。
【００３６】
また、一般的に、ハードディスク等のストレージ１２は、ＤＲＡＭやＳＲＡＭに比べてアクセス速度が遅く、ストレージ１２への書き込み及びストレージ１２からの読み出しに処理時間を要するが、効率よくＲＡＭ１３及びストレージ１２を使用することにより、ストレージ１２に書き込み及び読み出しされるデータ量を削減し、処理速度を向上させることができる。
【００３７】
また、圧縮率ＲとプロセスＩＤとを対応付けた履歴を随時ストレージ１２に保存するよう構成することもできる。これにより、システムの電源断などの要因により、ＲＡＭ１３に一時保存していた圧縮率ＲとプロセスＩＤとを対応付けた履歴が消失してしまった場合であっても、不揮発にデータを記憶するストレージ１２から当該履歴を取得することができる。
【００３８】
［第２の実施形態］
図６は、本発明の第２の実施形態に係るデータ圧縮伸張装置６０の一構成例を示す機能ブロック図である。第２の実施形態の特徴は、ストレージ１２にプログラムコードＰＣが保存されている点にある。なお、他の構成要素については図１及び図２に示す第１の実施形態と略同一構成であるため、同一構成については同一符号を付すことによりその説明を省略する。なお、プログラムコードＰＣは、プログラムとスワップデータの圧縮率Ｒを一対一に対応付けることができれば、ｉｎｏｄｅ番号やファイルテーブルなどを用いることもできる。
【００３９】
図７は、第２の実施形態に係るデータ圧縮伸張装置６０のシーケンスを示すシーケンス図である。データ圧縮伸張装置６０では、図３に示す第１の実施形態と同様に、ステップＳ１〜Ｓ１１を実行し、スワップアウト対象となるプロセスの優先順位を変更していく。次に、ステップＳ３においてプロセスＩＤを割り当てられたプロセスのプログラムコードＰＣのファイルパスを取得し（Ｓ１２）、これを元に取得したプログラムコードＰＣと圧縮率Ｒを対応付けてストレージ１２に記憶する。
【００４０】
そして次回以降では、ＯＳ部２０がプログラムコードＰＣをロードしてプログラムが起動されると（Ｓ１３）、優先度操作部２１は当該プログラムコードＰＣの起動をフックして（Ｓ１４）、ファイルパスに対応付けられたプログラムコードＰＣのプロセスＩＤを取得する（Ｓ１５）。優先操作部２１は、取得したプロセスＩＤとファイルパスを関連付けた上で圧縮率Ｒを管理してプログラムコードＰＣに対する圧縮率の平均値をとる。
【００４１】
このように、第２の実施形態では、ファイルパスに関連付けられたプロセスＩＤに基づいて圧縮率Ｒの平均値を取ることにより、平均的に圧縮率Ｒの高いプログラムコードＰＣが利用するファイルあるいは保有するデータをより効率的にスワップアウトさせることができる。
【図面の簡単な説明】
【００４２】
【図１】本発明の第１の実施形態に係るデータ圧縮伸張装置１０のシステム構成を示したブロック図である。
【図２】データ圧縮伸張装置１０のハードウェア１を示したブロック図である。
【図３】データ圧縮伸張装置１０のソフトウェア２を示したブロック図である。
【図４】スワップ優先度管理テーブルＴを示すブロック図である。
【図５】第１の実施形態に係るデータ圧縮伸張装置のシーケンス図である。
【図６】本発明の第２の実施形態に係るデータ圧縮伸張装置のソフトウェア５０を示すブロック図である。
【図７】第２の実施形態に係るデータ圧縮伸張装置のシーケンス図である。
【符号の説明】
【００４３】
１...ハードウェア
２...ソフトウェア
４...プロセス群
１０、６０...データ圧縮伸張装置
１１...ＣＰＵ
１２...ストレージ
１３...ＲＡＭ
２０...ＯＳ部
２１...優先度操作部
２２...スワップデバイスドライバ部
２３...データ圧縮／伸張部
２４...スワップデバイス部
【図１】
2008226082.tif 000003
【図２】
2008226082.tif 000004
【図３】
2008226082.tif 000005
【図４】
2008226082.tif 000006
【図５】
2008226082.tif 000007
【図６】
2008226082.tif 000008
【図７】
2008226082.tif 000009