JP2009020555A - スワップ処理装置 - Google Patents

スワップ処理装置 Download PDF

Info

Publication number
JP2009020555A
JP2009020555A JP2007180615A JP2007180615A JP2009020555A JP 2009020555 A JP2009020555 A JP 2009020555A JP 2007180615 A JP2007180615 A JP 2007180615A JP 2007180615 A JP2007180615 A JP 2007180615A JP 2009020555 A JP2009020555 A JP 2009020555A
Authority
JP
Japan
Prior art keywords
swap
memory area
information
swapped
unit
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
JP2007180615A
Other languages
English (en)
Inventor
Shinsuke Kato
慎介 加藤
Tetsushi Yamamoto
哲士 山本
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.)
Panasonic Corp
Original Assignee
Panasonic 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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2007180615A priority Critical patent/JP2009020555A/ja
Publication of JP2009020555A publication Critical patent/JP2009020555A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】複数のアプリケーションから参照されているメモリ領域をスワップ処理対象から除外することで、スワップ処理の効率化を図る、スワップ処理装置を提供すること。
【解決手段】使用しているメモリ領域の中からスワップ対象となるメモリ領域を決定するスワップ対象決定部102と、複数のアプリケーションから参照されているメモリ領域を管理する共有情報管理部104と、スワップ対象記憶部1021が記憶する情報であるメモリ領域と、メモリ管理情報記憶部1041が記憶する情報である複数のアプリケーションが共有して使用するメモリ領域とを用いて、スワップ対象となるメモリ領域を選択するスワップ処理選択部105と備え、複数のアプリケーションから参照されているメモリ領域をスワップ処理の対象から除外する。
【選択図】図2

Description

本発明は、コンピュータ上で実行される種々のプログラムが使用しているメモリ領域に対して実施されるスワップ処理のメモリ退避技術に関するものである。
仮想メモリシステムにおいて、使用しているメモリ領域が主記憶装置内で逼迫した場合に、主記憶装置内の一部のメモリ領域を二次記憶装置内に退避することで、主記憶装置内の当該メモリ領域を開放し、主記憶装置に空きメモリ領域を確保するスワッピングという技術(スワップアウト・スワップイン)がある。スワッピングにおいては、スワップ処理(スワップアウト時の二次記憶装置への書込み処理や、スワップイン時の二次記憶装置から主記憶装置への読込み処理や、これにかかるソフトウェアの処理を言う)によるオーバーヘッドが発生することで、余分な時間が必要となり、システム全体の処理効率が低下することになる。そのため、当該処理を効率化しスワップ処理によるオーバーヘッドを削減するためのメモリ退避技術がある。
スワッピング技術に関連するメモリ退避技術に関するものとしては、スワップ処理によるオーバーヘッドにより実行中のアプリケーションへの影響が発生することを防ぐために、スワップ対象とするメモリ領域の選択について、LRU(Least Recently Used)などのアルゴリズムを用いて効率化を図るものがある。
従来のスワップ処理装置としては、ページ単位のスワップアウトとタスク単位でのスワップアウトを選択することで、タスク単位でのスワップアウトが選択された場合に、タスクが使用するメモリ領域について平均的にLRUのアルゴリズムを採用し、仮想記憶メモリシステムにおいて、時間的に効率的なスワップアウト処理を実施するものがあった(例えば、特許文献1参照)。タスク単位でのスワップアウトを選択可能にすることで、タスクを構成するページ単位でのスワップが繰り返されることになり、空間的に断続したメモリ領域がスワップアウトされることを回避し、空間的に効率的なスワップアウト処理を実施している。
特開2000−200219号公報
しかしながら、前記従来の技術では、タスク単位(以下、タスク単位とアプリケーション単位は同義語とみなす)でスワップアウトを行うときに、タスクが使用しているメモリ領域の共有について考慮されておらず、多数のタスクから使用されているメモリ領域についてもスワップアウト対象となってしまい、多数のタスクから使用されているメモリ領域は、スワップアウト対象となったタスクとは別のタスクから参照された場合にスワップイン処理が必要となり、スワップ処理のオーバーヘッドがかかるという課題を有していた。
本発明は、前記従来の課題を解決するもので、複数のアプリケーションから参照されているメモリ領域をスワップ処理対象から除外することで、スワップ処理の効率化を図るスワップ処理装置を提供することを目的とする。
前記従来の課題を解決するために、本発明のスワップ処理装置では、使用しているメモリ領域の中からスワップ対象となるメモリ領域を決定するスワップ対象決定手段と、アプリケーションとプロセスに関係する情報を管理する情報管理手段と、前記情報管理部が管理する情報を用いて、複数のアプリケーションが共有して使用するメモリ領域の情報を管理する共有情報管理手段と、前記スワップ対象決定手段が決定したメモリ領域と、前記共有情報管理手段が管理する情報を用いて、スワップ対象となるメモリ領域を選択するスワップ処理選択手段と、前記スワップ処理選択手段によって選択されたメモリ領域のスワップアウト処理を行うデバイス書込み手段とを備えたことを特徴とする。
本構成により、スワップ対象として退避されるメモリ領域を選択する際に、複数のアプリケーションから共有で使用するメモリ領域をスワップ対象から除外することが可能となり、スワップ処理にかかるオーバーヘッドを削減することができる。
本発明のスワップ処理装置によれば、複数のアプリケーションから参照されているメモリ領域を管理し、当該メモリ領域をスワップ処理の対象から除外することで、スワップ処理にかかるオーバーヘッドを削減することができる。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
図1は、本発明の実施の形態におけるスワップ処理装置を備えた情報処理装置の構成を示すハードウェア構成図である。この情報処理装置は、例えば、PC(Personal Computer;パーソナルコンピュータ或いはパソコン)等の汎用のコンピュータやAV機器や通信機器、家電機器などの組み込み機器等である。
情報処理装置1000は、CPU(Central Processing Unit;中央演算処理部)1、メモリ装置2、通信装置34、入力装置40、表示装置45、タイマー回路51及び割込コントローラ55を備えている。
これらの各構成要素は、バスライン50を通じて互いに接続されている。また、必要に応じて、バスライン50には、ハードディスク装置25及び読取書込装置32を接続することが可能となっている。ハードディスク装置25、読取書込装置32、入力装置40及び表示装置45は、それぞれ、インタフェース26、35、41及び46を通じてバスライン50に接続される。
CPU1は、単一のCPUで構成されても良く、複数のCPUで構成されても良い。一例として、情報処理装置1000は、複数のCPU11、12、13、・・・を有するものとする。CPU1は、ROM21又はハードディスク装置25が格納するコンピュータプログラムを、必要に応じてRAM22に書き込みつつ、コンピュータプログラムが規定する処理を実行する。
メモリ装置2は、ROM(Read Only Memory)21及びRAM(Random Access Memory)22を備えている。ROM21は、CPU1の動作を規定するコンピュータプログラムを記憶している。コンピュータプログラムは、ハードディスク装置25に記憶させることもできる。RAM22は、CPU1が処理を実行するのに伴って発生するデータを一時的に記憶する媒体としても機能する(主記憶装置)。ROM21には、フラッシュROMのように書き込みが可能で、電源を切っても記憶内容を保持できる不揮発性のメモリや記憶媒体も含まれる。RAM22には、電源を切ると記憶内容が保持されない揮発性のメモリや記憶媒体が含まれる。
ハードディスク装置25は、内蔵する不図示のハードディスクに対して、コンピュータプログラム、或いはデータを書き込み及び読み出す装置である(二次記憶装置)。
読取書込装置32は、記録媒体31(例えばCDやDVDやBD−ROMやメモリカードなど)に記録されたコンピュータプログラム、或いはデータを読取る装置である。また、読取書込装置32は、記録媒体31(例えばCDやDVDやBD−ROMやメモリカードなど)にプログラム或いはデータを書込む装置である。
通信装置34は、電話回線やネットワーク線や無線や赤外線通信等の通信回線33を通じて、外部と自身との間で、コンピュータプログラム、或いはデータを交換する装置である。
入力装置40は、ユーザの操作によりデータ等を入力する装置であり、例えば、PDAに配列されたキーボード、携帯電話機に配列された入力ボタン、或いは着脱自在のマウス、キーボードである。また、マイクなどの音声入力機器などであってもよい。
表示装置45は、データ、画像等を画面に表示したり、データ等を音声で表示したりする装置であり、例えばLCD(Liguid Crystal Display;液晶表示器)、ブラウン管、スピーカである。
タイマー回路51は、一定の周期でタイマー割込信号を出力する装置である。割込コントローラ55は、タイマー回路51、入力装置40、CPU1のうちの処理実行中のCPU以外のCPU、ネットワークデバイスとしての通信装置34、ハードディスク装置25、読取書込装置32等から送られる割込要求信号を、CPU1へ中継する装置である。各装置からの割込要求には優先度が付けられている。
割り込みコントローラ55は、同時に複数の装置から割り込みが発生した場合には、それらの要求を優先度に応じて調停する機能を有している。
以上のように、情報処理装置1000は、コンピュータとして構成されている。上記コンピュータプログラムは、ROM21、不図示のフレキシブルディスク、CD−ROM等のプログラム記録媒体31を通じて供給することも、電気通信回線33等の伝送媒体を通じて供給することも可能である。例えば、プログラム記録媒体31としてCD−ROMに記録されたコンピュータプログラムは、読取書込装置32を情報処理装置1000へ接続することにより、読み出すことができ、更にRAM22或いはハードディスク装置25に格納することができる。
プログラム記録媒体としてROM21によってコンピュータプログラムが供給される場合には、当該ROM21を情報処理装置1000に搭載することにより、CPU1は上記コンピュータプログラムに従った処理を実行可能となる。電気通信回線33等の伝送媒体を通じて供給されるコンピュータプログラムは、通信装置34を通じて受信され、例えば、RAM22或いはハードディスク装置25に格納される。伝送媒体は、有線の伝送媒体に限られず、無線の伝送媒体であっても良い。また、伝送媒体は通信線路のみでなく、通信線路を中継する中継装置、例えばルータをも含む。
図2は、本実施の形態におけるスワップ処理装置の構成を示すブロック図である。このスワップ処理装置の実体は、メモリ装置2或いはハードディスク装置25などの二次記憶装置に格納され、CPU1と協働して実行することにより、スワップアウト処理の高速化を実現している。
図2に示すスワップ処理装置10は、スワップ開始指示部101、スワップ対象決定部102、スワップ対象記憶部1021、情報管理部103、ページ管理情報記憶部1031、プロセス管理情報記憶部1032、共有情報管理部104、メモリ管理情報記憶部1041、スワップ処理選択部105、デバイス書込み部106を備えている。
スワップ開始指示部101は、スワップアウト処理の開始タイミングを判断し、スワップ対象決定部102に、開始指示を通知する。具体的には、主記憶装置上のメモリ領域の空きサイズと、前もって決められている閾値との比較を行い、空きサイズが閾値より小さい場合に、スワップアウト処理を開始すると判断する。また、デーモンから通知を受け取ることで、定期的に主記憶装置上の空きサイズの確保を行ってもよい。また、必要とする主記憶装置上の空きサイズに基づいて、スワップアウト処理により二次記憶装置に移動するデータのサイズ(メモリ領域サイズ)を決定し、スワップ対象決定部102に通知する。
スワップ対象決定部102は、スワップ開始指示部101からの通知を受け取り、特定のポリシー(例えば、LRUやラウンドロビンなどのアルゴリズムや、ランダムに選択するなど)に従って、使用しているメモリ領域の中からスワップ対象となるメモリ領域を決定する。特に、スワップ開始指示部101からサイズが指定されると、そのサイズに対応する個数のメモリ領域を、スワップ対象として決定する。また、スワップ対象決定部102は、決定したメモリ領域を特定する情報をスワップ対象記憶部1021に格納処理する。さらに、スワップ対象決定部102は、スワップ処理選択部105に、選択指示を通知する。
スワップ対象記憶部1021は、スワップ対象決定部102により決定されたスワップ対象となるメモリ領域を特定する情報を記憶する記憶部である。このメモリ領域を特定する情報とは、例えば、メモリ領域を識別するメモリIDや、メモリ領域に対応するページを識別するページIDなどである。また、メモリ領域の位置を示すアドレス情報であってもよい。なお、ページとは、OSで管理されるメモリ領域の単位のことである。
情報管理部103は、アプリケーションに関係する情報を管理する。具体的には、情報管理部103は、ページ管理情報記憶部1031とプロセス管理情報記憶部1032に記憶されている情報の更新を行う。ページ管理情報記憶部1031は、プロセスとページとの対応(ここでいう対応とは、プロセスで使用されるページ群のことを指す)をページ管理情報として記憶する。ここでいうページとはOSで管理されるメモリ領域の単位のことである。またプロセスと当該プロセスが利用しているページは、一対一であるかもしれないし、一対多であるかもしれないし、多対多であるかもしれない。また、プロセス管理情報記憶部1032は、アプリケーションとプロセスとの対応(ここでいう対応とは、アプリケーションを構成するプロセス群のことを指す)をプロセス管理情報として記憶する。ここでいうプロセスとはOSのなかの一くくりの動作単位である。またアプリケーションと当該アプリケーションに対応するプロセスは一対一であるかもしれないし、一対多であるかもしれないし、多対多であるかもしれない。また、プロセス管理情報記憶部1032はアプリケーションが実行された順番をアプリケーション実行履歴として保持する。なお、情報管理部103がこれらの情報の更新を行うタイミングは、OSからアプリケーション実行の通知を受け取った際や、アプリケーションの実行状態を格納するデータ領域を定期的に監視して変更を検知した際などがあげられる。
図5は、ページ管理情報記憶部1031が保持するページ管理情報の一例を示したものである。プロセスIDとは、プロセスを識別する識別子である。また、ページIDとはページを識別する識別子である。ページ管理情報記憶部1031のページ管理情報は、プロセスが起動した際や、当該プロセスが新規にメモリを確保した際や、プロセスが終了した際や、当該プロセスがメモリを解放した際に、情報管理部103がOSから通知を受け、更新される。
図6は、プロセス管理情報記憶部1032が保持するプロセス管理情報の一例を示したものである。アプリケーションIDとは、アプリケーションを識別する識別子である。また、プロセス管理部1032がアプリケーション実行履歴を管理する場合は、アプリケーションが実行された順番(起動された順番とは異なる)で実行履歴欄を更新し、現在実行されているアプリケーションが実行履歴「1」となるように管理する(ここでは、履歴の順番を管理する方法として、数字の「1」を現在実行中のアプリケーションの実行履歴としたが、他にも、実行履歴の順番でアプリケーションIDを並び替える方法などが考えられる)。また、プロセス管理情報記憶部1032のプロセス管理情報は、実行されるアプリケーションが変更されるたびに、情報管理部103がOSから通知を受け、更新される。
共有情報管理部104は、情報管理部103が管理する情報を用いて、複数のアプリケーションが共有して使用するメモリ領域を管理する。具体的には、共有情報管理部104は、ページ管理情報記憶部1031とプロセス管理情報記憶部1032が記憶する情報を用いて、メモリ管理記憶部1041に記憶されている情報の更新を行う。
図10は、複数のアプリケーションが共有して使用するメモリ領域を管理するテーブルの一例を示したものである。メモリ領域を識別するメモリIDと、そのメモリ領域の状態(参照フラグ)とを対応付けて管理している。各メモリ領域について、複数のアプリケーションが使用しているメモリ領域については参照フラグを立て(フラグを「1」に設定し)、参照フラグが立っているメモリ領域について、複数のアプリケーションが共有して使用するメモリ領域として管理する。図10における、メモリ領域はページIDと一対一、もしくは、一対多に対応するものである。当該テーブルの情報は、新規にアプリケーションが起動される際やアプリケーションを終了する際に、OSにより更新される。
スワップ処理選択部105は、スワップ対象記憶部1021が記憶する情報であるメモリ領域と、メモリ管理情報記憶部1041が記憶する情報である複数のアプリケーションが共有して使用するメモリ領域とを用いて、スワップ対象となるメモリ領域を選択する。具体的には、スワップ対象記憶部1021が記憶するメモリ領域のうち、メモリ管理情報記憶部1041にて複数アプリケーションからの参照フラグが「1」のメモリ領域を、スワップ処理の対象から除く。一方、スワップ対象記憶部1021が記憶するメモリ領域のうち、メモリ管理情報記憶部1041にて複数アプリケーションからの参照フラグが「0」のメモリ領域を、スワップ対象と選択する。また、スワップ処理選択部105は、選択したメモリ領域をデバイス書込み部106に通知する。また、スワップ処理選択部105は、選択したメモリ領域についてその都度デバイス書込み部106に通知することで、デバイス書込み部106と並列して動作することが可能であり、これによりシステム全体のスワップ処理完了までの時間を、スワップ処理選択部105とデバイス書込み部106がシーケンシャルに動作するときよりも削減できる。なお、スワップ処理選択部105は、スワップ対象決定部102からの選択指示を受け取り、処理を行ってもよいし、OSやアプリケーションからの任意のトリガーを受け取り、処理を行ってもよいし、定期的に、処理を行ってもよいし、スワップ対象記憶部1021への格納状況を監視して一定サイズを超えると、処理を行うなどでもよい。
デバイス書込み部106は、スワップ処理選択部105によって選択されたメモリ領域を二次記憶装置に書込むことで、スワップアウト処理を行う。デバイス書込み部106が書込むメモリ領域の単位は、OSが管理するメモリ領域の単位であるページ単位でも良いし、前もって決められた特定のサイズに合わせた単位でも良いし、またこれに限らず特定の観点から指定することのできる単位であっても構わない。なお、この書き込み先である二次記憶装置は、通信装置34から通信回線33を介して通じている外部の情報処理装置1000上の、情報の書換え・読取りができる記憶装置であっても良い。また、RAM22であっても良いし、不図示であるNAND型フラッシュメモリであっても良いし、ハードディスク装置25であっても良いし、読込書込装置32によって書込み・読込みが行われる記録媒体31(例えばCDやDVDやメモリカードなど)であっても良い。
以上により、複数のアプリケーションから参照されているメモリ領域を管理し、当該メモリ領域をスワップ処理の対象から除外することが可能となり、スワップ処理にかかるオーバーヘッドを削減することができる。
図3は本発明の実施の形態におけるスワップ処理装置の動作を示すフローチャートである。ここでは、スワップ処理装置を実装した情報処理装置1000が起動し、初期化処理を完了した後、スワップ開始指示部101が、スワップアウト処理の開始タイミングを判断し、処理を開始するものとする。
スワップ対象決定部102は、スワップ開始指示部101からの開始指示を受け取るのを待つ(ステップS101)。
開始指示を受け取ると(ステップS101がYes)、スワップ対象決定部101は、スワップ処理対象となるメモリ領域を決定し(ステップS102)、決定したメモリ領域の情報をスワップ対象記憶部1021に格納し、スワップ処理選択部105に、選択指示を通知する(ステップS103)。
次に、スワップ処理選択部105は、スワップ対象決定部102から選択指示を受け取り、スワップ対象記憶部1021に記憶されたメモリ領域を取得する(ステップS104)。なお、ここでは、選択指示を受け取って処理を行うとしたが、OSやアプリケーションからの任意のトリガーや定期的に、ステップS104を実行してもよい。
スワップ処理選択部105は、メモリ管理情報記憶部1041に記憶されている情報を参照し、取得したメモリ領域が、複数のアプリケーションから使用されているメモリ領域か否かを判定する(ステップS105)。
複数のアプリケーションから使用されている場合(ステップS105がYes)、ステップS108に遷移する。一方、複数のアプリケーションから使用されていない場合(ステップS105がNo)、ステップ処理選択部105は、取得したメモリ領域をスワップ対象として選択し、デバイス書込み部106に通知する(ステップS106)。
デバイス書込み部106は、スワップ対象と選択されたメモリ領域を二次記憶装置に書込みを行う(ステップS107)。
スワップ処理選択部105は、スワップ対象記憶部1021に未処理のメモリ領域があるか否かを判断する(ステップS108)。未処理のメモリ領域がある場合(ステップS108がYes)、ステップS104に遷移して、処理を繰り返す。全てのメモリ領域に対する選択処理を完了すると(ステップS108がNo)、処理を終了する。
以上により、複数のアプリケーションから参照されているメモリ領域を管理し、当該メモリ領域をスワップ処理の対象から除外することが可能となり、共有で使用するメモリ領域が退避されることを防ぐことができ、スワップ処理にかかるオーバーヘッドを削減することができる。つまり、一旦、スワップアウト処理したメモリ領域に対して、スワップアウト対象となったアプリケーションとは別のアプリケーションから参照されることによる、再度のスワップイン処理を減らすことが可能となり、スワップ処理の効率を向上することができる。
また、スワップ対象決定部102は、オペレーションシステム(OS)が管理する単位でスワップ対象となるメモリ領域を決定する。OSが管理する単位として、例えばページがある。また、スワップ対象決定部102は、アプリケーションを指定し当該アプリケーションが使用しているメモリ領域をスワップ対象となるメモリ領域と決定する。この際に、アプリケーションが指定される場合もあれば、プロセスが指定される場合や、ページが指定される場合もあるが、これに限らない。アプリケーションを指定された場合には、スワップ対象決定部102は、プロセス管理情報記憶部1032やページ管理情報記憶部1031を参照し、指定された当該アプリケーションが使用しているページを把握し、ページ単位でスワップ対象となるメモリ領域を決定する。
なお、スワップ対象記憶部1021は、スワップ対象決定部102で決定されたスワップ対象となるメモリ領域をリスト管理により蓄積する。
情報処理装置1000において、使用しているメモリ領域が主記憶装置内で逼迫した場合に、主記憶装置内の一部のメモリ領域を二次記憶装置内に退避することで、主記憶装置内の当該メモリ領域を開放し、主記憶装置に空きメモリ領域を確保する際のスワップ処理にかかる時間がオーバーヘッドとなるため、本実施の形態におけるスワップ処理装置を用いることで、スワップ処理を効率化し、スワップ処理によるオーバーヘッドを削減することが可能となる。
(実施の形態2)
図4は、本実施の形態におけるスワップ処理装置の構成を示すブロック図である。
図2に示すスワップ処理装置は、スワップ開始指示部101、スワップ対象決定部102、スワップ対象記憶部1021、情報管理部103、ページ管理情報記憶部1031、プロセス管理情報記憶部1032、プロセス優先度管理部111、優先度管理情報既往部1110、スワップ処理優先度選択部112、デバイス書込み部106、スワップ情報取得部113を備えている。ここでは、実施の形態1と同じ構成要素には同じ符号を付し、その説明を省略する。
プロセス優先度管理部111は、情報管理部103が管理する情報を用いて、各プロセスの優先度を管理する。具体的には、プロセス優先度管理部111は、プロセス参照管理情報記憶部111と、スワップ回数管理情報記憶部1112と、スワップ禁止管理情報記憶部1113と、プロセス優先度管理情報記憶部1114に記憶されている情報の管理を行い、これらの情報の更新を行う。
プロセス参照管理情報記憶部1111は、プロセス毎に参照しているアプリケーションの数をプロセス参照管理情報として記憶する。
図7は、プロセス参照管理情報記憶部1111が保持するプロセス参照管理情報の一例を示したものである。プロセスと、そのプロセスを参照しているアプリケーション数の対応を示している。プロセスIDとはプロセスを識別する識別子である。プロセス参照管理情報記憶部1111のプロセス参照管理情報は、アプリケーションが起動した際や、アプリケーションが動作中に新規にプロセスを追加起動した際に、プロセス優先度管理部111がOSから通知を受け、更新される。
スワップ回数管理情報記憶部1112は、プロセス毎に、スワップアウト処理により退避された回数をスワップ回数管理情報として記憶する。各プロセスに対応するスワップ回数は、スワップ情報取得部113からプロセス優先度管理部111に通知された情報を用いて、プロセス優先度管理部111により更新される。具体的には、メモリ領域の一例としてページIDを用いた場合、プロセス優先度管理部111は、スワップ情報取得部113から、デバイス書込み部106が二次記憶装置に書込んだメモリ領域の情報を取得し、ページ管理情報記憶部1031のページ管理情報を用いて、取得したページIDから当該ページIDを使用しているプロセスの情報(例えば、プロセスID)を決定する。そして、このプロセスIDに対応するスワップ回数の更新を行う。また、優先度については、プロセス優先度管理部111が、例えば、スワップ回数が多いプロセスは高優先度と決定する。なお、スワップ回数が最も多いプロセスだけを高優先度と決定しても良いし、スワップ回数が多い順番で任意の数だけ高優先度と決定しても良い。
図8は、スワップ回数管理情報記憶部1112が保持するスワップ回数管理情報の一例を示したものである。ここでは、プロセスとスワップ回数と優先度を対応付けて保持している。プロセスIDとはプロセスを識別する識別子であり、スワップ回数はスワップ情報取得部113からの通知に基づき、適宜更新される。またプロセス毎に優先度を決定して管理する。
スワップ禁止プロセス管理情報記憶部1113は、スワップを禁止するプロセスを記憶する。プロセス優先度管理部111は、ページ管理情報記憶部1031とプロセス管理情報記憶部1032の情報から、例えば、全てのアプリケーションから参照されているプロセスを、当該プロセスを禁止対象として保持する。また、特定のプロセスが使用するデータが、パスワードや暗号鍵など高いセキュリティが必要とする情報である場合、スワップ禁止プロセスとして保持してもよい。
プロセス優先度管理情報記憶部1114は、各プロセスのスワップアウトの優先順位を記憶する。プロセス優先度管理部111は、ページ管理情報記憶部1031とプロセス管理情報記憶部1032の情報から、あるプロセスが構成要素であるアプリケーションの中で一番低い数字のアプリケーション実行履歴を当該プロセスの優先順位とし、数字の高いプロセスから順番にスワップアウト対象として優先度高であると優先順位を決定して管理する。
スワップ処理優先度選択部112は、スワップ対象記憶部1021から取得したスワップ対象のメモリ領域に対し、優先度管理情報記憶部1110に記憶されている全ての情報もしくは一つ以上の情報を用いて、スワップ対象となるメモリ領域を選択する。つまり、スワップ対象として不適切なメモリ領域の除外したページ群をスワップ処理対象とする。例えば、スワップ処理優先度選択部112は、プロセス参照管理情報記憶部1111に記憶されたアプリケーションの数が多いプロセスから高優先度として、各プロセスの優先度付けを行う。ここで高優先度にする判定基準は、例えば、参照しているアプリケーション数が2つ以上の場合で判定しても良いし、任意の数値で判定しても良い。また、参照しているアプリケーションの数が大きい順番で順位付けを行い、任意の順位で判定してもよい。スワップ処理優先度選択部112は、この様にして判定した高優先度のプロセスが使用するページ(メモリ領域)をスワップ対象から除外する。また、プロセス参照管理情報記憶部1111の代わりに、スワップ回数管理情報記憶部1112の中で高優先度と判定されたプロセスについて、当該プロセスが使用するページをスワップ対象から除外する方法や、スワップ禁止プロセス管理情報記憶部1113で管理されているプロセスが利用しているページはスワップ対象から除外する方法や、プロセス優先度管理情報記憶部1114の中で高優先度と判定されたプロセスについて、当該プロセスが使用するページからスワップ対象にする方法がある。なお、優先度管理情報記憶部1110で記憶されている。
スワップ情報取得部108は、デバイス書込み部106が二次記憶装置に書込んだメモリ領域の情報を取得し、プロセス優先度管理部111に通知する。
以上により、スワップアウト対象として不適切なメモリ領域を管理し、当該メモリ領域をスワップ処理の対象から除外することが可能となり、スワップ処理にかかるオーバーヘッドを削減することができる。特に、不適切なメモリ領域とは、例えば、スワップが繰り返されるメモリ領域であり、アプリケーション毎のスワップを行った結果、アプリケーションの切替え毎にスワップ処理が実行されてしまうようなメモリ領域を、スワップ処理対象から除外することで、スワップ処理の効率化を図ることができる。更に、複数のアプリケーションから共有されているメモリ領域の中からも、優先度に基づいて、スワップアウト対象の適したメモリ領域を選択することが可能となり、必要とする主記憶装置上の空き容量を確実に用意することができる。
なお、本発明の実施の形態におけるスワップ処理装置は、典型的にはプログラムで実現されるが、集積回路であるLSIとしてもよい。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field ProgrammableGate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
以上、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができる。
本発明にかかるスワップ処理装置は、多数のアプリケーションから参照されているメモリ情報をスワップ処理対象から除外する機能を有し、PC等の汎用のコンピュータやAV機器や通信機器、家電機器などの用途で有用である。
本発明の実施の形態における情報処理装置の構成を示すハードウェア構成図 本発明の実施の形態におけるスワップ処理装置の構成を示すブロック図 本発明の実施の形態におけるスワップ処理装置の動作を示すフローチャート 本発明の実施の形態におけるスワップ情報管理部の構成を示すブロック図 本発明の実施の形態におけるページ管理情報記憶部のページ管理情報の一例を示す図 本発明の実施の形態におけるプロセス管理情報記憶部のプロセス管理情報の一例を示す図 本発明の実施の形態におけるプロセス参照管理情報記憶部のプロセス参照管理情報の一例を示す図 本発明の実施の形態におけるスワップ回数管理情報記憶部のスワップ回数管理情報の一例を示す図 本発明の実施の形態におけるプロセス優先度管理情報記憶部のプロセス優先度管理情報の一例を示す図 本発明の実施の形態におけるメモリ管理情報記憶部のメモリ管理情報の一例を示す図
符号の説明
1,11,12,13 CPU
10 スワップ処理装置
2 メモリ装置
21 ROM
22 RAM
25 ハードディスク装置
26 インタフェース
31 記憶媒体
32 読取書込装置
33 通信回線
34 通信装置
35 インタフェース
40 入力装置
41 インタフェース
45 表示装置
46 インタフェース
50 バスライン
51 タイマー回路
55 割込コントローラ
101 スワップ開始指示部
102 スワップ対象決定部
103 情報管理部
104 共有情報管理部
105 スワップ処理選択部
106 デバイス書込み部
111 プロセス優先度管理部
112 スワップ処理優先度選択部
113 スワップ情報取得部
1021 スワップ対象記憶部
1031 ページ管理情報記憶部
1032 プロセス管理情報記憶部
1041 メモリ管理情報記憶部
1110 優先度管理情報記憶部
1111 プロセス参照管理情報記憶部
1112 スワップ回数管理情報記憶部
1113 スワップ禁止プロセス管理情報記憶部
1114 プロセス優先度管理情報記憶部

Claims (12)

  1. 使用しているメモリ領域の中からスワップ対象となるメモリ領域を決定するスワップ対象決定手段と、
    アプリケーションとプロセスに関係する情報を管理する情報管理手段と、
    前記情報管理部が管理する情報を用いて、複数のアプリケーションが共有して使用するメモリ領域の情報を管理する共有情報管理手段と、
    前記スワップ対象決定手段が決定したメモリ領域と、前記共有情報管理手段が管理する情報を用いて、スワップ対象となるメモリ領域を選択するスワップ処理選択手段と、
    前記スワップ処理選択手段によって選択されたメモリ領域のスワップアウト処理を行うデバイス書込み手段とを備えたことを特徴とするスワップ処理装置。
  2. 前記スワップ処理選択手段は、複数のアプリケーションが共有して使用するメモリ領域を除外して、スワップ対象となるメモリ領域を選択することを特徴とする請求項1記載のスワップ処理装置。
  3. 前記情報管理手段は、アプリケーションとプロセスの対応関係を管理するプロセス管理情報を管理することを特徴とする請求項2記載のスワップ処理装置。
  4. 前記情報管理手段は、プロセスとページの対応関係を管理するページ管理情報を管理することを特徴とする請求項2記載のスワップ処理装置。
  5. プロセスの優先度を管理するプロセス優先度管理手段を備え、
    前記スワップ処理選択手段は、前記スワップ対象決定手段が決定したメモリ領域と、前記プロセス優先度管理手段が管理する情報を用いて、スワップが繰り返されるメモリ領域を不適切なメモリ領域としてスワップ対象から除外して、スワップ対象となるメモリ領域を選択することを特徴とする請求項2記載のスワップ処理装置。
  6. 前記プロセス優先度管理手段は、メモリ領域の使用に対する情報について、プロセス毎にアプリケーションからの参照数を管理するプロセス参照管理情報を管理することを特徴とする請求項5記載のスワップ処理装置。
  7. 前記プロセス優先度管理手段は、メモリ領域の使用に対する情報について、プロセス毎にスワップ処理の実行回数を管理するスワップ回数管理情報を管理することを特徴とする請求項5記載のスワップ処理装置。
  8. 前記プロセス優先度管理手段は、メモリ領域の使用に対する情報について、スワップ処理を禁止するプロセスを管理するスワップ禁止プロセス管理情報を管理することを特徴とする請求項5記載のスワップ処理装置。
  9. 前記プロセス管理情報は、アプリケーションの実行履歴を含み、
    前記プロセス優先度管理手段は、前記プロセス管理情報のアプリケーションの実行履歴から、プロセス毎の優先度を決定し、前記決定した優先度をプロセス優先度管理情報として管理することを特徴とする請求項5記載のスワップ処理装置。
  10. 特定のポリシーに従って、使用しているメモリ領域の中からスワップ対象となるメモリ領域を決定するスワップ対象決定ステップと、
    前記スワップ対象決定ステップで決定したメモリ領域に対し、複数のアプリケーションが共有して使用するメモリ領域を除外して、スワップ対象となるメモリ領域を選択するスワップ処理選択ステップと、
    前記スワップ処理選択ステップによって選択されたメモリ領域の書き込み処理により、スワップアウト処理を行うデバイス書込みステップを有することを特徴とするスワップ処理方法。
  11. 特定のポリシーに従って、使用しているメモリ領域の中からスワップ対象となるメモリ領域を決定するスワップ対象決定ステップと、
    前記スワップ対象決定ステップで決定したメモリ領域に対し、複数のアプリケーションが共有して使用するメモリ領域を除外して、スワップ対象となるメモリ領域を選択するスワップ処理選択ステップと、
    前記スワップ処理選択ステップによって選択されたメモリ領域の書き込み処理により、スワップアウト処理を行うデバイス書込みステップを有することを特徴とするスワップ処理プログラム。
  12. 使用しているメモリ領域の中からスワップ対象となるメモリ領域を決定するスワップ対象決定手段と、
    アプリケーションとプロセスに関係する情報を管理する情報管理手段と、
    前記情報管理部が管理する情報を用いて、複数のアプリケーションが共有して使用するメモリ領域の情報を管理する共有情報管理手段と、
    前記スワップ対象決定手段が決定したメモリ領域と、前記共有情報管理手段が管理する情報を用いて、スワップ対象となるメモリ領域を選択するスワップ処理選択手段と、
    前記スワップ処理選択手段によって選択されたメモリ領域のスワップアウト処理を行うデバイス書込み手段とを備えたことを特徴とする集積回路。
JP2007180615A 2007-07-10 2007-07-10 スワップ処理装置 Pending JP2009020555A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007180615A JP2009020555A (ja) 2007-07-10 2007-07-10 スワップ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007180615A JP2009020555A (ja) 2007-07-10 2007-07-10 スワップ処理装置

Publications (1)

Publication Number Publication Date
JP2009020555A true JP2009020555A (ja) 2009-01-29

Family

ID=40360170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007180615A Pending JP2009020555A (ja) 2007-07-10 2007-07-10 スワップ処理装置

Country Status (1)

Country Link
JP (1) JP2009020555A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010003076A (ja) * 2008-06-19 2010-01-07 Canon Inc 画像処理装置及び画像処理装置のメモリ管理方法
JP2010198304A (ja) * 2009-02-25 2010-09-09 Canon Inc 情報処理装置、仮想記憶管理方法及びプログラム
WO2012102002A1 (ja) * 2011-01-24 2012-08-02 パナソニック株式会社 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、記録媒体、及び集積回路
JP2013137646A (ja) * 2011-12-28 2013-07-11 Nec System Technologies Ltd プログラム保護装置、プログラム保護方法、及びプログラム
KR20160059148A (ko) * 2014-11-18 2016-05-26 엘지전자 주식회사 적어도 하나의 메모리를 포함하는 디바이스의 제어 방법 및 스마트 tv
WO2022086003A1 (ko) * 2020-10-19 2022-04-28 삼성전자(주) 전자장치 및 그 제어방법

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010003076A (ja) * 2008-06-19 2010-01-07 Canon Inc 画像処理装置及び画像処理装置のメモリ管理方法
US8854388B2 (en) 2008-06-19 2014-10-07 Canon Kabushiki Kaisha Image processing apparatus and memory management method for image processing apparatus
JP2010198304A (ja) * 2009-02-25 2010-09-09 Canon Inc 情報処理装置、仮想記憶管理方法及びプログラム
WO2012102002A1 (ja) * 2011-01-24 2012-08-02 パナソニック株式会社 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、記録媒体、及び集積回路
JPWO2012102002A1 (ja) * 2011-01-24 2014-06-30 パナソニック株式会社 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、記録媒体、及び集積回路
US9218287B2 (en) 2011-01-24 2015-12-22 Panasonic Intellectual Property Corporation Of America Virtual computer system, virtual computer control method, virtual computer control program, recording medium, and integrated circuit
JP2013137646A (ja) * 2011-12-28 2013-07-11 Nec System Technologies Ltd プログラム保護装置、プログラム保護方法、及びプログラム
KR20160059148A (ko) * 2014-11-18 2016-05-26 엘지전자 주식회사 적어도 하나의 메모리를 포함하는 디바이스의 제어 방법 및 스마트 tv
KR101654724B1 (ko) * 2014-11-18 2016-09-22 엘지전자 주식회사 적어도 하나의 메모리를 포함하는 디바이스의 제어 방법 및 스마트 tv
US10671534B2 (en) 2014-11-18 2020-06-02 Lg Electronics Inc. Method for controlling device including at least one memory, and smart TV
WO2022086003A1 (ko) * 2020-10-19 2022-04-28 삼성전자(주) 전자장치 및 그 제어방법

Similar Documents

Publication Publication Date Title
JP6423518B2 (ja) マルチプロセッサシステムのための指向性イベントシグナリング
JP6240745B2 (ja) 複数のハイパーバイザを実行するシステムおよび方法
US20160062798A1 (en) System-on-chip including multi-core processor and thread scheduling method thereof
KR20150132218A (ko) 게스트 운영 체계 및 가상 프로세서들과 함께 하이퍼바이저를 이용하는 시스템들 및 방법들
JP2009020555A (ja) スワップ処理装置
CN109313604B (zh) 用于压缩虚拟存储器的动态配置的计算***、装置和方法
US20150261686A1 (en) Systems and methods for supporting demand paging for subsystems in a portable computing environment with restricted memory resources
JP2010044784A (ja) システムにおける要求のスケジューリング
TWI553549B (zh) 包括多個不同處理器核心之處理器
JP2017519294A (ja) フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(mhpc)
JP2018528515A (ja) 効率的な並列コンピューティングのための簡略化されたタスクベースランタイムのための方法
US20230222471A1 (en) System and method for subscription based solution implementation
US9304789B2 (en) Virtual machine control device, virtual machine control method, computer-readable recording medium, and integrated circuit
TW200925871A (en) Dynamic logical data channel assignment using time-grouped allocations
JP5405663B2 (ja) メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路
JP2010044460A (ja) 電源制御装置、計算機システム、電源制御方法、電源制御プログラムおよび記録媒体
JP5876017B2 (ja) 周辺機器制御装置および情報処理装置
US9141544B2 (en) Cache memory with write through, no allocate mode
JP2005293427A (ja) データ転送処理装置及びデータ転送処理方法
KR20160061726A (ko) 인터럽트 핸들링 방법
JP2009020776A (ja) スワップアウト制御装置
JP6251417B2 (ja) ストレージシステム、及び、記憶制御方法
US11907761B2 (en) Electronic apparatus to manage memory for loading data and method of controlling the same
JP2007265143A (ja) 情報処理方法、情報処理システム、情報処理装置、マルチプロセッサ、情報処理プログラム及び情報処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体
WO2013031130A1 (ja) 情報処理装置、そのアクセス制御方法及び集積回路