(57)【特許請求の範囲】
【請求項１】
情報処理端末であって、
確保されたメモリ領域を利用して動作するプログラムを記憶する記憶手段と、
不要と判断したメモリ領域を解放するメモリ解放手段と、
前記メモリ領域を解放するために満たすべき実行判定条件を含むメモリ解放実行ポリシーと、
前記メモリ解放実行ポリシーを参照し、前記実行判定条件が満たされているか否かを調べ、前記調べた結果に基づき、前記メモリ解放手段にメモリ領域の解放を指示するか否かを判断するメモリ解放実行調停部と、を備え、
前記メモリ解放実行ポリシーには、前記実行判定条件が満たされてメモリ解放が実行された場合の実行実績が対応付けられて記録されており、
前記実行実績として、中断回数が記録されており、
前記メモリ解放実行調停部は、前記中断回数を参照して、メモリ解放を実行するか否かを判断することを特徴とする情報処理端末。
【請求項２】
請求項１に記載の情報処理端末であって、
前記メモリ解放実行調停部は、前記実行判定条件が満たされた場合に、対応する前記実行実績を参照して、前記メモリ解放手段に前記メモリ領域の解放を指示するか否かを判断することを特徴とする情報処理端末。
【請求項３】
請求項２に記載の情報処理端末であって、
前記メモリ解放実行調停部は、
前記メモリ解放を実行した際の中断の有無を含む実行履歴を記録し、
前記実行履歴に基づいて、メモリ解放を実行する際に満たされた前記実行判定条件に対応する前記実行実績を更新することを特徴とする情報処理端末。
【請求項４】
請求項１から３のいずれか一に記載の情報処理端末であって、
前記メモリ解放実行調停部は、複数のメモリ解放実行ポリシーを記憶し、
前記メモリ解放実行調停部は、前記メモリ解放実行ポリシーに記された前記実行判定条件が満たされた前記メモリ解放実行ポリシーに基づいて、前記メモリ解放手段へメモリ領域の解放を指示するか否かを判断することを特徴とする情報処理端末。
【請求項５】
請求項１から４のいずれか一に記載の情報処理端末であって、
前記メモリ解放実行調停部は、前記情報処理端末の状態の変化をきっかけとして、前記メモリ解放実行ポリシーに記された前記実行判定条件が満たされているか否かを調べることを特徴とする情報処理端末。
【請求項６】
請求項１から４のいずれか一に記載の情報処理端末であって、
前記メモリ解放実行調停部は、前記情報処理端末に接続された外部機器の状態の変化をきっかけとして、前記メモリ解放実行ポリシーに記された前記実行判定条件が満たされているか否かを調べることを特徴とする情報処理端末。
【請求項７】
請求項１から６のいずれか一に記載の情報処理端末であって、
前記メモリ解放実行ポリシーは、前記プログラムによるメモリ解放実行指示の有無を満たすべき前記条件の項目として含むことを特徴とする情報処理端末。
【請求項８】
請求項１から７のいずれか一に記載の情報処理端末であって、
前記メモリ解放実行ポリシーは、前記情報処理端末の未使用のメモリ容量を満たすべき前記実行判定条件の項目として含むことを特徴とする情報処理端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信機能と位置情報を扱う機能、メモリ解放機能を持つ、携帯電話やカーナビゲーション装置やTV等の組み込み機器と、それらを用いたシステムに関する。
【背景技術】
【０００２】
ナビゲーション機能を搭載した携帯端末（以下、位置情報端末という）では、コストを抑えつつユーザへの訴求力のある端末を提供するため、以下の取り組みが注目されている。
【０００３】
（1）新サービス取り組みの容易化：ナビゲーション装置の通信対応、地図情報等を提供するナビゲーションのサービスセンタと連携したサービスの追加や、表示画面で情報を提供するWidgetの搭載。
【０００４】
（2）画面やコンテンツ確保の容易化と開発工数低減：デザイナの要望の迅速な取り組み。ユーザや第3者が提供するコンテンツの利用。複数端末間でのコンテンツ流用。
【０００５】
位置情報端末で利用する上記コンテンツとしては、位置情報端末の表示装置に表示されるWidgetなどのアプリケーションプログラム（以下、アプリケーションという）を用いることができる。
【０００６】
ここで「Widget（ウィジェット）」とは、XML（Extensible Markup Language）とスクリプト言語で記載され、表示装置の画面への表示機能を備えたアプリケーションを示す。
【０００７】
Widgetは、実行環境と呼ばれる上位プログラムの制御により、確保されたメモリ領域を利用して動作するが、確保された前記メモリ領域が不要になっても明示的に解放しないことがある。そのため、Widgetを動作させるためには、Widgetを動作させるために動的に確保したメモリ領域のうち、不要になったメモリ領域を解放する機能、すなわちガベージコレクション（以下、GCと呼ぶ）機能を搭載したWidget実行環境を位置情報端末に搭載する必要がある。GC機能を利用することにより、Widget開発者はメモリの確保・解放と行ったメモリ管理に関する操作を行う必要がないという利点がある一方、GCを一旦実行すると、CPUを長時間占有するという欠点もある。
【０００８】
GC実行処理を制御する方法として、予めアプリケーションプログラムを解析し、メモリ解放命令やオブジェクト解放命令を挿入することにより、GC実行時の処理負荷を軽減する方法（特許文献1参照）やGC処理に費やす時間とそのGC処理後の実行効率からGC処理を行うオブジェクトを選択する方法（特許文献2参照）がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開2000-132406号公報
【特許文献２】特開平3-194630号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、従来技術におけるGC実行処理の制御方法では、以下のような課題がある。
【００１１】
第一に、カーナビゲーション装置のようなリアルタイム性を要する携帯端末では、GC処理を実行するタイミングを制御する必要がある。つまり、GC処理がユーザの安全性に関する処理の妨げになってはならない。従来技術を利用することにより、GC処理時間を短縮することは可能となるが、処理を行うタイミングまで制御することが困難であるため、ユーザの安全性に関する処理の妨げになる可能性がある。
【００１２】
第二に、Widget開発者はメモリ消費量を意識しながらWidget開発を行う必要があり、Widgetを適用する利点であると開発工数低減を損なう恐れがある。
【課題を解決するための手段】
【００１３】
本明細書においては、確保されたメモリ領域を利用して動作し、確保された前記メモリ領域が不要になっても解放を指示しないことがあるプログラムを対象とし、メモリ解放の実行時機を、利用の妨げにならないように制御する情報処理端末が開示される。
【００１４】
開示される一つの観点に従う情報処理端末は、確保されたメモリ領域を利用して動作するプログラムを記憶する記憶手段と、不要と判断したメモリ領域を解放するメモリ解放手段と、メモリ領域を解放するために満たすべき実行判定条件を含むメモリ解放実行ポリシーと、メモリ解放実行ポリシーを参照し、実行判定条件が満たされているか否かを調べ、調べた結果に基づき、メモリ解放手段にメモリ領域の解放を指示するか否かを判断するメモリ解放実行調停部と、を備えることを特徴とする。
【００１５】
さらに、メモリ解放実行ポリシーには、実行判定条件が満たされてメモリ解放が実行された場合の実行実績が対応付けられて記録されており、メモリ解放実行調停部は、実行判定条件が満たされた場合に、対応する実行実績を参照して、メモリ解放手段にメモリ領域の解放を指示するか否かを判断してもよい。
【００１６】
さらに、メモリ解放実行調停部は、メモリ解放を実行した際の実行履歴を記録し、実行履歴に基づいて、メモリ解放を実行する際に満たされた実行判定条件に対応する実行実績を更新してもよい。
【００１７】
さらに、実行実績として、中断回数および／または平均解放量が記録されており、メモリ解放実行調停部は、中断回数および／または平均解放量を参照して、メモリ解放を実行するか否かを判断してもよい。
【００１８】
さらに、メモリ解放実行調停部は、複数のメモリ解放実行ポリシーを記憶し、メモリ解放実行調停部は、メモリ解放実行ポリシーに記された実行判定条件が満たされたメモリ解放実行ポリシーに基づいて、メモリ解放手段へメモリ領域の解放を指示するか否かを判断してもよい。
【００１９】
さらに、メモリ解放実行調停部は、情報処理端末の状態の変化をきっかけとして、メモリ解放実行ポリシーに記された実行判定条件が満たされているか否かを調べてもよいし、情報処理端末に接続された外部機器の状態の変化をきっかけとして、メモリ解放実行ポリシーに記された実行判定条件が満たされているか否かを調べてもよい。
【００２０】
さらに、メモリ解放実行ポリシーは、プログラムによるメモリ解放実行指示の有無を満たすべき条件の項目として含んでもよいし、情報処理端末の未使用のメモリ容量を満たすべき実行判定条件の項目として含んでもよい。
【００２１】
情報処理端末とは例えば、カーナビゲーション装置のような、位置情報端末であり、開示される代表的な一例を簡単に説明すれば、以下の通りである。
【００２２】
本明細書において開示される代表的な位置情報端末は、CPU、揮発性メモリ、不揮発性メモリ、ディスプレイ、無線ネットワーク通信装置を備える端末ハードウェアで構成され、これにOS、ライブラリ、ナビエンジン、状態遷移エンジン、GC実行調停部、Widget実行エンジン、複数のWidgetなどの各種プログラムを搭載する。
【００２３】
ナビエンジンとは、位置情報端末の現在位置の計算、表示用地図データの作成、ユーザが設定した目的地の誘導などを実現するためのプログラムモジュール（以下、プログラムモジュールを単にモジュールという）である。
【００２４】
状態遷移エンジンとは、位置情報端末の状態を管理するためのモジュールである。
【００２５】
GC実行調停部は、ナビエンジンや状態遷移エンジンの状態、更に位置情報端末以外の端末の状態を取得し、GC実行ポリシーを参照として、現在の状態がGC機能を実行するタイミングか否かを判断するためのモジュールである。尚、GC実行ポリシーとは、GC機能実行の判断材料であり、各モジュールの状態に応じたGC機能実行の可能/不可能を定義したデータである。
【００２６】
これらのプログラムは、CPUによって実行されることにより、それぞれの機能を実現するが、以下では、便宜上、各プログラムを実行主体として説明する。
【００２７】
また、GC実行調停部は、GC実行中においても、各モジュールの状態変化を監視している。そのため、GC実行中にユーザの安全性に関わる処理が生じた場合、GC実行を途中で中断して、ユーザの安全性に関わる処理を優先的に行うことが可能とする。
【００２８】
更に、GC実行調停部には、GC機能を実行した履歴を保存している。そのため、GC機能の実行が頻繁に中断される条件やGC機能の効果が薄い条件を検出することが可能となり、ユーザの安全性を確保しつつ、GC機能の効果が高い条件のみを実行することが可能である。
【００２９】
上記態様によれば、GC機能を実行するタイミングを制御することが可能となるため、性能制限が厳しいナビにおいても、ユーザの安全性を妨げることなくGCを実行することが可能となる。更に、Widget開発者はGC機能を実行を行うタイミングを意識する必要がなくなるため、Widget開発を容易に行うことが可能となる。
【発明の効果】
【００３０】
GC処理を実行する際に、リアルタイム性を要求される処理与える影響を少なくすることが可能になる。また、開発工数の低減が可能になる。
【図面の簡単な説明】
【００３１】
【図１】位置情報端末システムの構成を例示する図。
【図２】GC実行ポリシーの構成を例示する図。
【図３】GC実行履歴の構成を例示する図。
【図４】位置情報端末のシステムの基本動作シーケンスを例示する図。
【図５】GC実行調停部の基本動作シーケンスを例示する図。
【図６】GC機能の基本実行シーケンスを例示する図。
【図７】Widgetの基本動作シーケンスを例示する図。
【発明を実施するための形態】
【００３２】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、本発明の実施形態を説明する図において、同一部には同一の符号を付し、その繰り返しの説明は、省略することにする。
【００３３】
（第1の実施形態）
図１は、本発明の第1の実施形態における位置情報端末システムの一例を示した図である。
【００３４】
位置情報端末システム１００とは、位置情報端末１０１と機器ハードウェア１０２を含んで構成されるシステムであり、例えば、車載ネットワークシステムなどが該当する。
【００３５】
位置情報端末１０１は現在位置を識別しそれに応じた処理を実行する情報機器である。例えば、カーナビゲーションやPND（Portable Navigation Device）などが該当する。
【００３６】
機器ハードウェア１０２は、位置情報端末１０１以外のハードウェアである。例えば、車の状態を管理するECU （Engine Control Unit）などが該当する。
【００３７】
位置情報端末１０１は、Widget１１０、Widget実行エンジン１１６、GC実行調停部１２０、状態遷移エンジン１３０、ナビエンジン１４０、ライブラリ群１５０、OS１６０、端末ハードウェア１７０、記憶装置１８０を含んで構成されている。
【００３８】
Widget１１０は、XMLとスクリプトで構成された表示機能を持つ単機能プログラムであり、静止画データやアニメーションデータ、動画データを利用した複数の画面（画面Ａ１１１、画面Ｂ１１２、画面Ｃ１１３）を含んで構成されている。
【００３９】
尚、本発明は、Widgetの代わりに、表示機能を持つプログラムを用いた場合、ならびに表示機能を持たないWidget実行エンジン１１６上で動作するプログラムを用いた場合にも適用可能である。
【００４０】
Widget実行エンジン１１６は、Widget１１０の実行環境であり、Widget１１０の起動終了や、メモリ領域の確保などの動作制御を行うモジュールであり、GC処理を実行するGC機能１１７も搭載している。
【００４１】
GC実行調停部１２０は、GC機能１１７の実行を制御するモジュールであり、GC実行ポリシー１２２とGC実行履歴１２４を有する。GC実行ポリシー１２２は、GC実行調停部１２０がGC機能１１７へ処理開始を指示するための判断材料を記憶する表である。GC実行履歴１２４はGC機能を実行した結果を記憶する表である。尚、GC機能１１７の実行制御方法、ならびにGC実行優先度表１２２やGC実行履歴１２４の詳細は後に述べる。
【００４２】
状態遷移エンジン１３０は、位置情報端末１０１の状態を管理するモジュールである。
【００４３】
ナビエンジン１４０は位置情報端末１０１の現在位置の計算、表示用地図データの作成、ユーザが設定した目的地の誘導などを実行するモジュールである。また、ナビエンジン１４０では、ナビ状態１４１も管理しており、位置情報端末１０１が誘導中であるか停止中であるか等を管理している。
【００４４】
ライブラリ群１５０は目的地検索、音声案内等の各種ライブラリプログラムであり、表示に関連するライブラリプログラムはWidget実行エンジン１１６と連携して動作する。
【００４５】
OS１６０は、位置情報端末１０１の動作を統括的に制御する基本ソフトウェアである。
【００４６】
端末ハードウェア１７０は位置情報端末１０１のソフトウェアを動作させるために必要なハードウェアであり、CPU、メモリ、描画回路、音声再生回路、位置検出回路等を含んで構成される。
【００４７】
記憶装置１８０は位置情報端末１０１の動作に必要なデータ、例えば地図情報１８１やWidget１１０の実行に必要となるWidget情報１８２等を保存し、例えば、磁気記録媒体、不揮発性の半導体メモリなどの媒体で構成される。
【００４８】
図２は、GC実行ポリシー１２２にて管理する情報の一例を示す図である。
【００４９】
GC実行ポリシー１２２では、GC機能１１７への処理開始を指示するための判断基準である実行判定条件２１０と、当該実行判定条件に基づく、実際のGC実行実績を管理する。実行実績は、具体的には、たとえば、実際にGC機能１１７に処理開始を指示した回数を示す実行回数２７０、ユーザ操作などの要因によって、GC機能１１７の実行を中断した回数を示す中断回数２８０、GC機能１１７を実行することによって、解放したメモリ容量の平均値を示す平均解放２９０といった情報を管理する。尚、例えば、GC機能１１７の実行間隔の平均値といった上記以外の情報を管理してもよい。
【００５０】
GC機能１１７への処理開始を指示するための判断基準である実行判定条件２１０として、機器情報２２０、ナビエンジン情報２３０、状態遷移エンジン情報２４０、Widget GC実行指示２５０、未使用メモリ容量２６０といった条件がある。
【００５１】
機器情報２２０とは、機器ハードウェア１０２より取得する情報であり、車の状態などを示すものである。例えば、車の状態として、停止中や走行中などがある。また、今後、EV（Electric Vehicle）が普及すると予想されるため、電池の充電中なども車の状態として含めてもよい。特に充電中は、長時間、車が止まっていることが明確であるため、GC機能１１７の実行には最適な状態だといえる。
【００５２】
ナビエンジン情報２３０とは、ナビエンジン１４０より取得する情報であり、ナビ状態１４１を示すものである。例えば、ナビ状態１４１として、ナビエンジン１４０が動作していない停止中や目的地に向け誘導している誘導中などがある。
【００５３】
状態遷移エンジン情報２４０とは、状態遷移エンジン１３０より取得する情報であり、位置情報端末１０１の状態を示すものである。例えば、位置情報端末１０１の状態として、ユーザがラジオを操作している状態を示すラジオ操作や目的地の設定を行っている状態を示す目的地設定などがある。
【００５４】
Widget GC実行指示２５０とは、Widget１１０からのGCの実行指示の有無を示すものである。例えば、Widget１１０からGC実行指示があった場合、Widget GC実行指示２５０を”あり”として、他の実行判定条件２１０が満足するか判定する。判定に、Widget GC実行指示２５０が”無し”のポリシーの場合、他の実行判定条件２１０が満足するか判定する。
【００５５】
未使用メモリ容量２６０とは、GC機能１１７への処理開始を指示する際の位置情報端末１０１の未使用メモリ容量を示すものである。例えば、図２のNo.1の場合、機器情報２２０〜Widget GC実行指示２５０の条件を満たし、更に、位置情報端末１０１の未使用メモリ容量が20MB以下の場合、GC機能１１７への処理開始を指示する。尚、例えば、現在走行中の道路の種別、現在位置、ブレーキ動作といった上記以外の情報を実行判定条件２１０に追加してもよい。
【００５６】
また、中断回数２８０、ならびに平均解放２９０の値を参照にして、GC機能１１７の効果が薄いと判断できるポリシーに関しては、ポリシーの有効性を制限してもよい。
【００５７】
図３はGC実行履歴１２４にて管理する情報の一例を示す。
【００５８】
GC実行履歴１２４では、実行条件No３１０、解放メモリ量３２０、実行時間３３０、実行中断有無３４０といった情報を管理する。
【００５９】
実行条件No３１０は、GC機能１１７に処理開始を指示したGC実行ポリシー１２２の条件を示す。
【００６０】
解放メモリ量３２０は、実際にGC機能１１７を実行した結果、解放されたメモリ容量を示す。
【００６１】
実行時間３３０は、実際にGC機能１１７を実行した時間を示す。
【００６２】
実行中断有無３４０は、GC機能１１７実行を途中で中断したか否かを示す。
【００６３】
後述するように、GC実行調停部１２０は、上記GC実行履歴１２４に基づいて、GC実行ポリシー１２２を更新する。
【００６４】
以上が本実施例におけるシステム構成の一例である。上記のように、実行ポリシーを利用することにより、GC処理を行うタイミングを制御することが可能となり、GC処理がユーザの安全性に関する処理の妨げになることを防ぐことが可能となる。
【００６５】
図４は位置情報端末システムの基本動作の一例を示すシーケンスである。
【００６６】
車のエンジンをかけるなどによって、位置情報端末システム１００が起動するとシステム内の機器ハードウェア１０２が起動し（ステップ４０１）、位置情報端末１０１の端末ハードウェア１７０が起動し（ステップ４０２）、OS１６０が起動し（ステップ４０３）、Widget実行エンジン１１６やGC実行調停部１２０、ナビエンジン１４０、ライブラリ群１５０といったソフトウェアが起動する（ステップ４０４）。ハードウェアならびにソフトウェアが正常に起動すると、Widget実行エンジン１１６は記憶装置１８０からWidget１１０の実行に必要なWidget情報１８２を取得し、Widget１１０の初期化を実行する（ステップ４０５）。
【００６７】
ステップ４０１〜ステップ４０５までの処理が正常に動作すると、位置情報端末１０１は動作を開始する（ステップ４０６）。尚、ステップ４０１〜ステップ４０５において正常に動作しなかったステップがある場合、そのステップが正常に動作するまで繰り返し実行する。また、位置情報端末１０１に搭載したディスプレイを通じてユーザに正常に動作しなかったステップを知らせてもよい。
【００６８】
位置情報端末１０１は正常に動作すると、Widget操作や各モジュールの状態変化によるイベントの発生を待つ（ステップ４０７）。尚、ステップ４０７におけるイベント待ちは位置情報端末１０１が正常に動作した以降ならば、いかなる場合でも発生する可能性があり、発生すると必ずステップ４０７以降の処理を実行する。
【００６９】
イベントが発生すると、GC実行ポリシー１２２を確認する（ステップ４０８）。尚、ステップ４０８におけるGC実行ポリシー１２２の確認とは、後に説明するステップ５０５〜ステップ５１０の処理である。
【００７０】
確認した結果、GC実行ポリシー１２２と合致する条件がある場合、GC機能１１７の実行状態を確認する（ステップ４０９）。
【００７１】
実行状態を確認した結果、GC機能１１７が実行中ならば、GCの実行が完了するまで待つ。反対に、GC機能１１７が実行していないなら、GC実行調停部１２０がGC機能１１７へ実行を指示し（ステップ４１０）。GC機能１１７の実行が完了するまで待つ。
【００７２】
GC機能１１７の実行が完了すると、GC実行履歴１２４と、それに基づいてGC実行ポリシー１２２の実行実績と、を更新する（ステップ４１５）。
【００７３】
GC機能１１７の実行が正常に完了しない場合、システムの停止が必要か否かを確認する（ステップ４１６）。
【００７４】
ステップ４１６における確認の結果、システムの停止が必要な場合、位置情報端末１０１を停止させた後（ステップ４１７）、システム全体を停止する（ステップ４１８）。
【００７５】
ステップ４１６における確認の結果、システムの停止が必要ない場合、ステップ４０７におけるイベント待ちを行う。
【００７６】
ステップ４０８にてGC実行ポリシー１２２を確認した結果、GC実行ポリシー１２２と合致する条件がない場合、GC機能１１７の実行状態を確認する（ステップ４１１）。
【００７７】
確認した結果、GC機能１１７が実行中の場合、GC実行を中断し（ステップ４１２）、GC実行履歴１２４と、それに基づいてGC実行ポリシー１２２の実行実績と、を更新する（ステップ４１３）。
【００７８】
更新を行った後、システムの停止が必要か否かを確認する（ステップ４１６）。
【００７９】
ステップ４１６における確認の結果、システムの停止が必要な場合、位置情報端末１０１を停止させた後（ステップ４１７）、システム全体を停止する（ステップ４１８）。
【００８０】
ステップ４１６における確認の結果、システムの停止が必要ない場合、ステップ４０７におけるイベント待ちを行う。
【００８１】
確認した結果、GC機能１１７が実行中ではない場合、ステップ４０７におけるイベント待ちを行う。
【００８２】
以上が位置情報端末システムの基本動作シーケンスである。イベント発生毎にGC実行ポリシー１２２との合致を確認するため、ユーザの安全性に関わるイベントがGC機能１１７の実行より優先することが可能となる。
【００８３】
図５は、ステップ４０７におけるイベントの発生シーケンス、ならびにイベントが発生した際のGC実行調停部１２０の処理シーケンスを示した図である
GC実行調停部１２０は、機器ハードウェア１０２の状態、ナビエンジン１４０の状態であるナビ状態１４１、状態遷移エンジン１３０の状態のいずれかが変化したことを検出すると、GC機能１１７の実行に関するイベントが発生したと判断し、GC機能１１７の処理開始に関する処理を実行する（ステップ５０１〜ステップ５０３、ただし、これらのステップの順序は問わない）。
【００８４】
また、機器ハードウェア１０２、ナビ状態１４１、ならびに状態遷移エンジン１３０の状態変化によるイベントの他、Widget１１０より、GC機能１１７の処理開始の指示があった場合には、ステップ５０１〜ステップ５０３と同様、GC機能１１７の処理開始に関する処理を実行する（ステップ５０４）。
【００８５】
尚、GC機能１１７の実行に関するイベントの発生、ならびにWidget１１０からのGC機能１１７の処理開始指示がない場合には、これらが発生するまで、GC実行調停部１２０は待つ。
【００８６】
イベントの発生、もしくはWidget１１０よりGC機能１１７の処理開始の指示があった場合、GC実行調停部１２０は、Widget１１０を実行するために、確保したメモリ領域の中から、未使用のメモリ容量を確認する（ステップ５０５、ステップ５０６）。尚、確認するメモリ領域として、Widget１１０の実行のために確保したメモリ領域ではなく、位置情報端末１０１に搭載してあるメモリ全体における未使用のメモリ容量を確認してもよい。尚、その場合にはOS１６０と競合には注意を払う必要がある。
【００８７】
次に、GC実行ポリシー１２２の中で、各モジュールの状態と全て合致している（満たされている）条件があるか確認を行う（ステップ５０７）。
【００８８】
確認した結果、合致した条件が存在しない場合、GC機能１１７を実行する必要がないため、GC機能１１７の処理開始シーケンスを終了し、再び、GC機能１１７の実行に関するイベント、もしくはWidget１１０からのGC機能１１７の処理開始指示が発生することを待つ。
【００８９】
確認した結果、合致した条件が存在する場合、その合致した条件の中断回数が一定値以下であることを確認する（ステップ５０８）。GC機能１１７の実行を途中で中断することは、メモリに保存しているデータの破損に繋がり、最終的にはシステム全体に影響する恐れがある。ステップ５０８の動作を行うことにより、メモリに保存しているデータの破損を未然に防ぐことが可能となる。
【００９０】
中断回数が一定値以上の場合、上記の理由により、GC機能１１７を実行することはシステムに影響を与える恐れがあると判断し、GC機能１１７の処理開始シーケンスを終了し、再び、GC機能１１７の実行に関するイベント、もしくはWidget１１０からのGC機能１１７の処理開始指示が発生することを待つ。
【００９１】
中断回数が一定値以下の場合、合致した条件における平均解放量が一定値以上であることを確認する（ステップ５０９）。平均解放量が一定値以下ということは、GC機能１１７の効果が薄いということを示している。GC機能１１７を実行すると、CPUはGC機能１１７の処理に占有されてしまい、他の処理が実行出来ない場合が生じる。ステップ５０９の動作を行うことにより、効果の薄いGC機能１１７の実行を行わないようにしている。
【００９２】
平均解放量が一定値以下の場合、上記の理由より、GC機能１１７の効果薄いと判断し、GC機能１１７の処理開始シーケンスを終了し、再び、GC機能１１７の実行に関するイベント、もしくはWidget１１０からのGC機能１１７の処理開始指示が発生することを待つ。
【００９３】
平均解放量が一定値以上の場合、GC機能１１７による効果があると判断し、GC機能１１７に処理開始を指示する（ステップ５１０）。
【００９４】
以上がGC実行調停部１２０の基本動作シーケンスである。
【００９５】
図６はGC実行調停部１２０により、処理開始の指示を受信した際のGC機能１１７の基本動作シーケンスを示した図である。
【００９６】
GC機能１１７はGC機能の処理開始の指示を受信すると、メモリの空き容量を確認する（ステップ６０１）。
【００９７】
メモリの空き容量を確認した結果、空き容量が閾値以上である場合、GCを実行する必要がないと判断し、処理を終了する。
【００９８】
メモリの空き容量を確認した結果、空き容量が閾値未満である場合、メモリ上における使用済み領域を検索する（ステップ６０２）。
【００９９】
検索した結果、使用済みの領域を検出すると、その検出した領域にラベルをつける（ステップ６０３、ステップ６０４）。
【０１００】
ラベルがつけられた領域を一定以上発見できた場合、ラベルのついた使用済みの領域を一か所に集めるためデータの再配置を行う（ステップ６０５、ステップ６０６）。
【０１０１】
データの再配置を行った結果、メモリの空き容量が閾値以上になった場合、GCの実行がこれ以上必要ないと判断し、処理を終了する（ステップ６０７）。
【０１０２】
また、GC実行調停部１２０より、GCの処理中止指示があった場合、本処理を終了する（ステップ６０８）。
【０１０３】
以上がGC機能１１７の基本動作シーケンスである。
【０１０４】
図７はWidget１１０の基本動作シーケンスを示した図である。
【０１０５】
Widget１１０は起動すると（ステップ７０１）、Widget制御イベントの発生を待つ（ステップ７０２）。Widget制御イベントとは、ユーザがWidget１１０をタッチすることにより生じるイベント、もしくはWidget１１０が表示しているデータを更新する際に生じるイベントである。
【０１０６】
Widgetイベントが発生すると、イベント処理を行い、Widget１１０が表示内容を更新する（ステップ７０３）。
【０１０７】
イベント発生後、GC実行する指定がWidget１１０のプログラムに記載されているか確認する（ステップ７０４）。
【０１０８】
確認の結果、GC実行する指定がある場合、GC実行調停部１２０に対してGC実行を要求する（ステップ７０５）。
【０１０９】
確認の結果、GC実行する指定がない場合、ステップ７０５の処理は省略する。
【０１１０】
また、Widget実行エンジン１１６よりWidget１１０の終了イベントが発生した場合、Widget１１０の実行を終了する（ステップ７０６）。尚、終了イベントをWidget１１０が起動した以降ならば、いかなる状態においても受信することが可能であり、受信した場合、すぐにWidget１１０の実行を終了する。
【０１１１】
以上がWidget１１０の基本動作シーケンスである。
【０１１２】
以上、実施形態を具体的に説明したが、上記開示に限定されるものでなく、その趣旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【０１１３】
１００…位置情報端末システム
１０１…位置情報端末
１０２…機器ハードウェア
１１０…Ｗｉｄｇｅｔ
１１１…Ｗｉｄｇｅｔの画面Ａ
１１２…Ｗｉｄｇｅｔの画面Ｂ
１１３…Ｗｉｄｇｅｔの画面Ｃ
１１６…Ｗｉｄｇｅｔ実行エンジン
１１７…ＧＣ機能
１２０…ＧＣ実行調停部
１２２…ＧＣ実行ポリシー
１２４…ＧＣ実行履歴
１３０…状態遷移エンジン
１４０…ナビエンジン
１４１…ナビ状態
１５０…ライブラリ群
１６０…ＯＳ
１７０…端末ハードウェア
１８０…記録装置
１８１…地図情報
１８２…Widget情報
【図１】
0005577179.tif 000002
【図２】
0005577179.tif 000003
【図３】
0005577179.tif 000004
【図４】
0005577179.tif 000005
【図５】
0005577179.tif 000006
【図６】
0005577179.tif 000007
【図７】
0005577179.tif 000008