JP2012221217A - メモリ管理装置、メモリ管理方法、および、制御プログラム - Google Patents
メモリ管理装置、メモリ管理方法、および、制御プログラム Download PDFInfo
- Publication number
- JP2012221217A JP2012221217A JP2011086306A JP2011086306A JP2012221217A JP 2012221217 A JP2012221217 A JP 2012221217A JP 2011086306 A JP2011086306 A JP 2011086306A JP 2011086306 A JP2011086306 A JP 2011086306A JP 2012221217 A JP2012221217 A JP 2012221217A
- Authority
- JP
- Japan
- Prior art keywords
- area
- memory area
- memory
- program
- rank
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】記憶装置の空き容量が不足している場合に、システムや装置の異常の発生を抑制しつつ、記憶装置の領域を解放し、新たな領域を確保する。
【解決手段】メモリマネージャは、プログラムからの要求に応じてメモリ領域を確保するとともに、確保したメモリ領域に当該プログラムにより指定されたランクを設定する。また、メモリマネージャは、主記憶装置の空き容量が足りない場合、すでに確保されているメモリ領域の中から、各メモリ領域のランクに基づいて解放するメモリ領域を選択し、選択したメモリ領域を解放し、新たなメモリ領域を確保する。本発明は、例えば、組み込み機器に適用できる。
【選択図】図1
【解決手段】メモリマネージャは、プログラムからの要求に応じてメモリ領域を確保するとともに、確保したメモリ領域に当該プログラムにより指定されたランクを設定する。また、メモリマネージャは、主記憶装置の空き容量が足りない場合、すでに確保されているメモリ領域の中から、各メモリ領域のランクに基づいて解放するメモリ領域を選択し、選択したメモリ領域を解放し、新たなメモリ領域を確保する。本発明は、例えば、組み込み機器に適用できる。
【選択図】図1
Description
本技術は、メモリ管理装置、メモリ管理方法、および、制御プログラムに関し、特に、メモリ領域の確保および解放を行う場合に用いて好適なメモリ管理装置、メモリ管理方法、および、制御プログラムに関する。
従来、メモリの空き容量が足りない場合、優先度の低いプロセス、または、次の実行時刻までの時間が大きいプロセスを選択し、選択したプロセスに割り当てられているメモリ領域を解放することが提案されている(例えば、特許文献1参照)。
また、従来、メモリの実ページ不足が発生した場合、重要度の低い業務系のジョブからページスチールを行い、重要度の高い業務系のジョブに実ページを割り当てることが提案されている(例えば、特許文献2参照)。
しかしながら、特許文献1または2に記載の発明では、メモリ領域が解放されたプロセスまたはジョブが強制終了されるため、例えば、複数のプロセスまたはジョブが協調して動作するシステムでは、システムが正常に動作しなくなる恐れがある。
本技術は、記憶装置の空き容量が不足している場合に、システムや装置の異常の発生を抑制しつつ、記憶装置の領域を解放し、新たな領域を確保できるようにするものである。
本技術の一側面のメモリ管理装置は、プログラムからの要求に応じて記憶装置の領域を確保するとともに、確保した領域に当該プログラムにより指定されたランクを設定するメモリ領域割り当て部と、前記記憶装置の空き容量が足りない場合、すでに確保されている領域の中から、各領域のランクに基づいて解放する領域を選択するメモリ領域選択部と、前記選択された領域を解放するメモリ領域解放部とを備える。
前記メモリ領域選択部には、新たに確保する領域よりランクが低い領域の中から、解放する領域を選択させることができる。
前記領域選択部には、新たに確保する領域よりランクが低い領域のうち最もランクが低い領域を解放する領域に選択させることができる。
各プログラムには予めランクが設定されており、前記領域選択部には、前記最もランクが低い領域が複数ある場合、前記最もランクが低い領域のうち最もランクが低いプログラムに割り当てられている領域を解放する領域に選択させることができる。
前記メモリ領域選択部には、新たに確保する領域よりランクが低い領域が存在しない場合、新たな領域の確保を行わせないようにすることができる。
各プログラムには予めランクが設定されており、前記メモリ領域解放部には、新たに確保する領域よりランクが低い領域が存在しない場合、領域の確保を要求したプログラムよりランクが低いプログラムのうち少なくとも1つを強制終了させるようにすることができる。
前記領域割り当て部には、プログラムからの要求に従って、当該プログラムに割り当てられている領域のランクを変更させるようにすることができる。
本技術の一側面のメモリ管理方法は、プログラムからの要求に応じて記憶装置の領域を確保するとともに、確保した領域に当該プログラムにより指定されたランクを設定し、前記記憶装置の空き容量が足りない場合、すでに確保されている領域の中から、各領域のランクに基づいて解放する領域を選択し、前記選択された領域を解放するステップを含む。
本技術の一側面の制御プログラムは、プログラムからの要求に応じて記憶装置の領域を確保するとともに、確保した領域に当該プログラムにより指定されたランクを設定し、前記記憶装置の空き容量が足りない場合、すでに確保されている領域の中から、各領域のランクに基づいて解放する領域を選択し、前記選択された領域を解放するステップを含む処理をコンピュータに実行させる。
本技術の一側面においては、プログラムからの要求に応じて記憶装置の領域が確保されるとともに、確保した領域に当該プログラムにより指定されたランクが設定され、前記記憶装置の空き容量が足りない場合、すでに確保されている領域の中から、各領域のランクに基づいて解放する領域が選択され、前記選択された領域が解放される。
本技術の一側面によれば、記憶装置の空き容量が不足している場合に、記憶装置の領域を解放し、新たな領域を確保することができる。
特に、本技術の一側面によれば、記憶装置の空き容量が不足している場合に、システムや装置の異常の発生を抑制しつつ、記憶装置の領域を解放し、新たな領域を確保することができる。
以下、本技術を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
1.実施の形態
2.変形例
1.実施の形態
2.変形例
<1.実施の形態>
[本技術の概要]
まず、図1を参照して、本技術の概要について説明する。なお、図内の縦方向が時間軸を示している。
[本技術の概要]
まず、図1を参照して、本技術の概要について説明する。なお、図内の縦方向が時間軸を示している。
プログラムAおよびプログラムBは、CPU(Central Processing Unit)等の演算処理装置により実行されるプログラムである。メモリマネージャは、例えば、OS(オペレーティングシステム)の機能の一部として提供され、プログラムAおよびプログラムBに割り当てるメモリ領域の確保および解放等の処理を実行する。
例えば、プログラムAおよびプログラムBが、メモリマネージャにメモリ領域の確保を要求する場合、あわせて確保するメモリ領域のランクを指定する。メモリマネージャは、各プログラムからの要求に従って、メモリ領域を確保するとともに、確保したメモリ領域に指定されたランクを設定する。
このメモリ領域のランクは、例えば、メモリ領域の用途等を考慮した重要度に基づいて設定される。例えば、システム全体の処理に欠かせないデータや、消去されると再現が困難なデータを保持するメモリ領域のランクは高く設定される。一方、例えば、処理の高速化のために一時的にデータを保持しておくメモリ領域、例えば、ウェブブラウザのページキャッシュデータを保持するメモリ領域や、ファイルから読み込んだデータをキャッシュしておくメモリ領域のランクは低く設定される。また、例えば、容易に再計算ができるデータを保持するメモリ領域のランクは低く設定される。
そして、図1の例においては、まず、プログラムBからの要求により低ランクのメモリ領域M1が割り当てられる。次に、プログラムAからの要求により高ランクのメモリ領域M2が割り当てられ、その次に、プログラムBからの要求により高ランクのメモリ領域M3が割り当てられる。そして、プログラムAから高ランクのメモリ領域M4の確保が要求された場合に、メモリの空き容量の不足が発生したとき、メモリ領域M4よりランクが低いメモリ領域M1が自動解放される。その結果、メモリ不足が解消し、メモリ領域M4が確保される。
このように、本技術においては、プログラムからの要求によりメモリ領域を確保する場合に、確保するメモリ領域のランクが設定され、メモリ不足に陥った場合に、ランクが低いメモリ領域が優先的に解放される。
これにより、例えば、重要なデータを保持するメモリ領域が解放されてしまい、システムや装置が正常に動作しないようになることが防止される。
[情報処理システムの構成例]
図2は、本技術を適用した情報処理システム101の一実施の形態を示すブロック図である。
図2は、本技術を適用した情報処理システム101の一実施の形態を示すブロック図である。
情報処理システム101は、例えば、テレビジョン受像機、携帯電話機等の各種の組み込み機器や、コンピュータ等に適用可能なシステムである。
情報処理システム101は、演算処理装置111、主記憶装置112、および、補助記憶装置113を含むように構成される。演算処理装置111、主記憶装置112、および、補助記憶装置113は、バス114を介して相互に接続されている。
演算処理装置111は、例えば、CPU(Central Processing Unit)等により構成される。
主記憶装置112は、例えば、RAM(Random Access Memory)等により構成される。
補助記憶装置113は、例えば、ROM(Read Only Memory)、ハードディスクドライブ、フラッシュメモリ等、主記憶装置112より容量が大きく、アクセス速度が遅い記憶装置により構成される。
ここで、演算処理装置111のソフトウエアの構成例について説明する。
メモリマネージャ121およびメモリアクセス部122は、例えば、演算処理装置111により実行されるOSの機能の一部として提供される。
メモリマネージャ121は、プログラム123−1乃至123−nからの要求等に応じて、補助記憶装置113上のプログラムおよびデータの主記憶装置112への配置、並びに、主記憶装置112の領域(メモリ領域)の確保および解放の制御を行う。また、メモリマネージャ121は、プログラム123−1乃至123−nからの要求に応じて確保したメモリ領域のランクの設定を行う。なお、以下、各メモリ領域は、高、中、低の3段階のランクに分類されるものとする。また、メモリマネージャ121は、プログラム123−1乃至123−nからの要求に対する処理結果を要求元のプログラムに通知する。
さらに、メモリマネージャ121は、主記憶装置112に確保されているメモリ領域の状態を示す情報(以下、メモリマップと称する)の生成および更新を行い、主記憶装置112に記憶させる。メモリマップは、例えば、主記憶装置112に確保されている各メモリ領域の位置、サイズおよびランク、並びに、各メモリ領域が割り当てられているプログラム123およびそのランク(後述)を示す情報を含む。
さらに、メモリマネージャ121は、例えば、メモリ領域を確保できない場合などに、プログラム123−1乃至123−nを強制終了させる。
メモリアクセス部122は、プログラム123−1乃至123−nからの要求に応じて、メモリマップを用いて、主記憶装置112から指定されたデータを読み出し、読み出したデータを要求元のプログラムに渡す。また、メモリアクセス部122は、プログラム123−1乃至123−nからの要求に応じて、メモリマップを用いて、主記憶装置112上の指定されたデータの書き込みを行い、その結果を要求元のプログラムに通知する。
また、メモリマネージャ121とメモリアクセス部122とは、互いにデータ等の授受を行いながら、協調して動作する。
プログラム123−1乃至123−nは、演算処理装置111が所定の機能を実現するためのアプリケーションプログラム等により構成される。また、プログラム123−1乃至123−nには、それぞれが行う処理の優先度等に応じたランクが設定されている。
このプログラム123−1乃至123−nのランクは、例えば、各プログラムにより実行される処理の優先度に基づいて設定される。例えば、優先的に処理する必要があるプログラムのランクは高く設定され、処理を遅らせてもよいプログラムのランクは低く設定される。
なお、以下、プログラム123−1乃至123−nは、高、中、低の3段階のランクに分類されるものとする。また、以下、プログラム123−1乃至123−nを個々に区別する必要がない場合、単にプログラム123と称する。
[メモリマネージャ121の機能の構成例]
次に、図3を参照して、メモリマネージャ121の機能の構成例について説明する。
次に、図3を参照して、メモリマネージャ121の機能の構成例について説明する。
メモリマネージャ121は、メモリ領域割り当て部151、メモリ領域選択部152、および、メモリ領域解放部153を含むように構成される。
メモリ領域割り当て部151は、プログラム123からの要求に応じて、主記憶装置112の領域(メモリ領域)を確保し、その結果を要求元のプログラム123に通知する。また、メモリ領域割り当て部151は、主記憶装置112の空き容量が不足している場合、主記憶装置112の空き容量が不足していること、確保が要求されたメモリ領域のランク、および、要求元のプログラム123のランクをメモリ領域選択部152に通知する。さらに、メモリ領域割り当て部151は、補助記憶装置113上のプログラムおよびデータの主記憶装置112への配置(スワップイン)を制御する。また、メモリ領域割り当て部151は、メモリ領域の確保またはスワップインの実行に伴い、主記憶装置112に記憶されているメモリマップの更新を行う。
メモリ領域選択部152は、メモリ領域割り当て部151から主記憶装置112の空き容量の不足が通知された場合、メモリマップに基づいて、解放するメモリ領域を選択する。メモリ領域選択部152は、選択したメモリ領域をメモリ領域解放部153に通知する。
メモリ領域解放部153は、メモリ領域選択部152により選択されたメモリ領域を解放し、メモリ領域を解放したことをメモリ領域割り当て部151に通知する。また、メモリ領域解放部153は、プログラム123からの要求に応じて、メモリ領域を解放し、その結果を要求元のプログラム123に通知する。さらに、メモリ領域解放部153は、補助記憶装置113上のプログラムおよびデータの主記憶装置112への配置(スワップアウト)を制御する。また、メモリ領域解放部153は、メモリ領域の解放またはスワップアウトの実行に伴い、主記憶装置112に記憶されているメモリマップの更新を行う。
[メモリ領域を確保する場合の処理]
次に、図4乃至図10を参照して、情報処理システム101において、プログラム123からの要求に対して、主記憶装置112の領域を確保する場合の処理について説明する。
次に、図4乃至図10を参照して、情報処理システム101において、プログラム123からの要求に対して、主記憶装置112の領域を確保する場合の処理について説明する。
[メモリ領域確保要求処理]
まず、図4のフローチャートを参照して、プログラム123により実行されるメモリ領域確保要求処理について説明する。
まず、図4のフローチャートを参照して、プログラム123により実行されるメモリ領域確保要求処理について説明する。
ステップS1において、プログラム123は、メモリ領域割り当て部151に対して、メモリ領域の確保を要求する。このとき、要求元のプログラム123は、少なくとも確保するメモリ領域のサイズ(容量)およびランク、並びに、要求元のプログラム123のランクをメモリ領域割り当て部151に通知する。
ステップS2において、プログラム123は、メモリ領域割り当て部151から、メモリ領域の確保結果を受信する。このメモリ領域の確保結果には、例えば、メモリ領域の確保が成功したか否か、確保したメモリ領域の位置等が含まれる。
[メモリ領域確保処理の第1の実施の形態]
次に、図5のフローチャートを参照して、図4のメモリ領域確保要求処理に対応して、メモリマネージャ121により実行されるメモリ領域確保処理の第1の実施の形態について説明する。
次に、図5のフローチャートを参照して、図4のメモリ領域確保要求処理に対応して、メモリマネージャ121により実行されるメモリ領域確保処理の第1の実施の形態について説明する。
なお、この第1の実施の形態では、メモリ領域のランクを優先的に用いて、メモリ領域の確保が行われる。
ステップS101において、メモリ領域割り当て部151は、主記憶装置112の空き容量が不足しているか否かを判定する。メモリ領域割り当て部151は、プログラム123から要求されたメモリ領域を確保するのに十分な空き容量が主記憶装置112にない場合、主記憶装置112の空き容量が不足していると判定する。そして、メモリ領域割り当て部151は、主記憶装置112の空き容量が不足していること、要求されたメモリ領域のランク、および、要求元のプログラム123のランクをメモリ領域選択部152に通知する。その後、処理はステップS102に進む。
ステップS102において、メモリ領域選択部152は、要求されたメモリ領域よりランクが低いメモリ領域があるか否かを判定する。具体的には、メモリ領域選択部152は、メモリマップに基づいて、各プログラム123に割り当てられているメモリ領域(すなわち、確保済みのメモリ領域)の中から、要求されたメモリ領域よりランクが低いメモリ領域を検索する。その結果、要求されたメモリ領域よりランクが低いメモリ領域があると判定された場合、処理はステップS103に進む。
ステップS103において、メモリ領域選択部152は、最もランクが低いメモリ領域が複数あるか否かを判定する。最もランクが低いメモリ領域が1つしかないと判定された場合、処理はステップS104に進む。これは、例えば、プログラム123から要求されたメモリ領域が高ランクである場合、確保済みのメモリ領域の中に低ランクのものが1つしかないときや、低ランクのものがなく、中ランクのものが1つしかないとき等である。
ステップS104において、メモリ領域選択部152は、最もランクが低いメモリ領域を選択する。そして、メモリ領域選択部152は、選択したメモリ領域をメモリ領域解放部153に通知する。
その後、処理はステップS106に進む。
一方、ステップS103において、最もランクが低いメモリ領域が複数あると判定された場合、処理はステップS105に進む。
ステップS105において、メモリ領域選択部152は、最もランクが低いメモリ領域の中から、最もランクが低いプログラム123に割り当てられているメモリ領域を選択する。なお、該当するメモリ領域が複数ある場合、メモリ領域選択部152は、例えば、メモリ領域のサイズや使用状況等に基づいて、あるいは、ランダムに、1つのメモリ領域を選択する。そして、メモリ領域選択部152は、選択したメモリ領域をメモリ領域解放部153に通知する。
その後、処理はステップS106に進む。
ここで、図6を参照して、ステップS105の処理の具体例について説明する。
この例では、主記憶装置112において、メモリ領域M1乃至M6の6つのメモリ領域が確保されている。そのうち、メモリ領域M1、M3およびM6がプログラムAに割り当てられ、メモリ領域M2およびM4がプログラムBに割り当てられ、メモリ領域M5がプログラムCに割り当てられている。また、メモリ領域M2、M5およびM6が高ランクに設定され、メモリ領域M3が中ランクに設定され、メモリ領域M1およびM4が低ランクに設定されている。
また、プログラムAは高ランクに設定され、プログラムBは中ランクに設定され、プログラムCは低ランクに設定されている。
そして、プログラムCが、高ランクのメモリ領域の確保を要求した場合について検討する。
この場合、プログラムCが要求したメモリ領域よりランクが低い中ランクおよび低ランクのメモリ領域は、メモリ領域M1、M3およびM4の3つである。また、これらの3つのメモリ領域の中で最もランクが低い低ランクのメモリ領域は、メモリ領域M1およびM4の2つである。そして、これらの2つのメモリ領域のうち、メモリ領域M4が割り当てられているプログラムBの方が、メモリ領域M1が割り当てられているプログラムAよりランクが低い。従って、この場合、メモリ領域M4が選択される。
図5に戻り、ステップS106において、メモリ領域解放部153は、選択したメモリ領域を解放する。なお、このとき、選択したメモリ領域を単に解放するようにしてもよいし、選択したメモリ領域のデータを補助記憶装置113にスワップアウトすることにより解放するようにしてもよい。
また、メモリ領域解放部153は、解放したメモリ領域の情報をメモリマップから削除する。さらに、メモリ領域解放部153は、メモリ領域を解放したことをメモリ領域割り当て部151に通知する。
その後、処理はステップS107に進む。
なお、このとき、解放したメモリ領域が割り当てられていたプログラム123に対して、メモリ領域を解放したことを通知するようにしてもよいし、通知しないようにしてもよい。
前者の場合、例えば、メモリマネージャ121が、当該プログラム123に対して、すぐに割り込み通知を行うようにしてもよい。また、例えば、当該プログラム123が解放されたメモリ領域にアクセスしようとしたときに、メモリアクセス部122が割り込み通知を行うようにしてもよい。
後者の場合、例えば、プログラム123自身が、解放されたメモリ領域の値(例えば、オールクリアされている等)に基づいて、メモリ領域の解放を検出するようにすればよい。
一方、ステップS101において、主記憶装置112の空き容量が不足していないと判定された場合、ステップS102乃至S106の処理はスキップされ、処理はステップS107に進む。
ステップS107において、メモリ領域割り当て部151は、メモリ領域を確保する。すなわち、メモリ領域割り当て部151は、主記憶装置112の空き領域内に、プログラム123により要求されたサイズのメモリ領域を確保する。
例えば、上述した図6の例の場合、ステップS106およびS107の処理により、図7に示されるように、メモリ領域M4が解放され、代わりにメモリ領域M7が確保され、プログラムCに割り当てられる。
また、メモリ領域割り当て部151は、新たに確保したメモリ領域の位置、サイズおよびランク、並びに、メモリ領域を割り当てたプログラム123およびそのランク等の情報をメモリマップに追加する。さらに、メモリ領域割り当て部151は、確保したメモリ領域の位置等を要求元のプログラム123に通知する。
その後、メモリ領域確保処理は終了する。
一方、ステップS102において、要求されたメモリ領域よりランクが低いメモリ領域がないと判定された場合、処理はステップS108に進む。
ステップS108において、メモリマネージャ121は、エラー処理を実行する。このとき、例えば、メモリ領域の確保を行わずに、単にメモリ領域の確保に失敗したことを要求元のプログラム123に通知するようにしてもよいし、あるいは、別の方法でメモリ領域の確保を試みるようにしてもよい。
後者の場合、例えば、メモリ領域解放部153は、要求元のプログラム123よりランクが低いプログラム123のうちの少なくとも1つを強制終了させ、そのプログラム123に割り当てられていたメモリ領域を解放する。そして、メモリマネージャ121は、ステップS101から再度処理を実行する。
あるいは、例えば、メモリマネージャ121は、後述するメモリ領域確保処理の第2の実施の形態と同様に、プログラム123のランクを優先的に用いて、要求されたメモリ領域の確保を試みる。
その後、メモリ領域確保処理は終了する。
このように、プログラム123からメモリ領域の確保が要求された場合に、主記憶装置112の空き容量が不足しているとき、よりランクが低いメモリ領域が解放され、新たなメモリ領域が確保される。従って、メモリ領域を自動解放することにより、情報処理システム101が正常に動作しないようになることが防止される。
[メモリ領域確保処理の第2の実施の形態]
次に、図8のフローチャートを参照して、図4のメモリ領域確保要求処理に対応して、メモリマネージャ121により実行されるメモリ領域確保処理の第2の実施の形態について説明する。
次に、図8のフローチャートを参照して、図4のメモリ領域確保要求処理に対応して、メモリマネージャ121により実行されるメモリ領域確保処理の第2の実施の形態について説明する。
なお、この第2の実施の形態では、プログラム123のランクを優先的に用いて、メモリ領域の確保が行われる。
ステップS151において、図5のステップS101の処理と同様に、主記憶装置112の空き容量が不足しているか否かが判定され、主記憶装置112の空き容量が不足していると判定された場合、処理はステップS152に進む。
ステップS152において、メモリ領域選択部152は、メモリマップに基づいて、メモリ領域が割り当てられているプログラム123の中に、要求元のプログラム123よりランクが低いものがあるか否かを判定する。メモリ領域が割り当てられているプログラム123の中に、要求元のプログラム123よりランクが低いものがあると判定された場合、処理はステップS153に進む。
ステップS153において、メモリ領域選択部152は、最もランクが低いプログラム123が複数あるか否かを判定する。最もランクが低いプログラム123が1つしかないと判定された場合、処理はステップS154に進む。これは、例えば、要求元のプログラム123が高ランクである場合、メモリ領域が割り当てられているプログラム123の中に低ランクのものが1つしかないときや、低ランクのものがなく、中ランクのものが1つしかないとき等である。
ステップS154において、メモリ領域選択部152は、最もランクが低いプログラム123を選択する。
その後、処理はステップS156に進む。
一方、ステップS153において、最もランクが低いプログラム123が複数あると判定された場合、処理はステップS155に進む。
ステップS155において、メモリ領域選択部152は、最もランクが低いプログラム123の中から、最もランクが低いメモリ領域が割り当てられているプログラム123を選択する。なお、該当するプログラム123が複数ある場合、例えば、プログラム123に割り当てられているメモリ領域のサイズやプログラム123の状態等に基づいて、あるいは、ランダムに、1つのプログラム123が選択される。
その後、処理はステップS156に進む。
ステップS156において、メモリ領域選択部152は、選択したプログラム123に割り当てられているメモリ領域の中から、最もランクが低いものを選択する。なお、該当するメモリ領域が複数ある場合、例えば、メモリ領域のサイズや使用状況等に基づいて、あるいは、ランダムに、1つのメモリ領域が選択される。そして、メモリ領域選択部152は、選択したメモリ領域をメモリ領域解放部153に通知する。
ステップS157において、図5のステップS106と同様の処理が行われ、選択したメモリ領域が解放される。
その後、処理はステップS158に進む。
一方、ステップS151において、主記憶装置112の空き容量が不足していないと判定された場合、ステップS152乃至S157の処理はスキップされ、処理はステップS158に進む。
ステップS158において、図5のステップS107と同様の処理が行われ、メモリ領域が確保される。
その後、メモリ領域確保処理は終了する。
一方、ステップS152において、メモリ領域が割り当てられているプログラム123の中に、要求元のプログラム123よりランクが低いものがないと判定された場合、処理はステップS159に進む。
ステップS159において、メモリマネージャ121は、エラー処理を実行する。このとき、例えば、メモリ領域の確保を行わずに、単にメモリ領域の確保に失敗したことを要求元のプログラム123に通知するようにしてもよいし、あるいは、別の方法でメモリ領域の確保を試みるようにしてもよい。
後者の場合、例えば、メモリマネージャ121は、図5のメモリ領域確保処理の第1の実施の形態と同様に、メモリ領域のランクを優先的に用いて、要求されたメモリ領域の確保を試みる。
その後、メモリ領域確保処理は終了する。
このように、プログラム123からメモリ領域の確保が要求された場合に、主記憶装置112の空き容量が不足しているとき、よりランクが低いプログラム123のメモリ領域が解放され、新たなメモリ領域が確保される。従って、メモリ領域を自動解放することにより、情報処理システム101が正常に動作しないようになることが防止される。
[メモリ領域確保処理の第3の実施の形態]
次に、図9のフローチャートを参照して、図4のメモリ領域確保要求処理に対応して、メモリマネージャ121により実行されるメモリ領域確保処理の第3の実施の形態について説明する。
次に、図9のフローチャートを参照して、図4のメモリ領域確保要求処理に対応して、メモリマネージャ121により実行されるメモリ領域確保処理の第3の実施の形態について説明する。
なお、この第3の実施の形態は、図5を参照して上述した第1の実施の形態と同様にメモリ領域のランクを優先的に用いてメモリ領域を確保する場合において、複数のメモリ領域を解放して、要求されたメモリ領域を確保できるようにしたものである。
ステップS201において、図5のステップS101の処理と同様に、主記憶装置112の空き容量が不足しているか否かが判定され、主記憶装置112の空き容量が不足していると判定された場合、処理はステップS202に進む。
ステップS202において、図5のステップS102の処理と同様に、要求されたメモリ領域よりランクが低いメモリ領域があるか否かが判定され、要求されたメモリ領域よりランクが低いメモリ領域があると判定された場合、処理はステップS203に進む。
なお、以下、この処理において、要求されたメモリ領域よりランクが低いメモリ領域を解放可能領域と称する。
ステップS203において、メモリ領域選択部152は、必要な空き容量を確保できるか否かを判定する。メモリ領域選択部152は、解放可能領域を全て解放した場合の主記憶装置112の空き容量が、要求されたメモリ領域の確保に必要な容量に達する場合、必要な空き容量を確保できると判定し、処理はステップS204に進む。
その後、ステップS204乃至S207において、図5のステップS103乃至S106と同様の処理が実行される。これにより、解放可能領域の中から最もランクが低いメモリ領域が1つ選択され、選択されたメモリ領域が解放される。
ステップS208において、メモリ領域割り当て部151は、必要な空き容量を確保できたか否かを判定する。メモリ領域割り当て部151は、主記憶装置112の空き容量が、まだ要求されたメモリ領域の確保に必要な空き容量に達していない場合、まだ必要な空き容量を確保できていないと判定し、処理はステップS204に戻る。
その後、ステップS208において、必要な空き容量を確保できたと判定されるまで、ステップS204乃至S208の処理が繰り返し実行される。これにより、ランクが低いメモリ領域から順に1つずつメモリ領域が解放されていく。
一方、ステップS208において、必要な空き容量を確保できたと判定された場合、処理はステップS209に進む。
また、ステップS201において、主記憶装置112の空き容量が不足していないと判定された場合、ステップS202乃至S208の処理はスキップされ、処理はステップS209に進む。
ステップS209において、図5のステップS107と同様の処理が行われ、メモリ領域が確保される。
その後、メモリ領域確保処理は終了する。
一方、ステップS202において、要求されたメモリ領域よりランクが低いメモリ領域がないと判定された場合、処理はステップS210に進む。
また、ステップS203において、必要な空き容量を確保できないと判定された場合、処理はステップS210に進む。
ステップS210において、メモリマネージャ121は、エラー処理を実行する。このとき、例えば、メモリ領域の確保を行わずに、単にメモリ領域の確保に失敗したことを要求元のプログラム123に通知するようにしてもよいし、あるいは、別の方法でメモリ領域の確保を試みるようにしてもよい。
後者の場合、例えば、メモリ領域解放部153は、要求元のプログラム123よりランクが低いプログラム123のうちの少なくとも1つを強制終了させ、そのプログラム123に割り当てられていたメモリ領域を解放する。そして、メモリマネージャ121は、ステップS201から再度処理を実行する。
あるいは、例えば、メモリマネージャ121は、後述するメモリ領域確保処理の第4の実施の形態と同様に、プログラム123のランクを優先的に用いて、要求されたメモリ領域の確保を試みる。
その後、メモリ領域確保処理は終了する。
これにより、第1の実施の形態と比較して、より確実に必要なメモリ領域を確保することが可能になる。
[メモリ領域確保処理の第4の実施の形態]
次に、図10のフローチャートを参照して、図4のメモリ領域確保要求処理に対応して、メモリマネージャ121により実行されるメモリ領域確保処理の第4の実施の形態について説明する。
次に、図10のフローチャートを参照して、図4のメモリ領域確保要求処理に対応して、メモリマネージャ121により実行されるメモリ領域確保処理の第4の実施の形態について説明する。
なお、この第4の実施の形態は、図8を参照して上述した第2の実施の形態と同様にプログラム123のランクを優先的に用いてメモリ領域を確保する場合において、複数のメモリ領域を解放して、要求されたメモリ領域を確保できるようにしたものである。
ステップS251において、図5のステップS101の処理と同様に、主記憶装置112の空き容量が不足しているか否かが判定され、主記憶装置112の空き容量が不足していると判定された場合、処理はステップS252に進む。
ステップS252において、図8のステップS152の処理と同様に、メモリ領域が割り当てられているプログラム123の中に、要求元のプログラム123よりランクが低いものがあるか否かが判定される。メモリ領域が割り当てられているプログラム123の中に、要求元のプログラム123よりランクが低いものがあると判定された場合、処理はステップS253に進む。
なお、以下、この処理において、要求元のプログラム123よりランクが低いプログラム123に割り当てられているメモリ領域を解放可能領域と称する。
ステップS253において、メモリ領域選択部152は、必要な空き容量を確保できるか否かを判定する。メモリ領域選択部152は、解放可能領域を全て解放した場合の主記憶装置112の空き容量が、要求されたメモリ領域の確保に必要な容量に達する場合、必要な空き容量を確保できると判定し、処理はステップS254に進む。
その後、ステップS254乃至S258において、図8のステップS153乃至S157と同様の処理が実行される。これにより、最もランクが低いプログラム123に割り当てられているメモリ領域の中から最もランクが低いメモリ領域が1つ選択され、選択されたメモリ領域が解放される。
ステップS259において、図9のステップS208の処理と同様に、必要な空き容量を確保できたか否かが判定され、まだ必要な空き容量を確保できていないと判定された場合、処理はステップS254に戻る。
その後、ステップS259において、必要な空き容量を確保できたと判定されるまで、ステップS254乃至S259の処理が繰り返し実行される。これにより、ランクが低いプログラム123に割り当てられているメモリ領域から順に1つずつメモリ領域が解放されていく。
一方、ステップS259において、必要な空き容量を確保できたと判定された場合、処理はステップS260に進む。
また、ステップS251において、主記憶装置112の空き容量が不足していないと判定された場合、ステップS252乃至S259の処理はスキップされ、処理はステップS260に進む。
ステップS260において、図5のステップS107と同様の処理が行われ、メモリ領域が確保される。
その後、メモリ領域確保処理は終了する。
一方、ステップS252において、メモリ領域が割り当てられているプログラム123の中に、要求元のプログラム123よりランクが低いものがないと判定された場合、処理はステップS261に進む。
また、ステップS253において、必要な空き容量を確保できないと判定された場合、処理はステップS261に進む。
ステップS261において、メモリマネージャ121は、エラー処理を実行する。このとき、例えば、メモリ領域の確保を行わずに、単にメモリ領域の確保に失敗したことを要求元のプログラム123に通知するようにしてもよいし、あるいは、別の方法でメモリ領域の確保を試みるようにしてもよい。
後者の場合、例えば、メモリマネージャ121は、図9のメモリ領域確保処理の第3の実施の形態と同様に、メモリ領域のランクを優先的に用いて、要求されたメモリ領域の確保を試みる。
その後、メモリ領域確保処理は終了する。
これにより、第2の実施の形態と比較して、より確実に必要なメモリ領域を確保することが可能になる。
[メモリアクセス処理]
次に、図11のフローチャートを参照して、メモリ領域の自動解放時にプログラム123にメモリ領域の解放が通知されない場合に、プログラム123が、解放されたメモリ領域にアクセスする場合の処理について説明する。
次に、図11のフローチャートを参照して、メモリ領域の自動解放時にプログラム123にメモリ領域の解放が通知されない場合に、プログラム123が、解放されたメモリ領域にアクセスする場合の処理について説明する。
ステップS301において、プログラム123は、メモリアクセス部122に対して、メモリ領域へのアクセス(例えば、データの読み出しあるいは書き込み)を要求する。
ステップS302において、プログラム123は、アクセスを要求したメモリ領域が解放されているか否かを判定する。例えば、プログラム123は、メモリアクセス部122からの割り込み通知の有無により、アクセスを要求したメモリ領域が解放されているか否かを判定する。また、例えば、プログラム123は、アクセスを要求したメモリ領域の値がオールクリアされているか否かに基づいて、アクセスを要求したメモリ領域が解放されているか否かを判定する。そして、アクセスを要求したメモリ領域が解放されていると判定された場合、処理はステップS303に進む。
ステップS303において、プログラム123は、図4を参照して上述したメモリ領域確保要求処理を実行する。
なお、このとき、解放前のメモリ領域のデータがスワップアウトされている場合、そのデータが確保されたメモリ領域にスワップインされる。
また、解放前のメモリ領域のデータがスワップアウトされていない場合、例えば、プログラム123は、解放前のメモリ領域のデータを再計算して、メモリアクセス部122を介して、確保されたメモリ領域に格納する。
その後、処理はステップS304に進む。
一方、ステップS302において、アクセスを要求したメモリ領域が解放されていないと判定された場合、ステップS303の処理はスキップされ、処理はステップS304に進む。
ステップS304において、プログラム123は、所定の処理、すなわち、メモリ領域へのアクセスに伴う処理を実行する。
その後、メモリアクセス処理は終了する。
<2.変形例>
以下、本技術の実施の形態の変形例について説明する。
以下、本技術の実施の形態の変形例について説明する。
[変形例1]
以上の説明では、メモリ領域およびプログラム123のランクを高、中、低の3段階に分類する例を示したが、2段階、または、4段階以上に分類するようにしてもよい。
以上の説明では、メモリ領域およびプログラム123のランクを高、中、低の3段階に分類する例を示したが、2段階、または、4段階以上に分類するようにしてもよい。
[変形例2]
また、メモリ領域のランクにメモリマネージャ121による自動解放を許可しないランクを設けて、そのランクに設定されているメモリ領域を、上述したメモリ領域確保処理において、自動解放する対象から除外するようにしてもよい。
また、メモリ領域のランクにメモリマネージャ121による自動解放を許可しないランクを設けて、そのランクに設定されているメモリ領域を、上述したメモリ領域確保処理において、自動解放する対象から除外するようにしてもよい。
同様に、プログラム123のランクにメモリマネージャ121による自動解放を許可しないランクを設けて、そのランクのプログラム123に割り当てられているメモリ領域を、上述したメモリ領域確保処理において、自動解放する対象から除外するようにしてもよい。
[変形例3]
さらに、メモリ領域のランクは、プログラム123の実行中に変動する場合が想定される。従って、メモリ領域の確保時だけでなく、プログラム123の実行中に、プログラム123からの要求に従って、メモリ領域のランクを動的に変更できるようにしてもよい。
さらに、メモリ領域のランクは、プログラム123の実行中に変動する場合が想定される。従って、メモリ領域の確保時だけでなく、プログラム123の実行中に、プログラム123からの要求に従って、メモリ領域のランクを動的に変更できるようにしてもよい。
例えば、処理の高速化のために、解放せずに一時的に主記憶装置112に確保しているメモリ領域のランクを、使用時に高く設定し、未使用時に低く設定するようにすることが考えられる。
これにより、メモリ領域のランクをより適切に設定することができ、主記憶装置112の空き容量が不足した場合に、より必要性の低いメモリ領域を解放して、新たなメモリ領域を確保することが可能になる。
同様に、プログラム123のランクも動的に変更できるようにしてもよい。
[変形例4]
また、上述したメモリ領域確保処理の第2および第4の実施の形態においては、要求元のプログラム123よりランクが低いプログラム123のメモリ領域であれば、要求されたメモリ領域のランク以上のメモリ領域であっても解放される可能性がある。これに対して、第2および第4の実施の形態においても、要求されたメモリ領域のランク以上のメモリ領域を、自動解放する対象から除外するようにしてもよい。
また、上述したメモリ領域確保処理の第2および第4の実施の形態においては、要求元のプログラム123よりランクが低いプログラム123のメモリ領域であれば、要求されたメモリ領域のランク以上のメモリ領域であっても解放される可能性がある。これに対して、第2および第4の実施の形態においても、要求されたメモリ領域のランク以上のメモリ領域を、自動解放する対象から除外するようにしてもよい。
[変形例5]
さらに、以上に示した情報処理システム101のソフトウエアの構成例は、その一例であり、他の構成にすることも可能である。例えば、プログラム123が、メモリマネージャ121およびメモリアクセス部122の機能の全部または一部を、実行するようにしてもよい。また、例えば、メモリマネージャ121が、メモリアクセス部122の機能の一部または全部を実行するようにしてもよい。
さらに、以上に示した情報処理システム101のソフトウエアの構成例は、その一例であり、他の構成にすることも可能である。例えば、プログラム123が、メモリマネージャ121およびメモリアクセス部122の機能の全部または一部を、実行するようにしてもよい。また、例えば、メモリマネージャ121が、メモリアクセス部122の機能の一部または全部を実行するようにしてもよい。
[変形例6]
また、上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。例えば、メモリアクセス部122を、メモリ管理ユニット(MMU)等のハードウエアにより構成することも可能である。
また、上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。例えば、メモリアクセス部122を、メモリ管理ユニット(MMU)等のハードウエアにより構成することも可能である。
なお、一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
コンピュータが実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディアに記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。その他、プログラムは、装置に組み込まれている記憶装置(例えば、補助記憶装置113)に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、システムの用語は、複数の装置、手段などより構成される全体的な装置を意味するものとする。
さらに、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
また、例えば、本技術は以下のような構成も取ることができる。
(1)
プログラムからの要求に応じて記憶装置の領域を確保するとともに、確保した領域に当該プログラムにより指定されたランクを設定するメモリ領域割り当て部と、
前記記憶装置の空き容量が足りない場合、すでに確保されている領域の中から、各領域のランクに基づいて解放する領域を選択するメモリ領域選択部と、
前記選択された領域を解放するメモリ領域解放部と
を備えるメモリ管理装置。
(2)
前記メモリ領域選択部は、新たに確保する領域よりランクが低い領域の中から、解放する領域を選択する
前記(1)に記載のメモリ管理装置。
(3)
前記領域選択部は、新たに確保する領域よりランクが低い領域のうち最もランクが低い領域を解放する領域に選択する
前記(2)に記載のメモリ管理装置。
(4)
各プログラムには予めランクが設定されており、
前記領域選択部は、前記最もランクが低い領域が複数ある場合、前記最もランクが低い領域のうち最もランクが低いプログラムに割り当てられている領域を解放する領域に選択する
前記(3)に記載のメモリ管理装置。
(5)
前記メモリ領域選択部は、新たに確保する領域よりランクが低い領域が存在しない場合、新たな領域の確保を行わない
前記(2)から(4)のいずれかに記載のメモリ管理装置。
(6)
各プログラムには予めランクが設定されており、
前記メモリ領域解放部は、新たに確保する領域よりランクが低い領域が存在しない場合、領域の確保を要求したプログラムよりランクが低いプログラムのうち少なくとも1つを強制終了させる
前記(2)から(4)のいずれかに記載のメモリ管理装置。
(7)
前記領域割り当て部は、プログラムからの要求に従って、当該プログラムに割り当てられている領域のランクを変更する
前記(1)から(6)のいずれかに記載のメモリ管理装置。
(8)
プログラムからの要求に応じて記憶装置の領域を確保するとともに、確保した領域に当該プログラムにより指定されたランクを設定し、
前記記憶装置の空き容量が足りない場合、すでに確保されている領域の中から、各領域のランクに基づいて解放する領域を選択し、
前記選択された領域を解放する
ステップを含むメモリ管理方法。
(9)
プログラムからの要求に応じて記憶装置の領域を確保するとともに、確保した領域に当該プログラムにより指定されたランクを設定し、
前記記憶装置の空き容量が足りない場合、すでに確保されている領域の中から、各領域のランクに基づいて解放する領域を選択し、
前記選択された領域を解放する
ステップを含む処理をコンピュータに実行させるための制御プログラム。
プログラムからの要求に応じて記憶装置の領域を確保するとともに、確保した領域に当該プログラムにより指定されたランクを設定するメモリ領域割り当て部と、
前記記憶装置の空き容量が足りない場合、すでに確保されている領域の中から、各領域のランクに基づいて解放する領域を選択するメモリ領域選択部と、
前記選択された領域を解放するメモリ領域解放部と
を備えるメモリ管理装置。
(2)
前記メモリ領域選択部は、新たに確保する領域よりランクが低い領域の中から、解放する領域を選択する
前記(1)に記載のメモリ管理装置。
(3)
前記領域選択部は、新たに確保する領域よりランクが低い領域のうち最もランクが低い領域を解放する領域に選択する
前記(2)に記載のメモリ管理装置。
(4)
各プログラムには予めランクが設定されており、
前記領域選択部は、前記最もランクが低い領域が複数ある場合、前記最もランクが低い領域のうち最もランクが低いプログラムに割り当てられている領域を解放する領域に選択する
前記(3)に記載のメモリ管理装置。
(5)
前記メモリ領域選択部は、新たに確保する領域よりランクが低い領域が存在しない場合、新たな領域の確保を行わない
前記(2)から(4)のいずれかに記載のメモリ管理装置。
(6)
各プログラムには予めランクが設定されており、
前記メモリ領域解放部は、新たに確保する領域よりランクが低い領域が存在しない場合、領域の確保を要求したプログラムよりランクが低いプログラムのうち少なくとも1つを強制終了させる
前記(2)から(4)のいずれかに記載のメモリ管理装置。
(7)
前記領域割り当て部は、プログラムからの要求に従って、当該プログラムに割り当てられている領域のランクを変更する
前記(1)から(6)のいずれかに記載のメモリ管理装置。
(8)
プログラムからの要求に応じて記憶装置の領域を確保するとともに、確保した領域に当該プログラムにより指定されたランクを設定し、
前記記憶装置の空き容量が足りない場合、すでに確保されている領域の中から、各領域のランクに基づいて解放する領域を選択し、
前記選択された領域を解放する
ステップを含むメモリ管理方法。
(9)
プログラムからの要求に応じて記憶装置の領域を確保するとともに、確保した領域に当該プログラムにより指定されたランクを設定し、
前記記憶装置の空き容量が足りない場合、すでに確保されている領域の中から、各領域のランクに基づいて解放する領域を選択し、
前記選択された領域を解放する
ステップを含む処理をコンピュータに実行させるための制御プログラム。
101 情報処理システム, 111 演算処理装置, 112 主記憶装置, 113 補助記憶装置, 121 メモリマネージャ, 122 メモリアクセス部, 123−1乃至123−n プログラム, 151 メモリ領域割り当て部, 152 メモリ領域選択部, 153 メモリ領域解放部
Claims (9)
- プログラムからの要求に応じて記憶装置の領域を確保するとともに、確保した領域に当該プログラムにより指定されたランクを設定するメモリ領域割り当て部と、
前記記憶装置の空き容量が足りない場合、すでに確保されている領域の中から、各領域のランクに基づいて解放する領域を選択するメモリ領域選択部と、
前記選択された領域を解放するメモリ領域解放部と
を備えるメモリ管理装置。 - 前記メモリ領域選択部は、新たに確保する領域よりランクが低い領域の中から、解放する領域を選択する
請求項1に記載のメモリ管理装置。 - 前記領域選択部は、新たに確保する領域よりランクが低い領域のうち最もランクが低い領域を解放する領域に選択する
請求項2に記載のメモリ管理装置。 - 各プログラムには予めランクが設定されており、
前記領域選択部は、前記最もランクが低い領域が複数ある場合、前記最もランクが低い領域のうち最もランクが低いプログラムに割り当てられている領域を解放する領域に選択する
請求項3に記載のメモリ管理装置。 - 前記メモリ領域選択部は、新たに確保する領域よりランクが低い領域が存在しない場合、新たな領域の確保を行わない
請求項2に記載のメモリ管理装置。 - 各プログラムには予めランクが設定されており、
前記メモリ領域解放部は、新たに確保する領域よりランクが低い領域が存在しない場合、領域の確保を要求したプログラムよりランクが低いプログラムのうち少なくとも1つを強制終了させる
請求項2に記載のメモリ管理装置。 - 前記領域割り当て部は、プログラムからの要求に従って、当該プログラムに割り当てられている領域のランクを変更する
請求項1に記載のメモリ管理装置。 - プログラムからの要求に応じて記憶装置の領域を確保するとともに、確保した領域に当該プログラムにより指定されたランクを設定し、
前記記憶装置の空き容量が足りない場合、すでに確保されている領域の中から、各領域のランクに基づいて解放する領域を選択し、
前記選択された領域を解放する
ステップを含むメモリ管理方法。 - プログラムからの要求に応じて記憶装置の領域を確保するとともに、確保した領域に当該プログラムにより指定されたランクを設定し、
前記記憶装置の空き容量が足りない場合、すでに確保されている領域の中から、各領域のランクに基づいて解放する領域を選択し、
前記選択された領域を解放する
ステップを含む処理をコンピュータに実行させるための制御プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011086306A JP2012221217A (ja) | 2011-04-08 | 2011-04-08 | メモリ管理装置、メモリ管理方法、および、制御プログラム |
US13/428,793 US20120260058A1 (en) | 2011-04-08 | 2012-03-23 | Memory management apparatus, memory management method, and control program |
CN201210096527XA CN102750225A (zh) | 2011-04-08 | 2012-04-01 | 存储管理设备、存储管理方法和控制程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011086306A JP2012221217A (ja) | 2011-04-08 | 2011-04-08 | メモリ管理装置、メモリ管理方法、および、制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012221217A true JP2012221217A (ja) | 2012-11-12 |
Family
ID=46967020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011086306A Withdrawn JP2012221217A (ja) | 2011-04-08 | 2011-04-08 | メモリ管理装置、メモリ管理方法、および、制御プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20120260058A1 (ja) |
JP (1) | JP2012221217A (ja) |
CN (1) | CN102750225A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112017007318T5 (de) | 2017-05-17 | 2019-12-24 | Mitsubishi Electric Corporation | Speicherverwaltungssystem, Informationsverarbeitungsvorrichtung und Speicherverwaltungsverfahren |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024539B (zh) * | 2012-11-12 | 2016-06-01 | 北京奇虎科技有限公司 | 用于管理智能电视系统的方法及装置 |
US9639399B2 (en) * | 2013-02-01 | 2017-05-02 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus and terminal for releasing memory |
US20160054943A1 (en) * | 2014-08-22 | 2016-02-25 | Kabushiki Kaisha Toshiba | Information processing apparatus |
CN107912063B (zh) * | 2016-04-27 | 2021-05-18 | 华为技术有限公司 | 一种内存回收方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6038571A (en) * | 1996-01-31 | 2000-03-14 | Kabushiki Kaisha Toshiba | Resource management method and apparatus for information processing system of multitasking facility |
DE19951716A1 (de) * | 1999-10-27 | 2001-05-03 | Heidenhain Gmbh Dr Johannes | Verfahren zur dynamischen Speicherverwaltung |
JP2004348437A (ja) * | 2003-05-22 | 2004-12-09 | Matsushita Electric Ind Co Ltd | リソース管理装置、リソース管理方法及び記録媒体 |
US7792824B2 (en) * | 2004-01-08 | 2010-09-07 | International Business Machines Corporation | Apparatus and method for enabling parallel processing of a computer program using existing database parallelism |
-
2011
- 2011-04-08 JP JP2011086306A patent/JP2012221217A/ja not_active Withdrawn
-
2012
- 2012-03-23 US US13/428,793 patent/US20120260058A1/en not_active Abandoned
- 2012-04-01 CN CN201210096527XA patent/CN102750225A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112017007318T5 (de) | 2017-05-17 | 2019-12-24 | Mitsubishi Electric Corporation | Speicherverwaltungssystem, Informationsverarbeitungsvorrichtung und Speicherverwaltungsverfahren |
Also Published As
Publication number | Publication date |
---|---|
CN102750225A (zh) | 2012-10-24 |
US20120260058A1 (en) | 2012-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6198226B2 (ja) | 順次並んだスワップ・ファイルを使用するワーキング・セットのスワップ | |
JP2007026094A (ja) | 実行装置およびアプリケーションプログラム | |
US10402114B2 (en) | Information processing system, storage control apparatus, storage control method, and storage control program | |
CN105637470B (zh) | 用于脏数据管理的方法和计算设备 | |
EP2645259A1 (en) | Method, device and system for caching data in multi-node system | |
JP2012221217A (ja) | メモリ管理装置、メモリ管理方法、および、制御プログラム | |
US10592148B2 (en) | Information processing system, storage control apparatus, storage control method, and storage control program for evaluating access performance to a storage medium | |
WO2015142974A1 (en) | Asynchronously prefetching sharable memory pages | |
US20080244118A1 (en) | Method and apparatus for sharing buffers | |
JP2018063505A (ja) | メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム | |
JP5405663B2 (ja) | メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路 | |
JP6311365B2 (ja) | 記憶領域管理装置、記憶領域管理方法及び記憶領域管理プログラム | |
US9858204B2 (en) | Cache device, cache system, and cache method | |
JP2019021185A (ja) | 情報処理装置、情報処理システム、情報処理装置制御方法及び情報処理装置制御プログラム | |
KR102063281B1 (ko) | 파일에 접근하기 위한 방법과 장치, 및 저장 시스템 | |
JP2012242877A (ja) | メモリ管理装置、メモリ管理方法、および、制御プログラム | |
JP5471677B2 (ja) | 仮想ディスク制御システム、方法及びプログラム | |
JP6251417B2 (ja) | ストレージシステム、及び、記憶制御方法 | |
JP6919277B2 (ja) | ストレージシステム、ストレージ管理装置、ストレージ管理方法、及びプログラム | |
US9229875B2 (en) | Method and system for extending virtual address space of process performed in operating system | |
JP2013254357A (ja) | 情報処理装置および方法、並びにプログラム | |
JP4714202B2 (ja) | フィルタ処理装置、フィルタ処理方法およびフィルタ処理プログラム | |
US20170147408A1 (en) | Common resource updating apparatus and common resource updating method | |
JP5561147B2 (ja) | 仮想記憶管理装置、仮想記憶管理方法および仮想記憶管理プログラム | |
CN116483260A (zh) | Buffer管理方法、装置及存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140701 |