(57)【特許請求の範囲】
【請求項１】
複数のメモリブロックを含むメモリを管理するメモリ管理装置であって、
複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、
前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、
前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、
前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、
前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、
保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部とを備えるメモリ管理装置。
【請求項２】
前記優先終了判定部は、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量と、既に保持している終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量との大小関係に基づいて、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する請求項１記載のメモリ管理装置。
【請求項３】
前記優先終了判定部は、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群を構成する複数のプロセスのプロセス数と、既に保持している終了候補のプロセス群を構成する複数のプロセスのプロセス数との大小関係に基づいて、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する請求項１又は２記載のメモリ管理装置。
【請求項４】
前記プロセス群終了可否判定部は、プロセスごとに予め設定されている優先度レベルに基づいて、前記終了候補プロセス選択部によって選択された終了候補のプロセス群を構成する複数のプロセスを並べ替える請求項１〜３のいずれかに記載のメモリ管理装置。
【請求項５】
前記複数のメモリブロックは、それぞれ個別に電力供給される請求項１〜４のいずれかに記載のメモリ管理装置。
【請求項６】
複数のメモリブロックを含むメモリを管理するメモリ管理方法であって、
複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理ステップと、
前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理ステップと、
前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理ステップにおいて管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択ステップと、
前記終了候補プロセス選択ステップにおいて選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定ステップと、
前記終了候補プロセス選択ステップにおいて選択され、かつ前記優先終了判定ステップにおいて優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理ステップにおいて管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定ステップと、
保持している終了候補のプロセス群を、前記プロセス群終了可否判定ステップにおいて終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定ステップとを含むメモリ管理方法。
【請求項７】
複数のメモリブロックを含むメモリを管理するメモリ管理プログラムであって、
複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、
前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、
前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、
前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、
前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、
保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部としてコンピュータを機能させるメモリ管理プログラム。
【請求項８】
複数のメモリブロックを含むメモリを管理するメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、
前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、
前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、
前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、
前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、
保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部としてコンピュータを機能させるメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項９】
複数のメモリブロックを含むメモリを管理する集積回路であって、
複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理回路と、
前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理回路と、
前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理回路によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択回路と、
前記終了候補プロセス選択回路によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定回路と、
前記終了候補プロセス選択回路によって選択され、かつ前記優先終了判定回路によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理回路によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定回路と、
保持している終了候補のプロセス群を、前記プロセス群終了可否判定回路によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定回路とを備える集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラムが動作可能な情報処理装置において、複数のプログラムが消費するメモリを管理するメモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路に関するものである。特に、情報処理装置おいて、メモリの空き容量とプログラムとに何らかの関係付けがある場合に、プログラムが消費するメモリの解放を適切に行うメモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路に関するものである。
【背景技術】
【０００２】
従来、複数のプログラムが動作可能な情報処理システム、すなわちマルチタスク又はマルチプロセスで動作可能な情報処理システムにおいて、動作するプログラムを終了させることによりプログラムが消費していたメモリを解放し、情報処理システムが備えるメモリの空き容量を確保する技術があった。【０００３】
例えば、特許文献１には、従来のメモリ解放の仕組みとして、プログラムに設定されている実行優先度やそのプログラムが消費しているメモリサイズに基づき、終了させるプログラムを選択する技術が開示されている。【０００４】
具体的には、オペレーティングシステム（ＯＳ）は、情報処理システムのメモリの空き容量が所定の値以下になると、メインメモリ解放プロセスを実行可能状態にする。例えば、新規にプログラムをプロセスとして起動しようとした際に、メモリの空き容量が不足するような場合に、メインメモリ解放プロセスが動作する。【０００５】
メインメモリ解放プロセスは、ＯＳが管理するプロセス管理情報を参照し、メインメモリに展開されているプロセスの中から優先度が低いプロセスを選択し、選択したプロセスが消費していたメモリを解放させる。これにより、優先度の低いプロセスが実行されていることにより、優先度の高いプロセスが新規に起動できないという事態を回避できる。【０００６】
しかしながら、従来の構成では、ＯＳが管理するプロセス管理情報に各プロセスの使用メモリ量は記憶されているが、各プロセスがメモリ内のどこを使用しているかは把握できない。電力供給をブロック単位で別々に管理できるメモリがある。このようなメモリは、例えば、メモリのチップごとに、あるいはメモリ内部のバンクごとに電力を供給することが可能である。一般に、動的なメモリ割り当てを行う情報処理システムでは、動作するプロセスに対して、複数のメモリチップ又は複数のメモリバンクなどの複数のメモリブロックにまたがって使用メモリ領域を割り当てる。従来の構成では、各プロセスがメモリ内のどこを使用しているかを把握できない。そのため、選択したプロセスを終了させた場合に、メモリ内の各領域がどの程度解放されるかを把握できない。【０００７】
従来技術では、新規にプロセスを起動する際にメモリが不足した場合、優先度の低いプロセスに割り当てられているメモリを解放し、すぐに解放したメモリが利用されることを想定している。そのため、プロセスがどのメモリブロックを使用しているかについては知る必要がなかった。【０００８】
しかしながら、情報処理装置の省電力モードを実現するために、複数のメモリチップ又は複数のメモリバンクなどの複数のメモリブロックのうちいくつかのメモリブロックへの電力供給を切りたい場合がある。メモリブロックへの電力供給を切る場合、そのメモリブロック上のデータは消去されるため、適切な手順でそのデータを待避させる必要がある。【０００９】
また、画像データを圧縮又は伸張するコーデックなどでは、メモリ内の連続した領域を使用することが望まれる。しかしながら、上記のように、１つのプロセスに対して複数のメモリブロックの領域が割り当てられている場合、当該プロセスを終了させたとしても、各メモリブロック内の領域がそれぞれ解放されることになり、連続した領域を確保することが困難となる。【００１０】
また、近年の情報処理装置において、各プロセスとメモリの空き容量とを関連付け、メモリの空き容量に応じて終了させることが可能なプロセスを規定している場合がある。従来の構成では、情報処理システムのメモリの消費状況を把握することができない。そのため、終了させるために選択したプロセスが現在の情報処理システムのメモリの消費状況により本当に終了させることが可能かどうかを判断することができない。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０００−２１５０９９号公報
【発明の概要】
【００１２】
本発明は、上記の問題を解決するためになされたもので、特定のメモリブロックの空き容量を可能な限り多く確保することができるメモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路を提供することを目的とするものである。
【００１３】
本発明の一局面に係るメモリ管理装置は、複数のメモリブロックを含むメモリを管理するメモリ管理装置であって、複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部とを備える。
【００１４】
この構成によれば、複数のプロセスを動作可能な情報処理システムで使用されるプロセスに割り当てられている複数のメモリブロックの割り当てサイズが、プロセスごとにメモリブロック単位で管理される。また、複数のメモリブロック全体のメモリ空き容量が管理される。メモリを解放するためのメモリ解放要求を情報処理システムから受け取ると、管理されている割り当てサイズに基づき、複数のメモリブロックごとに割り当てられている複数のプロセスが割り当てサイズが大きい順に抽出され、抽出された複数のプロセスが終了候補のプロセス群として複数のメモリブロックごとに選択される。次に、選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かが判定される。優先的に終了すべきであると判定された終了候補のプロセス群の順序が優先度に応じて並べ替えられ、管理されている複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えられた終了候補のプロセス群が終了可能であるか否かが判定される。保持している終了候補のプロセス群が、終了可能であると判定された終了候補のプロセス群に書き換えられ、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群が終了すべきプロセス群として決定される。
【００１５】
本発明によれば、複数のメモリブロックごとに終了候補のプロセス群が選択され、選択された終了候補のプロセス群が終了可能であるか否かが判定され、終了可能であると判定されたプロセス群が終了されるので、特定のメモリブロックの空き容量を可能な限り多く確保することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態における情報処理装置の構成を示す図である。
【図２】本発明の実施の形態におけるメモリ管理装置の構成を示すブロック図である。
【図３】本発明の実施の形態におけるプロセス割り当てメモリ管理部が管理するメモリ割り当て情報の一例を示す図である。
【図４】本発明の実施の形態におけるシステムメモリ管理部が管理するメモリ空き容量情報の一例を示す図である。
【図５】本発明の実施の形態における終了候補プロセス選択部の処理の一例を示す第１のフローチャートである。
【図６】本発明の実施の形態における終了候補プロセス選択部の処理の一例を示す第２のフローチャートである。
【図７】本発明の実施の形態におけるプロセス群終了可否判定部が管理する終了可否判定条件の一例を示す図である。
【図８】本発明の実施の形態におけるプロセス群終了可否判定部の処理の一例を示す第１のフローチャートである。
【図９】本発明の実施の形態におけるプロセス群終了可否判定部の処理の一例を示す第２のフローチャートである。
【図１０】本発明の実施の形態における終了プロセス決定部の処理の一例を示す第１のフローチャートである。
【図１１】本発明の実施の形態における終了プロセス決定部の処理の一例を示す第２のフローチャートである。
【図１２】終了候補プロセス選択部からプロセス選択終了通知を受け取った場合の終了プロセス決定部の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について、図面を参照しながら説明する。尚、以下の実施の形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。
【００１８】
図１は、本発明の実施の形態における情報処理装置の構成を示す図である。この情報処理装置１００は、それ自体としてユーザの使用に供することもできるが、様々な電気機器に組み込まれてもよい。情報処理装置１００の一例は、代表的にはＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ；パーソナルコンピュータあるいはパソコン）等の汎用のコンピュータである。なお、情報処理装置１００は、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）又は携帯電話機等の携帯通信端末でもよい。さらに、情報処理装置１００は、テレビ、ハードディスクレコーダー、ＤＶＤ又はブルーレイディスクなどに情報を記録する各種ディスクレコーダー、ＤＶＤ又はブルーレイディスクなどから情報を再生する各種ディスクプレイヤー、又はカーナビゲーションシステムなどであってもよい。
【００１９】
情報処理装置１００は、プロセッサ１、メモリ装置２、通信装置３４、入力装置４０、表示装置４５、タイマ回路５１及び割り込みコントローラ５５を備えている。プロセッサ１は、代表的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央演算処理装置）、メディア処理用又はグラフィック処理用のプロセッサ、又はＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）などの演算処理装置である。プロセッサ１、メモリ装置２、通信装置３４、入力装置４０、表示装置４５、タイマ回路５１及び割り込みコントローラ５５は、バスライン５０を通じて互いに接続されている。また、必要に応じて、バスライン５０には、ハードディスク装置２５及び読取装置３２を接続することが可能となっている。ハードディスク装置２５、読取装置３２、入力装置４０及び表示装置４５は、それぞれ、Ｉ／Ｆ（インタフェース）２６、３５、４１及び４６を介してバスライン５０に接続される。
【００２０】
プロセッサ１は、単一のプロセッサで構成されても良く、複数のプロセッサで構成されてもよい。一例として、情報処理装置１００は、複数のプロセッサ１１、１２、１３、・・・を有する。
【００２１】
メモリ装置２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２を備えている。ＲＯＭ２１は、プロセッサ１の動作を規定するコンピュータプログラム及びデータを記憶している。コンピュータプログラム及びデータは、ハードディスク装置２５に記憶させることもできる。
【００２２】
プロセッサ１は、ＲＯＭ２１又はハードディスク装置２５が格納するコンピュータプログラム及びデータを、必要に応じてＲＡＭ２２に書き込みつつ、コンピュータプログラムが規定する処理を実行する。ＲＡＭ２２は、プロセッサ１が処理を実行するのに伴って発生するデータを一時的に記憶する媒体としても機能する。ＲＯＭ２１には、フラッシュＲＯＭのように書き込みが可能で、電源を切っても記憶内容を保持できる不揮発性のメモリ及び記憶媒体も含まれる。ＲＡＭ２２には、電源を切ると記憶内容が保持されない揮発性のメモリ及び記憶媒体が含まれる。
【００２３】
ハードディスク装置２５は、内蔵する不図示のハードディスクへ、コンピュータプログラム及びデータを書き込むとともに、ハードディスクからコンピュータプログラム及びデータを読み出す。読取装置３２は、例えば、ＣＤ、ＤＶＤ又はメモリカードなどの記録媒体３１に記録されたコンピュータプログラム又はデータを読み取る。通信装置３４は、電話回線、ネットワーク線、無線又は赤外線通信等の通信回線３３を通じて、外部と自身との間で、コンピュータプログラム又はデータを交換する。
【００２４】
入力装置４０は、ユーザの操作によりデータ等の入力を受け付ける。入力装置４０は、例えば、ＰＤＡに配列されたキーボード、携帯電話機に配列された入力ボタン、着脱自在のマウス、又は着脱自在のキーボードである。表示装置４５は、データ及び画像等を画面に表示したり、データ等を音声で出力したりする。表示装置４５は、例えばＬＣＤ（Ｌｉｇｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ；液晶表示器）、ブラウン管、又はスピーカである。
【００２５】
タイマ回路５１は、一定の周期でタイマ割り込み信号を出力する。割り込みコントローラ５５は、タイマ回路５１、入力装置４０、プロセッサ１、ネットワークデバイスとしての通信装置３４、ハードディスク装置２５及び読取装置３２等から送られる割り込み要求信号を、プロセッサ１へ中継する。各装置からの割り込み要求には優先度が付けられている。割り込みコントローラ５５は、同時に複数の装置から割り込みが発生した場合には、それらの要求を優先度に応じて調停する機能を有している。
【００２６】
以上のように、情報処理装置１００は、コンピュータとして構成されている。上記コンピュータプログラムは、ＲＯＭ２１、ハードディスク装置２５、又は不図示のフレキシブルディスク及びＣＤ−ＲＯＭ等の記録媒体３１を通じて供給することも、通信回線３３等の伝送媒体を通じて供給することも可能である。例えば、コンピュータ読み取り可能な記録媒体３１（ＣＤ−ＲＯＭ）に記録されたコンピュータプログラムは、情報処理装置１００に接続された読取装置３２を介して、読み出すことができる。また、ＲＡＭ２２又はハードディスク装置２５は、読み出したコンピュータプログラムを格納することができる。
【００２７】
ＲＯＭ２１からコンピュータプログラムが供給される場合には、当該ＲＯＭ２１を情報処理装置１００に搭載することにより、プロセッサ１は上記コンピュータプログラムに従った処理を実行可能となる。通信回線３３等の伝送媒体を通じて供給されるコンピュータプログラムは、通信装置３４を通じて受信され、例えば、ＲＡＭ２２又はハードディスク装置２５に格納される。伝送媒体は、有線の伝送媒体に限られず、無線の伝送媒体であってもよい。また、伝送媒体は通信線路のみでなく、通信線路を中継する中継装置、例えばルータも含む。
【００２８】
通常、このメモリ管理機能の実体はメモリ装置２又はハードディスク装置２５に格納され、プロセッサ１と協働して実行することにより、メモリ管理装置１０を実現している。なお、メモリ管理装置１０は、少なくとも１つのプロセッサと、メモリ装置とで構成される。また、情報処理システムは、少なくとも１つのプロセッサと、メモリ装置とで構成される。情報処理システムは、複数のプロセスを実行する。複数のプロセスには、メモリ装置２の所定の領域が割り当てられており、情報処理システムは、当該所定の領域を利用して複数のプロセスを実行する。
【００２９】
図２は、本発明の実施の形態におけるメモリ管理装置の構成を示すブロック図である。メモリ管理装置１０は、プロセッサ１と外部メモリとが協同して動作することにより実現される。外部メモリとしては、典型的には、図１に示すメモリ装置２に含まれるＲＯＭ２１又はＲＡＭ２２、ハードディスク装置２５、又は読取装置３２によって読み出される記録媒体３１が挙げられる。
【００３０】
メモリ管理装置１０は、メモリ割り当て部２０１、プロセス割り当てメモリ管理部２０２、システムメモリ管理部２０３、終了候補プロセス選択部２０４、プロセス群終了可否判定部２０５、終了プロセス決定部２０６及び選択プロセス終了部２０７を備える。
【００３１】
メモリ割り当て部２０１は、情報処理システムからメモリ割り当て要求を受け取ると、情報処理システムが管理しているメモリ（典型的にはＲＡＭ２２）の空き領域をプロセスに割り当てる。プロセス又はタスクは、プログラムの実行単位の呼び方の一つである。プロセスは、メモリ割り当て部２０１により割り当てられたメモリを、各プロセスの実行コード又はデータを格納するために使用する。
【００３２】
ＲＡＭ２２は、電力供給の管理を個別に実施できる複数のメモリブロックから構成されてもよい。例えば、ＲＡＭ２２は、電力供給の管理を個別に実施できる複数のメモリチップであってもよい。また、ＲＡＭ２２は、単一のメモリチップであってもよく、電力供給の管理を個別に実施できる複数のメモリブロック単位でチップ内を構成してもよい。すなわち、複数のメモリブロックは、それぞれ個別に電力供給され、メモリブロックごとに、電力供給のオン／オフを切り替えることができる。
【００３３】
メモリ割り当て部２０１は、プロセスにメモリを割り当てると、どのプロセスに対して割り当てたかを表す情報、どのメモリブロックに割り当てたかを表す情報、及び各メモリブロックに割り当てたサイズを表す情報をプロセス割り当てメモリ管理部２０２に通知する。また、メモリ割り当て部２０１は、どのメモリブロックに割り当てたかを表す情報、及び各メモリブロックに割り当てたサイズを表す情報をシステムメモリ管理部２０３に通知する。
【００３４】
プロセス割り当てメモリ管理部２０２は、複数のプロセスを動作可能な情報処理システムで使用されるプロセスに割り当てられている複数のメモリブロックの割り当てサイズを、プロセスごとに各メモリブロック単位で管理する。プロセス割り当てメモリ管理部２０２は、各メモリブロックにどれだけのサイズが割り当てられているかを表すメモリ割り当て情報をプロセスごとに記憶している。プロセス割り当てメモリ管理部２０２は、メモリ割り当て部２０１から前述するメモリ割り当てに関する情報（どのプロセスに対して割り当てたかを表す情報、どのメモリブロックに割り当てたかを表す情報、及び各メモリブロックに割り当てたサイズを表す情報）を取得すると、該当するプロセスのメモリ割り当て情報を更新する。
【００３５】
システムメモリ管理部２０３は、複数のメモリブロック全体のメモリ空き容量及び複数のメモリブロックのそれぞれのメモリ空き容量を管理する。システムメモリ管理部２０３は、複数のメモリブロック全体のメモリ空き容量及び複数のメモリブロックのメモリ空き容量を記憶している。システムメモリ管理部２０３は、メモリ割り当て部２０１から前述するメモリ割り当てに関する情報（どのメモリブロックに割り当てたかを表す情報、及び各メモリブロックに割り当てたサイズを表す情報）を取得すると、取得した情報に基づいて複数のメモリブロック全体のメモリ空き容量及び各メモリブロックのメモリ空き容量を更新する。
【００３６】
終了候補プロセス選択部２０４は、メモリを解放するためのメモリ解放要求を情報処理システムから受け取ると動作する。メモリ解放要求は、情報処理システムが要求するメモリ空き容量を含み、複数のメモリブロックで構成されるメモリ全体から所定の空き容量を確保するための要求である。
【００３７】
終了候補プロセス選択部２０４は、情報処理システムから要求されたメモリ空き容量を確保するために、終了候補のプロセスを選択する。終了候補プロセス選択部２０４は、複数のメモリブロックのうち、特定のメモリブロックから可能な限り多くの領域が解放できるように、終了候補のプロセスを選択する。そのために、終了候補プロセス選択部２０４は、各プロセスが現在どのメモリブロックにどの程度のサイズが割り当てられているかを表す情報を、プロセス割り当てメモリ管理部２０２から取得する。
【００３８】
終了候補プロセス選択部２０４は、メモリを解放するためのメモリ解放要求を情報処理システムから受け取ると、プロセス割り当てメモリ管理部２０２によって管理されている割り当てサイズに基づき、複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として複数のメモリブロックごとに選択する。
【００３９】
終了候補プロセス選択部２０４は、各メモリブロックに対して、終了候補のプロセスを選択し、プロセス群終了可否判定部２０５に渡す。終了候補プロセス選択部２０４は、選択した複数のプロセスが現在の情報処理システムの状況下で終了可能か否かをプロセス群終了可否判定部２０５に問い合わせる。
【００４０】
プロセス群終了可否判定部２０５は、終了候補プロセス選択部２０４から複数のプロセスを受け取ると、現在のメモリ空き容量に関する情報をシステムメモリ管理部２０３から受け取る。また、プロセス群終了可否判定部２０５は、情報処理システムで規定されているメモリ空き容量と各プロセスの終了可否の条件とに基づいて、終了候補プロセス選択部２０４から受け取ったプロセスの終了順序を調整する。
【００４１】
プロセス群終了可否判定部２０５は、終了候補プロセス選択部２０４によって選択された終了候補のプロセス群を取得すると、システムメモリ管理部２０３から複数のメモリブロック全体のメモリ空き容量を取得し、複数のメモリブロック全体のメモリ空き容量の条件と、当該条件で終了可能なプロセスとの関係に基づき、終了候補のプロセス群を終了させる順序に並べ替え、当該並べ替えたプロセス群を終了可能であるか否かを判定する。プロセス群終了可否判定部２０５は、終了可否の判定結果情報を終了候補プロセス選択部２０４に通知し、終了させることができないプロセスが存在する場合には当該終了させることができないプロセスをさらに終了候補プロセス選択部２０４に通知する。
【００４２】
終了候補プロセス選択部２０４は、選択したプロセス群が全て終了可能であるとプロセス群終了可否判定部２０５から通知を受け取ると、選択したプロセス群と、メモリ割り当て情報とを終了プロセス決定部２０６に渡す。その後、終了候補プロセス選択部２０４は、残りの他のメモリブロックに関しても同様に終了候補のプロセスを選択する。
【００４３】
終了プロセス決定部２０６は、終了候補プロセス選択部２０４から終了候補のプロセス群とメモリ割り当て情報とを受け取ると、受け取った終了候補のプロセス群が、これまでに終了候補プロセス選択部２０４から受け取った別のメモリブロックに対する終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定し、当該終了候補のプロセス群を終了候補とすべきか否かを表す通知を終了候補プロセス選択部２０４に送信する。終了プロセス決定部２０６は、終了候補プロセス選択部２０４から全ての各メモリブロックに対して終了プロセス群を得ると、最終的に候補として残ったプロセス群を終了させるプロセスと決定し、選択プロセス終了部２０７に通知する。
【００４４】
終了プロセス決定部２０６は、終了候補プロセス選択部２０４によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する。
【００４５】
また、終了プロセス決定部２０６は、終了候補プロセス選択部２０４によって選択された終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量と、既に保持している終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量との大小関係に基づいて、終了候補プロセス選択部２０４によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する。
【００４６】
また、終了プロセス決定部２０６は、終了候補プロセス選択部２０４によって選択された終了候補のプロセス群を構成する複数のプロセスのプロセス数と、既に保持している終了候補のプロセス群を構成する複数のプロセスのプロセス数との大小関係に基づいて、終了候補プロセス選択部２０４によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する。
【００４７】
また、プロセス群終了可否判定部２０５は、終了候補プロセス選択部２０４によって選択され、かつ終了プロセス決定部２０６によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、システムメモリ管理部２０３によって管理されている複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定する。
【００４８】
また、プロセス群終了可否判定部２０５は、プロセスごとに予め設定されている優先度レベルに基づいて、終了候補プロセス選択部２０４によって選択された終了候補のプロセス群を構成する複数のプロセスを並べ替える。
【００４９】
さらに、終了プロセス決定部２０６は、保持している終了候補のプロセス群を、プロセス群終了可否判定部２０５によって終了可能であると判定された終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する。
【００５０】
選択プロセス終了部２０７は、終了すべきプロセス群を終了プロセス決定部２０６から受け取ると、情報処理システムに対して該当するプロセスに対して終了する命令を送信し、情報処理システムが該当するプロセスを終了させる。これにより、終了させたプロセスが元々使用していたメモリが解放されて、情報処理システムから要求されていたメモリ空き容量が確保される。
【００５１】
なお、本実施の形態において、プロセス割り当てメモリ管理部２０２がプロセス割り当てメモリ管理部の一例に相当し、システムメモリ管理部２０３がシステムメモリ管理部の一例に相当し、終了候補プロセス選択部２０４が終了候補プロセス選択部の一例に相当し、終了プロセス決定部２０６が優先終了判定部及び終了プロセス決定部の一例に相当し、プロセス群終了可否判定部２０５がプロセス群終了可否判定部の一例に相当する。
【００５２】
図３は、本発明の実施の形態におけるプロセス割り当てメモリ管理部が管理するメモリ割り当て情報の一例を示す図である。図３では、第１のプロセスＡ、第２のプロセスＢ及び第３のプロセスＣの３つのプロセスのメモリ割り当て情報３０１，３０２，３０３を例示している。
【００５３】
メモリ割り当て情報３０１，３０２，３０３は、プロセス識別情報３１１、割り当てサイズ情報３１２及び合計サイズ情報３１５を含む。ここでは、第１のプロセスＡのメモリ割り当て情報３０１を取り上げて説明する。
【００５４】
プロセス割り当てメモリ管理部２０２は、どのプロセスのメモリ割り当て情報であるかを識別するためのプロセス識別情報３１１を管理する。また、プロセス割り当てメモリ管理部２０２は、複数のメモリブロックのそれぞれに割り当てられている割り当てサイズを表す割り当てサイズ情報３１２，３１３，３１４を、プロセスごとに管理する。また、プロセス割り当てメモリ管理部２０２は、プロセスに割り当てているメモリ領域の合計サイズを表す合計サイズ情報３１５を管理する。なお、図３は、あくまで管理形態の一例に過ぎず、プロセスの数及びメモリブロックの数は、図３に示す数の限りではない。
【００５５】
プロセス割り当てメモリ管理部２０２は、メモリ割り当て部２０１からメモリ割り当てに関する情報を受け取ると、該当するプロセスのメモリ割り当て情報に該当するメモリブロックの割り当てサイズ情報と合計サイズ情報とを更新する。例えば、プロセス割り当てメモリ管理部２０２が、図３に示すメモリ割り当て情報を有しており、メモリ割り当て部２０１から、第１のプロセスＡに対して第３のメモリブロックに１ＭＢを割り当てたという情報を受け取った場合について説明する。
【００５６】
この場合、プロセス割り当てメモリ管理部２０２は、該当する第１のプロセスＡのメモリ割り当て情報３０１に含まれる第３のメモリブロックに対応する割り当てサイズ情報３１４の割り当てサイズに１ＭＢを加算する。これにより、割り当てサイズ情報３１４は、０ＭＢから１ＭＢに変更される。さらに、第１のプロセスＡのメモリ割り当て情報３０１に含まれる合計サイズ情報３１５の合計サイズに１ＭＢを加算する。これにより、合計サイズ情報３１５は、３ＭＢから４ＭＢに変更される。
【００５７】
なお、仮想アドレス空間を持つ情報処理システムの場合、プロセスの仮想アドレス空間にメモリ領域を割り当てても、物理メモリを消費していない状況が起こりうる。そのため、メモリ割り当て部２０１が、物理メモリをプロセスに割り当てるタイミング、すなわち本当に物理メモリを消費するタイミングで、プロセス割り当てメモリ管理部２０２及びシステムメモリ管理部２０３にメモリ割り当て情報を通知してもよい。
【００５８】
プロセス割り当てメモリ管理部２０２は、終了候補プロセス選択部２０４から要求されると、図３に例示するメモリ割り当て情報に基づいて、各プロセスが現在どのメモリブロックにどの程度のサイズが割り当てられているかを表す情報を、終了候補プロセス選択部２０４に渡す。
【００５９】
図４は、本発明の実施の形態におけるシステムメモリ管理部が管理するメモリ空き容量情報の一例を示す図である。メモリ空き容量情報４０１は、複数のメモリブロック全体のメモリ空き容量４１１、及び各メモリブロックのメモリ空き容量４１２を含む。
【００６０】
システムメモリ管理部２０３は、プロセス群終了可否判定部２０５から複数のメモリブロック全体のメモリ空き容量を要求されると、メモリ空き容量情報４０１に基づいて、複数のメモリブロック全体のメモリ空き容量４１１をプロセス群終了可否判定部２０５に渡す。また、システムメモリ管理部２０３は、終了プロセス決定部２０６から各メモリブロックのメモリ空き容量を要求されると、メモリ空き容量情報４０１に基づいて、各メモリブロックのメモリ空き容量４１２を終了プロセス決定部２０６に渡す。
【００６１】
図５及び図６は、本発明の実施の形態における終了候補プロセス選択部の処理の一例を示すフローチャートである。
【００６２】
まず、終了候補プロセス選択部２０４は、情報処理システムからプロセス終了によりメモリを解放するメモリ解放要求を受け取る（ステップＳ１）。一例として、情報処理システムからＮバイトのサイズのメモリ領域を解放するように要求されたとする。
【００６３】
次に、終了候補プロセス選択部２０４は、プロセス割り当てメモリ管理部２０２からメモリ割り当て情報を取得する（ステップＳ２）。これにより、終了候補プロセス選択部２０４は、メモリブロックごとに終了候補のプロセスを選択するために必要なメモリ割り当て情報を取得することができる。
【００６４】
以後、終了候補プロセス選択部２０４は、特定のメモリブロックから可能な限りメモリ領域を解放するために、メモリブロックごとに終了候補のプロセスを選択し、選択したプロセスを評価する。
【００６５】
次に、終了候補プロセス選択部２０４は、存在する複数のメモリブロックのうち未選択のメモリブロック、すなわち終了候補のプロセスを選択していないメモリブロックが存在するか否かを判断する（ステップＳ３）。通常、終了候補プロセス選択部２０４がまだどのメモリブロックに対しても終了すべきプロセスを選択していない場合、未選択のメモリブロックは必ず存在する。
【００６６】
終了候補のプロセスを選択していないメモリブロックが存在すると判断された場合（ステップＳ３でＹＥＳ）、終了候補プロセス選択部２０４は、未選択のメモリブロックを一つ選択する（ステップＳ４）。終了候補プロセス選択部２０４は、選択したメモリブロックから可能な限りメモリ領域を解放できるように、終了させるべきプロセスを選択する処理に移る。
【００６７】
次に、終了候補プロセス選択部２０４は、未選択のプロセスの中から、ステップＳ４で選択したメモリブロックにおける割り当てサイズが最も大きいプロセスを選択する（ステップＳ５）。例えば、終了候補プロセス選択部２０４がプロセス割り当てメモリ管理部２０２から図３に示すメモリ割り当て情報を取得し、かつ第１のメモリブロックがステップＳ４で選択された場合について説明する。この場合、終了候補プロセス選択部２０４は、未選択の第１〜３のプロセスのうち、第１のメモリブロックにおける割り当てサイズが最も大きい第３のプロセスＣを選択する。
【００６８】
次に、終了候補プロセス選択部２０４は、ステップＳ５で選択したプロセスをメモリブロックに対して終了すべきプロセス群に加える。また、終了候補プロセス選択部２０４は、これまでに選択したプロセスの合計割り当てサイズの総計に、ステップＳ５で選択したプロセスの合計割り当てサイズを加算する（ステップＳ６）。
【００６９】
次に、終了候補プロセス選択部２０４は、これまでに選択した各プロセスの合計割り当てサイズの総計が、ステップＳ１で要求されたＮバイト以上であるか否かを判定する（ステップＳ７）。選択した各プロセスの合計割り当てサイズの総計が、Ｎバイトより小さいと判定された場合（ステップＳ７でＮＯ）、ステップＳ５の処理に戻り、終了候補プロセス選択部２０４は、次の未選択のプロセスを選択する。選択した各プロセスの合計割り当てサイズの総計が、Ｎバイト以上にならない状態で、未選択のプロセスがなくなった場合、すなわち、情報処理システムから要求されたメモリサイズを解放できない場合、終了候補プロセス選択部２０４は処理を中断し、情報処理システムにエラーを返す必要がある。本説明では、終了候補プロセス選択部２０４の主要な機能を説明するため、図５及び図６に示すフローチャートの中でエラー処理を図示しない。
【００７０】
選択した各プロセスの合計割り当てサイズの総計が、Ｎバイト以上であると判定された場合（ステップＳ７でＹＥＳ）、終了候補プロセス選択部２０４は、選択したメモリブロックに関する情報と、選択したプロセス群に関する情報とを終了プロセス決定部２０６に渡す（ステップＳ８）。終了プロセス決定部２０６は、今回選択したメモリブロックに対して選択されたプロセス群と、今回選択したメモリブロックと同じメモリブロックに対してこれまでに選択されたプロセス群とを比較して、今回選択したメモリブロックに対して選択されたプロセス群が、終了候補になりうるか否かを確認する。なお、終了プロセス決定部２０６における処理については後述する。具体的には、終了候補プロセス選択部２０４は、どのメモリブロックを選択したのかという情報と、どのプロセス群を選択したのかという情報とを、終了プロセス決定部２０６に渡す。
【００７１】
次に、終了候補プロセス選択部２０４は、渡したプロセス群が終了候補になるか否かを表す情報を終了プロセス決定部２０６から受け取り、受け取った情報に基づいて、渡したプロセス群が終了候補になるか否かを判断する（ステップＳ９）。ここで、渡したプロセス群が終了候補にならないと判断された場合（ステップＳ９でＮＯ）、終了候補プロセス選択部２０４は、ステップＳ４で選択したメモリブロックに対して選択されたプロセス群を破棄し、ステップＳ３の処理に戻る。
【００７２】
一方、渡したプロセス群が終了候補になると判断された場合（ステップＳ９でＹＥＳ）、終了候補プロセス選択部２０４は、選択した順序がわかる形式でプロセス群をプロセス群終了可否判定部２０５に渡す（ステップＳ１０）。これにより、選択したプロセス群が本当に終了可能かどうかを、プロセス群終了可否判定部２０５に問い合わせる処理に移る。なお、プロセス群終了可否判定部２０５における処理については後述する。
【００７３】
次に、終了候補プロセス選択部２０４は、渡したプロセス群に終了不可のプロセスがあるか否かを表す情報をプロセス群終了可否判定部２０５から受け取り、受け取った情報に基づいて、選択したプロセス群の中に終了不可のプロセスがあるか否かを判断する（ステップＳ１１）。選択したプロセス群の中に終了不可のプロセスがないと判断された場合（ステップＳ１１でＮＯ）、終了候補プロセス選択部２０４は、選択したメモリブロックを表す情報と、選択が確定したプロセス群を表す情報とを、選択が確定したことを表す通知とともに終了プロセス決定部２０６に渡し（ステップＳ１２）、ステップＳ３の処理に戻る。
【００７４】
一方、渡したプロセス群に終了不可のプロセスがあると判断された場合（ステップＳ１１でＹＥＳ）、終了候補プロセス選択部２０４は、選択したプロセス群の中から、終了不可のプロセスを除外し（ステップＳ１３）、ステップＳ３の処理に戻る。
【００７５】
ステップＳ３において、全てのメモリブロックに対する処理が済み、終了候補のプロセスを選択していないメモリブロックが存在しないと判断された場合（ステップＳ３でＮＯ）、終了候補プロセス選択部２０４は、終了プロセス決定部２０６に終了候補のプロセスの選択が終了したことを表すプロセス選択終了通知を送信し（ステップＳ１４）、処理を完了する。
【００７６】
次に、プロセス群終了可否判定部２０５が管理するメモリ空き容量と各プロセスの終了可否の条件とについて説明する。図７は、本発明の実施の形態におけるプロセス群終了可否判定部が管理する終了可否判定条件の一例を示す図である。プロセス群終了可否判定部２０５は、あるプロセスを終了することが可能か否かを、メモリ空き容量とメモリ空き容量に応じたプロセスの優先度レベルとで規定している。これは、終了させるプロセスに重要度を付け、またメモリ空き容量によりシステム上の緊急度を把握し、緊急度が高い場合にのみ重要度が高いプロセスを終了させることができるように制御するためである。
【００７７】
例えば、図７に示す例では、プロセス群終了可否判定部２０５は、複数のメモリブロック全体のメモリ空き容量の条件６１１と、終了可能なプロセスの優先度レベルの条件６１２とを対応付けた終了可能レベル管理情報６０１と、プロセスの優先度レベル値と、優先度レベル値に該当するプロセスとを対応付けたプロセスレベル管理情報６０２とを記憶している。終了可否判定条件は、終了可能レベル管理情報６０１とプロセスレベル管理情報６０２とを含む。図７の例では、優先度レベルの値が小さいものほど優先度が高い、すなわち終了条件が厳しいことを示している。
【００７８】
終了可能レベル管理情報６０１のメモリ空き容量の条件６１１には、複数のメモリブロック全体のメモリ空き容量の条件を段階的に設定することが可能であり、優先度レベルの条件６１２には、メモリ空き容量の条件に合致した際に終了させることができるプロセスの優先度レベルの条件を設定することが可能である。
【００７９】
具体的に一例を挙げて説明すると、現在の複数のメモリブロック全体のメモリ空き容量が３ＭＢ（ＭｅｇａＢｙｔｅ：メガバイト）であった場合、終了可能レベル管理情報６０１に従うと、当該メモリ空き容量は、“４ＭＢ以下”というメモリ空き容量の条件６１１に合致し（図７の項目６２１）、終了可能なプロセスの優先度レベルは“レベル２以上”となる。プロセスレベル管理情報６０２によると、優先度レベルがレベル２以上のプロセスは、第２のプロセスＢ、第３のプロセスＣ、第４のプロセスＤ及び第５のプロセスＥである。したがって、終了可能なプロセスは、第２のプロセスＢ、第３のプロセスＣ、第４のプロセスＤ及び第５のプロセスＥであり、第１のプロセスＡは終了不可となる。
【００８０】
なお、図７に示す終了可能レベル管理情報６０１及びプロセスレベル管理情報６０２の構成は例示に過ぎず、複数のメモリブロック全体のメモリ空き容量に応じて終了可能なプロセスを管理できる情報であればよい。
【００８１】
次に、プロセス群終了可否判定部２０５の処理について説明する。図８及び図９は、本発明の実施の形態におけるプロセス群終了可否判定部の処理の一例を示すフローチャートである。
【００８２】
まず、プロセス群終了可否判定部２０５は、選択されたプロセス群に関する情報を、終了候補プロセス選択部２０４から受け取る（ステップＳ２１）。
【００８３】
次に、プロセス群終了可否判定部２０５は、図７に例示する終了可否判定条件を取得する（ステップＳ２２）。
【００８４】
次に、プロセス群終了可否判定部２０５は、終了候補プロセス選択部２０４によって選択されたプロセス群を優先度が高い順、すなわち終了条件が厳しい順に並べ替える（ステップＳ２３）。その際、複数のプロセスの終了条件が同じである場合は、プロセス群終了可否判定部２０５は、終了候補プロセス選択部２０４から取得したプロセスの順序で保持すればよい。
【００８５】
一例を挙げて説明すると、例えば、プロセス群終了可否判定部２０５が、プロセス群終了可否判定部２０５から｛第２のプロセスＢ、第４のプロセスＤ、第３のプロセスＣ及び第１のプロセスＡ｝というプロセス群を取得し、図７に例示するような終了可否判定条件を有する場合、プロセス群終了可否判定部２０５は、プロセス群を｛第１のプロセスＡ、第３のプロセスＣ、第２のプロセスＢ及び第４のプロセスＤ｝という順序に並べ替える。
【００８６】
次に、プロセス群終了可否判定部２０５は、システムメモリ管理部２０３から現在の複数のメモリブロック全体のメモリ空き容量を取得する（ステップＳ２４）。次に、プロセス群終了可否判定部２０５は、プロセス割り当てメモリ管理部２０２からメモリ割り当て情報を取得する（ステップＳ２５）。その後、プロセス群終了可否判定部２０５は、ステップＳ２３で並べ替えたプロセス群を順に終了可能か否かを確認する処理に移る。
【００８７】
次に、プロセス群終了可否判定部２０５は、プロセス群のうち未選択のプロセスが存在するか否かを判断する（ステップＳ２６）。未選択のプロセスが存在すると判断された場合（ステップＳ２６でＹＥＳ）、プロセス群終了可否判定部２０５は、プロセス群の中から未選択のプロセスのうちの先頭のプロセスを選択する（ステップＳ２７）。次に、プロセス群終了可否判定部２０５は、ステップＳ２４で取得した複数のメモリブロック全体のメモリ空き容量と、ステップＳ２２で取得した終了可否判定条件とに基づいて、選択したプロセスが終了可能であるか否かを判定する（ステップＳ２８）。
【００８８】
選択したプロセスが終了可能であると判定された場合（ステップＳ２８でＹＥＳ）、プロセス群終了可否判定部２０５は、現在保持しているメモリ空き容量の値に、選択したプロセスのメモリ割り当てサイズを加算し更新する（ステップＳ２９）。このように、プロセス群終了可否判定部２０５は、選択したプロセスを終了した場合に変化するメモリ空き容量を記憶する。選択したプロセスのメモリ割り当てサイズは、ステップＳ２５で取得した各プロセスに対するメモリ割り当て情報から取得すればよい。その後、プロセス群の残りのプロセスに対して終了可能であるか否かを判定するために、ステップＳ２６の処理に戻り処理を継続する。
【００８９】
一方、選択したプロセスが終了可能でないと判定された場合（ステップＳ２８でＮＯ）、プロセス群終了可否判定部２０５は、選択したプロセスが終了不可であることを記憶する（ステップＳ３０）。その後、プロセス群の残りのプロセスに対して終了可能であるか否かを判定するために、ステップＳ２６の処理に戻り処理を継続する。
【００９０】
ステップＳ２６において、ステップＳ２１で取得したプロセス群の全てのプロセスに対して終了可能であるか否かを判定することにより、未選択のプロセスが存在しないと判断された場合（ステップＳ２６でＮＯ）、プロセス群終了可否判定部２０５は、プロセス群の中に終了不可のプロセスが存在するか否かを判断する（ステップＳ３１）。
【００９１】
ここで、終了不可のプロセスが存在しないと判断された場合（ステップＳ３１でＮＯ）、プロセス群終了可否判定部２０５は、終了不可のプロセスが存在しないことを終了候補プロセス選択部２０４に通知する（ステップＳ３２）。一方、終了不可のプロセスが存在すると判断された場合（ステップＳ３１でＹＥＳ）、プロセス群終了可否判定部２０５は、終了不可のプロセスを表す情報と、終了不可のプロセスが存在することとを終了候補プロセス選択部２０４に通知する（ステップＳ３２）。
【００９２】
以上の動作により、プロセス群終了可否判定部２０５は、終了候補プロセス選択部２０４により選択されたプロセス群の中から、優先度が高いプロセスが終了候補として選択されるのを回避することができる。
【００９３】
例えば、ステップＳ２２で図７に例示する終了可否判定条件を取得し、かつステップＳ２４で取得したメモリ空き容量が０．５ＭＢであり、かつ終了候補プロセス選択部２０４から取得したプロセス群が｛第２のプロセスＢ、第３のプロセスＣ及び第１のプロセスＡ｝であったとする。この場合、選択された順番通りに第２のプロセスＢを先に終了すると、第２のプロセスＢに割り当てられているメモリ領域の合サイズが６ＭＢであるため（図３のメモリ割り当て情報３０２）、複数のメモリブロック全体のメモリ空き容量は６．５ＭＢになる。この場合、次の第３のプロセスＣ及び第１のプロセスＡを終了しようとしても、図７の終了可否判定条件に基づくと、優先度レベル３以上のプロセスのみが終了可能になり、優先度レベル２である第３のプロセスＣ及び優先度レベル１である第１のプロセスＡは終了できなくなる。
【００９４】
しかしながら、プロセス群終了可否判定部２０５は、ステップＳ２３において、図７に例示する終了可否判定条件に基づき、｛第２のプロセスＢ、第３のプロセスＣ及び第１のプロセスＡ｝という順番で終了されるプロセス群を｛第１のプロセスＡ、第３のプロセスＣ及び第２のプロセスＢ｝という順番に並べ替える。この場合、現在のメモリ空き容量が０．５ＭＢなので、図７の終了可否判定条件に基づくと、レベル１以上のプロセスのみが終了可能になり、ステップＳ２８で第１のプロセスＡを終了可能であると判定することができる。
【００９５】
また、第１のプロセスＡに割り当てられているメモリ領域の合サイズが３ＭＢであるため（図３のメモリ割り当て情報３０１）、ステップＳ２９で複数のメモリブロック全体のメモリ空き容量は３．５ＭＢとなる。複数のメモリブロック全体のメモリ空き容量が３．５ＭＢであるで、図７の終了可否判定条件に基づくと、レベル２以上のプロセスが終了可能になり、次に選択する第３のプロセスＣを終了可能であると判定することができる。
【００９６】
最後に、第３のプロセスＣに割り当てられているメモリ領域の合サイズが４ＭＢであるため（図３のメモリ割り当て情報３０３）、ステップＳ２９で複数のメモリブロック全体のメモリ空き容量は７．５ＭＢとなる。複数のメモリブロック全体のメモリ空き容量が７．５ＭＢであるで、図７の終了可否判定条件に基づくと、レベル３以上のプロセスが終了可能になり、次に選択する第２のプロセスＢを終了可能であると判定することができる。
【００９７】
以上の例で示す通り、終了候補プロセス選択部２０４により選択されたプロセス群｛第２のプロセスＢ、第３のプロセスＣ及び第１のプロセスＡ｝では、第２のプロセスＢのみ終了可能であった。しかしながら、プロセス群終了可否判定部２０５の動作により、終了可否判定条件に基づいてプロセス群の順序を並べ替えることにより、全てのプロセスを終了させることができる。
【００９８】
次に、終了プロセス決定部２０６の処理について説明する。図１０及び図１１は、本発明の実施の形態における終了プロセス決定部の処理の一例を示すフローチャートである。
【００９９】
まず、終了プロセス決定部２０６は、選択されたメモリブロックを表す情報と、選択されたプロセス群を表す情報とを終了候補プロセス選択部２０４から受け取る（ステップＳ３１）。なお、図６のステップＳ１２で選択が確定したことを表す通知が付与された場合、終了プロセス決定部２０６は、選択されたメモリブロックを表す情報と、選択されたプロセス群を表す情報と、選択が確定したことを表す通知とを、終了候補プロセス選択部２０４から受け取る。
【０１００】
終了候補プロセス選択部２０４から選択が確定したことが通知された場合、当該通知と共に送信されたプロセス群は、現在終了プロセス決定部２０６が保持しているプロセス群より優先して終了すべきと判断することができる。したがって、終了プロセス決定部２０６は、受け取ったプロセス群が選択確定したプロセス群であるか否かを判断する（ステップＳ４２）。受け取ったプロセス群が選択確定したプロセス群であると判断された場合（ステップＳ４２でＹＥＳ）、終了プロセス決定部２０６は、終了候補プロセス選択部２０４から受け取ったメモリブロックとプロセス群とを終了候補として保持する（ステップＳ４３）。
【０１０１】
一方、受け取ったプロセス群が選択確定したプロセス群でないと判断された場合（ステップＳ４２でＮＯ）、終了プロセス決定部２０６は、すでにメモリブロックと終了候補のプロセス群とを保持しているか否かを判断する（ステップＳ４４）。ここで、メモリブロックと終了候補のプロセス群とを保持していないと判断された場合（ステップＳ４４でＮＯ）、比較すべきプロセス群が存在しないので、終了プロセス決定部２０６は、終了候補プロセス選択部２０４から受け取ったメモリブロックとプロセス群とを終了候補として保持する（ステップＳ４３）。
【０１０２】
一方、すでにメモリブロックと終了候補のプロセス群とを保持していると判断された場合（ステップＳ４４でＹＥＳ）、終了プロセス決定部２０６は、終了候補プロセス選択部２０４から受け取ったプロセス群のプロセス数が、保持しているプロセス群のプロセス数以下であるか否かを判断する（ステップＳ４５）。終了候補プロセス選択部２０４から受け取ったプロセス群のプロセス数が、保持しているプロセス群のプロセス数以下ではないと判断された場合、すなわち受け取ったプロセス群のプロセス数が、保持しているプロセス群のプロセス数より多いと判断された場合（ステップＳ４５でＮＯ）、終了プロセス決定部２０６は、受け取ったプロセス群が終了候補にならないことを終了候補プロセス選択部２０４に通知する（ステップＳ４６）。
【０１０３】
一方、終了候補プロセス選択部２０４から受け取ったプロセス群のプロセス数が、保持しているプロセス群のプロセス数以下であると判断された場合（ステップＳ４５でＹＥＳ）、終了プロセス決定部２０６は、システムメモリ管理部２０３から各メモリブロックの空き容量を取得する（ステップＳ４７）。
【０１０４】
次に、終了プロセス決定部２０６は、プロセス割り当てメモリ管理部２０２から各プロセスのメモリ割り当て情報を取得する（ステップＳ４８）。
【０１０５】
次に、終了プロセス決定部２０６は、ステップＳ４７及びステップＳ４８で取得した情報に基づき、終了候補プロセス選択部２０４から受け取ったプロセス群を終了した場合に確保できる該当メモリブロックの空き容量を算出する（ステップＳ４９）。
【０１０６】
具体的には、終了プロセス決定部２０６は、ステップＳ４８で取得したメモリ割り当て情報に基づいて、終了候補プロセス選択部２０４から受け取ったメモリブロックに対する、終了候補プロセス選択部２０４から受け取ったプロセス群の各プロセスの割り当てサイズを算出する。また、終了プロセス決定部２０６は、ステップＳ４７で取得した各メモリブロックのメモリ空き容量に基づいて、終了候補プロセス選択部２０４から受け取ったメモリブロックの空き容量を算出する。終了プロセス決定部２０６は、終了候補プロセス選択部２０４から受け取ったメモリブロックのメモリ空き容量と、終了候補プロセス選択部２０４から受け取ったプロセス群の各プロセスのメモリブロックへの割り当てサイズとを合計することにより、終了候補プロセス選択部２０４から受け取ったプロセス群を終了した場合に確保できる該当メモリブロックの空き容量を算出することができる。
【０１０７】
ここで、終了候補プロセス選択部２０４から受け取ったプロセス群を終了した場合に確保できる該当メモリブロックの空き容量を算出する一例について、図３及び図４を用いて説明する。例えば、図１０のステップＳ４１で、終了候補プロセス選択部２０４から受け取ったメモリブロックが、第２のメモリブロックであり、終了候補プロセス選択部２０４から受け取ったプロセス群が、第１のプロセスＡ及び第３のプロセスＣであったとする。
【０１０８】
この場合、図３のプロセス割り当てメモリ管理部２０２のメモリ割り当て情報の例から、第２のメモリブロックには、第１のプロセスＡが３ＭＢ、第３のプロセスＣが１ＭＢ割り当てられている。図４のシステムメモリ管理部２０３のメモリ空き容量情報の例から、第２のメモリブロックのメモリ空き容量は、１ＭＢである。したがって、終了候補プロセス選択部２０４から受け取ったプロセス群（第１のプロセスＡ及び第３のプロセスＣ）を終了した場合に確保できる該当メモリブロック（第２のメモリブロック）の空き容量は、合計５ＭＢとなる。
【０１０９】
次に、終了プロセス決定部２０６は、現在終了候補として保持しているプロセス群を終了した場合に確保できる該当メモリブロックの空き容量を算出する（ステップＳ５０）。空き容量の算出手順は、ステップＳ４９で実施した手順と同様である。なお、ステップＳ５０で扱う該当メモリブロックとは、以前、現在終了候補として保持しているプロセス群を受け取った時に終了候補プロセス選択部２０４から受け取ったメモリブロックのことであり、ステップＳ４９で扱ったメモリブロックとは異なる。
【０１１０】
ここで、現在終了候補として保持しているプロセス群を終了した場合に確保できる該当メモリブロックの空き容量を算出する一例について、図３及び図４を用いて説明する。例えば、保持しているメモリブロックが、第１のメモリブロックであり、保持しているプロセス群が、第３のプロセスＣ及び第２のプロセスＢであったとする。
【０１１１】
この場合、図３のプロセス割り当てメモリ管理部２０２のメモリ割り当て情報の例から、第１のメモリブロックには、第３のプロセスＣが３ＭＢ、第２のプロセスＢが１ＭＢ割り当てられている。また、図４のシステムメモリ管理部２０３のメモリ空き容量情報の例から、第１のメモリブロックのメモリ空き容量は、２ＭＢである。したがって、現在終了候補として保持しているプロセス群（第３のプロセスＣ及び第２のプロセスＢ）を終了した場合に確保できる該当メモリブロック（第１のメモリブロック）の空き容量は、合計６ＭＢとなる。
【０１１２】
次に、終了プロセス決定部２０６は、終了候補プロセス選択部２０４から受け取ったプロセス群を終了した場合に確保できる空き容量が、保持している終了候補のプロセス群を終了した場合に確保できる空き容量より大きいか否かを判定する（ステップＳ５１）。前述の例では、終了候補プロセス選択部２０４から受け取ったプロセス群を終了すると、第２のメモリブロックの空き容量が５ＭＢになり、現在保持しているプロセス群を終了すると、第１のメモリブロックの空き容量が６ＭＢになる。そのため、保持しているプロセス群を終了した場合に確保できる空き容量が、受け取ったプロセス群を終了した場合に確保できる空き容量より大きくなる。
【０１１３】
終了候補プロセス選択部２０４から受け取ったプロセス群を終了した場合に確保できる空き容量が、保持している終了候補のプロセス群を終了した場合に確保できる空き容量以下であると判定された場合（ステップＳ５１でＮＯ）、終了プロセス決定部２０６は、受け取ったプロセス群が終了候補にならないことを終了候補プロセス選択部２０４に通知する（ステップＳ４６）。
【０１１４】
一方、終了候補プロセス選択部２０４から受け取ったプロセス群を終了した場合に確保できる空き容量が、保持している終了候補のプロセス群を終了した場合に確保できる空き容量より大きいと判定された場合（ステップＳ５１でＹＥＳ）、終了プロセス決定部２０６は、受け取ったプロセス群が終了候補になることを終了候補プロセス選択部２０４に通知する（ステップＳ５２）。
【０１１５】
以上の動作により、終了プロセス決定部２０６は、終了候補プロセス選択部２０４から受け取った複数のメモリブロックのうち、可能な限り大きく解放できる特定のメモリブロックを保持することができる。また、終了プロセス決定部２０６は、特定のメモリブロックを可能な限り大きく解放させる終了候補のプロセス群を保持することができる。
【０１１６】
次に、終了候補プロセス選択部２０４からプロセス選択終了通知を受け取った場合の終了プロセス決定部２０６の処理について説明する。図１２は、終了候補プロセス選択部からプロセス選択終了通知を受け取った場合の終了プロセス決定部の処理の一例を示すフローチャートである。
【０１１７】
まず、終了プロセス決定部２０６は、終了候補プロセス選択部２０４から、終了候補のプロセスの選択が終了したことを表すプロセス選択終了通知を受け取る（ステップＳ６１）。次に、終了プロセス決定部２０６は、現在保持しているプロセス群を終了対象のプロセス群に決定する（ステップＳ６２）。次に、終了プロセス決定部２０６は、決定した終了対象のプロセス群を選択プロセス終了部２０７に渡す（ステップＳ６３）。
【０１１８】
選択プロセス終了部２０７は、終了プロセス決定部２０６から終了対象のプロセス群を受け取ると、情報処理システムで定められた所定の手続きにより、各プロセスが使用しているメモリブロック及び各プロセスが確保している各種リソースを解放させ、終了対象の各プロセスを終了させる。
【０１１９】
次に、終了プロセス決定部２０６は、現在保持しているメモリブロックとプロセス群とを消去し（ステップＳ６４）、処理を終了する。
【０１２０】
以上の動作により、本実施の形態のメモリ管理装置は、特定のメモリブロックに可能な限り多くの空き領域を作ることが可能になるため、特定のメモリブロックに対する電力供給を切るためのデータ退避のコストが小さくなり、省電力状態に移行しやすくなる。
【０１２１】
また、特定のメモリブロックに可能な限り多くの空き領域を作ることが可能になるため、特定のメモリブロック内に連続した空き領域を確保することができる。そのため、画像データを圧縮又は伸張するコーデックなどにおいて、特定のメモリブロック内の連続した空き領域を使用することができる。
【０１２２】
なお、図２に示すメモリ管理装置の各機能ブロックは、典型的にはプロセッサと外部メモリとの協同で処理されるプログラムとして実現されるが、集積回路であるＬＳＩで実現してもよい。これらの各機能ブロックは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ又はウルトラＬＳＩと呼称されることもある。
【０１２３】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１２４】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
【０１２５】
本実施の形態に係るメモリ管理装置は、プロセッサとメモリ装置とを備えた情報処理装置であれば、あらゆる電子機器、情報機器、ＡＶ（Ａｕｄｉｏ  Ｖｉｓｕａｌ）機器、通信機器及び家電機器にも適用可能であり、例えば、ＰＣ（パーソナルコンピュータ）、携帯情報端末（携帯電話、スマートフォン及びＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）など）、テレビ、ハードディスクレコーダー、ＤＶＤ及びブルーレイディスクなどを用いた各種ディスクレコーダー、ＤＶＤ及びブルーレイディスクなどを用いた各種ディスクプレイヤー、及びカーナビゲーションシステムなどにも応用できる。
【０１２６】
なお、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【０１２７】
なお、上述した具体的実施形態には以下の構成を有する発明が主に含まれている。
【０１２８】
本発明の一局面に係るメモリ管理装置は、複数のメモリブロックを含むメモリを管理するメモリ管理装置であって、複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部とを備える。
【０１２９】
本発明の他の局面に係るメモリ管理方法は、複数のメモリブロックを含むメモリを管理するメモリ管理方法であって、複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理ステップと、前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理ステップと、前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理ステップにおいて管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択ステップと、前記終了候補プロセス選択ステップにおいて選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定ステップと、前記終了候補プロセス選択ステップにおいて選択され、かつ前記優先終了判定ステップにおいて優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理ステップにおいて管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定ステップと、保持している終了候補のプロセス群を、前記プロセス群終了可否判定ステップにおいて終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定ステップとを含む。
【０１３０】
本発明の他の局面に係るメモリ管理プログラムは、複数のメモリブロックを含むメモリを管理するメモリ管理プログラムであって、複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部としてコンピュータを機能させる。
【０１３１】
本発明の他の局面に係るメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体は、複数のメモリブロックを含むメモリを管理するメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体であって、複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理部と、前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理部と、前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理部によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択部と、前記終了候補プロセス選択部によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定部と、前記終了候補プロセス選択部によって選択され、かつ前記優先終了判定部によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理部によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定部と、保持している終了候補のプロセス群を、前記プロセス群終了可否判定部によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定部としてコンピュータを機能させるメモリ管理プログラムを記録する。
【０１３２】
本発明の他の局面に係る集積回路は、複数のメモリブロックを含むメモリを管理する集積回路であって、複数のプロセスを動作可能な情報処理システムで使用される前記プロセスに割り当てられている複数のメモリブロックの割り当てサイズを、前記プロセスごとにメモリブロック単位で管理するプロセス割り当てメモリ管理回路と、前記複数のメモリブロック全体のメモリ空き容量を管理するシステムメモリ管理回路と、前記メモリを解放するためのメモリ解放要求を前記情報処理システムから受け取ると、前記プロセス割り当てメモリ管理回路によって管理されている前記割り当てサイズに基づき、前記複数のメモリブロックごとに割り当てられている複数のプロセスを割り当てサイズが大きい順に抽出し、抽出した複数のプロセスを終了候補のプロセス群として前記複数のメモリブロックごとに選択する終了候補プロセス選択回路と、前記終了候補プロセス選択回路によって選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定する優先終了判定回路と、前記終了候補プロセス選択回路によって選択され、かつ前記優先終了判定回路によって優先的に終了すべきであると判定された終了候補のプロセス群の順序を優先度に応じて並べ替え、前記システムメモリ管理回路によって管理されている前記複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えた終了候補のプロセス群が終了可能であるか否かを判定するプロセス群終了可否判定回路と、保持している終了候補のプロセス群を、前記プロセス群終了可否判定回路によって終了可能であると判定された前記終了候補のプロセス群に書き換え、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群を終了すべきプロセス群として決定する終了プロセス決定回路とを備える。
【０１３３】
これらの構成によれば、複数のプロセスを動作可能な情報処理システムで使用されるプロセスに割り当てられている複数のメモリブロックの割り当てサイズが、プロセスごとにメモリブロック単位で管理される。また、複数のメモリブロック全体のメモリ空き容量が管理される。メモリを解放するためのメモリ解放要求を情報処理システムから受け取ると、管理されている割り当てサイズに基づき、複数のメモリブロックごとに割り当てられている複数のプロセスが割り当てサイズが大きい順に抽出され、抽出された複数のプロセスが終了候補のプロセス群として複数のメモリブロックごとに選択される。次に、選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かが判定される。優先的に終了すべきであると判定された終了候補のプロセス群の順序が優先度に応じて並べ替えられ、管理されている複数のメモリブロック全体のメモリ空き容量に基づいて、当該並べ替えられた終了候補のプロセス群が終了可能であるか否かが判定される。保持している終了候補のプロセス群が、終了可能であると判定された終了候補のプロセス群に書き換えられ、全てのメモリブロックに対する終了候補のプロセス群の選択が終了すると、保持している終了候補のプロセス群が終了すべきプロセス群として決定される。
【０１３４】
したがって、複数のメモリブロックごとに終了候補のプロセス群が選択され、選択された終了候補のプロセス群が終了可能であるか否かが判定され、終了可能であると判定されたプロセス群が終了されるので、特定のメモリブロックの空き容量を可能な限り多く確保することができる。
【０１３５】
また、上記のメモリ管理装置において、前記優先終了判定部は、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量と、既に保持している終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量との大小関係に基づいて、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定することが好ましい。
【０１３６】
この構成によれば、選択された終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量と、既に保持している終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量との大小関係に基づいて、選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かが判定される。
【０１３７】
したがって、選択された終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量と、既に保持している終了候補のプロセス群を終了することにより確保できるメモリブロックの空き容量との大小関係を判断することによって、選択された終了候補のプロセス群と、既に保持している終了候補のプロセス群とのうちのどちらを優先的に終了させるかを決定することができる。
【０１３８】
また、上記のメモリ管理装置において、前記優先終了判定部は、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群を構成する複数のプロセスのプロセス数と、既に保持している終了候補のプロセス群を構成する複数のプロセスのプロセス数との大小関係に基づいて、前記終了候補プロセス選択部によって選択された前記終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かを判定することが好ましい。
【０１３９】
この構成によれば、選択された前記終了候補のプロセス群を構成する複数のプロセスのプロセス数と、既に保持している終了候補のプロセス群を構成する複数のプロセスのプロセス数との大小関係に基づいて、選択された終了候補のプロセス群が、既に保持している終了候補のプロセス群に対して優先的に終了すべきであるか否かが判定される。
【０１４０】
したがって、選択された前記終了候補のプロセス群を構成する複数のプロセスのプロセス数と、既に保持している終了候補のプロセス群を構成する複数のプロセスのプロセス数との大小関係を判断することによって、選択された終了候補のプロセス群と、既に保持している終了候補のプロセス群とのうちのどちらを優先的に終了させるかを決定することができる。
【０１４１】
また、上記のメモリ管理装置において、前記プロセス群終了可否判定部は、プロセスごとに予め設定されている優先度レベルに基づいて、前記終了候補プロセス選択部によって選択された終了候補のプロセス群を構成する複数のプロセスを並べ替えることが好ましい。
【０１４２】
この構成によれば、プロセスごとに予め設定されている優先度レベルに基づいて、選択された終了候補のプロセス群を構成する複数のプロセスが並べ替えられるので、終了候補のプロセス群の順序を優先度に応じて並べ替えることができる。
【０１４３】
また、上記のメモリ管理装置において、前記複数のメモリブロックは、それぞれ個別に電力供給されることが好ましい。
【０１４４】
この構成によれば、複数のメモリブロックは、それぞれ個別に電力供給されるので、最も空き容量の大きいメモリブロックに供給される電力を遮断することにより、省電力化を実現することができる。
【０１４５】
なお、発明を実施するための形態の項においてなされた具体的な実施態様または実施例は、あくまでも、本発明の技術内容を明らかにするものであって、そのような具体例にのみ限定して狭義に解釈されるべきものではなく、本発明の精神と特許請求事項との範囲内で、種々変更して実施することができるものである。
【産業上の利用可能性】
【０１４６】
本発明に係るメモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路は、特定のメモリブロックの空き容量を可能な限り多く確保することができ、複数のメモリブロックを含むメモリを管理するメモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路として有用である。
【図１】
0005405663.tif 000002
【図２】
0005405663.tif 000003
【図３】
0005405663.tif 000004
【図４】
0005405663.tif 000005
【図５】
0005405663.tif 000006
【図６】
0005405663.tif 000007
【図７】
0005405663.tif 000008
【図８】
0005405663.tif 000009
【図９】
0005405663.tif 000010
【図１０】
0005405663.tif 000011
【図１１】
0005405663.tif 000012
【図１２】
0005405663.tif 000013