(57)【要約】      （修正有）【課題】アプリケーションプログラムに対応してメモリの利用効率を高める端末装置を提供する。【解決手段】メモリ確保部１１は、アプリケーションからメモリの確保要求を受け、メモリ量管理部１３で要求メモリが要求量確保可能かチェックし、可能であれば確保する。メモリ解放部１２は、アプリケーションからメモリの解放要求を受けてメモリを解放し、メモリ量管理部１３にメモリが解放されたことを通知する。メモリ量管理部１３は、システムのメモリ残量と各アプリケーションの使用メモリ量とを管理し、システムのメモリ残量がメモリの確保要求を下回る際に、適切なアプリケーションを選択してそのアプリケーションの使用するメモリの一部もしくはすべてをメモリ強制解放部１４で解放する。メモリ強制解放部１４は、対象アプリケーションにメモリの一部もしくはすべてを強制解放するよう通知し、強制解放を実行させる。【選択図】図１
2006107197.tif 000002
【特許請求の範囲】
【請求項１】
システムメモリを制御してアプリケーションプログラムを実行する端末装置であって、
システムメモリ残量と各アプリケーションプログラムの使用メモリ量とを管理し、前記システムメモリ残量がメモリの確保要求量を下回る際に、選択した所定のアプリケーションプログラムの使用するシステムメモリの一部もしくはすべてを解放するようにメモリ強制解放部に通知するメモリ量管理部と、
アプリケーションプログラムからメモリの確保要求を受け、前記メモリ量管理部に要求メモリ量が確保可能かのチェックを依頼して確保可能であれば前記要求メモリ量を確保するメモリ確保部と、
アプリケーションプログラムからシステムメモリの解放要求を受けて使用しているシステムメモリを解放し、前記メモリ量管理部にシステムメモリを解放したことを通知するメモリ解放部と、
前記メモリ量管理部からの通知を受けて、前記選択したアプリケーションプログラムに対しシステムメモリを強制解放させるメモリ強制解放部と、
を備えることを特徴とする端末装置。
【請求項２】
前記メモリ量管理部は、アプリケーションプログラム毎に対応付けられた優先度を記憶する記憶部を備え、記憶されている前記優先度に基づいて前記所定のアプリケーションプログラムを選択することを特徴とする請求項１記載の端末装置。
【請求項３】
システムのメモリ過負荷時にアプリケーションプログラムの使用中のシステムメモリを解放する場合に、前記アプリケーションが最低限動作可能なシステムメモリを残して解放することを特徴とする請求項１記載の端末装置。
【請求項４】
前記メモリ量管理部は、アプリケーションプログラムの使用するシステムメモリをｎレベル（ｎは２以上の整数）に分けて管理し、前記メモリ確保部は、システムメモリを確保の際に前記ｎレベルの一つを指定し、前記メモリ解放部は、アプリケーションプログラムの使用中のシステムメモリを解放する際にｎレベルの一つを指定することを特徴とする請求項１記載の端末装置。
【請求項５】
前記メモリ量管理部は、システムメモリを、アプリケーションプログラム毎に前記アプリケーションプログラムが最低限動作するのに必要な第１のメモリと、処理を中断すれば解放可能な第２のメモリとに分けて管理することを特徴とする請求項１記載の端末装置。
【請求項６】
前記メモリ量管理部は、アプリケーションプログラムの使用中のシステムメモリを解放する際に前記第２のメモリを優先的に解放するように制御することを特徴とする請求項５記載の端末装置。
【請求項７】
端末装置がシステムメモリを制御する方法であって、
アプリケーションプログラムからシステムメモリの確保要求を確保要求量と共に受け取るステップと、
システムメモリ残量と各アプリケーションプログラムの使用メモリ量とを管理し、前記システムメモリ残量が前記確保要求量を下回るか否かをチェックするステップと、
前記確保要求量を下回る場合に、優先度に応じて選択した所定のアプリケーションプログラムの使用するシステムメモリの一部もしくはすべてを解放するステップと、
を含むことを特徴とするメモリ制御方法。
【請求項８】
前記システムメモリは、前記アプリケーションプログラムが最低限動作するのに必要な第１のメモリと、処理を中断すれば解放可能な第２のメモリとに分けてアプリケーションプログラム毎に管理され、前記所定のアプリケーションプログラムの使用中のシステムメモリを解放する際に前記第２のメモリを優先的に解放することを特徴とする請求項７記載のメモリ制御方法。
【請求項９】
端末装置がシステムメモリを制御する方法であって、
前記システムメモリを、アプリケーションプログラムが最低限動作するのに必要な第１メモリと、処理を中断すれば解放可能な第２メモリとに分けてアプリケーションプログラム毎に管理するステップと、
アプリケーションプログラムからシステムメモリの確保要求を要求メモリ量と共に受け取るステップと、
優先度の最も低いアプリケーションプログラムを検索するステップと、
前記検索したアプリケーションプログラムの前記第２メモリの使用量があるか否かをチェックするステップと、
前記第２メモリの使用量がある場合、前記第２メモリを強制解放させるステップと、
システムメモリの残量に強制解放した前記第２メモリの使用量を加算するステップと、
前記探索したアプリケーションプログラムについて管理されている前記第２メモリの使用量をクリアするステップと、
前記探索したアプリケーションプログラムの前記第２メモリの使用量がない場合、あるいはシステムメモリの残量がまだ前記要求メモリ量に達しない場合、他にアプリケーションがあるか否かをチェックするステップと、
他にアプリケーションプログラムがあれば、次に優先度が低いアプリケーションプログラムを検索し、前記第２メモリの使用量があるか否かをチェックするステップに戻るステップと、
を含むことを特徴とするメモリ制御方法。
【請求項１０】
請求項９記載のメモリ制御方法において、他にアプリケーションがあるか否かをチェックして、他にアプリケーションプログラムがない場合に、
優先度の最も低いアプリケーションプログラムを再び検索するステップと、
前記検索したアプリケーションプログラムの前記第１メモリの使用量があるか否かをチェックするステップと、
前記第１メモリの使用量がある場合、前記探索したアプリケーションプログラムを強制終了させ、前記探索したアプリケーションプログラムの抱えていたすべてのメモリを解放するステップと、
システムメモリの残量に強制終了で解放した前記第１メモリの使用量を加算するステップと、
前記探索したアプリケーションプログラムについて管理されている前記第１メモリの使用量をクリアするステップと、
前記探索したアプリケーションプログラムの前記第１メモリの使用量がない場合、あるいはシステムメモリの残量がまだ前記要求メモリ量に達しない場合、他にアプリケーションプログラムがあるか否かをチェックするステップと、
他にアプリケーションプログラムがあれば、次に優先度が低いアプリケーションプログラムを検索し、前記第１メモリの使用量があるか否かをチェックするステップに戻るステップとを、
をさらに含むことを特徴とするメモリ制御方法。
【請求項１１】
システムメモリを有する端末装置を構成するコンピュータに、
アプリケーションプログラムからシステムメモリの確保要求を確保要求量と共に受け取る処理と、
システムメモリ残量と各アプリケーションプログラムの使用メモリ量とを管理し、前記システムメモリ残量が前記確保要求量を下回るか否かをチェックする処理と、
前記確保要求量を下回る場合に、優先度に応じて選択した所定のアプリケーションプログラムの使用するシステムメモリの一部もしくはすべてを解放する処理と、
を実行させるプログラム。
【請求項１２】
前記システムメモリは、前記アプリケーションプログラムが最低限動作するのに必要な第１のメモリと、処理を中断すれば解放可能な第２のメモリとに分けてアプリケーションプログラム毎に管理され、前記所定のアプリケーションプログラムの使用中のシステムメモリを解放する際に前記第２のメモリを優先的に解放することを特徴とする請求項１１記載のプログラム。
【請求項１３】
システムメモリを有する端末装置を構成するコンピュータに、
前記システムメモリを、アプリケーションプログラムが最低限動作するのに必要な第１メモリと、処理を中断すれば解放可能な第２メモリとに分けてアプリケーションプログラム毎に管理する処理と、
アプリケーションプログラムからシステムメモリの確保要求を要求メモリ量と共に受け取る処理と、
優先度の最も低いアプリケーションプログラムを検索する処理と、
前記検索したアプリケーションプログラムの前記第２メモリの使用量があるか否かをチェックする処理と、
前記第２メモリの使用量がある場合、前記第２メモリを強制解放させる処理と、
システムメモリの残量に強制解放した前記第２メモリの使用量を加算する処理と、
前記探索したアプリケーションプログラムについて管理されている前記第２メモリの使用量をクリアする処理と、
前記探索したアプリケーションプログラムの前記第２メモリの使用量がない場合、あるいはシステムメモリの残量がまだ前記要求メモリ量に達しない場合、他にアプリケーションがあるか否かをチェックする処理と、
他にアプリケーションプログラムがあれば、次に優先度が低いアプリケーションプログラムを検索し、前記第２メモリの使用量があるか否かをチェックする処理に戻る処理と、
を実行させるプログラム。
【請求項１４】
請求項１３記載のプログラムにおいて、
他にアプリケーションがあるか否かをチェックして、他にアプリケーションプログラムがない場合に、
優先度の最も低いアプリケーションプログラムを再び検索する処理と、
前記検索したアプリケーションプログラムの前記第１メモリの使用量があるか否かをチェックする処理と、
前記第１メモリの使用量がある場合、前記探索したアプリケーションプログラムを強制終了させ、前記探索したアプリケーションプログラムの抱えていたすべてのメモリを解放する処理と、
システムメモリの残量に強制終了で解放した前記第１メモリの使用量を加算する処理と、
前記探索したアプリケーションプログラムについて管理されている前記第１メモリの使用量をクリアする処理と、
前記探索したアプリケーションプログラムの前記第１メモリの使用量がない場合、あるいはシステムメモリの残量がまだ前記要求メモリ量に達しない場合、他にアプリケーションプログラムがあるか否かをチェックする処理と、
他にアプリケーションプログラムがあれば、次に優先度が低いアプリケーションプログラムを検索し、前記第１メモリの使用量があるか否かをチェックする処理に戻る処理と、
をさらに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ負荷制御方法およびプログラムならびに端末装置に関し、特に複数のアプリケーションソフトがメモリを使用する際のメモリの制御方法およびプログラムならびにこの制御方法を実行する端末装置に関する。
【背景技術】
【０００２】
従来のページングやスワッピングなどシステムのメモリ負荷制御を行うためには二次記憶を必要とする。しかし、端末装置、特に携帯端末装置（モバイル端末機器）などでは、耐久性、サイズ、重量、消費電力などの制約からハードディスクのような低価格かつ大容量の二次記憶装置を備えることが困難なため、いわゆるメモリ負荷制御機能を有していない。メモリ負荷制御機能が無いような装置では、一度払い出したメモリは、より優先度の高い処理のためであっても、取り上げる（ページングやスワッピングしてスチールする）ことができなかった。そこで従来の携帯端末装置などの多くは、予め優先度の高い処理のためにメモリを予約しておき、あるいは、アプリケーション（各用途）毎に使用するメモリを予約しておき、互いに予約したメモリを侵食しないことでメモリ量を保証する方法をとっている。
【０００３】
すなわち、従来の携帯端末装置では、優先度の高い処理が発生した場合の動作のためのメモリの確保を保証するために、次のような方法を採っている。（１）メモリ領域をアプリケーション毎に分割し、互いに侵食しないことで一定のメモリ量を確保する。必ずしもすべてのアプリケーションについて分割するのではなく、優先度の高いものとそれ以外という緩やかな分割方式もある。（２）アプリケーション毎の上限値を設定し、これを超えての確保を制限することで上限値までの確保を保証する。（２）の方法は、（１）のように領域を陽に分割はしないが、メモリ量は各アプリケーションの上限値の合計値をシステムとして用意する必要がある点で同様である。
【０００４】
ところで、情報処理装置等にあっては、メモリの効率的な資源管理を行う装置が知られている。例えば、特許文献１には、メインメモリと、このメインメモリに展開されているプログラムの中から一つ以上のプログラムを選択し、この選択したプログラムに割り当てられたメインメモリ内のページフレームを解放した後、スリープ状態となるメモリ解放プログラムとを備えた情報処理システムに使用される資源管理装置が記載されている。この装置は、メインメモリ内の空きページフレーム数を取得し、取得された空きページフレーム数が所定のページフレーム数を下回っているときに、メモリ解放プログラムを実行可能状態とするものである。
【０００５】
また、特許文献２には、ページスチールを行うジョブグループを予め設定したジョブの重要度等に基づいて決定し、該決定に基づいて空きページを確保することにより、重要度の高いジョブ群に対する主記憶不足を回避するメモリ管理装置が記載されている。この装置は、中央処理装置と、重要度に応じてジョブをグループ化して形成したジョブグループにジョブを登録するジョブグループ判断部、実ページの割り当てを行うメモリ割り当て処理部およびメモリの解放を行うメモリ補給処理部を備えたメモリ管理部、並びに主記憶の使用状況を監視するメモリ監視部を備えた主記憶装置とからなる。メモリ監視部は、メモリの空きページ数が不足したとき、ページスチールを行うジョブグループおよびジョブを予め設定したジョブの重要度に基づいて決定する。この決定に基づいて重要度の低いグループに属するジョブから段階的にメモリ補給部を介して実ページを解放して空きページを確保するものである。
【０００６】
一方、ＰＤＡ（Personal Data Assistance，Personal Digital Assistants）等の情報端末装置にあっても、例えば、特許文献３にあるように、複数のアプリケーションソフトを起動する場合でのメモリの容量不足を解消する情報端末装置が知られている。この装置は、複数のアプリケーションソフトを備え、起動対象として指定されたアプリケーションソフトを所定のメモリに展開して起動する情報端末装置である。この装置は、アプリケーション起動時にその起動対象として指定されたアプリケーションソフトの実行エリアをメモリに確保できるか否かを判断する実行エリア判断部と、この実行エリア判断部により指定されたアプリケーションソフトの実行エリアをメモリに確保できないと判断された場合に、優先順位の低い順に該当するアプリケーションソフトを強制終了してメモリから開放し、指定されたアプリケーションソフトの実行エリアをメモリに確保するメモリ管理部とを備える。
【０００７】
【特許文献１】特開２０００−２１５０９９号公報  （図２）
【特許文献２】特開２００２−２４４８６９号公報  （図１、図２）
【特許文献３】特開２００３−１５８９２号公報  （図１、図７）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、従来の携帯端末装置におけるメモリの制御技術には、次のような問題点があった。第１の問題点は、メモリの使用効率が悪く、より大きな実装メモリ量が必要となるということである。その理由は、予めメモリ領域を分割する、または上限値を定めることで、メモリの分割損が発生するためである。
【０００９】
また、第２の問題点は、アプリケーションが状況によって動作しないことがあるということである。その理由は、アプリケーションのメモリ使用量が制限されているため、例えメモリが空いていても上限を超えての動作ができないからである。
【００１０】
以上のような問題点を解決するために、端末装置のシステムメモリに対し、情報処理装置等における二次記憶によるメモリ負荷制御方法を適用しようとすると、メモリの使用効率が極めて悪くなるか、アプリケーションプログラムが動作しないことが発生する。すなわち、二次記憶では、ページといった大きな単位でのメモリの取得・解放を行うために、端末装置のシステムメモリのような小さなサイズにおけるメモリ管理に適用するのは困難である。
【００１１】
一方、特許文献３の情報端末装置は、小さなサイズにおけるメモリ管理が可能であるが、アプリケーション起動時におけるメモリ管理に限定されている。さらに、携帯端末装置等にあっては、メモリの解放を行う際にアプリケーションプログラムの種別によって解放の程度（全てを解放するか一部か）に違いがあるが、これに対応するようには構成されておらず、メモリの利用効率が悪い。
【００１２】
本発明の目的は、アプリケーションプログラムに対応してメモリの利用効率を高めるメモリ制御方法およびプログラムならびに端末装置を提供することにある。
【課題を解決するための手段】
【００１３】
前記目的を達成する本発明の一つのアスペクトに係る端末装置は、システムメモリを制御してアプリケーションプログラムを実行する端末装置である。この端末装置は、システムメモリ残量と各アプリケーションプログラムの使用メモリ量とを管理し、システムメモリ残量がメモリの確保要求量を下回る際に、選択した所定のアプリケーションプログラムの使用するシステムメモリの一部もしくはすべてを解放するようにメモリ強制解放部に通知するメモリ量管理部を備える。また、アプリケーションプログラムからメモリの確保要求を受け、メモリ量管理部に要求メモリ量が確保可能かのチェックを依頼して確保可能であれば要求メモリ量を確保するメモリ確保部と、アプリケーションプログラムからシステムメモリの解放要求を受けて使用しているシステムメモリを解放し、メモリ量管理部にシステムメモリを解放したことを通知するメモリ解放部と、をそなえる。さらに、メモリ量管理部からの通知を受けて、選択したアプリケーションプログラムに対しシステムメモリを強制解放させるメモリ強制解放部を備える。
【００１４】
第１の展開形態の端末装置において、メモリ量管理部は、アプリケーションプログラム毎に対応付けられた優先度を記憶する記憶部を備え、記憶されている優先度に基づいて所定のアプリケーションプログラムを選択するようにしてもよい。
【００１５】
第２の展開形態の端末装置において、システムのメモリ過負荷時にアプリケーションプログラムの使用中のシステムメモリを解放する場合に、アプリケーションが最低限動作可能なシステムメモリを残して解放するようにしてもよい。
【００１６】
第３の展開形態の端末装置において、メモリ量管理部は、アプリケーションプログラムの使用するシステムメモリをｎレベル（ｎは２以上の整数）に分けて管理し、メモリ確保部は、システムメモリを確保の際にｎレベルの一つを指定し、メモリ解放部は、アプリケーションプログラムの使用中のシステムメモリを解放する際にｎレベルの一つを指定するようにしてもよい。
【００１７】
第４の展開形態の端末装置において、メモリ量管理部は、システムメモリを、アプリケーションプログラム毎にアプリケーションプログラムが最低限動作するのに必要な第１のメモリと、処理を中断すれば解放可能な第２のメモリとに分けて管理するようにしてもよい。
【００１８】
第５の展開形態の端末装置において、メモリ量管理部は、アプリケーションプログラムの使用中のシステムメモリを解放する際に第２のメモリを優先的に解放するように制御するようにしてもよい。
【００１９】
本発明の一つのアスペクトに係るメモリ制御方法は、端末装置がシステムメモリを制御する方法である。この方法は、アプリケーションプログラムからシステムメモリの確保要求を確保要求量と共に受け取るステップと、システムメモリ残量と各アプリケーションプログラムの使用メモリ量とを管理し、システムメモリ残量が確保要求量を下回るか否かをチェックするステップと、確保要求量を下回る場合に、優先度に応じて選択した所定のアプリケーションプログラムの使用するシステムメモリの一部もしくはすべてを解放するステップと、を含む。
【００２０】
第１の展開形態のメモリ制御方法において、システムメモリは、アプリケーションプログラムが最低限動作するのに必要な第１のメモリと、処理を中断すれば解放可能な第２のメモリとに分けてアプリケーションプログラム毎に管理され、所定のアプリケーションプログラムの使用中のシステムメモリを解放する際に第２のメモリを優先的に解放するようにしてもよい。
【００２１】
本発明の他のアスペクトに係るメモリ制御方法は、端末装置がシステムメモリを制御する方法である。この方法は、システムメモリを、アプリケーションプログラムが最低限動作するのに必要な第１メモリと、処理を中断すれば解放可能な第２メモリとに分けてアプリケーションプログラム毎に管理するステップを含む。また、アプリケーションプログラムからシステムメモリの確保要求を要求メモリ量と共に受け取るステップと、優先度の最も低いアプリケーションプログラムを検索するステップと、検索したアプリケーションプログラムの第２メモリの使用量があるか否かをチェックするステップと、第２メモリの使用量がある場合、第２メモリを強制解放させるステップと、システムメモリの残量に強制解放した第２メモリの使用量を加算するステップと、探索したアプリケーションプログラムについて管理されている第２メモリの使用量をクリアするステップと、探索したアプリケーションプログラムの第２メモリの使用量がない場合、あるいはシステムメモリの残量がまだ要求メモリ量に達しない場合、他にアプリケーションがあるか否かをチェックするステップと、他にアプリケーションプログラムがあれば、次に優先度が低いアプリケーションプログラムを検索し、第２メモリの使用量があるか否かをチェックするステップに戻るステップと、を含む。
【００２２】
第２の展開形態のメモリ制御方法において、他にアプリケーションがあるか否かをチェックして、他にアプリケーションプログラムがない場合に、優先度の最も低いアプリケーションプログラムを再び検索するステップと、検索したアプリケーションプログラムの第１メモリの使用量があるか否かをチェックするステップと、第１メモリの使用量がある場合、探索したアプリケーションプログラムを強制終了させ、探索したアプリケーションプログラムの抱えていたすべてのメモリを解放するステップと、システムメモリの残量に強制終了で解放した第１メモリの使用量を加算するステップと、探索したアプリケーションプログラムについて管理されている第１メモリの使用量をクリアするステップと、探索したアプリケーションプログラムの第１メモリの使用量がない場合、あるいはシステムメモリの残量がまだ要求メモリ量に達しない場合、他にアプリケーションプログラムがあるか否かをチェックするステップと、他にアプリケーションプログラムがあれば、次に優先度が低いアプリケーションプログラムを検索し、第１メモリの使用量があるか否かをチェックするステップに戻るステップとを、をさらに含むようにしてもよい。
【００２３】
本発明の一つのアスペクトに係るプログラムは、システムメモリを有する端末装置を構成するコンピュータに、アプリケーションプログラムからシステムメモリの確保要求を確保要求量と共に受け取る処理と、システムメモリ残量と各アプリケーションプログラムの使用メモリ量とを管理し、システムメモリ残量が確保要求量を下回るか否かをチェックする処理と、確保要求量を下回る場合に、優先度に応じて選択した所定のアプリケーションプログラムの使用するシステムメモリの一部もしくはすべてを解放する処理と、を実行させる。
【００２４】
第１の展開形態のプログラムにおいて、システムメモリは、アプリケーションプログラムが最低限動作するのに必要な第１のメモリと、処理を中断すれば解放可能な第２のメモリとに分けてアプリケーションプログラム毎に管理され、所定のアプリケーションプログラムの使用中のシステムメモリを解放する際に第２のメモリを優先的に解放するようにしてもよい。
【００２５】
本発明の他のアスペクトに係るプログラムは、システムメモリを有する端末装置を構成するコンピュータに、システムメモリを、アプリケーションプログラムが最低限動作するのに必要な第１メモリと、処理を中断すれば解放可能な第２メモリとに分けてアプリケーションプログラム毎に管理する処理と、アプリケーションプログラムからシステムメモリの確保要求を要求メモリ量と共に受け取る処理と、優先度の最も低いアプリケーションプログラムを検索する処理と、検索したアプリケーションプログラムの第２メモリの使用量があるか否かをチェックする処理と、第２メモリの使用量がある場合、第２メモリを強制解放させる処理と、システムメモリの残量に強制解放した第２メモリの使用量を加算する処理と、探索したアプリケーションプログラムについて管理されている第２メモリの使用量をクリアする処理と、探索したアプリケーションプログラムの第２メモリの使用量がない場合、あるいはシステムメモリの残量がまだ要求メモリ量に達しない場合、他にアプリケーションがあるか否かをチェックする処理と、他にアプリケーションプログラムがあれば、次に優先度が低いアプリケーションプログラムを検索し、第２メモリの使用量があるか否かをチェックする処理に戻る処理と、を実行させる。
【００２６】
第２の展開形態のプログラムにおいて、他にアプリケーションがあるか否かをチェックして、他にアプリケーションプログラムがない場合に、優先度の最も低いアプリケーションプログラムを再び検索する処理と、検索したアプリケーションプログラムの第１メモリの使用量があるか否かをチェックする処理と、第１メモリの使用量がある場合、探索したアプリケーションプログラムを強制終了させ、探索したアプリケーションプログラムの抱えていたすべてのメモリを解放する処理と、システムメモリの残量に強制終了で解放した第１メモリの使用量を加算する処理と、探索したアプリケーションプログラムについて管理されている第１メモリの使用量をクリアする処理と、探索したアプリケーションプログラムの第１メモリの使用量がない場合、あるいはシステムメモリの残量がまだ要求メモリ量に達しない場合、他にアプリケーションプログラムがあるか否かをチェックする処理と、他にアプリケーションプログラムがあれば、次に優先度が低いアプリケーションプログラムを検索し、第１メモリの使用量があるか否かをチェックする処理に戻る処理と、をさらに実行させるようにしてもよい。
【発明の効果】
【００２７】
本発明によれば、メモリ負荷制御を行うための二次記憶をもたない端末装置などでも、アプリケーション毎に予めメモリを予約して一定量を保障しておく必要がなく、メモリの分割損が発生せず、メモリの使用効率が向上する。その理由は、メモリ負荷制御の必要な場面に、優先度の低いアプリケーションのメモリを一部解放させて利用できるようにする仕組みをもつためである。
【発明を実施するための最良の形態】
【００２８】
本発明の実施形態に係る端末装置におけるメモリ負荷制御機能は、メモリ確保部（図１の１１）とメモリ解放部（図１の１２）とメモリ量管理部（図１の１３）とメモリ強制解放部（図１の１４）とを備える。メモリ確保部（図１の１１）は、アプリケーションからメモリの確保要求を受け、メモリ量管理部（図１の１３）で要求メモリが要求量確保可能かチェックし、可能であれば確保する。メモリ解放部（図１の１２）は、アプリケーションからメモリの解放要求を受けてメモリを解放し、メモリ量管理部（図１の１３）にメモリが解放されたことを通知する。メモリ量管理部（図１の１３）は、システムのメモリ残量と各アプリケーションの使用メモリ量とを管理し、システムのメモリ残量がメモリの確保要求を下回る際に、適切なアプリケーションを選択してそのアプリケーションの使用するメモリの一部もしくはすべてをメモリ強制解放部（図１の１４）で解放する。メモリ強制解放部（図１の１４）は、対象アプリケーションにメモリの一部もしくはすべてを強制解放するよう通知し、強制解放を実行させる。
【００２９】
以上のように構成されるメモリの負荷制御のための二次記憶を持たない端末装置は、アプリケーションの使用しているメモリ量の内、閾値を超えているメモリ量のスチール（強制解放）を可能にし、システムのメモリ残量の不足した状態からでも、より優先度の高い処理のメモリが確保可能となる。
【００３０】
なお、以上のような構成の端末装置は、プロセッサを内蔵し、このプロセッサで動作するプログラムによってメモリ負荷制御機能を実現するようにしてもよい。
【実施例１】
【００３１】
本発明の実施例について図面を参照してさらに詳しく説明する。図１は、本発明の実施例に係る端末装置のメモリ負荷制御機能の構成を示すブロック図である。図１において、システムメモリ（ヒープ）１０とこれを使用するアプリケーション群２０とで構成されるシステムに、メモリ確保部１１、メモリ解放部１２、メモリ量管理部１３、メモリ強制解放部１４を設けてメモリ負荷制御機能を構成する。メモリ量管理部１３は、メモリ情報記憶域１５を持つ。メモリ情報記憶域１５には、システムメモリ残量１６、各アプリケーション毎の管理情報１７を蓄える。管理情報１７には、プロセスＩＤ３１、優先度３２、必須メモリ上限値３３、必須メモリ使用量３４、ワークメモリ使用量３５の各情報が含まれる。
【００３２】
本実施例では、各アプリケーションが使用中のシステムメモリを「必須メモリ」（第１メモリ）と「ワークメモリ」（第２メモリ）とに分ける。ここで、「必須メモリ」とは、従来アプリケーション毎に予め予約していたメモリ量のメモリに相当し、本実施例では予め予約せずに使用し、その代わりにスチールの対象とならないメモリという意味である。アプリケーションがメモリ確保部１１でメモリを要求するときに「必須メモリ」と「ワークメモリ」のどちらかを指定するものとする。「ワークメモリ」として確保したメモリは、メモリ強制解放部１４により強制解放の通知があった場合にいつでも解放しなければならないものとする。システムメモリ残量１６の初期値は、システムメモリ（ヒープ）１０の量とする。各アプリケーションの優先度３２、必須メモリ上限値３３は、予めアプリケーションの性質を考慮して定めておくものとする。アプリケーション群２０には、通常のアプリケーションのミッションを遂行するプログラム２１と、任意の時点でのワークメモリを解放するワークメモリ強制解放処理プログラム２２とを備える。
【００３３】
次に、図を参照して本実施例の動作について詳細に説明する。図１において、アプリケーション群２０の各アプリケーションは、プログラム２１からメモリを使用する場合、メモリ確保部１１でメモリを確保（ｇｅｔ）し、不要になればメモリ解放部１２にて解放（ｆｒｅｅ）する。メモリ確保部１１でメモリを確保する際には、当該アプリケーションが最低限動作するのに必要な「必須メモリ」か、いつでも処理を中断すれば解放可能な「ワークメモリ」かの種別を指定する。また、各アプリケーションは、メモリ強制解放の通知（SIGNAL／メッセージ）を受けた場合、実行中の処理を中止して使用中のすべての「ワークメモリ」をメモリ解放部１２にて解放するワークメモリ強制解放プログラム２２を用意して登録しておく。このSIGNALやメッセージの機能は、一般的なＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ：オペレーティングシステム）に備えられているものであってもよい。
【００３４】
まず、メモリ確保部１１の動作を図２に示す。図２おいてメモリ確保部は、ステップＳ１１でメモリ量管理部１３にて要求されたメモリ量が確保可能かチェックする。確保可能（ステップＳ１２のＹ）であれば、ステップＳ１３で、要求量のメモリを確保する。確保可能でない場合（ステップＳ１２のＮ）には、エラーを返す。
【００３５】
次に、メモリ解放部１２の動作を図３に示す。図３おいてメモリ解放部１２は、まずステップＳ２１で指定メモリを解放し、ステップＳ２２で解放したメモリの種別（必須メモリ／ワークメモリの別）とメモリ量とを指定してメモリ量管理部１３に通知する。
【００３６】
メモリ量管理部１３が要求されたメモリ量を確保可能かチェックする場合の動作を図４および図５に示す。図４おいて、メモリ量管理部１３は、まず要求メモリが必須メモリであり（ステップＳ３１のＹ）、かつ当該アプリケーションの必須メモリ使用量３４に要求メモリの量を加えると必須メモリ上限値３３を超えてしまう場合（ステップＳ３２のＮ）、エラー（確保不可）を返す。そうでない場合（ステップＳ３１のＮあるいはステップＳ３２のＹ）、ステップＳ３３で要求メモリがシステムメモリ残量１６以下であるか否かをチェックする。要求メモリがシステムメモリ残量１６以下であれば、ステップＳ３４でシステムメモリ残量１６から要求メモリ量を減算する。さらに、ステップＳ３５で必須メモリ使用量３４もしくはワークメモリ使用量３５の、当該アプリケーションの要求メモリの種類に対応する方に要求メモリ量を加算して、ＯＫを返す。
【００３７】
一方、ステップＳ３３で要求メモリがシステムメモリ残量１６より大きい場合、ステップＳ３６で要求メモリがワークメモリか否かをチェックする。要求メモリがワークメモリの場合（ステップＳ３６のＹ）はエラー（確保不可）を返す。そうでない場合（ステップＳ３６のＮ）、図５のステップＳ３７に進み、優先度の最も低いアプリケーションを検索する。探索したアプリケーションのワークメモリ使用量３５がある場合（ステップＳ３８のＹ）、ステップＳ３９でこのアプリケーションのプロセスＩＤを指定してメモリ強制解放部１４でワークメモリを強制解放させる。強制解放が成功した場合（ステップＳ４０のＹ）は、ステップＳ４１でシステムメモリの残量に強制解放したワークメモリ量を加算し、ステップＳ４２でこのアプリケーションのワークメモリ使用量３５をクリアする。システムメモリの残量が要求メモリ量以上になった場合（ステップＳ４３のＹ）、図４のステップＳ３４に進む。
【００３８】
探索したアプリケーションのワークメモリ使用量３５がない場合（ステップＳ３８のＮ）、ステップＳ４０で強制解放が成功しなかった場合、あるいはステップＳ４３でシステムメモリの残量がまだ要求メモリ量に達しない場合、ステップＳ４４で他にアプリケーションの情報があるか否かをチェックする。他にアプリケーションがあれば（ステップＳ４４のＹ）、次に優先度が低いアプリケーションを検索し（ステップＳ４５）、ステップＳ３８に戻る。他にアプリケーションがなくなった場合（ステップＳ４４のＮ）、メモリ不足としてエラーを返す。
【００３９】
メモリ量管理部１３でメモリの解放を通知する場合の動作を図６に示す。メモリの解放を通知時、メモリ量管理部１３は、まずステップＳ５１でシステムメモリ残量１６に解放したメモリ量を加算する。そして、ステップＳ５２で当該アプリケーションの解放したメモリ種別に対応する必須メモリ使用量３４もしくはワークメモリ使用量３５に解放したメモリ量を加算する。
【００４０】
次に、メモリ強制解放部１４の動作を図７に示す。ステップＳ６１で指定されたプロセスＩＤに対応するアプリケーションにワークメモリ強制解放のSIGNALを送信する。このSIGNALを受けたアプリケーションでは、ＯＳにより実行中の処理を中断して登録しておいたワークメモリ強制解放処理プログラム２２を実行する。ここで実行中の処理を中止し、使用中のすべてのワークメモリをメモリ解放部１２にて解放し、結果をメッセージにてSIGNAL送信元に返す。メモリ強制解放部１４ではステップＳ６２にて結果応答メッセージを待ち合わせる。その結果により成功であれば（ステップＳ６３のＹ）ＯＫを返し、成功でなければ（ステップＳ６３のＮ）エラーを返す。
【００４１】
以上のように、残りメモリの少ない状況であって、より優先度の高いアプリケーションがメモリを要求した場合等のようなメモリ負荷制御の必要な場面に、優先度の低いアプリケーションのメモリを一部解放させて利用できるようにする。このようにすることで、メモリ負荷制御を行うための二次記憶をもたない端末装置などであっても、アプリケーション毎に予めメモリを予約して一定量を保障しておく必要がなく、分割損（利用していないのに他からは使用できないメモリ）が発生せず、メモリの使用効率が向上する。
【００４２】
また、リアルタイム性の要求される処理について、それが実行されるために必要なトータルのメモリ量を登録しておき、この処理が起動される時点で、対応するメモリ量をメモリ強制解放部１４により解放する。これによって、リアルタイム性の要求される処理は、途中でメモリが不足してメモリ強制解放によってメモリ解放を行うような中断を生じること無しに、処理を実行できる確率が高くなる。
【実施例２】
【００４３】
次に、本発明の第２の実施例について図面を参照して詳細に説明する。第２の実施例は、第１の実施例のメモリ量管理部１３の要求されたメモリ量が確保可能かチェックする場合の動作を表す図５のフローチャートを、図８および図９に置き換えたものである。図８において、全てのステップは、図５と同様の処理を行う。ただし、ステップＳ４４で他のアプリケーションの情報がなくなった場合（ステップＳ４４のＮ）、すなわち全てのアプリケーションのワークメモリを解放してもなお必須メモリが確保できない状態の場合に、図９のステップＳ７１に進むことだけが異なっている。
【００４４】
図９を参照すると、ステップＳ７１にて優先度の最も低いアプリケーションを検索し、これが要求元のアプリケーション自身である場合には（ステップＳ７２のＹ）、エラーを返す。要求元のアプリケーション自身でない場合（ステップＳ７２のＮ）、ステップＳ７３でこのアプリケーションの必須メモリ使用量３４をチェックする。必須メモリ使用量３４がある場合（ステップＳ７３のＹ）、ステップＳ７４でこのアプリケーションを強制終了させ、アプリケーションの抱えていたすべてのメモリを解放する。強制終了機能は、一般的なＯＳ（オペレーティングシステム）に備えられているもの（Kill Signalなど）でもよい。強制終了が成功した場合（ステップＳ７５のＹ）には、ステップＳ７６でシステムメモリの残量に強制終了で解放した必須メモリ使用量を加算し、ステップＳ７７でこのアプリケーションの必須メモリ使用量３４をクリアする。ステップＳ７８でシステムメモリの残量が要求メモリ量以上になった場合には、図４のステップＳ３４に進む。
【００４５】
図９のステップＳ７３で必須メモリ使用量３４がない場合、ステップＳ７５で強制終了が成功しない場合、またはステップＳ７８でシステムメモリの残量がまだ要求メモリ量に達しない場合、ステップＳ７９で他にアプリケーションがあるか否かをチェックする。他にアプリケーションがあれば（ステップＳ７９のＹ）、次に優先度が低いアプリケーションを検索し（ステップＳ８０）、ステップＳ７２に戻り、同様の処理を繰り返す。他にアプリケーションがなくなった場合は（ステップＳ７９のＮ）、メモリ不足としてエラーを返す。
【００４６】
以上のように実施例２では、全てのアプリケーションのワークメモリを解放してもなお必須メモリが確保できない場合に、優先度の低いアプリケーションから順に強制的に終了させることで、要求された所定のメモリ量を確保することができる。
【００４７】
さらに、実施例２において、必須メモリとワークメモリのような区分けを２レベルに限定せずに、メモリをｎレベル（ｎは３以上の自然数）に分けて管理し、メモリの確保時にレベルを指定し、メモリ強制解放手段で解放する際にも、メモリのレベルを指定して解放するような構成とすることもできる。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施例に係る端末装置のメモリ負荷制御機能の構成を示すブロック図である。
【図２】本発明の実施例に係るメモリ確保部の動作を表すフローチャートである。
【図３】本発明の実施例に係るメモリ解放部の動作を表すフローチャートである。
【図４】本発明の第１の実施例に係るメモリ量管理部の動作を表す第１のフローチャートである。
【図５】本発明の第１の実施例に係るメモリ量管理部の動作を表す第２のフローチャートである。
【図６】本発明の第１の実施例に係るメモリ量管理部でメモリの解放を通知する場合の動作を表すフローチャートである。
【図７】本発明の実施例に係るメモリ強制解放部の動作を表すフローチャートである。
【図８】本発明の第２の実施例に係るメモリ量管理部の動作を表す第１のフローチャートである。
【図９】本発明の第２の実施例に係るメモリ量管理部の動作を表す第２のフローチャートである。
【符号の説明】
【００４９】
１０  システムメモリ
１１  メモリ確保部
１２  メモリ解放部
１３  メモリ量管理部
１４  メモリ強制解放部
１５  メモリ情報記憶域
１６  システムメモリ残量
１７  管理情報
２０  アプリケーション群
３１  プロセスＩＤ
３２  優先度
３３  必須メモリ上限値
３４  必須メモリ使用量
３５  ワークメモリ使用量
【図１】
2006107197.tif 000003
【図２】
2006107197.tif 000004
【図３】
2006107197.tif 000005
【図４】
2006107197.tif 000006
【図５】
2006107197.tif 000007
【図６】
2006107197.tif 000008
【図７】
2006107197.tif 000009
【図８】
2006107197.tif 000010
【図９】
2006107197.tif 000011