(57)【要約】  通信システム（１００）は、データを共有する複数の端末（＃１〜＃４）を含んでいる。複数の端末（＃１〜＃４）の中の端末（＃２）は、メモリの容量の不足、電池残量の変化、複数の端末（＃１〜＃４）の中の端末（＃１）に対する相対位置の変化、端末（＃１）との間の通信速度の変化、または端末（＃１）との通信の遮断を検出する。端末（＃２）は、検出結果に基づいて、端末（＃２）が有するデータの共有部分を複数の端末（＃１〜＃４）の端末（＃４）に送信する。
2012164695.tif 000002
【特許請求の範囲】
【請求項１】
データを共有する複数のデータ処理装置の中の第１データ処理装置が、メモリの容量の不足、電池残量の変化、前記複数のデータ処理装置の中の第２データ処理装置に対する相対位置の変化、前記第２データ処理装置との間の通信速度の変化、または前記第２データ処理装置との通信の遮断を検出するときに、前記第１データ処理装置が有する前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信すること
を特徴とするデータ共有方法。
【請求項２】
前記電池残量の減少、前記相対位置の増加およびまたは通信速度の減少を検出するときに、前記データの共有部分が他のデータ処理装置に送信されること
を特徴とする請求項１に記載のデータ共有方法。
【請求項３】
前記メモリの容量が前記第２データ処理装置から送信されるデータの容量よりも小さいときに前記メモリの容量の不足が検出され、
前記通信速度と前記データをストレージに記憶する速度との比較結果に基づいて前記データの共有部分が前記第３データ処理装置に送信されること
を特徴とする請求項１または請求項２に記載のデータ共有方法。
【請求項４】
前記第１データ処理装置は、前記第１データ処理装置以外の前記複数のデータ処理装置の中で前記第２データ処理装置との通信速度が最も大きい第３データ処理装置に、前記データの共有部分を送信すること
を特徴とする請求項１、請求項２または請求項３に記載のデータ共有方法。
【請求項５】
前記第３データ処理装置は、前記複数のデータ処理装置の中で前記データの共有部分を使用しているデータ処理装置と通信を行っているデータ処理装置であること
を特徴とする請求項１、請求項２または請求項３に記載のデータ共有方法。
【請求項６】
前記通信の遮断を検出するとき、所定期間経過後に前記第２データ処理装置と通信を行う第４データ処理装置に前記データの共有部分を送信すること
を特徴とする請求項１乃至請求項５の何れか一に記載のデータ共有方法。
【請求項７】
前記所定期間経過までに前記第２データ処理装置との通信が回復した場合は、前記第４データ処理装置に前記データの共有部分を送信しないこと
を特徴とする請求項６に記載のデータ共有方法。
【請求項８】
前記第１データ処理装置は、前記第２データ処理装置から受信した前記データの共有部分を前記第３データ処理装置へ送信すること
を特徴とする請求項１に記載のデータ共有方法。
【請求項９】
前記第３データ処理装置は、前記第１データ処理装置から前記データの共有部分を受信した場合に、前記第２データ処理装置との間で前記データの共有部分を共有すること
を特徴とする請求項１に記載のデータ共有方法。
【請求項１０】
複数のデータ処理装置で共有するデータを格納するメモリと、
メモリ容量を管理するメモリ管理ユニットと、
電池残量を監視する電池残量監視ユニットと、
前記複数のデータ処理装置の中の第２データ処理装置に対する相対位置を検出するとともに前記第２データ処理装置との間の通信速度を監視する移動決定ユニットと、
を含み、
前記メモリ管理ユニットがメモリの容量の不足を検出するときに、前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信すること
を特徴とするデータ処理システム。
【請求項１１】
前記電池残量監視ユニットが前記電池残量の減少を検出するときに、前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信すること
を特徴とする請求項１０に記載のデータ処理システム。
【請求項１２】
前記移動決定ユニットが前記相対位置の増加または前記通信速度の減少を検出するときに、前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信すること
を特徴とする請求項１０または請求項１１に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ共有方法およびデータ処理システムに関する。
【背景技術】
【０００２】
たとえば大規模並列計算機の分野では、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ：構内通信網）などのネットワークに繋がるコンピュータ間でメモリリソースを共有するシステムが考案されている（たとえば、下記特許文献１参照。）。有線のネットワークで接続された複数の計算機でメモリリソースを共有する場合は、端末数や端末間の通信速度はほとんど変化しない。【０００３】
また、無線のネットワークで接続された携帯電話などの端末においては、搭載されるメモリリソースが限定される。このため、業務系アプリなどを利用する場合にメモリ容量が不足する状況が考えられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−１５７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、無線のネットワークで接続された端末間でメモリ共有を行うと、通信が不安定であるため、他端末に預けているデータにアクセスする際に、データの預け先の他端末と通信できず、データを回収できなくなることが考えられる。このため、他端末に預けたデータの処理が中断されるなど、処理が不安定になるという問題がある。【０００６】
本発明は、上述した従来技術による問題点を解消するため、メモリ共有による処理を安定させることができるデータ共有方法およびデータ処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、データを共有する複数のデータ処理装置の中の第１データ処理装置が、メモリの容量の不足、電池残量の変化、前記複数のデータ処理装置の中の第２データ処理装置に対する相対位置の変化、前記第２データ処理装置との間の通信速度の変化、または前記第２データ処理装置との通信の遮断を検出するときに、前記第１データ処理装置が有する前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信するデータ共有方法およびデータ処理システムが提案される。
【発明の効果】
【０００８】
本発明の一側面によれば、メモリ共有による処理を安定させることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１−１】図１−１は、実施の形態にかかる通信システムの例を示す図である。
【図１−２】図１−２は、メモリ提供側の端末によるタスクデータの転送を示す図である。
【図１−３】図１−３は、端末間で共有される状態テーブルの一例を示す図である。
【図１−４】図１−４は、状態テーブルの変化の一例を示す図である。
【図２】図２は、通信速度の減少によるタスクデータの転送を示す図である。
【図３】図３は、相対位置の増加によるタスクデータの転送を示す図である。
【図４−１】図４−１は、電池残量の不足によるタスクデータの転送を示す図（その１）である。
【図４−２】図４−２は、電池残量の不足によるタスクデータの転送を示す図（その２）である。
【図５−１】図５−１は、通信の切断によるタスクデータの転送を示す図（その１）である。
【図５−２】図５−２は、通信の切断によるタスクデータの転送を示す図（その２）である。
【図６】図６は、端末のハードウェア構成例を示す図である。
【図７】図７は、端末の機能的構成例を示す図である。
【図８−１】図８−１は、オペレーティングシステムによる処理の一例を示すフローチャート（その１）である。
【図８−２】図８−２は、オペレーティングシステムによる処理の一例を示すフローチャート（その２）である。
【図９】図９は、自端末のタスクデータをスワップする処理の一例を示す図である。
【図１０】図１０は、メモリ不足時に他端末のタスクデータを別の他端末へ転送する処理の一例を示すフローチャートである。
【図１１】図１１は、端末間の状態変化時の処理の一例を示すフローチャートである。
【図１２】図１２は、提供要求信号に対する応答処理の一例を示すフローチャートである。
【図１３】図１３は、電池残量減少時の処理の一例を示すフローチャートである。
【図１４】図１４は、アクセス発生時の処理の一例を示すフローチャートである。
【図１５】図１５は、切断検出時の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明にかかるデータ共有方法およびデータ処理システムの実施の形態を詳細に説明する。
【００１１】
（実施の形態）
（通信システム）
図１−１は、実施の形態にかかる通信システムの例を示す図である。図１−１に示す通信システム１００は、端末＃１〜＃４を含んでいる。端末＃１〜＃４は、互いにアドホック通信などの無線通信によって接続されている。端末＃１〜＃４は、タスクデータなどのデータを共有するメモリ共有を行う複数のデータ処理装置である。
【００１２】
図１−１，図１−２においては、メモリ共有の一例として、端末＃１（第２データ処理装置）のタスクに用いるタスクデータの少なくとも一部を端末＃２〜＃４のいずれかのメモリに保持するメモリ共有について説明する。図１−１に示す例では、端末＃１においてメモリ（メモリリソース）の不足が検出されたとする。たとえば、端末＃１のメモリには、実行するタスクによるメモリの使用量が記憶されている。端末＃１は、たとえば、実行するタスクによるメモリの使用量と、端末＃１のメモリの空き容量と、を比較することによってメモリの不足を検出する。
【００１３】
端末＃１は、メモリの不足を検出すると、接続している端末＃２〜＃４の中からメモリ共有を行う端末（要求先端末）を選択する。たとえば、端末＃１は、端末＃１と端末＃２〜＃４との間の各通信品質を示す情報を取得する。通信品質は、たとえば、通信速度や通信強度などである。通信強度としてはたとえばＲＳＳＩ（Ｒｅｃｅｉｖｅ  Ｓｉｇｎａｌ  Ｓｔｒｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ：受信信号強度）を用いることができる。
【００１４】
端末＃１は、たとえば、端末＃２〜＃４のうちの端末＃１との間の通信品質が最も高い（通信速度や通信強度が高い）端末を要求先端末として選択する。これにより、メモリ共有におけるタスクデータ（データ）の送受信処理を高速に行うことができる。図１−１に示す例では、端末＃１は、要求先端末として端末＃２（第１データ処理装置）を選択したとする。端末＃１は、選択した端末＃２へ、端末＃１のタスクに用いるタスクデータの少なくとも一部を送信する。また、端末＃１は、端末＃２へ送信したデータを端末＃１のメモリから削除する。端末＃２は、端末＃１から受信したタスクデータを端末＃２のメモリに保持する。
【００１５】
端末＃１は、端末＃２へ送信したタスクデータに対するアクセスが端末＃１のタスクにおいて発生した場合は、端末＃２と通信を行うことにより、端末＃２のメモリに保持されたタスクデータにアクセスする。このように、端末＃２が端末＃１にメモリを提供するメモリ共有を行い、メモリの使用量を端末＃１，＃２に分散させることができる。
【００１６】
図１−２は、メモリ提供側の端末によるタスクデータの転送を示す図である。図１−２において、図１−１に示した部分と同様の部分については同一の符号を付して説明を省略する。端末＃１のデータを保持する端末＃２（メモリ貸与側）における状態の変化（たとえば図２〜図５−２参照）により、端末＃１が自端末のタスクデータを端末＃２から回収できなくなる恐れのある所定の状況になったとする。
【００１７】
所定の状況は、たとえば、端末＃２が、メモリの容量の不足を検出した状況である。メモリの容量の不足は、たとえば、端末＃２のメモリの容量が端末＃１から送信されるタスクデータの容量よりも小さいときに検出される。
【００１８】
または、所定の状況は、端末＃２が、端末＃２の電池残量の変化を検出した状況（たとえば図４−１，図４−２参照）であってもよい。電池残量の変化は、たとえば電池残量の減少である。電池残量の減少は、たとえば電池残量が閾値以下になることである。
【００１９】
または、所定の状況は、端末＃２が、端末＃１〜＃４の中の端末＃１に対する相対位置の変化を検出した状況（たとえば図３参照）であってもよい。相対位置は、たとえば、各端末の相対的な位置によって決まる端末間の距離である。相対位置の変化は、たとえば相対位置の増加である。相対位置の増加は、たとえば、周期的に相対位置を測定する場合において、前回測定した相対位置に対する、今回測定した相対位置の増加量が閾値以上になることである。
【００２０】
または、所定の状況は、端末＃２が、端末＃１との間の通信速度の変化を検出した状況（たとえば図２参照）であってもよい。通信速度の変化は、たとえば、通信速度の減少である。通信速度の減少は、たとえば、周期的に通信速度を測定する場合において、前回測定した通信速度に対する、今回測定した通信速度の減少量が閾値以上になることである。
【００２１】
または、所定の状況は、端末＃２が、端末＃１との通信の遮断（切断）を検出した状況（たとえば図５−１，図５−２参照）であってもよい。また、通信の遮断は、所定時間以上の通信の遮断とし、所定時間より短い通信の遮断は除外してもよい。なお、端末＃２は、上述した所定の状況のすべてを検出する構成に限らず、上述した所定の状況の少なくともいずれかを検出する構成とすればよい。
【００２２】
所定の状況になった場合に、端末＃２は、端末＃２が有する端末＃１のタスクデータの共有部分を、端末＃１〜＃４の中の端末＃３または端末＃４（第３データ処理装置）に転送（送信）する。たとえば、端末＃２は、端末＃３，＃４のうちの端末＃１との間の通信速度が最も高い端末へ端末＃１のタスクデータを転送する。また、端末＃２は、端末＃１〜＃４の中で、メモリ共有にかかるタスクデータを使用している端末＃１と通信を行っている端末（データ処理装置）へタスクデータを転送してもよい。図１−２に示す例では、端末＃２は、保持している端末＃１のタスクデータを端末＃４へ転送したとする。
【００２３】
端末＃４は、端末＃２から受信した端末＃１のタスクデータを端末＃４のメモリに保持する。また、端末＃４は、端末＃１のタスクデータを保持しており、端末＃１との間でメモリ共有を開始することを通知する共有開始信号を端末＃１へ送信する。これにより、端末＃１は、端末＃２へ送信したタスクデータを端末＃４が保持していることを認識することができる。端末＃１は、端末＃２へ送信したタスクデータに対するアクセスが端末＃１のタスクにおいて発生した場合は、端末＃４と通信を行うことにより、端末＃４のメモリに保持されたタスクデータにアクセスする。
【００２４】
なお、端末＃１は、たとえば端末＃２〜＃４との間の通信速度より、自端末のストレージ（補助メモリ）へのスワップ速度（書き込み速度）の方が高い場合は、データを端末＃２〜＃４へ送信せずに自端末のストレージへスワップしてもよい。このように、通信速度と、タスクデータをストレージに記憶する速度と、の比較結果に基づいてタスクデータの共有部分が他端末へ送信されてもよい。
【００２５】
（端末間で共有される状態テーブル）
図１−３は、端末間で共有される状態テーブルの一例を示す図である。図１−３に示す状態テーブル１３０は、端末＃１〜＃４で共有される情報の一例である。状態テーブル１３０は、端末＃１〜＃４のそれぞれの間における「通信速度」、「相対位置変化傾向」および「通信速度変化傾向」を示している。たとえば、端末＃１〜＃４は、端末＃１〜＃４のうちの他端末と自端末との間の通信速度および相対位置を定期的に測定し、測定結果を互いに送受信することで状態テーブル１３０を共有する。
【００２６】
「相対位置変化傾向」は、相対位置が前回の測定時から増加したか減少したかを示す情報である。たとえば、測定した相対位置が前回の測定時から所定の閾値以上増加した場合は「相対位置変化傾向」は「増加」となる。また、測定した相対位置が前回の測定時から所定の閾値以上減少した場合は「相対位置変化傾向」は「減少」となる。
【００２７】
相対位置は、たとえば端末間の距離である。端末間の距離は、たとえば、他端末および自端末の各位置座標を取得し、取得した各位置座標に基づいて算出することができる。自端末の位置座標は、たとえば、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ：全地球測位システム）によって取得することができる。他端末の位置座標は、たとえば、他端末がＧＰＳによって取得した位置座標を示す情報を他端末から受信することによって取得することができる。
【００２８】
「通信速度変化傾向」は、通信速度が前回の測定時から増加したか減少したかを示す情報である。たとえば、測定した通信速度が前回の測定時から所定の閾値以上増加した場合は「通信速度変化傾向」は「増加」となる。また、測定した通信速度が前回の測定時から所定の閾値以上減少した場合は「通信速度変化傾向」は「減少」となる。
【００２９】
たとえば、端末＃１は、自端末のメモリの不足を検出すると、状態テーブル１３０に基づいて自端末との間の通信速度が最も高い端末をメモリ共有の要求先端末として選択する。たとえば、状態テーブル１３０において「通信速度」のＡ〜ＥのうちのＢが最大である場合は、端末＃１は、自端末のタスクデータを端末＃２へ送信する（たとえば図１−１参照）。このように、端末＃１は、接続している他端末との間の各通信速度を取得し、取得した通信速度に基づいてメモリ共有の要求先端末として選択してもよい。
【００３０】
また、状態テーブル１３０は、通信システム１００における端末同士の接続関係を示している。図１−３に示す状態テーブル１３０は、端末＃１〜＃４が互いに接続していることを示している。
【００３１】
図１−４は、状態テーブルの変化の一例を示す図である。図１−４において、図１−３に示した部分と同様の部分については説明を省略する。たとえば、端末＃１と端末＃２とが互いに離れた場合などは、端末＃１と端末＃２の間の相対位置は増加し、端末＃１と端末＃２の間の通信速度は低下する。したがって、端末＃１〜＃４が共有する状態テーブルは、たとえば図１−４に示す状態テーブル１３０のようになる。具体的には、端末＃１と端末＃２との間の「通信速度変化傾向」は「減少」となる。また、端末＃１と端末＃２との間の「相対位置変化傾向」は「増加」となり、端末＃１と端末＃２との間の通信速度はＢ’（Ｂ’＜Ｂ）となる。
【００３２】
（タスクデータの転送）
図２は、通信速度の減少によるタスクデータの転送を示す図である。図２において、図１−１に示した部分と同様の部分については同一の符号を付して説明を省略する。図２に示すグラフ２００は、端末＃１と端末＃２との間の通信速度の変化の一例を示す図である。グラフ２００において、横軸は時間を示し、縦軸は通信速度を示している。
【００３３】
グラフ２００に示すように、期間Ｔにおける端末＃１と端末＃２との間の通信速度の減少量２０１が閾値を超えたとする。この場合は、図１−４に示したように、状態テーブル１３０において端末＃１と端末＃２との間の「通信速度変化傾向」は「減少」となる。
【００３４】
図３は、相対位置の増加によるタスクデータの転送を示す図である。図３において、図１−１に示した部分と同様の部分については同一の符号を付して説明を省略する。図３に示すグラフ３００は、端末＃１と端末＃２の間の相対位置３０１の変化の一例を示す図である。グラフ３００において、横軸は時間を示し、縦軸は相対位置３０１を示している。
【００３５】
グラフ３００に示すように、期間Ｔにおける端末＃１と端末＃２との間の相対位置３０１の増加量３０２が閾値を超えたとする。この場合は、図１−４に示したように、状態テーブル１３０において端末＃１と端末＃２との間の「相対位置変化傾向」は「増加」となる。
【００３６】
このように、端末＃２は、たとえば、端末＃１と端末＃２との間の通信速度の所定期間における減少量が閾値以上、かつ、端末＃１と端末＃２との間の相対位置３０１（距離）の所定期間における増加量が閾値以上となった場合に端末＃１のタスクデータを他端末へ転送する。これにより、端末＃１と端末＃２との間の通信速度の減少、端末＃１と端末＃２との間の相対位置３０１の増加により端末＃１のタスクデータを端末＃１が回収できなくなることを回避することができる。
【００３７】
図４−１は、電池残量の不足によるタスクデータの転送を示す図（その１）である。図４−１において、図１−１に示した部分と同様の部分については同一の符号を付して説明を省略する。図４−１に示すグラフ４１０は、端末＃２の電池残量４０１と、送信電力４０２と、の一例を示している。送信電力４０２は、端末＃２が端末＃１のタスクデータを他端末（たとえば端末＃１）へ送信する場合に使用されるおよその電力量である。端末＃２は、端末＃１と端末＃２との間のメモリ共有中に、送信電力４０２と電池残量４０１との差分４０３が閾値以下になった場合に端末＃１のタスクデータを端末＃４へ転送する。
【００３８】
たとえば、端末＃２のメモリには、送信するタスクデータの量と、タスクデータの送信に使用される電力量と、の対応情報（たとえば関数やテーブル）が記憶されている。対応情報においては、たとえば、送信するタスクデータの量が多いほど、タスクデータの送信に使用される電力量が大きくなっている。
【００３９】
端末＃２は、保持している端末＃１のタスクデータの量と、対応情報と、に基づいて電力量を導出することによって送信電力４０２を取得することができる。このように、保持している端末＃１のタスクデータの量を用いることで、保持している端末＃１のタスクデータの量が多いほど大きくなる送信電力４０２を取得することができる。
【００４０】
このように、端末＃２は、電池残量４０１と、端末＃２が端末＃１のタスクデータを送信する場合に使用される送信電力４０２と、に基づいて端末＃１のタスクデータを転送する。これにより、端末＃１からのアクセス要求に応じて端末＃１のタスクデータを送信するための電池残量がなくなる前に、端末＃１のタスクデータを他端末へ転送することが可能になる。これにより、端末＃２の電池残量の不足により端末＃１のタスクデータを端末＃１が回収できなくなることを回避することができる。
【００４１】
図４−２は、電池残量の不足によるタスクデータの転送を示す図（その２）である。図４−２において、図４−１に示した部分と同様の部分については同一の符号を付して説明を省略する。図４−２に示すグラフ４２０は、端末＃２の電池残量４０１と、タスク電力４０４と、送信電力４０２と、の一例を示している。タスク電力４０４は、端末＃２が実行中のタスクを完了させる場合に使用されるおよその電力量である。端末＃２は、タスク電力４０４と送信電力４０２の合計と、電池残量４０１と、の差分４０５が閾値以下になった場合に端末＃１のタスクデータを端末＃４へ転送する。
【００４２】
たとえば、端末＃２のメモリには、実行中のタスクによる電力の使用量が記憶されている。端末＃２は、実行中のタスクに対応する電力をメモリから取得することによってタスク電力４０４を取得することができる。
【００４３】
このように、端末＃２は、電池残量４０１と、端末＃２が端末＃１のタスクデータを送信する場合に使用される送信電力４０２と、端末＃２がタスクを完了させる場合に使用されるタスク電力４０４と、に基づいて端末＃１のタスクデータを転送してもよい。これにより、実行中のタスクを完了させるための電池残量を残して端末＃１のタスクデータを他端末へ転送することが可能になる。このため、端末＃１のタスクデータを他端末へ転送した後に、実行中のタスクを完了できなくなることを回避することができる。
【００４４】
図５−１は、通信の切断によるタスクデータの転送を示す図（その１）である。図５−１において、図１−１に示した部分と同様の部分については同一の符号を付して説明を省略する。図５−１に示すグラフ５１０は、端末＃１と端末＃２との間の通信速度の変化の一例を示している。グラフ５１０に示すように、端末＃１と端末＃２との間のメモリ共有中に、時刻ｔにおいて、端末＃１と端末＃２との間の通信が切断されたとする。
【００４５】
端末＃２は、たとえば、端末＃１と端末＃２との間の通信速度に基づいて端末＃１と端末＃２との間の通信の切断を検出することができる。たとえば、端末＃２は、端末＃１と端末＃２との間の通信の切断を検出した場合に端末＃１のタスクデータを端末＃４へ転送する。これにより、端末＃１と端末＃２との間の通信の切断により端末＃１のタスクデータを端末＃１が回収できなくなることを回避することができる。
【００４６】
図５−２は、通信の切断によるタスクデータの転送を示す図（その２）である。図５−２において、図５−１に示した部分と同様の部分については同一の符号を付して説明を省略する。図５−２に示すグラフ５２０は、端末＃１と端末＃２との間の通信速度の変化の一例を示している。グラフ５２０に示すように、端末＃１と端末＃２との間のメモリ共有中に、時刻ｔ１において端末＃１と端末＃２との間の通信が一時的に切断されたとする。
【００４７】
そして、時刻ｔ１の後、期間Ｔの経過時の時刻ｔ２において端末＃１と端末＃２との間の通信が回復したとする。端末＃１と端末＃２との間の通信の一時的な切断は、たとえば端末＃１と端末＃２のいずれかのトンネル通過時など、端末＃１と端末＃２との間に一時的に遮蔽物が存在する場合などに発生する。
【００４８】
たとえば、端末＃２は、端末＃１と端末＃２との間の通信の切断を検出した場合に、所定時間待機し、待機中に端末＃１と端末＃２との間の通信が回復した場合は端末＃１のタスクデータを転送しないようにする。これにより、端末＃１と端末＃２との間の通信が回復する場合は、端末＃１のタスクデータを端末＃４へ転送しなくてもメモリ共有を再開することができる。このため、端末＃４へのタスクデータの転送などの処理の増加を抑えることができる。
【００４９】
また、端末＃２は、所定時間待機しても端末＃１と端末＃２との間の通信が回復しない場合は、図５−１に示したように端末＃１のタスクデータを端末＃４へ転送する。これにより、端末＃１と端末＃２との間の通信の切断により端末＃１のタスクデータを端末＃１が回収できなくなることを回避することができる。
【００５０】
（端末のハードウェア構成）
図６は、端末のハードウェア構成例を示す図である。端末＃１〜＃４のそれぞれは、たとえば図６に示すデータ処理装置６００によって実現することができる。データ処理装置６００は、中央処理装置６０１（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ランダムアクセスメモリ６０２（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、ストレージ６０３と、無線ユニット６０４と、を備えている。また、中央処理装置６０１、ランダムアクセスメモリ６０２、ストレージ６０３および無線ユニット６０４は、バス６２０によってそれぞれ接続されている。
【００５１】
中央処理装置６０１は、データ処理装置６００の全体の制御を司る。ランダムアクセスメモリ６０２は、ブートプログラムなどのプログラムやデータベースなどを記憶している。また、ランダムアクセスメモリ６０２は、中央処理装置６０１のワークエリアとして使用される。ストレージ６０３は、中央処理装置６０１の制御にしたがってデータを記憶する補助メモリである。無線ユニット６０４は、無線の通信回線を通じて他端末との間で通信を行う。無線ユニット６０４は、たとえば無線ＬＡＮアダプタなどである。
【００５２】
（端末の機能的構成）
図７は、端末の機能的構成例を示す図である。端末＃１〜＃４のそれぞれは、たとえば、図７に示すデータベース７１０およびオペレーティングシステム７２０を有する。データベース７１０は、たとえば、図６に示したランダムアクセスメモリ６０２に記憶される。データベース７１０は、状態テーブル１３０（たとえば図１−３，図１−４参照）、自端末の電池残量を示す電池残量情報、自端末のランダムアクセスメモリ６０２に保持している他端末のタスクデータなどを示すメモリ使用情報などを含むデータベースである。
【００５３】
オペレーティングシステム７２０は、たとえば、図６に示した中央処理装置６０１が、ランダムアクセスメモリ６０２をワークエリアとしてプログラムを実行することによって実現される。オペレーティングシステム７２０は、電池残量監視部７２１と、位置情報監視部７２２と、通信監視部７２３と、メモリ管理部７２４と、データ移動決定部７２５と、情報交換部７２６と、の機能を有する。
【００５４】
電池残量監視部７２１、位置情報監視部７２２および通信監視部７２３は、自端末の状態を監視し、監視結果に基づいてデータベース７１０を更新する。具体的には、電池残量監視部７２１は、自端末の電池残量を監視し、監視結果に基づいてデータベース７１０の電池残量情報を更新する電池残量監視ユニットである。
【００５５】
位置情報監視部７２２は、自端末と他端末との間の相対位置を監視し、監視結果に基づいてデータベース７１０の状態テーブル１３０における「相対位置変化傾向」を更新する。通信監視部７２３は、自端末と他端末との間の通信速度を監視し、監視結果に基づいてデータベース７１０の状態テーブル１３０における「通信速度」および「通信速度変化傾向」を更新する。
【００５６】
メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２の容量（メモリ容量）の管理を行うメモリ管理ユニットである。また、メモリ管理部７２４は、情報交換部７２６を介して他端末と通信を行うことで、他端末とのメモリ共有の管理を行う。たとえば、メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２の空き容量が不足する場合に、自端末のタスクデータを他端末に保持するメモリ共有の管理を行う。
【００５７】
具体的には、メモリ管理部７２４は、ランダムアクセスメモリ６０２の不足の検出を行う。そして、メモリ管理部７２４は、ランダムアクセスメモリ６０２の不足を検出すると、メモリ共有の要求先端末（メモリの利用先の他端末）の決定をデータ移動決定部７２５に要求する。メモリ管理部７２４は、要求先端末の決定結果がデータ移動決定部７２５から通知されると、通知結果が示す要求先端末との間でメモリ共有を行う。
【００５８】
具体的には、メモリ管理部７２４は、要求先端末へメモリの提供を要求する提供要求信号を送信し、送信した提供要求信号に対する要求先端末からの応答信号を受信する。そして、メモリ管理部７２４は、メモリを提供可能なことを示す応答信号を受信すると、自端末のタスクデータを要求先端末へ送信する。メモリを提供可能なことを示す応答信号には、提供可能なメモリの容量を示す情報が含まれていてもよい。この場合は、メモリ管理部７２４は、応答信号が示す容量のタスクデータを要求先端末へ送信する。
【００５９】
また、メモリ管理部７２４は、要求先端末へ送信したタスクデータに対するアクセスが発生した場合は、要求先端末と通信を行うことによって要求先端末のメモリのタスクデータにアクセスする。
【００６０】
また、メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２に空き容量があり、他端末からメモリの提供の要求があった場合に他端末のタスクデータを自端末のランダムアクセスメモリ６０２に保持するメモリ共有の管理を行う。具体的には、メモリ管理部７２４は、メモリの提供を要求する提供要求信号を要求元端末から受信する。そして、メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２に空き容量がない場合は、メモリを提供可能でないことを示す応答信号を要求元端末へ送信する。
【００６１】
また、メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２に空き容量があれば、メモリを提供可能なことを示す応答信号を要求元端末へ送信する。メモリを提供可能なことを示す応答信号には、提供可能なメモリの容量を示す情報が含まれていてもよい。また、メモリ管理部７２４は、要求元端末から送信されたタスクデータを受信し、受信したタスクデータを自端末のランダムアクセスメモリ６０２に保持する。
【００６２】
また、メモリ管理部７２４は、メモリ共有の処理に伴って、データベース７１０に含まれるメモリ使用情報を更新する。メモリ使用情報は、自端末のランダムアクセスメモリ６０２に保持している他端末のタスクデータなどを示す情報を含む。また、メモリ使用情報は、自端末のタスクデータを保持している他端末（要求先端末）を示す情報を含む。
【００６３】
また、メモリ管理部７２４は、他端末のタスクデータをさらに別の他端末から受信した場合は、受信したタスクデータの送信元へ、メモリ共有を開始することを通知する共有開始信号を送信する。たとえば、図１−２に示した状態において、端末＃４のメモリ管理部７２４は、端末＃１のタスクデータを端末＃２から受信した場合は、端末＃１へ共有開始信号を送信する。
【００６４】
データ移動決定部７２５は、メモリ共有の要求元端末に対する自端末の相対位置を検出するとともに、メモリ共有の要求元端末との間の通信速度を監視する移動決定ユニットである。データ移動決定部７２５は、メモリ管理部７２４から要求があった場合に、メモリ共有の要求先端末を決定する。メモリ共有の要求先端末の決定は、たとえば、データベース７１０に含まれる状態テーブル１３０が示す「通信速度」などに基づいて行うことができる。また、データ移動決定部７２５は、自端末における状態の変化により、他端末から受信して保持しているタスクデータを送信元に送信することができなくなる恐れのある状況となった場合に、保持しているタスクデータを他端末へ転送する。
【００６５】
たとえば、データ移動決定部７２５は、データベース７１０に含まれる状態テーブル１３０の「相対位置変化傾向」や「通信速度変化傾向」などに基づいて、他端末のタスクデータの別の他端末への転送の決定を行う。また、データ移動決定部７２５は、データベース７１０に含まれる電池残量情報などに基づいて、他端末のタスクデータの別の他端末への転送の決定を行ってもよい。
【００６６】
また、データ移動決定部７２５は、他端末のタスクデータを別の他端末へ転送すると決定した場合に、転送先の他端末を、たとえば、状態テーブル１３０の「通信速度」などに基づいて決定する。また、データ移動決定部７２５は、他端末のタスクデータを別の他端末へ転送すると決定した場合に、メモリ管理部７２４に対して他端末のタスクデータの別の他端末への転送を要求する。
【００６７】
情報交換部７２６は、メモリ管理部７２４と他端末との間の通信を中継する。具体的には、情報交換部７２６は、メモリ管理部７２４と他端末との間で送受信される提供要求信号、応答信号、タスクデータおよび共有開始信号などを中継する。
【００６８】
また、情報交換部７２６は、データベース７１０の状態テーブル１３０を監視し、状態テーブル１３０の内容が更新された場合に更新内容を他端末へ送信する。また、情報交換部７２６は、他端末の状態テーブル１３０の更新内容を他端末から受信し、受信した更新内容に基づいて自端末の状態テーブル１３０を更新する。情報交換部７２６による他端末との通信は、たとえば図６に示した無線ユニット６０４によって行われる。
【００６９】
（オペレーティングシステムによる処理）
図８−１，図８−２は、オペレーティングシステムによる処理の一例を示すフローチャートである。たとえば端末＃１のオペレーティングシステム７２０は、たとえば図８−１，図８−２に示す各ステップを繰り返し実行する。ここでは端末＃１による処理を説明するが、端末＃２〜＃４による処理も同様である。
【００７０】
図８−１に示すように、まず、通信監視部７２３が、自端末（端末＃１）と他端末（端末＃２〜＃４）との間の通信速度を取得する（ステップＳ８０１）。つぎに、位置情報監視部７２２が、自端末と他端末との間の相対位置を取得する（ステップＳ８０２）。
【００７１】
つぎに、メモリ管理部７２４が、自端末のメモリ不足（ランダムアクセスメモリ６０２の容量不足）を検出したか否かを判断する（ステップＳ８０３）。メモリ不足を検出した場合（ステップＳ８０３：Ｙｅｓ）は、メモリ管理部７２４が、他端末のタスクデータを自端末のランダムアクセスメモリ６０２に保持しているか否かを判断する（ステップＳ８０４）。ステップＳ８０４の判断は、たとえばデータベース７１０のメモリ使用情報に基づいて行うことができる。
【００７２】
ステップＳ８０４において、他端末のタスクデータを保持していない場合（ステップＳ８０４：Ｎｏ）は、端末＃１は、自端末のタスクデータを自端末のストレージ６０３または他端末へスワップする処理を行い（ステップＳ８０５）、一連の処理を終了する。自端末のタスクデータをスワップする処理については後述する（たとえば図９参照）。
【００７３】
ステップＳ８０４において、他端末のタスクデータを保持している場合（ステップＳ８０４：Ｙｅｓ）は、端末＃１は、保持している他端末のタスクデータを別の他端末へ転送する処理を行い（ステップＳ８０６）、一連の処理を終了する。メモリ不足時に他端末のタスクデータを別の他端末へ転送する処理については後述する（たとえば図１０参照）。
【００７４】
ステップＳ８０３において、自端末のメモリ不足を検出していない場合（ステップＳ８０３：Ｎｏ）は、端末＃１は、ステップＳ８０７へ移行する。すなわち、情報交換部７２６が、ステップＳ８０１，Ｓ８０２によって取得された通信速度および相対位置の少なくとも一方が前回の測定時から変化したか否かを判断する（ステップＳ８０７）。ステップＳ８０７の判断は、たとえば状態テーブル１３０に基づいて行うことができる（たとえば図２，図３参照）。
【００７５】
ステップＳ８０７において、通信速度および相対位置の少なくとも一方が変化した場合（ステップＳ８０７：Ｙｅｓ）は、他端末へ更新情報を送信する（ステップＳ８０８）。これにより、自端末によって検出した通信速度および相対位置の少なくとも一方の変化を他端末の状態テーブル１３０に反映させることができる。つぎに、端末＃１は、ステップＳ８１１へ移行する。
【００７６】
ステップＳ８０７において、通信速度および相対位置のいずれも変化していない場合（ステップＳ８０７：Ｎｏ）は、データ移動決定部７２５が、他端末から更新情報を受信したか否かを判断する（ステップＳ８０９）。他端末から更新情報を受信した場合（ステップＳ８０９：Ｙｅｓ）は、受信した更新情報を、受信した更新情報を受信していない別の他端末へ送信する（ステップＳ８１０）。これにより、他端末から受信した更新情報の内容を別の他端末の状態テーブル１３０に反映させることができる。つぎに、端末＃１は、端末間の状態変化時の処理を行い（ステップＳ８１１）、一連の処理を終了する。端末間の状態変化時の処理については後述する（たとえば図１１参照）。
【００７７】
ステップＳ８０９において、他端末から更新情報を受信していない場合（ステップＳ８０９：Ｎｏ）は、端末＃１は、図８−２に示す各ステップへ移行する（符号Ａ）。すなわち、メモリ管理部７２４が、他端末からの提供要求信号を受信したか否かを判断する（ステップＳ８１２）。他端末からの提供要求信号を受信した場合（ステップＳ８１２：Ｙｅｓ）は、メモリ管理部７２４が、受信した提供要求信号に対する応答処理を行い（ステップＳ８１３）、一連の処理を終了する。提供要求信号に対する応答処理については後述する（たとえば図１２参照）。
【００７８】
ステップＳ８１２において、他端末からの提供要求信号を受信していない場合（ステップＳ８１２：Ｎｏ）は、データ移動決定部７２５が、電池残量が減少したか否かを判断する（ステップＳ８１４）。ステップＳ８１４の判断は、たとえばデータベース７１０の電池残量情報に基づいて行うことができる（たとえば図４−１，図４−２参照）。電池残量が減少した場合（ステップＳ８１４：Ｙｅｓ）は、端末＃１は、電池残量減少時の処理を行い（ステップＳ８１５）、一連の処理を終了する。電池残量減少時の処理については後述する（たとえば図１３参照）。
【００７９】
ステップＳ８１４において、電池残量が減少していない場合（ステップＳ８１４：Ｎｏ）は、メモリ管理部７２４が、他端末から共有開始通知信号を受信したか否かを判断する（ステップＳ８１６）。他端末から共有開始通知信号を受信した場合（ステップＳ８１６：Ｙｅｓ）は、メモリ管理部７２４が、データベース７１０のメモリ使用情報を更新し（ステップＳ８１７）、一連の処理を終了する。
【００８０】
ステップＳ８１６において、他端末から共有開始通知信号を受信していない場合（ステップＳ８１６：Ｎｏ）は、メモリ管理部７２４が、自端末のタスクにおいて、自端末のタスクデータに対するアクセスが発生したか否かを判断する（ステップＳ８１８）。自端末のタスクデータには、自端末のランダムアクセスメモリ６０２に保持しているタスクデータだけでなく、他端末に送信しメモリ共有しているタスクデータも含まれる。
【００８１】
ステップＳ８１８において、自端末のタスクデータに対するアクセスが発生した場合（ステップＳ８１８：Ｙｅｓ）は、端末＃１は、アクセス発生時の処理を行い（ステップＳ８１９）、一連の処理を終了する。アクセス発生時の処理については後述する（たとえば図１４参照）。自端末のタスクデータに対するアクセスが発生していない場合（ステップＳ８１８：Ｎｏ）は、データ移動決定部７２５が、他端末との間の通信の切断を検出したか否かを判断する（ステップＳ８２０）。ステップＳ８２０による判断は、たとえば状態テーブル１３０に基づいて行うことができる（たとえば図５−１，図５−２参照）。
【００８２】
ステップＳ８２０において、他端末との間の通信の切断を検出した場合（ステップＳ８２０：Ｙｅｓ）は、端末＃１は、切断検出時の処理を行い（ステップＳ８２１）、一連の処理を終了する。切断検出時の処理については後述する（たとえば図１５参照）。他端末との間の通信の切断を検出していない場合（ステップＳ８２０：Ｎｏ）は、端末＃１は、一連の処理を終了する。
【００８３】
以上の各ステップにより、端末＃１〜＃４のそれぞれは、状況に応じて、自端末のタスクデータを他端末に保持させたり、他端末のタスクデータを自端末に保持したり、他端末のタスクデータを別の他端末に転送したりすることができる。
【００８４】
（自端末のタスクデータをスワップする処理）
図９は、自端末のタスクデータをスワップする処理の一例を示す図である。図８−１に示したステップＳ８０５において、端末＃１のオペレーティングシステム７２０は、たとえば図９に示す各ステップを実行する。まず、メモリ管理部７２４が、自端末（端末＃１）と他端末（端末＃２〜＃４）との通信速度が、自端末のストレージ６０３へのタスクデータのスワップ速度（書き込み速度）より高いか否かを判断する（ステップＳ９０１）。
【００８５】
自端末と他端末との通信速度は、たとえばデータベース７１０の状態テーブル１３０に含まれる通信速度のうちの最高の通信速度である。自端末のストレージ６０３へのスワップ速度は、たとえばストレージ６０３などにあらかじめ記憶された固定値である。
【００８６】
ステップＳ９０１において、他端末との通信速度がスワップ速度以下である場合（ステップＳ９０１：Ｎｏ）は、メモリ管理部７２４が、自端末のストレージ６０３に自端末のタスクデータをスワップさせ（ステップＳ９０２）、一連の処理を終了する。他端末との通信速度がスワップ速度より高い場合（ステップＳ９０１：Ｙｅｓ）は、メモリ管理部７２４が、他端末へ提供要求信号を送信する（ステップＳ９０３）。
【００８７】
ステップＳ９０３において、メモリ管理部７２４は、データ移動決定部７２５へメモリの利用先の他端末の決定をデータ移動決定部７２５に要求し、要求に対して決定された他端末へ提供要求信号を送信する。提供要求信号の初回の送信先の他端末（要求先端末）は、たとえば、端末＃２〜＃４のうちの端末＃１との通信速度が最も高い端末とする。
【００８８】
つぎに、メモリ管理部７２４が、ステップＳ９０３によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する（ステップＳ９０４）。メモリを提供可能なことを示す応答信号を受信した場合（ステップＳ９０４：Ｙｅｓ）は、メモリ管理部７２４は、自端末のタスクデータを要求先端末へ送信する（ステップＳ９０５）。これにより、端末＃１は、自端末のタスクデータを要求先端末へスワップすることができる。
【００８９】
つぎに、メモリ管理部７２４が、タスクデータをスワップしたことによってメモリ不足が解消したか否かを判断する（ステップＳ９０６）。メモリ不足が解消したか否かは、たとえば、自端末のランダムアクセスメモリ６０２の空き容量が閾値以上になったか否かに基づいて判断することができる。メモリ不足が解消した場合（ステップＳ９０６：Ｙｅｓ）は、端末＃１は、一連の処理を終了する。メモリ不足が解消していない場合（ステップＳ９０６：Ｎｏ）は、ステップＳ９０７へ移行する。
【００９０】
ステップＳ９０４において、許可する旨の応答信号を受信しなかった場合（ステップＳ９０４：Ｎｏ）は、データ移動決定部７２５が、自端末との通信速度がスワップ速度より高い別の他端末が存在するか否かを判断する（ステップＳ９０７）。ステップＳ９０７の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【００９１】
ステップＳ９０７において、自端末との通信速度がスワップ速度より高い別の他端末が存在しない場合（ステップＳ９０７：Ｎｏ）は、端末＃１は、ステップＳ９０２へ移行し、自端末に残っているタスクデータを自端末のストレージ６０３にスワップする。自端末との通信速度がスワップ速度より高い別の他端末が存在する場合（ステップＳ９０７：Ｙｅｓ）は、端末＃１は、ステップＳ９０３へ戻る。この場合は、メモリ管理部７２４が、自端末との通信速度がスワップ速度より高い別の他端末へ提供要求信号を送信する。
【００９２】
以上の各ステップにより、端末＃１は、自端末のタスクデータを自端末のストレージ６０３または他端末にスワップすることができる。これにより、自端末のランダムアクセスメモリ６０２の空き容量を増加させることができる。
【００９３】
（メモリ不足時に他端末のタスクデータを別の他端末へ転送する処理）
図１０は、メモリ不足時に他端末のタスクデータを別の他端末へ転送する処理の一例を示すフローチャートである。図８−１に示したステップＳ８０６において、端末＃１のオペレーティングシステム７２０は、たとえば図１０に示す各ステップを実行する。まず、メモリ管理部７２４が、保持しているタスクデータにかかるメモリ共有の要求元端末と接続している他端末が存在するか否かを判断する（ステップＳ１００１）。ステップＳ１００１の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【００９４】
ステップＳ１００１において、要求元端末と接続している他端末が存在しない場合（ステップＳ１００１：Ｎｏ）は、メモリ管理部７２４が、保持しているタスクデータを要求元端末へ送信し（ステップＳ１００２）、一連の処理を終了する。これにより、要求元端末のタスクデータを返却し、自端末のランダムアクセスメモリ６０２の空き容量を増加させることができる。
【００９５】
ステップＳ１００１において、要求元端末と接続している他端末が存在する場合（ステップＳ１００１：Ｙｅｓ）は、メモリ管理部７２４が、要求元端末と接続している別の他端末（要求先端末）へ提供要求信号を送信する（ステップＳ１００３）。つぎに、メモリ管理部７２４が、ステップＳ１００３によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する（ステップＳ１００４）。
【００９６】
ステップＳ１００４において、メモリを提供可能なことを示す応答信号を受信した場合（ステップＳ１００４：Ｙｅｓ）は、メモリ管理部７２４が、自端末が保持している他端末のタスクデータを、ステップＳ１００３によって提供要求信号を送信した要求先端末へ転送する（ステップＳ１００５）。これにより、端末＃１は、他端末のタスクデータを別の他端末へスワップすることができる。
【００９７】
つぎに、メモリ管理部７２４が、ステップＳ１００５によってタスクデータをスワップしたことによってメモリ不足が解消したか否かを判断する（ステップＳ１００６）。メモリ不足が解消した場合（ステップＳ１００６：Ｙｅｓ）は、端末＃１は、一連の処理を終了する。メモリ不足が解消していない場合（ステップＳ１００６：Ｎｏ）は、端末＃１は、ステップＳ１００７へ移行する。
【００９８】
ステップＳ１００４において、メモリを提供可能なことを示す応答信号を受信しなかった場合（ステップＳ１００４：Ｎｏ）は、データ移動決定部７２５が、要求元端末と接続している別の他端末が存在するか否かを判断する（ステップＳ１００７）。ステップＳ１００７の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【００９９】
ステップＳ１００７において、要求元端末と接続している別の他端末が存在しない場合（ステップＳ１００７：Ｎｏ）は、端末＃１は、ステップＳ１００２へ移行し、保持しているタスクデータを要求元端末へ返却する。要求元端末と接続している別の他端末が存在する場合（ステップＳ１００７：Ｙｅｓ）は、端末＃１は、ステップＳ１００３へ戻る。この場合は、メモリ管理部７２４が、要求元端末と接続している別の他端末へ提供要求信号を送信する。
【０１００】
以上の各ステップにより、端末＃１は、メモリ不足時に他端末のタスクデータを別の他端末へ転送することができる。これにより、端末＃１〜＃４においてメモリの使用量を更に分散し、各端末におけるメモリ不足を抑えることができる。また、タスクデータを転送する他端末が存在しない場合は、端末＃１は、タスクデータをメモリ共有の要求元端末へ返却することができる。
【０１０１】
（端末間の状態変化時の処理）
図１１は、端末間の状態変化時の処理の一例を示すフローチャートである。図８−１に示したステップＳ８１１において、端末＃１のオペレーティングシステム７２０は、たとえば図１１に示す各ステップを実行する。まず、データ移動決定部７２５が、他端末のタスクデータを自端末のランダムアクセスメモリ６０２に保持しているか否かを判断する（ステップＳ１１０１）。ステップＳ１１０１の判断は、たとえばデータベース７１０のメモリ使用情報に基づいて行うことができる。
【０１０２】
ステップＳ１１０１において、他端末のタスクデータを保持していない場合（ステップＳ１１０１：Ｎｏ）は、端末＃１は、一連の処理を終了する。他端末のタスクデータを保持している場合（ステップＳ１１０１：Ｙｅｓ）は、端末＃１は、ステップＳ１１０２へ移行する。すなわち、データ移動決定部７２５が、保持しているタスクデータにかかるメモリ共有の要求元端末との相対位置が増加傾向であり、かつ要求元端末との通信速度が減少傾向であるか否かを判断する（ステップＳ１１０２）。ステップＳ１１０２の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【０１０３】
ステップＳ１１０２において、メモリ共有の要求元端末との相対位置が増加傾向でなく、または要求元端末との通信速度が減少傾向でない場合（ステップＳ１１０２：Ｎｏ）は、端末＃１は、一連の処理を終了する。要求元端末との相対位置が増加傾向であり、かつ要求元端末との通信速度が減少傾向である場合（ステップＳ１１０２：Ｙｅｓ）は、データ移動決定部７２５が、要求元端末と接続している他端末が存在するか否かを判断する（ステップＳ１１０３）。ステップＳ１１０３の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【０１０４】
ステップＳ１１０３において、要求元端末と接続している他端末が存在しない場合（ステップＳ１１０３：Ｎｏ）は、端末＃１は、一連の処理を終了する。要求元端末と接続している他端末が存在する場合（ステップＳ１１０３：Ｙｅｓ）は、端末＃１は、ステップＳ１１０４へ移行する。すなわち、データ移動決定部７２５が、要求元端末と接続している他端末と要求元端末との間の通信速度が、自端末と要求元端末との間の通信速度より速いか否かを判断する（ステップＳ１１０４）。ステップＳ１１０４の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【０１０５】
ステップＳ１１０４において、自端末との間の通信速度より速くない場合（ステップＳ１１０４：Ｎｏ）は、データ移動決定部７２５が、ステップＳ１１０３へ戻り、要求元端末と接続している別の他端末が存在するか否かを判断する。自端末との間の通信速度より速い場合（ステップＳ１１０４：Ｙｅｓ）は、メモリ管理部７２４が、要求元端末と接続している他端末へ提供要求信号を送信する（ステップＳ１１０５）。
【０１０６】
つぎに、メモリ管理部７２４が、ステップＳ１１０５によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する（ステップＳ１１０６）。メモリを提供可能なことを示す応答信号を受信していない場合（ステップＳ１１０６：Ｎｏ）は、データ移動決定部７２５が、ステップＳ１１０３へ戻り、要求元端末と接続している別の他端末が存在するか否かを判断する。
【０１０７】
ステップＳ１１０６において、メモリを提供可能なことを示す応答信号を受信した場合（ステップＳ１１０６：Ｙｅｓ）は、メモリ管理部７２４が、自端末が保持しているタスクデータを、提供要求信号を送信した他端末へ送信し（ステップＳ１１０７）、一連の処理を終了する。これにより、端末＃１は、他端末のタスクデータを別の他端末へスワップすることができる。
【０１０８】
以上の各ステップにより、端末＃１は、メモリ共有の要求元端末との間の通信状態が悪化した場合に、要求元端末のタスクデータを、要求元端末と接続している別の他端末へ転送することができる。これにより、メモリ共有の要求元端末がタスクデータを回収できなくなることを回避することができる。
【０１０９】
（提供要求信号に対する応答処理）
図１２は、提供要求信号に対する応答処理の一例を示すフローチャートである。図８−２に示したステップＳ８１３において、端末＃１のオペレーティングシステム７２０は、たとえば図１２に示す各ステップを実行する。まず、メモリ管理部７２４が、自端末のメモリ（ランダムアクセスメモリ６０２）の提供が可能か否かを判断する（ステップＳ１２０１）。ステップＳ１２０１の判断は、たとえばデータベース７１０のメモリ使用情報や電池残量情報などに基づいて行うことができる。
【０１１０】
たとえば、メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２の空き容量および自端末の電池残量が閾値より高い場合は自端末のメモリの提供が可能であると判断する。また、メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２の空き容量が閾値以下である場合や、自端末の電池残量が閾値以下である場合は自端末のメモリの提供が可能でないと判断する。
【０１１１】
ステップＳ１２０１において、自端末のメモリの提供が可能でない場合（ステップＳ１２０１：Ｎｏ）は、メモリ管理部７２４が、自端末のメモリを提供可能でないことを示す応答信号を要求元端末へ送信し（ステップＳ１２０２）、一連の処理を終了する。要求元端末は、提供要求信号の送信元の他端末である。
【０１１２】
ステップＳ１２０１において、自端末のメモリの提供が可能である場合（ステップＳ１２０１：Ｙｅｓ）は、メモリ管理部７２４は、自端末のメモリを提供可能なことを示す応答信号を要求元端末へ送信する（ステップＳ１２０３）。ステップＳ１２０３によって送信される応答信号には、提供可能なメモリの容量を示す情報が含まれていてもよい。
【０１１３】
つぎに、メモリ管理部７２４が、要求元端末からタスクデータを受信する（ステップＳ１２０４）。つぎに、メモリ管理部７２４が、メモリ共有の開始を通知する共有開始信号を要求元端末へ送信し（ステップＳ１２０５）、一連の処理を終了する。
【０１１４】
以上の各ステップにより、端末＃１は、他端末からの提供要求信号を受信した場合に、自端末のランダムアクセスメモリ６０２を提供可能であれば要求元端末との間でメモリ共有を開始することができる。
【０１１５】
（電池残量減少時の処理）
図１３は、電池残量減少時の処理の一例を示すフローチャートである。図８−２に示したステップＳ８１５において、端末＃１のオペレーティングシステム７２０は、たとえば図１３に示す各ステップを実行する。まず、メモリ管理部７２４が、他端末のタスクデータを自端末のランダムアクセスメモリ６０２に保持しているか否かを判断する（ステップＳ１３０１）。ステップＳ１３０１の判断は、たとえばデータベース７１０のメモリ使用情報に基づいて行うことができる。
【０１１６】
ステップＳ１３０１において、他端末のタスクデータを保持していない場合（ステップＳ１３０１：Ｎｏ）は、端末＃１は、一連の処理を終了する。他端末のタスクデータを保持している場合（ステップＳ１３０１：Ｙｅｓ）は、データ移動決定部７２５が、要求元端末と接続している他端末が存在するか否かを判断する（ステップＳ１３０２）。ステップＳ１３０２の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【０１１７】
ステップＳ１３０２において、要求元端末と接続している他端末が存在しない場合（ステップＳ１３０２：Ｎｏ）は、端末＃１は、一連の処理を終了する。要求元端末と接続している他端末が存在する場合（ステップＳ１３０２：Ｙｅｓ）は、メモリ管理部７２４が、要求元端末と接続している他端末へ提供要求信号を送信する（ステップＳ１３０３）。
【０１１８】
つぎに、メモリ管理部７２４が、ステップＳ１３０３によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する（ステップＳ１３０４）。メモリを提供可能なことを示す応答信号を受信していない場合（ステップＳ１３０４：Ｎｏ）は、データ移動決定部７２５が、ステップＳ１３０２へ戻り、要求元端末と接続している別の他端末が存在するか否かを判断する。
【０１１９】
ステップＳ１３０４において、メモリを提供可能なことを示す応答信号を受信した場合（ステップＳ１３０４：Ｙｅｓ）は、メモリ管理部７２４が、保持しているタスクデータを要求先端末へ送信し（ステップＳ１３０５）、一連の処理を終了する。タスクデータの送信先の要求先端末は、提供要求信号の送信先の他端末である。
【０１２０】
以上の各ステップにより、端末＃１は、電池残量減少時に、要求元端末のタスクデータを、要求元端末と接続している別の他端末へ転送することができる。これにより、メモリ共有の要求元端末がタスクデータを回収できなくなることを回避することができる。
【０１２１】
（アクセス発生時の処理）
図１４は、アクセス発生時の処理の一例を示すフローチャートである。図８−２に示したステップＳ８１９において、端末＃１のオペレーティングシステム７２０は、たとえば図１４に示す各ステップを実行する。まず、メモリ管理部７２４が、アクセス対象のタスクデータを自端末が保持しているか否かを判断する（ステップＳ１４０１）。ステップＳ１４０１の判断は、たとえばデータベース７１０のメモリ使用情報に基づいて行うことができる。タスクデータを自端末が保持している場合（ステップＳ１４０１：Ｙｅｓ）は、端末＃１は、自端末が保持しているタスクデータにアクセスし（ステップＳ１４０２）、一連の処理を終了する。
【０１２２】
ステップＳ１４０１において、タスクデータを自端末が保持していない場合（ステップＳ１４０１：Ｎｏ）は、メモリ管理部７２４が、タスクデータを保持している他端末（メモリ共有の要求先端末）のメモリにアクセス可能か否かを判断する（ステップＳ１４０３）。タスクデータを保持している他端末は、たとえばデータベース７１０のメモリ使用情報に基づいて特定することができる。タスクデータを保持している他端末のメモリにアクセス可能である場合（ステップＳ１４０３：Ｙｅｓ）は、端末＃１は、他端末のメモリのタスクデータにアクセスし（ステップＳ１４０４）、一連の処理を終了する。
【０１２３】
ステップＳ１４０３において、他端末のメモリにアクセス可能でない場合（ステップＳ１４０３：Ｎｏ）は、端末＃１は、所定時間待機する（ステップＳ１４０５）。つぎに、メモリ管理部７２４が、タスクデータを保持している他端末のメモリにアクセス可能か否かを再度判断する（ステップＳ１４０６）。
【０１２４】
ステップＳ１４０６において、他端末のメモリにアクセス可能である場合（ステップＳ１４０６：Ｙｅｓ）は、端末＃１は、ステップＳ１４０４へ移行する。他端末のメモリにアクセス可能でない場合（ステップＳ１４０６：Ｎｏ）は、端末＃１は、タスクデータへのアクセスにかかるタスクの処理を初期状態から開始し（ステップＳ１４０７）、一連の処理を終了する。この場合は、端末＃１は、他端末へのアクセスが可能になった後に、他端末が保持している自端末のタスクデータを破棄させ、メモリ共有を終了する処理を行ってもよい。
【０１２５】
以上の各ステップにより、端末＃１は、自端末のタスクデータへのアクセス発生時に、自端末または他端末に保持されているタスクデータにアクセスすることができる。また、自端末のタスクデータを保持している他端末にアクセスできない場合は、一定時間待機して再度アクセスを試み、アクセスが可能になった場合は他端末のタスクデータにアクセスする。これにより、自端末のタスクデータを保持している他端末に一時的にアクセスできない状態になっても、他端末が保持しているタスクデータにアクセス可能になる。
【０１２６】
（切断検出時の処理）
図１５は、切断検出時の処理の一例を示すフローチャートである。図８−２に示したステップＳ８２１において、端末＃１のオペレーティングシステム７２０は、たとえば図１５に示す各ステップを実行する。まず、メモリ管理部７２４が、通信が切断された他端末のタスクデータを保持しているか否かを判断する（ステップＳ１５０１）。ステップＳ１５０１の判断は、たとえばデータベース７１０のメモリ使用情報に基づいて行うことができる。通信が切断された他端末のタスクデータを保持していない場合（ステップＳ１５０１：Ｎｏ）は、端末＃１は、一連の処理を終了する。
【０１２７】
ステップＳ１５０１において、通信が切断された他端末（要求元端末）のタスクデータを保持している場合（ステップＳ１５０１：Ｙｅｓ）は、端末＃１は、所定時間待機する（ステップＳ１５０２）。つぎに、データ移動決定部７２５が、切断された通信が回復したか否かを判断する（ステップＳ１５０３）。切断された通信が回復した場合（ステップＳ１５０３：Ｙｅｓ）は、端末＃１は、一連の処理を終了する。
【０１２８】
ステップＳ１５０３において、切断された通信が回復していない場合（ステップＳ１５０３：Ｎｏ）は、データ移動決定部７２５が、要求元端末と接続している他端末が存在するか否かを判断する（ステップＳ１５０４）。ステップＳ１５０４の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【０１２９】
ステップＳ１５０４において、要求元端末と接続している他端末が存在しない場合（ステップＳ１５０４：Ｎｏ）は、端末＃１は、一連の処理を終了する。要求元端末と接続している他端末が存在する場合（ステップＳ１５０４：Ｙｅｓ）は、メモリ管理部７２４が、要求元端末と接続している他端末へ提供要求信号を送信する（ステップＳ１５０５）。
【０１３０】
つぎに、メモリ管理部７２４が、ステップＳ１５０５によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する（ステップＳ１５０６）。メモリを提供可能なことを示す応答信号を受信していない場合（ステップＳ１５０６：Ｎｏ）は、データ移動決定部７２５が、ステップＳ１５０４へ戻り、要求元端末と接続している別の他端末が存在するか否かを判断する。
【０１３１】
ステップＳ１５０６において、メモリを提供可能なことを示す応答信号を受信した場合（ステップＳ１５０６：Ｙｅｓ）は、メモリ管理部７２４が、保持しているタスクデータを他端末へ送信し（ステップＳ１５０７）、一連の処理を終了する。タスクデータの送信先は、提供要求信号の送信先の他端末である。
【０１３２】
以上の各ステップにより、端末＃１は、メモリ共有の要求元端末との通信切断時に、要求元端末のタスクデータを、要求元端末と接続している別の他端末へ転送することができる。これにより、メモリ共有の要求元端末がタスクデータを回収できなくなることを回避することができる。また、端末＃１は、メモリ共有の要求元端末との通信が切断しても、切断された通信が所定時間内に回復した場合はタスクデータを転送しない。これにより、タスクデータの転送などの処理の増加を抑えることができる。
【０１３３】
以上説明したように、データ共有方法およびデータ処理システムによれば、メモリ共有により預かったデータを返送できなくなることを回避するために、自端末の状態や通信環境の変化の検出結果に基づいて、預かったデータを他の端末に転送することができる。これにより、自端末の状態や通信環境が時々刻々と変化する無線端末間においても、メモリ共有による処理を安定させることができる。
【符号の説明】
【０１３４】
１００  通信システム
１３０  状態テーブル
２０１  減少量
３０１  相対位置
３０２  増加量
４０１  電池残量
４０２  送信電力
４０３，４０５  差分
４０４  タスク電力
６００  データ処理装置
６２０  バス
【図１−１】
2012164695.tif 000003
【図１−２】
2012164695.tif 000004
【図１−３】
2012164695.tif 000005
【図１−４】
2012164695.tif 000006
【図２】
2012164695.tif 000007
【図３】
2012164695.tif 000008
【図４−１】
2012164695.tif 000009
【図４−２】
2012164695.tif 000010
【図５−１】
2012164695.tif 000011
【図５−２】
2012164695.tif 000012
【図６】
2012164695.tif 000013
【図７】
2012164695.tif 000014
【図８−１】
2012164695.tif 000015
【図８−２】
2012164695.tif 000016
【図９】
2012164695.tif 000017
【図１０】
2012164695.tif 000018
【図１１】
2012164695.tif 000019
【図１２】
2012164695.tif 000020
【図１３】
2012164695.tif 000021
【図１４】
2012164695.tif 000022
【図１５】
2012164695.tif 000023
【手続補正書】
【提出日】平成25年11月21日(2013.11.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを共有する複数のデータ処理装置の中の第１データ処理装置が、メモリの容量の不足、電池残量の変化、前記複数のデータ処理装置の中の第２データ処理装置に対する相対位置の変化、前記第２データ処理装置との間の通信速度の変化、または前記第２データ処理装置との通信の遮断を検出するときに、前記第１データ処理装置が有する前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信すること
を特徴とするデータ共有方法。
【請求項２】
前記電池残量の減少、前記相対位置の増加およびまたは通信速度の減少を検出するときに、前記データの共有部分が他のデータ処理装置に送信されること
を特徴とする請求項１に記載のデータ共有方法。
【請求項３】
前記メモリの容量が前記第２データ処理装置から送信されるデータの容量よりも小さいときに前記メモリの容量の不足が検出され、
前記通信速度と前記データをストレージに記憶する速度との比較結果に基づいて前記データの共有部分が前記第３データ処理装置に送信されること
を特徴とする請求項１または請求項２に記載のデータ共有方法。
【請求項４】
前記第１データ処理装置は、前記第１データ処理装置以外の前記複数のデータ処理装置の中で前記第２データ処理装置との通信速度が最も大きい第３データ処理装置に、前記データの共有部分を送信すること
を特徴とする請求項１、請求項２または請求項３に記載のデータ共有方法。
【請求項５】
前記第３データ処理装置は、前記複数のデータ処理装置の中で前記データの共有部分を使用しているデータ処理装置と通信を行っているデータ処理装置であること
を特徴とする請求項１、請求項２または請求項３に記載のデータ共有方法。
【請求項６】
前記通信の遮断を検出するとき、所定期間経過後に前記第２データ処理装置と通信を行う第４データ処理装置に前記データの共有部分を送信すること
を特徴とする請求項１乃至請求項５の何れか一に記載のデータ共有方法。
【請求項７】
複数のデータ処理装置で共有するデータを格納するメモリと、
メモリ容量を管理するメモリ管理ユニットと、
電池残量を監視する電池残量監視ユニットと、
前記複数のデータ処理装置の中の第２データ処理装置に対する相対位置を検出するとともに前記第２データ処理装置との間の通信速度を監視する移動決定ユニットと、
を含み、
前記メモリ管理ユニットがメモリの容量の不足を検出するときに、前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信すること
を特徴とするデータ処理システム。
【請求項８】
前記電池残量監視ユニットが前記電池残量の減少を検出するときに、前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信すること
を特徴とする請求項７に記載のデータ処理システム。
【請求項９】
前記移動決定ユニットが前記相対位置の増加または前記通信速度の減少を検出するときに、前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信すること
を特徴とする請求項７または請求項８に記載のデータ処理システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ共有方法およびデータ処理システムに関する。
【背景技術】
【０００２】
たとえば大規模並列計算機の分野では、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ：構内通信網）などのネットワークに繋がるコンピュータ間でメモリリソースを共有するシステムが考案されている（たとえば、下記特許文献１参照。）。有線のネットワークで接続された複数の計算機でメモリリソースを共有する場合は、端末数や端末間の通信速度はほとんど変化しない。
【０００３】
また、無線のネットワークで接続された携帯電話などの端末においては、搭載されるメモリリソースが限定される。このため、業務系アプリなどを利用する場合にメモリ容量が不足する状況が考えられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−１５７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、無線のネットワークで接続された端末間でメモリ共有を行うと、通信が不安定であるため、他端末に預けているデータにアクセスする際に、データの預け先の他端末と通信できず、データを回収できなくなることが考えられる。このため、他端末に預けたデータの処理が中断されるなど、処理が不安定になるという問題がある。
【０００６】
本発明は、上述した従来技術による問題点を解消するため、メモリ共有による処理を安定させることができるデータ共有方法およびデータ処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、データを共有する複数のデータ処理装置の中の第１データ処理装置が、メモリの容量の不足、電池残量の変化、前記複数のデータ処理装置の中の第２データ処理装置に対する相対位置の変化、前記第２データ処理装置との間の通信速度の変化、または前記第２データ処理装置との通信の遮断を検出するときに、前記第１データ処理装置が有する前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信するデータ共有方法およびデータ処理システムが提案される。
【発明の効果】
【０００８】
本発明の一側面によれば、メモリ共有による処理を安定させることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１−１】図１−１は、実施の形態にかかる通信システムの例を示す図である。
【図１−２】図１−２は、メモリ提供側の端末によるタスクデータの転送を示す図である。
【図１−３】図１−３は、端末間で共有される状態テーブルの一例を示す図である。
【図１−４】図１−４は、状態テーブルの変化の一例を示す図である。
【図２】図２は、通信速度の減少によるタスクデータの転送を示す図である。
【図３】図３は、相対位置の増加によるタスクデータの転送を示す図である。
【図４−１】図４−１は、電池残量の不足によるタスクデータの転送を示す図（その１）である。
【図４−２】図４−２は、電池残量の不足によるタスクデータの転送を示す図（その２）である。
【図５−１】図５−１は、通信の切断によるタスクデータの転送を示す図（その１）である。
【図５−２】図５−２は、通信の切断によるタスクデータの転送を示す図（その２）である。
【図６】図６は、端末のハードウェア構成例を示す図である。
【図７】図７は、端末の機能的構成例を示す図である。
【図８−１】図８−１は、オペレーティングシステムによる処理の一例を示すフローチャート（その１）である。
【図８−２】図８−２は、オペレーティングシステムによる処理の一例を示すフローチャート（その２）である。
【図９】図９は、自端末のタスクデータをスワップする処理の一例を示す図である。
【図１０】図１０は、メモリ不足時に他端末のタスクデータを別の他端末へ転送する処理の一例を示すフローチャートである。
【図１１】図１１は、端末間の状態変化時の処理の一例を示すフローチャートである。
【図１２】図１２は、提供要求信号に対する応答処理の一例を示すフローチャートである。
【図１３】図１３は、電池残量減少時の処理の一例を示すフローチャートである。
【図１４】図１４は、アクセス発生時の処理の一例を示すフローチャートである。
【図１５】図１５は、切断検出時の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、本発明にかかるデータ共有方法およびデータ処理システムの実施の形態を詳細に説明する。
【００１１】
（実施の形態）
（通信システム）
図１−１は、実施の形態にかかる通信システムの例を示す図である。図１−１に示す通信システム１００は、端末＃１〜＃４を含んでいる。端末＃１〜＃４は、互いにアドホック通信などの無線通信によって接続されている。端末＃１〜＃４は、タスクデータなどのデータを共有するメモリ共有を行う複数のデータ処理装置である。
【００１２】
図１−１，図１−２においては、メモリ共有の一例として、端末＃１（第２データ処理装置）のタスクに用いるタスクデータの少なくとも一部を端末＃２〜＃４のいずれかのメモリに保持するメモリ共有について説明する。図１−１に示す例では、端末＃１においてメモリ（メモリリソース）の不足が検出されたとする。たとえば、端末＃１のメモリには、実行するタスクによるメモリの使用量が記憶されている。端末＃１は、たとえば、実行するタスクによるメモリの使用量と、端末＃１のメモリの空き容量と、を比較することによってメモリの不足を検出する。
【００１３】
端末＃１は、メモリの不足を検出すると、接続している端末＃２〜＃４の中からメモリ共有を行う端末（要求先端末）を選択する。たとえば、端末＃１は、端末＃１と端末＃２〜＃４との間の各通信品質を示す情報を取得する。通信品質は、たとえば、通信速度や通信強度などである。通信強度としてはたとえばＲＳＳＩ（Ｒｅｃｅｉｖｅ  Ｓｉｇｎａｌ  Ｓｔｒｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ：受信信号強度）を用いることができる。
【００１４】
端末＃１は、たとえば、端末＃２〜＃４のうちの端末＃１との間の通信品質が最も高い（通信速度や通信強度が高い）端末を要求先端末として選択する。これにより、メモリ共有におけるタスクデータ（データ）の送受信処理を高速に行うことができる。図１−１に示す例では、端末＃１は、要求先端末として端末＃２（第１データ処理装置）を選択したとする。端末＃１は、選択した端末＃２へ、端末＃１のタスクに用いるタスクデータの少なくとも一部を送信する。また、端末＃１は、端末＃２へ送信したデータを端末＃１のメモリから削除する。端末＃２は、端末＃１から受信したタスクデータを端末＃２のメモリに保持する。
【００１５】
端末＃１は、端末＃２へ送信したタスクデータに対するアクセスが端末＃１のタスクにおいて発生した場合は、端末＃２と通信を行うことにより、端末＃２のメモリに保持されたタスクデータにアクセスする。このように、端末＃２が端末＃１にメモリを提供するメモリ共有を行い、メモリの使用量を端末＃１，＃２に分散させることができる。
【００１６】
図１−２は、メモリ提供側の端末によるタスクデータの転送を示す図である。図１−２において、図１−１に示した部分と同様の部分については同一の符号を付して説明を省略する。端末＃１のデータを保持する端末＃２（メモリ貸与側）における状態の変化（たとえば図２〜図５−２参照）により、端末＃１が自端末のタスクデータを端末＃２から回収できなくなる恐れのある所定の状況になったとする。
【００１７】
所定の状況は、たとえば、端末＃２が、メモリの容量の不足を検出した状況である。メモリの容量の不足は、たとえば、端末＃２のメモリの容量が端末＃１から送信されるタスクデータの容量よりも小さいときに検出される。
【００１８】
または、所定の状況は、端末＃２が、端末＃２の電池残量の変化を検出した状況（たとえば図４−１，図４−２参照）であってもよい。電池残量の変化は、たとえば電池残量の減少である。電池残量の減少は、たとえば電池残量が閾値以下になることである。
【００１９】
または、所定の状況は、端末＃２が、端末＃１〜＃４の中の端末＃１に対する相対位置の変化を検出した状況（たとえば図３参照）であってもよい。相対位置は、たとえば、各端末の相対的な位置によって決まる端末間の距離である。相対位置の変化は、たとえば相対位置の増加である。相対位置の増加は、たとえば、周期的に相対位置を測定する場合において、前回測定した相対位置に対する、今回測定した相対位置の増加量が閾値以上になることである。
【００２０】
または、所定の状況は、端末＃２が、端末＃１との間の通信速度の変化を検出した状況（たとえば図２参照）であってもよい。通信速度の変化は、たとえば、通信速度の減少である。通信速度の減少は、たとえば、周期的に通信速度を測定する場合において、前回測定した通信速度に対する、今回測定した通信速度の減少量が閾値以上になることである。
【００２１】
または、所定の状況は、端末＃２が、端末＃１との通信の遮断（切断）を検出した状況（たとえば図５−１，図５−２参照）であってもよい。また、通信の遮断は、所定時間以上の通信の遮断とし、所定時間より短い通信の遮断は除外してもよい。なお、端末＃２は、上述した所定の状況のすべてを検出する構成に限らず、上述した所定の状況の少なくともいずれかを検出する構成とすればよい。
【００２２】
所定の状況になった場合に、端末＃２は、端末＃２が有する端末＃１のタスクデータの共有部分を、端末＃１〜＃４の中の端末＃３または端末＃４（第３データ処理装置）に転送（送信）する。たとえば、端末＃２は、端末＃３，＃４のうちの端末＃１との間の通信速度が最も高い端末へ端末＃１のタスクデータを転送する。また、端末＃２は、端末＃１〜＃４の中で、メモリ共有にかかるタスクデータを使用している端末＃１と通信を行っている端末（データ処理装置）へタスクデータを転送してもよい。図１−２に示す例では、端末＃２は、保持している端末＃１のタスクデータを端末＃４へ転送したとする。
【００２３】
端末＃４は、端末＃２から受信した端末＃１のタスクデータを端末＃４のメモリに保持する。また、端末＃４は、端末＃１のタスクデータを保持しており、端末＃１との間でメモリ共有を開始することを通知する共有開始信号を端末＃１へ送信する。これにより、端末＃１は、端末＃２へ送信したタスクデータを端末＃４が保持していることを認識することができる。端末＃１は、端末＃２へ送信したタスクデータに対するアクセスが端末＃１のタスクにおいて発生した場合は、端末＃４と通信を行うことにより、端末＃４のメモリに保持されたタスクデータにアクセスする。
【００２４】
なお、端末＃１は、たとえば端末＃２〜＃４との間の通信速度より、自端末のストレージ（補助メモリ）へのスワップ速度（書き込み速度）の方が高い場合は、データを端末＃２〜＃４へ送信せずに自端末のストレージへスワップしてもよい。このように、通信速度と、タスクデータをストレージに記憶する速度と、の比較結果に基づいてタスクデータの共有部分が他端末へ送信されてもよい。
【００２５】
（端末間で共有される状態テーブル）
図１−３は、端末間で共有される状態テーブルの一例を示す図である。図１−３に示す状態テーブル１３０は、端末＃１〜＃４で共有される情報の一例である。状態テーブル１３０は、端末＃１〜＃４のそれぞれの間における「通信速度」、「相対位置変化傾向」および「通信速度変化傾向」を示している。たとえば、端末＃１〜＃４は、端末＃１〜＃４のうちの他端末と自端末との間の通信速度および相対位置を定期的に測定し、測定結果を互いに送受信することで状態テーブル１３０を共有する。
【００２６】
「相対位置変化傾向」は、相対位置が前回の測定時から増加したか減少したかを示す情報である。たとえば、測定した相対位置が前回の測定時から所定の閾値以上増加した場合は「相対位置変化傾向」は「増加」となる。また、測定した相対位置が前回の測定時から所定の閾値以上減少した場合は「相対位置変化傾向」は「減少」となる。
【００２７】
相対位置は、たとえば端末間の距離である。端末間の距離は、たとえば、他端末および自端末の各位置座標を取得し、取得した各位置座標に基づいて算出することができる。自端末の位置座標は、たとえば、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ：全地球測位システム）によって取得することができる。他端末の位置座標は、たとえば、他端末がＧＰＳによって取得した位置座標を示す情報を他端末から受信することによって取得することができる。
【００２８】
「通信速度変化傾向」は、通信速度が前回の測定時から増加したか減少したかを示す情報である。たとえば、測定した通信速度が前回の測定時から所定の閾値以上増加した場合は「通信速度変化傾向」は「増加」となる。また、測定した通信速度が前回の測定時から所定の閾値以上減少した場合は「通信速度変化傾向」は「減少」となる。
【００２９】
たとえば、端末＃１は、自端末のメモリの不足を検出すると、状態テーブル１３０に基づいて自端末との間の通信速度が最も高い端末をメモリ共有の要求先端末として選択する。たとえば、状態テーブル１３０において「通信速度」のＡ〜ＥのうちのＢが最大である場合は、端末＃１は、自端末のタスクデータを端末＃２へ送信する（たとえば図１−１参照）。このように、端末＃１は、接続している他端末との間の各通信速度を取得し、取得した通信速度に基づいてメモリ共有の要求先端末として選択してもよい。
【００３０】
また、状態テーブル１３０は、通信システム１００における端末同士の接続関係を示している。図１−３に示す状態テーブル１３０は、端末＃１〜＃４が互いに接続していることを示している。
【００３１】
図１−４は、状態テーブルの変化の一例を示す図である。図１−４において、図１−３に示した部分と同様の部分については説明を省略する。たとえば、端末＃１と端末＃２とが互いに離れた場合などは、端末＃１と端末＃２の間の相対位置は増加し、端末＃１と端末＃２の間の通信速度は低下する。したがって、端末＃１〜＃４が共有する状態テーブルは、たとえば図１−４に示す状態テーブル１３０のようになる。具体的には、端末＃１と端末＃２との間の「通信速度変化傾向」は「減少」となる。また、端末＃１と端末＃２との間の「相対位置変化傾向」は「増加」となり、端末＃１と端末＃２との間の通信速度はＢ’（Ｂ’＜Ｂ）となる。
【００３２】
（タスクデータの転送）
図２は、通信速度の減少によるタスクデータの転送を示す図である。図２において、図１−１に示した部分と同様の部分については同一の符号を付して説明を省略する。図２に示すグラフ２００は、端末＃１と端末＃２との間の通信速度の変化の一例を示す図である。グラフ２００において、横軸は時間を示し、縦軸は通信速度を示している。
【００３３】
グラフ２００に示すように、期間Ｔにおける端末＃１と端末＃２との間の通信速度の減少量２０１が閾値を超えたとする。この場合は、図１−４に示したように、状態テーブル１３０において端末＃１と端末＃２との間の「通信速度変化傾向」は「減少」となる。
【００３４】
図３は、相対位置の増加によるタスクデータの転送を示す図である。図３において、図１−１に示した部分と同様の部分については同一の符号を付して説明を省略する。図３に示すグラフ３００は、端末＃１と端末＃２の間の相対位置３０１の変化の一例を示す図である。グラフ３００において、横軸は時間を示し、縦軸は相対位置３０１を示している。
【００３５】
グラフ３００に示すように、期間Ｔにおける端末＃１と端末＃２との間の相対位置３０１の増加量３０２が閾値を超えたとする。この場合は、図１−４に示したように、状態テーブル１３０において端末＃１と端末＃２との間の「相対位置変化傾向」は「増加」となる。
【００３６】
このように、端末＃２は、たとえば、端末＃１と端末＃２との間の通信速度の所定期間における減少量が閾値以上、かつ、端末＃１と端末＃２との間の相対位置３０１（距離）の所定期間における増加量が閾値以上となった場合に端末＃１のタスクデータを他端末へ転送する。これにより、端末＃１と端末＃２との間の通信速度の減少、端末＃１と端末＃２との間の相対位置３０１の増加により端末＃１のタスクデータを端末＃１が回収できなくなることを回避することができる。
【００３７】
図４−１は、電池残量の不足によるタスクデータの転送を示す図（その１）である。図４−１において、図１−１に示した部分と同様の部分については同一の符号を付して説明を省略する。図４−１に示すグラフ４１０は、端末＃２の電池残量４０１と、送信電力４０２と、の一例を示している。送信電力４０２は、端末＃２が端末＃１のタスクデータを他端末（たとえば端末＃１）へ送信する場合に使用されるおよその電力量である。端末＃２は、端末＃１と端末＃２との間のメモリ共有中に、送信電力４０２と電池残量４０１との差分４０３が閾値以下になった場合に端末＃１のタスクデータを端末＃４へ転送する。
【００３８】
たとえば、端末＃２のメモリには、送信するタスクデータの量と、タスクデータの送信に使用される電力量と、の対応情報（たとえば関数やテーブル）が記憶されている。対応情報においては、たとえば、送信するタスクデータの量が多いほど、タスクデータの送信に使用される電力量が大きくなっている。
【００３９】
端末＃２は、保持している端末＃１のタスクデータの量と、対応情報と、に基づいて電力量を導出することによって送信電力４０２を取得することができる。このように、保持している端末＃１のタスクデータの量を用いることで、保持している端末＃１のタスクデータの量が多いほど大きくなる送信電力４０２を取得することができる。
【００４０】
このように、端末＃２は、電池残量４０１と、端末＃２が端末＃１のタスクデータを送信する場合に使用される送信電力４０２と、に基づいて端末＃１のタスクデータを転送する。これにより、端末＃１からのアクセス要求に応じて端末＃１のタスクデータを送信するための電池残量がなくなる前に、端末＃１のタスクデータを他端末へ転送することが可能になる。これにより、端末＃２の電池残量の不足により端末＃１のタスクデータを端末＃１が回収できなくなることを回避することができる。
【００４１】
図４−２は、電池残量の不足によるタスクデータの転送を示す図（その２）である。図４−２において、図４−１に示した部分と同様の部分については同一の符号を付して説明を省略する。図４−２に示すグラフ４２０は、端末＃２の電池残量４０１と、タスク電力４０４と、送信電力４０２と、の一例を示している。タスク電力４０４は、端末＃２が実行中のタスクを完了させる場合に使用されるおよその電力量である。端末＃２は、タスク電力４０４と送信電力４０２の合計と、電池残量４０１と、の差分４０５が閾値以下になった場合に端末＃１のタスクデータを端末＃４へ転送する。
【００４２】
たとえば、端末＃２のメモリには、実行中のタスクによる電力の使用量が記憶されている。端末＃２は、実行中のタスクに対応する電力をメモリから取得することによってタスク電力４０４を取得することができる。
【００４３】
このように、端末＃２は、電池残量４０１と、端末＃２が端末＃１のタスクデータを送信する場合に使用される送信電力４０２と、端末＃２がタスクを完了させる場合に使用されるタスク電力４０４と、に基づいて端末＃１のタスクデータを転送してもよい。これにより、実行中のタスクを完了させるための電池残量を残して端末＃１のタスクデータを他端末へ転送することが可能になる。このため、端末＃１のタスクデータを他端末へ転送した後に、実行中のタスクを完了できなくなることを回避することができる。
【００４４】
図５−１は、通信の切断によるタスクデータの転送を示す図（その１）である。図５−１において、図１−１に示した部分と同様の部分については同一の符号を付して説明を省略する。図５−１に示すグラフ５１０は、端末＃１と端末＃２との間の通信速度の変化の一例を示している。グラフ５１０に示すように、端末＃１と端末＃２との間のメモリ共有中に、時刻ｔにおいて、端末＃１と端末＃２との間の通信が切断されたとする。
【００４５】
端末＃２は、たとえば、端末＃１と端末＃２との間の通信速度に基づいて端末＃１と端末＃２との間の通信の切断を検出することができる。たとえば、端末＃２は、端末＃１と端末＃２との間の通信の切断を検出した場合に端末＃１のタスクデータを端末＃４へ転送する。これにより、端末＃１と端末＃２との間の通信の切断により端末＃１のタスクデータを端末＃１が回収できなくなることを回避することができる。
【００４６】
図５−２は、通信の切断によるタスクデータの転送を示す図（その２）である。図５−２において、図５−１に示した部分と同様の部分については同一の符号を付して説明を省略する。図５−２に示すグラフ５２０は、端末＃１と端末＃２との間の通信速度の変化の一例を示している。グラフ５２０に示すように、端末＃１と端末＃２との間のメモリ共有中に、時刻ｔ１において端末＃１と端末＃２との間の通信が一時的に切断されたとする。
【００４７】
そして、時刻ｔ１の後、期間Ｔの経過時の時刻ｔ２において端末＃１と端末＃２との間の通信が回復したとする。端末＃１と端末＃２との間の通信の一時的な切断は、たとえば端末＃１と端末＃２のいずれかのトンネル通過時など、端末＃１と端末＃２との間に一時的に遮蔽物が存在する場合などに発生する。
【００４８】
たとえば、端末＃２は、端末＃１と端末＃２との間の通信の切断を検出した場合に、所定時間待機し、待機中に端末＃１と端末＃２との間の通信が回復した場合は端末＃１のタスクデータを転送しないようにする。これにより、端末＃１と端末＃２との間の通信が回復する場合は、端末＃１のタスクデータを端末＃４へ転送しなくてもメモリ共有を再開することができる。このため、端末＃４へのタスクデータの転送などの処理の増加を抑えることができる。
【００４９】
また、端末＃２は、所定時間待機しても端末＃１と端末＃２との間の通信が回復しない場合は、図５−１に示したように端末＃１のタスクデータを端末＃４へ転送する。これにより、端末＃１と端末＃２との間の通信の切断により端末＃１のタスクデータを端末＃１が回収できなくなることを回避することができる。
【００５０】
（端末のハードウェア構成）
図６は、端末のハードウェア構成例を示す図である。端末＃１〜＃４のそれぞれは、たとえば図６に示すデータ処理装置６００によって実現することができる。データ処理装置６００は、中央処理装置６０１（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ランダムアクセスメモリ６０２（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、ストレージ６０３と、無線ユニット６０４と、を備えている。また、中央処理装置６０１、ランダムアクセスメモリ６０２、ストレージ６０３および無線ユニット６０４は、バス６２０によってそれぞれ接続されている。
【００５１】
中央処理装置６０１は、データ処理装置６００の全体の制御を司る。ランダムアクセスメモリ６０２は、ブートプログラムなどのプログラムやデータベースなどを記憶している。また、ランダムアクセスメモリ６０２は、中央処理装置６０１のワークエリアとして使用される。ストレージ６０３は、中央処理装置６０１の制御にしたがってデータを記憶する補助メモリである。無線ユニット６０４は、無線の通信回線を通じて他端末との間で通信を行う。無線ユニット６０４は、たとえば無線ＬＡＮアダプタなどである。
【００５２】
（端末の機能的構成）
図７は、端末の機能的構成例を示す図である。端末＃１〜＃４のそれぞれは、たとえば、図７に示すデータベース７１０およびオペレーティングシステム７２０を有する。データベース７１０は、たとえば、図６に示したランダムアクセスメモリ６０２に記憶される。データベース７１０は、状態テーブル１３０（たとえば図１−３，図１−４参照）、自端末の電池残量を示す電池残量情報、自端末のランダムアクセスメモリ６０２に保持している他端末のタスクデータなどを示すメモリ使用情報などを含むデータベースである。
【００５３】
オペレーティングシステム７２０は、たとえば、図６に示した中央処理装置６０１が、ランダムアクセスメモリ６０２をワークエリアとしてプログラムを実行することによって実現される。オペレーティングシステム７２０は、電池残量監視部７２１と、位置情報監視部７２２と、通信監視部７２３と、メモリ管理部７２４と、データ移動決定部７２５と、情報交換部７２６と、の機能を有する。
【００５４】
電池残量監視部７２１、位置情報監視部７２２および通信監視部７２３は、自端末の状態を監視し、監視結果に基づいてデータベース７１０を更新する。具体的には、電池残量監視部７２１は、自端末の電池残量を監視し、監視結果に基づいてデータベース７１０の電池残量情報を更新する電池残量監視ユニットである。
【００５５】
位置情報監視部７２２は、自端末と他端末との間の相対位置を監視し、監視結果に基づいてデータベース７１０の状態テーブル１３０における「相対位置変化傾向」を更新する。通信監視部７２３は、自端末と他端末との間の通信速度を監視し、監視結果に基づいてデータベース７１０の状態テーブル１３０における「通信速度」および「通信速度変化傾向」を更新する。
【００５６】
メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２の容量（メモリ容量）の管理を行うメモリ管理ユニットである。また、メモリ管理部７２４は、情報交換部７２６を介して他端末と通信を行うことで、他端末とのメモリ共有の管理を行う。たとえば、メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２の空き容量が不足する場合に、自端末のタスクデータを他端末に保持するメモリ共有の管理を行う。
【００５７】
具体的には、メモリ管理部７２４は、ランダムアクセスメモリ６０２の不足の検出を行う。そして、メモリ管理部７２４は、ランダムアクセスメモリ６０２の不足を検出すると、メモリ共有の要求先端末（メモリの利用先の他端末）の決定をデータ移動決定部７２５に要求する。メモリ管理部７２４は、要求先端末の決定結果がデータ移動決定部７２５から通知されると、通知結果が示す要求先端末との間でメモリ共有を行う。
【００５８】
具体的には、メモリ管理部７２４は、要求先端末へメモリの提供を要求する提供要求信号を送信し、送信した提供要求信号に対する要求先端末からの応答信号を受信する。そして、メモリ管理部７２４は、メモリを提供可能なことを示す応答信号を受信すると、自端末のタスクデータを要求先端末へ送信する。メモリを提供可能なことを示す応答信号には、提供可能なメモリの容量を示す情報が含まれていてもよい。この場合は、メモリ管理部７２４は、応答信号が示す容量のタスクデータを要求先端末へ送信する。
【００５９】
また、メモリ管理部７２４は、要求先端末へ送信したタスクデータに対するアクセスが発生した場合は、要求先端末と通信を行うことによって要求先端末のメモリのタスクデータにアクセスする。
【００６０】
また、メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２に空き容量があり、他端末からメモリの提供の要求があった場合に他端末のタスクデータを自端末のランダムアクセスメモリ６０２に保持するメモリ共有の管理を行う。具体的には、メモリ管理部７２４は、メモリの提供を要求する提供要求信号を要求元端末から受信する。そして、メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２に空き容量がない場合は、メモリを提供可能でないことを示す応答信号を要求元端末へ送信する。
【００６１】
また、メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２に空き容量があれば、メモリを提供可能なことを示す応答信号を要求元端末へ送信する。メモリを提供可能なことを示す応答信号には、提供可能なメモリの容量を示す情報が含まれていてもよい。また、メモリ管理部７２４は、要求元端末から送信されたタスクデータを受信し、受信したタスクデータを自端末のランダムアクセスメモリ６０２に保持する。
【００６２】
また、メモリ管理部７２４は、メモリ共有の処理に伴って、データベース７１０に含まれるメモリ使用情報を更新する。メモリ使用情報は、自端末のランダムアクセスメモリ６０２に保持している他端末のタスクデータなどを示す情報を含む。また、メモリ使用情報は、自端末のタスクデータを保持している他端末（要求先端末）を示す情報を含む。
【００６３】
また、メモリ管理部７２４は、他端末のタスクデータをさらに別の他端末から受信した場合は、受信したタスクデータの送信元へ、メモリ共有を開始することを通知する共有開始信号を送信する。たとえば、図１−２に示した状態において、端末＃４のメモリ管理部７２４は、端末＃１のタスクデータを端末＃２から受信した場合は、端末＃１へ共有開始信号を送信する。
【００６４】
データ移動決定部７２５は、メモリ共有の要求元端末に対する自端末の相対位置を検出するとともに、メモリ共有の要求元端末との間の通信速度を監視する移動決定ユニットである。データ移動決定部７２５は、メモリ管理部７２４から要求があった場合に、メモリ共有の要求先端末を決定する。メモリ共有の要求先端末の決定は、たとえば、データベース７１０に含まれる状態テーブル１３０が示す「通信速度」などに基づいて行うことができる。また、データ移動決定部７２５は、自端末における状態の変化により、他端末から受信して保持しているタスクデータを送信元に送信することができなくなる恐れのある状況となった場合に、保持しているタスクデータを他端末へ転送する。
【００６５】
たとえば、データ移動決定部７２５は、データベース７１０に含まれる状態テーブル１３０の「相対位置変化傾向」や「通信速度変化傾向」などに基づいて、他端末のタスクデータの別の他端末への転送の決定を行う。また、データ移動決定部７２５は、データベース７１０に含まれる電池残量情報などに基づいて、他端末のタスクデータの別の他端末への転送の決定を行ってもよい。
【００６６】
また、データ移動決定部７２５は、他端末のタスクデータを別の他端末へ転送すると決定した場合に、転送先の他端末を、たとえば、状態テーブル１３０の「通信速度」などに基づいて決定する。また、データ移動決定部７２５は、他端末のタスクデータを別の他端末へ転送すると決定した場合に、メモリ管理部７２４に対して他端末のタスクデータの別の他端末への転送を要求する。
【００６７】
情報交換部７２６は、メモリ管理部７２４と他端末との間の通信を中継する。具体的には、情報交換部７２６は、メモリ管理部７２４と他端末との間で送受信される提供要求信号、応答信号、タスクデータおよび共有開始信号などを中継する。
【００６８】
また、情報交換部７２６は、データベース７１０の状態テーブル１３０を監視し、状態テーブル１３０の内容が更新された場合に更新内容を他端末へ送信する。また、情報交換部７２６は、他端末の状態テーブル１３０の更新内容を他端末から受信し、受信した更新内容に基づいて自端末の状態テーブル１３０を更新する。情報交換部７２６による他端末との通信は、たとえば図６に示した無線ユニット６０４によって行われる。
【００６９】
（オペレーティングシステムによる処理）
図８−１，図８−２は、オペレーティングシステムによる処理の一例を示すフローチャートである。たとえば端末＃１のオペレーティングシステム７２０は、たとえば図８−１，図８−２に示す各ステップを繰り返し実行する。ここでは端末＃１による処理を説明するが、端末＃２〜＃４による処理も同様である。
【００７０】
図８−１に示すように、まず、通信監視部７２３が、自端末（端末＃１）と他端末（端末＃２〜＃４）との間の通信速度を取得する（ステップＳ８０１）。つぎに、位置情報監視部７２２が、自端末と他端末との間の相対位置を取得する（ステップＳ８０２）。
【００７１】
つぎに、メモリ管理部７２４が、自端末のメモリ不足（ランダムアクセスメモリ６０２の容量不足）を検出したか否かを判断する（ステップＳ８０３）。メモリ不足を検出した場合（ステップＳ８０３：Ｙｅｓ）は、メモリ管理部７２４が、他端末のタスクデータを自端末のランダムアクセスメモリ６０２に保持しているか否かを判断する（ステップＳ８０４）。ステップＳ８０４の判断は、たとえばデータベース７１０のメモリ使用情報に基づいて行うことができる。
【００７２】
ステップＳ８０４において、他端末のタスクデータを保持していない場合（ステップＳ８０４：Ｎｏ）は、端末＃１は、自端末のタスクデータを自端末のストレージ６０３または他端末へスワップする処理を行い（ステップＳ８０５）、一連の処理を終了する。自端末のタスクデータをスワップする処理については後述する（たとえば図９参照）。
【００７３】
ステップＳ８０４において、他端末のタスクデータを保持している場合（ステップＳ８０４：Ｙｅｓ）は、端末＃１は、保持している他端末のタスクデータを別の他端末へ転送する処理を行い（ステップＳ８０６）、一連の処理を終了する。メモリ不足時に他端末のタスクデータを別の他端末へ転送する処理については後述する（たとえば図１０参照）。
【００７４】
ステップＳ８０３において、自端末のメモリ不足を検出していない場合（ステップＳ８０３：Ｎｏ）は、端末＃１は、ステップＳ８０７へ移行する。すなわち、情報交換部７２６が、ステップＳ８０１，Ｓ８０２によって取得された通信速度および相対位置の少なくとも一方が前回の測定時から変化したか否かを判断する（ステップＳ８０７）。ステップＳ８０７の判断は、たとえば状態テーブル１３０に基づいて行うことができる（たとえば図２，図３参照）。
【００７５】
ステップＳ８０７において、通信速度および相対位置の少なくとも一方が変化した場合（ステップＳ８０７：Ｙｅｓ）は、他端末へ更新情報を送信する（ステップＳ８０８）。これにより、自端末によって検出した通信速度および相対位置の少なくとも一方の変化を他端末の状態テーブル１３０に反映させることができる。つぎに、端末＃１は、ステップＳ８１１へ移行する。
【００７６】
ステップＳ８０７において、通信速度および相対位置のいずれも変化していない場合（ステップＳ８０７：Ｎｏ）は、データ移動決定部７２５が、他端末から更新情報を受信したか否かを判断する（ステップＳ８０９）。他端末から更新情報を受信した場合（ステップＳ８０９：Ｙｅｓ）は、受信した更新情報を、受信した更新情報を受信していない別の他端末へ送信する（ステップＳ８１０）。これにより、他端末から受信した更新情報の内容を別の他端末の状態テーブル１３０に反映させることができる。つぎに、端末＃１は、端末間の状態変化時の処理を行い（ステップＳ８１１）、一連の処理を終了する。端末間の状態変化時の処理については後述する（たとえば図１１参照）。
【００７７】
ステップＳ８０９において、他端末から更新情報を受信していない場合（ステップＳ８０９：Ｎｏ）は、端末＃１は、図８−２に示す各ステップへ移行する（符号Ａ）。すなわち、メモリ管理部７２４が、他端末からの提供要求信号を受信したか否かを判断する（ステップＳ８１２）。他端末からの提供要求信号を受信した場合（ステップＳ８１２：Ｙｅｓ）は、メモリ管理部７２４が、受信した提供要求信号に対する応答処理を行い（ステップＳ８１３）、一連の処理を終了する。提供要求信号に対する応答処理については後述する（たとえば図１２参照）。
【００７８】
ステップＳ８１２において、他端末からの提供要求信号を受信していない場合（ステップＳ８１２：Ｎｏ）は、データ移動決定部７２５が、電池残量が減少したか否かを判断する（ステップＳ８１４）。ステップＳ８１４の判断は、たとえばデータベース７１０の電池残量情報に基づいて行うことができる（たとえば図４−１，図４−２参照）。電池残量が減少した場合（ステップＳ８１４：Ｙｅｓ）は、端末＃１は、電池残量減少時の処理を行い（ステップＳ８１５）、一連の処理を終了する。電池残量減少時の処理については後述する（たとえば図１３参照）。
【００７９】
ステップＳ８１４において、電池残量が減少していない場合（ステップＳ８１４：Ｎｏ）は、メモリ管理部７２４が、他端末から共有開始通知信号を受信したか否かを判断する（ステップＳ８１６）。他端末から共有開始通知信号を受信した場合（ステップＳ８１６：Ｙｅｓ）は、メモリ管理部７２４が、データベース７１０のメモリ使用情報を更新し（ステップＳ８１７）、一連の処理を終了する。
【００８０】
ステップＳ８１６において、他端末から共有開始通知信号を受信していない場合（ステップＳ８１６：Ｎｏ）は、メモリ管理部７２４が、自端末のタスクにおいて、自端末のタスクデータに対するアクセスが発生したか否かを判断する（ステップＳ８１８）。自端末のタスクデータには、自端末のランダムアクセスメモリ６０２に保持しているタスクデータだけでなく、他端末に送信しメモリ共有しているタスクデータも含まれる。
【００８１】
ステップＳ８１８において、自端末のタスクデータに対するアクセスが発生した場合（ステップＳ８１８：Ｙｅｓ）は、端末＃１は、アクセス発生時の処理を行い（ステップＳ８１９）、一連の処理を終了する。アクセス発生時の処理については後述する（たとえば図１４参照）。自端末のタスクデータに対するアクセスが発生していない場合（ステップＳ８１８：Ｎｏ）は、データ移動決定部７２５が、他端末との間の通信の切断を検出したか否かを判断する（ステップＳ８２０）。ステップＳ８２０による判断は、たとえば状態テーブル１３０に基づいて行うことができる（たとえば図５−１，図５−２参照）。
【００８２】
ステップＳ８２０において、他端末との間の通信の切断を検出した場合（ステップＳ８２０：Ｙｅｓ）は、端末＃１は、切断検出時の処理を行い（ステップＳ８２１）、一連の処理を終了する。切断検出時の処理については後述する（たとえば図１５参照）。他端末との間の通信の切断を検出していない場合（ステップＳ８２０：Ｎｏ）は、端末＃１は、一連の処理を終了する。
【００８３】
以上の各ステップにより、端末＃１〜＃４のそれぞれは、状況に応じて、自端末のタスクデータを他端末に保持させたり、他端末のタスクデータを自端末に保持したり、他端末のタスクデータを別の他端末に転送したりすることができる。
【００８４】
（自端末のタスクデータをスワップする処理）
図９は、自端末のタスクデータをスワップする処理の一例を示す図である。図８−１に示したステップＳ８０５において、端末＃１のオペレーティングシステム７２０は、たとえば図９に示す各ステップを実行する。まず、メモリ管理部７２４が、自端末（端末＃１）と他端末（端末＃２〜＃４）との通信速度が、自端末のストレージ６０３へのタスクデータのスワップ速度（書き込み速度）より高いか否かを判断する（ステップＳ９０１）。
【００８５】
自端末と他端末との通信速度は、たとえばデータベース７１０の状態テーブル１３０に含まれる通信速度のうちの最高の通信速度である。自端末のストレージ６０３へのスワップ速度は、たとえばストレージ６０３などにあらかじめ記憶された固定値である。
【００８６】
ステップＳ９０１において、他端末との通信速度がスワップ速度以下である場合（ステップＳ９０１：Ｎｏ）は、メモリ管理部７２４が、自端末のストレージ６０３に自端末のタスクデータをスワップさせ（ステップＳ９０２）、一連の処理を終了する。他端末との通信速度がスワップ速度より高い場合（ステップＳ９０１：Ｙｅｓ）は、メモリ管理部７２４が、他端末へ提供要求信号を送信する（ステップＳ９０３）。
【００８７】
ステップＳ９０３において、メモリ管理部７２４は、データ移動決定部７２５へメモリの利用先の他端末の決定をデータ移動決定部７２５に要求し、要求に対して決定された他端末へ提供要求信号を送信する。提供要求信号の初回の送信先の他端末（要求先端末）は、たとえば、端末＃２〜＃４のうちの端末＃１との通信速度が最も高い端末とする。
【００８８】
つぎに、メモリ管理部７２４が、ステップＳ９０３によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する（ステップＳ９０４）。メモリを提供可能なことを示す応答信号を受信した場合（ステップＳ９０４：Ｙｅｓ）は、メモリ管理部７２４は、自端末のタスクデータを要求先端末へ送信する（ステップＳ９０５）。これにより、端末＃１は、自端末のタスクデータを要求先端末へスワップすることができる。
【００８９】
つぎに、メモリ管理部７２４が、タスクデータをスワップしたことによってメモリ不足が解消したか否かを判断する（ステップＳ９０６）。メモリ不足が解消したか否かは、たとえば、自端末のランダムアクセスメモリ６０２の空き容量が閾値以上になったか否かに基づいて判断することができる。メモリ不足が解消した場合（ステップＳ９０６：Ｙｅｓ）は、端末＃１は、一連の処理を終了する。メモリ不足が解消していない場合（ステップＳ９０６：Ｎｏ）は、ステップＳ９０７へ移行する。
【００９０】
ステップＳ９０４において、許可する旨の応答信号を受信しなかった場合（ステップＳ９０４：Ｎｏ）は、データ移動決定部７２５が、自端末との通信速度がスワップ速度より高い別の他端末が存在するか否かを判断する（ステップＳ９０７）。ステップＳ９０７の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【００９１】
ステップＳ９０７において、自端末との通信速度がスワップ速度より高い別の他端末が存在しない場合（ステップＳ９０７：Ｎｏ）は、端末＃１は、ステップＳ９０２へ移行し、自端末に残っているタスクデータを自端末のストレージ６０３にスワップする。自端末との通信速度がスワップ速度より高い別の他端末が存在する場合（ステップＳ９０７：Ｙｅｓ）は、端末＃１は、ステップＳ９０３へ戻る。この場合は、メモリ管理部７２４が、自端末との通信速度がスワップ速度より高い別の他端末へ提供要求信号を送信する。
【００９２】
以上の各ステップにより、端末＃１は、自端末のタスクデータを自端末のストレージ６０３または他端末にスワップすることができる。これにより、自端末のランダムアクセスメモリ６０２の空き容量を増加させることができる。
【００９３】
（メモリ不足時に他端末のタスクデータを別の他端末へ転送する処理）
図１０は、メモリ不足時に他端末のタスクデータを別の他端末へ転送する処理の一例を示すフローチャートである。図８−１に示したステップＳ８０６において、端末＃１のオペレーティングシステム７２０は、たとえば図１０に示す各ステップを実行する。まず、メモリ管理部７２４が、保持しているタスクデータにかかるメモリ共有の要求元端末と接続している他端末が存在するか否かを判断する（ステップＳ１００１）。ステップＳ１００１の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【００９４】
ステップＳ１００１において、要求元端末と接続している他端末が存在しない場合（ステップＳ１００１：Ｎｏ）は、メモリ管理部７２４が、保持しているタスクデータを要求元端末へ送信し（ステップＳ１００２）、一連の処理を終了する。これにより、要求元端末のタスクデータを返却し、自端末のランダムアクセスメモリ６０２の空き容量を増加させることができる。
【００９５】
ステップＳ１００１において、要求元端末と接続している他端末が存在する場合（ステップＳ１００１：Ｙｅｓ）は、メモリ管理部７２４が、要求元端末と接続している別の他端末（要求先端末）へ提供要求信号を送信する（ステップＳ１００３）。つぎに、メモリ管理部７２４が、ステップＳ１００３によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する（ステップＳ１００４）。
【００９６】
ステップＳ１００４において、メモリを提供可能なことを示す応答信号を受信した場合（ステップＳ１００４：Ｙｅｓ）は、メモリ管理部７２４が、自端末が保持している他端末のタスクデータを、ステップＳ１００３によって提供要求信号を送信した要求先端末へ転送する（ステップＳ１００５）。これにより、端末＃１は、他端末のタスクデータを別の他端末へスワップすることができる。
【００９７】
つぎに、メモリ管理部７２４が、ステップＳ１００５によってタスクデータをスワップしたことによってメモリ不足が解消したか否かを判断する（ステップＳ１００６）。メモリ不足が解消した場合（ステップＳ１００６：Ｙｅｓ）は、端末＃１は、一連の処理を終了する。メモリ不足が解消していない場合（ステップＳ１００６：Ｎｏ）は、端末＃１は、ステップＳ１００７へ移行する。
【００９８】
ステップＳ１００４において、メモリを提供可能なことを示す応答信号を受信しなかった場合（ステップＳ１００４：Ｎｏ）は、データ移動決定部７２５が、要求元端末と接続している別の他端末が存在するか否かを判断する（ステップＳ１００７）。ステップＳ１００７の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【００９９】
ステップＳ１００７において、要求元端末と接続している別の他端末が存在しない場合（ステップＳ１００７：Ｎｏ）は、端末＃１は、ステップＳ１００２へ移行し、保持しているタスクデータを要求元端末へ返却する。要求元端末と接続している別の他端末が存在する場合（ステップＳ１００７：Ｙｅｓ）は、端末＃１は、ステップＳ１００３へ戻る。この場合は、メモリ管理部７２４が、要求元端末と接続している別の他端末へ提供要求信号を送信する。
【０１００】
以上の各ステップにより、端末＃１は、メモリ不足時に他端末のタスクデータを別の他端末へ転送することができる。これにより、端末＃１〜＃４においてメモリの使用量を更に分散し、各端末におけるメモリ不足を抑えることができる。また、タスクデータを転送する他端末が存在しない場合は、端末＃１は、タスクデータをメモリ共有の要求元端末へ返却することができる。
【０１０１】
（端末間の状態変化時の処理）
図１１は、端末間の状態変化時の処理の一例を示すフローチャートである。図８−１に示したステップＳ８１１において、端末＃１のオペレーティングシステム７２０は、たとえば図１１に示す各ステップを実行する。まず、データ移動決定部７２５が、他端末のタスクデータを自端末のランダムアクセスメモリ６０２に保持しているか否かを判断する（ステップＳ１１０１）。ステップＳ１１０１の判断は、たとえばデータベース７１０のメモリ使用情報に基づいて行うことができる。
【０１０２】
ステップＳ１１０１において、他端末のタスクデータを保持していない場合（ステップＳ１１０１：Ｎｏ）は、端末＃１は、一連の処理を終了する。他端末のタスクデータを保持している場合（ステップＳ１１０１：Ｙｅｓ）は、端末＃１は、ステップＳ１１０２へ移行する。すなわち、データ移動決定部７２５が、保持しているタスクデータにかかるメモリ共有の要求元端末との相対位置が増加傾向であり、かつ要求元端末との通信速度が減少傾向であるか否かを判断する（ステップＳ１１０２）。ステップＳ１１０２の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【０１０３】
ステップＳ１１０２において、メモリ共有の要求元端末との相対位置が増加傾向でなく、または要求元端末との通信速度が減少傾向でない場合（ステップＳ１１０２：Ｎｏ）は、端末＃１は、一連の処理を終了する。要求元端末との相対位置が増加傾向であり、かつ要求元端末との通信速度が減少傾向である場合（ステップＳ１１０２：Ｙｅｓ）は、データ移動決定部７２５が、要求元端末と接続している他端末が存在するか否かを判断する（ステップＳ１１０３）。ステップＳ１１０３の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【０１０４】
ステップＳ１１０３において、要求元端末と接続している他端末が存在しない場合（ステップＳ１１０３：Ｎｏ）は、端末＃１は、一連の処理を終了する。要求元端末と接続している他端末が存在する場合（ステップＳ１１０３：Ｙｅｓ）は、端末＃１は、ステップＳ１１０４へ移行する。すなわち、データ移動決定部７２５が、要求元端末と接続している他端末と要求元端末との間の通信速度が、自端末と要求元端末との間の通信速度より速いか否かを判断する（ステップＳ１１０４）。ステップＳ１１０４の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【０１０５】
ステップＳ１１０４において、自端末との間の通信速度より速くない場合（ステップＳ１１０４：Ｎｏ）は、データ移動決定部７２５が、ステップＳ１１０３へ戻り、要求元端末と接続している別の他端末が存在するか否かを判断する。自端末との間の通信速度より速い場合（ステップＳ１１０４：Ｙｅｓ）は、メモリ管理部７２４が、要求元端末と接続している他端末へ提供要求信号を送信する（ステップＳ１１０５）。
【０１０６】
つぎに、メモリ管理部７２４が、ステップＳ１１０５によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する（ステップＳ１１０６）。メモリを提供可能なことを示す応答信号を受信していない場合（ステップＳ１１０６：Ｎｏ）は、データ移動決定部７２５が、ステップＳ１１０３へ戻り、要求元端末と接続している別の他端末が存在するか否かを判断する。
【０１０７】
ステップＳ１１０６において、メモリを提供可能なことを示す応答信号を受信した場合（ステップＳ１１０６：Ｙｅｓ）は、メモリ管理部７２４が、自端末が保持しているタスクデータを、提供要求信号を送信した他端末へ送信し（ステップＳ１１０７）、一連の処理を終了する。これにより、端末＃１は、他端末のタスクデータを別の他端末へスワップすることができる。
【０１０８】
以上の各ステップにより、端末＃１は、メモリ共有の要求元端末との間の通信状態が悪化した場合に、要求元端末のタスクデータを、要求元端末と接続している別の他端末へ転送することができる。これにより、メモリ共有の要求元端末がタスクデータを回収できなくなることを回避することができる。
【０１０９】
（提供要求信号に対する応答処理）
図１２は、提供要求信号に対する応答処理の一例を示すフローチャートである。図８−２に示したステップＳ８１３において、端末＃１のオペレーティングシステム７２０は、たとえば図１２に示す各ステップを実行する。まず、メモリ管理部７２４が、自端末のメモリ（ランダムアクセスメモリ６０２）の提供が可能か否かを判断する（ステップＳ１２０１）。ステップＳ１２０１の判断は、たとえばデータベース７１０のメモリ使用情報や電池残量情報などに基づいて行うことができる。
【０１１０】
たとえば、メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２の空き容量および自端末の電池残量が閾値より高い場合は自端末のメモリの提供が可能であると判断する。また、メモリ管理部７２４は、自端末のランダムアクセスメモリ６０２の空き容量が閾値以下である場合や、自端末の電池残量が閾値以下である場合は自端末のメモリの提供が可能でないと判断する。
【０１１１】
ステップＳ１２０１において、自端末のメモリの提供が可能でない場合（ステップＳ１２０１：Ｎｏ）は、メモリ管理部７２４が、自端末のメモリを提供可能でないことを示す応答信号を要求元端末へ送信し（ステップＳ１２０２）、一連の処理を終了する。要求元端末は、提供要求信号の送信元の他端末である。
【０１１２】
ステップＳ１２０１において、自端末のメモリの提供が可能である場合（ステップＳ１２０１：Ｙｅｓ）は、メモリ管理部７２４は、自端末のメモリを提供可能なことを示す応答信号を要求元端末へ送信する（ステップＳ１２０３）。ステップＳ１２０３によって送信される応答信号には、提供可能なメモリの容量を示す情報が含まれていてもよい。
【０１１３】
つぎに、メモリ管理部７２４が、要求元端末からタスクデータを受信する（ステップＳ１２０４）。つぎに、メモリ管理部７２４が、メモリ共有の開始を通知する共有開始信号を要求元端末へ送信し（ステップＳ１２０５）、一連の処理を終了する。
【０１１４】
以上の各ステップにより、端末＃１は、他端末からの提供要求信号を受信した場合に、自端末のランダムアクセスメモリ６０２を提供可能であれば要求元端末との間でメモリ共有を開始することができる。
【０１１５】
（電池残量減少時の処理）
図１３は、電池残量減少時の処理の一例を示すフローチャートである。図８−２に示したステップＳ８１５において、端末＃１のオペレーティングシステム７２０は、たとえば図１３に示す各ステップを実行する。まず、メモリ管理部７２４が、他端末のタスクデータを自端末のランダムアクセスメモリ６０２に保持しているか否かを判断する（ステップＳ１３０１）。ステップＳ１３０１の判断は、たとえばデータベース７１０のメモリ使用情報に基づいて行うことができる。
【０１１６】
ステップＳ１３０１において、他端末のタスクデータを保持していない場合（ステップＳ１３０１：Ｎｏ）は、端末＃１は、一連の処理を終了する。他端末のタスクデータを保持している場合（ステップＳ１３０１：Ｙｅｓ）は、データ移動決定部７２５が、要求元端末と接続している他端末が存在するか否かを判断する（ステップＳ１３０２）。ステップＳ１３０２の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【０１１７】
ステップＳ１３０２において、要求元端末と接続している他端末が存在しない場合（ステップＳ１３０２：Ｎｏ）は、端末＃１は、一連の処理を終了する。要求元端末と接続している他端末が存在する場合（ステップＳ１３０２：Ｙｅｓ）は、メモリ管理部７２４が、要求元端末と接続している他端末へ提供要求信号を送信する（ステップＳ１３０３）。
【０１１８】
つぎに、メモリ管理部７２４が、ステップＳ１３０３によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する（ステップＳ１３０４）。メモリを提供可能なことを示す応答信号を受信していない場合（ステップＳ１３０４：Ｎｏ）は、データ移動決定部７２５が、ステップＳ１３０２へ戻り、要求元端末と接続している別の他端末が存在するか否かを判断する。
【０１１９】
ステップＳ１３０４において、メモリを提供可能なことを示す応答信号を受信した場合（ステップＳ１３０４：Ｙｅｓ）は、メモリ管理部７２４が、保持しているタスクデータを要求先端末へ送信し（ステップＳ１３０５）、一連の処理を終了する。タスクデータの送信先の要求先端末は、提供要求信号の送信先の他端末である。
【０１２０】
以上の各ステップにより、端末＃１は、電池残量減少時に、要求元端末のタスクデータを、要求元端末と接続している別の他端末へ転送することができる。これにより、メモリ共有の要求元端末がタスクデータを回収できなくなることを回避することができる。
【０１２１】
（アクセス発生時の処理）
図１４は、アクセス発生時の処理の一例を示すフローチャートである。図８−２に示したステップＳ８１９において、端末＃１のオペレーティングシステム７２０は、たとえば図１４に示す各ステップを実行する。まず、メモリ管理部７２４が、アクセス対象のタスクデータを自端末が保持しているか否かを判断する（ステップＳ１４０１）。ステップＳ１４０１の判断は、たとえばデータベース７１０のメモリ使用情報に基づいて行うことができる。タスクデータを自端末が保持している場合（ステップＳ１４０１：Ｙｅｓ）は、端末＃１は、自端末が保持しているタスクデータにアクセスし（ステップＳ１４０２）、一連の処理を終了する。
【０１２２】
ステップＳ１４０１において、タスクデータを自端末が保持していない場合（ステップＳ１４０１：Ｎｏ）は、メモリ管理部７２４が、タスクデータを保持している他端末（メモリ共有の要求先端末）のメモリにアクセス可能か否かを判断する（ステップＳ１４０３）。タスクデータを保持している他端末は、たとえばデータベース７１０のメモリ使用情報に基づいて特定することができる。タスクデータを保持している他端末のメモリにアクセス可能である場合（ステップＳ１４０３：Ｙｅｓ）は、端末＃１は、他端末のメモリのタスクデータにアクセスし（ステップＳ１４０４）、一連の処理を終了する。
【０１２３】
ステップＳ１４０３において、他端末のメモリにアクセス可能でない場合（ステップＳ１４０３：Ｎｏ）は、端末＃１は、所定時間待機する（ステップＳ１４０５）。つぎに、メモリ管理部７２４が、タスクデータを保持している他端末のメモリにアクセス可能か否かを再度判断する（ステップＳ１４０６）。
【０１２４】
ステップＳ１４０６において、他端末のメモリにアクセス可能である場合（ステップＳ１４０６：Ｙｅｓ）は、端末＃１は、ステップＳ１４０４へ移行する。他端末のメモリにアクセス可能でない場合（ステップＳ１４０６：Ｎｏ）は、端末＃１は、タスクデータへのアクセスにかかるタスクの処理を初期状態から開始し（ステップＳ１４０７）、一連の処理を終了する。この場合は、端末＃１は、他端末へのアクセスが可能になった後に、他端末が保持している自端末のタスクデータを破棄させ、メモリ共有を終了する処理を行ってもよい。
【０１２５】
以上の各ステップにより、端末＃１は、自端末のタスクデータへのアクセス発生時に、自端末または他端末に保持されているタスクデータにアクセスすることができる。また、自端末のタスクデータを保持している他端末にアクセスできない場合は、一定時間待機して再度アクセスを試み、アクセスが可能になった場合は他端末のタスクデータにアクセスする。これにより、自端末のタスクデータを保持している他端末に一時的にアクセスできない状態になっても、他端末が保持しているタスクデータにアクセス可能になる。
【０１２６】
（切断検出時の処理）
図１５は、切断検出時の処理の一例を示すフローチャートである。図８−２に示したステップＳ８２１において、端末＃１のオペレーティングシステム７２０は、たとえば図１５に示す各ステップを実行する。まず、メモリ管理部７２４が、通信が切断された他端末のタスクデータを保持しているか否かを判断する（ステップＳ１５０１）。ステップＳ１５０１の判断は、たとえばデータベース７１０のメモリ使用情報に基づいて行うことができる。通信が切断された他端末のタスクデータを保持していない場合（ステップＳ１５０１：Ｎｏ）は、端末＃１は、一連の処理を終了する。
【０１２７】
ステップＳ１５０１において、通信が切断された他端末（要求元端末）のタスクデータを保持している場合（ステップＳ１５０１：Ｙｅｓ）は、端末＃１は、所定時間待機する（ステップＳ１５０２）。つぎに、データ移動決定部７２５が、切断された通信が回復したか否かを判断する（ステップＳ１５０３）。切断された通信が回復した場合（ステップＳ１５０３：Ｙｅｓ）は、端末＃１は、一連の処理を終了する。
【０１２８】
ステップＳ１５０３において、切断された通信が回復していない場合（ステップＳ１５０３：Ｎｏ）は、データ移動決定部７２５が、要求元端末と接続している他端末が存在するか否かを判断する（ステップＳ１５０４）。ステップＳ１５０４の判断は、たとえば状態テーブル１３０に基づいて行うことができる。
【０１２９】
ステップＳ１５０４において、要求元端末と接続している他端末が存在しない場合（ステップＳ１５０４：Ｎｏ）は、端末＃１は、一連の処理を終了する。要求元端末と接続している他端末が存在する場合（ステップＳ１５０４：Ｙｅｓ）は、メモリ管理部７２４が、要求元端末と接続している他端末へ提供要求信号を送信する（ステップＳ１５０５）。
【０１３０】
つぎに、メモリ管理部７２４が、ステップＳ１５０５によって送信した提供要求信号に対して、メモリを提供可能なことを示す応答信号を受信したか否かを判断する（ステップＳ１５０６）。メモリを提供可能なことを示す応答信号を受信していない場合（ステップＳ１５０６：Ｎｏ）は、データ移動決定部７２５が、ステップＳ１５０４へ戻り、要求元端末と接続している別の他端末が存在するか否かを判断する。
【０１３１】
ステップＳ１５０６において、メモリを提供可能なことを示す応答信号を受信した場合（ステップＳ１５０６：Ｙｅｓ）は、メモリ管理部７２４が、保持しているタスクデータを他端末へ送信し（ステップＳ１５０７）、一連の処理を終了する。タスクデータの送信先は、提供要求信号の送信先の他端末である。
【０１３２】
以上の各ステップにより、端末＃１は、メモリ共有の要求元端末との通信切断時に、要求元端末のタスクデータを、要求元端末と接続している別の他端末へ転送することができる。これにより、メモリ共有の要求元端末がタスクデータを回収できなくなることを回避することができる。また、端末＃１は、メモリ共有の要求元端末との通信が切断しても、切断された通信が所定時間内に回復した場合はタスクデータを転送しない。これにより、タスクデータの転送などの処理の増加を抑えることができる。
【０１３３】
以上説明したように、データ共有方法およびデータ処理システムによれば、メモリ共有により預かったデータを返送できなくなることを回避するために、自端末の状態や通信環境の変化の検出結果に基づいて、預かったデータを他の端末に転送することができる。これにより、自端末の状態や通信環境が時々刻々と変化する無線端末間においても、メモリ共有による処理を安定させることができる。
【０１３４】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１３５】
（付記１）データを共有する複数のデータ処理装置の中の第１データ処理装置が、メモリの容量の不足、電池残量の変化、前記複数のデータ処理装置の中の第２データ処理装置に対する相対位置の変化、前記第２データ処理装置との間の通信速度の変化、または前記第２データ処理装置との通信の遮断を検出するときに、前記第１データ処理装置が有する前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信すること
を特徴とするデータ共有方法。
【０１３６】
（付記２）前記電池残量の減少、前記相対位置の増加およびまたは通信速度の減少を検出するときに、前記データの共有部分が他のデータ処理装置に送信されること
を特徴とする付記１に記載のデータ共有方法。
【０１３７】
（付記３）前記メモリの容量が前記第２データ処理装置から送信されるデータの容量よりも小さいときに前記メモリの容量の不足が検出され、
前記通信速度と前記データをストレージに記憶する速度との比較結果に基づいて前記データの共有部分が前記第３データ処理装置に送信されること
を特徴とする付記１または付記２に記載のデータ共有方法。
【０１３８】
（付記４）前記第１データ処理装置は、前記第１データ処理装置以外の前記複数のデータ処理装置の中で前記第２データ処理装置との通信速度が最も大きい第３データ処理装置に、前記データの共有部分を送信すること
を特徴とする付記１、付記２または付記３に記載のデータ共有方法。
【０１３９】
（付記５）前記第３データ処理装置は、前記複数のデータ処理装置の中で前記データの共有部分を使用しているデータ処理装置と通信を行っているデータ処理装置であること
を特徴とする付記１、付記２または付記３に記載のデータ共有方法。
【０１４０】
（付記６）前記通信の遮断を検出するとき、所定期間経過後に前記第２データ処理装置と通信を行う第４データ処理装置に前記データの共有部分を送信すること
を特徴とする付記１乃至付記５の何れか一に記載のデータ共有方法。
【０１４１】
（付記７）前記所定期間経過までに前記第２データ処理装置との通信が回復した場合は、前記第４データ処理装置に前記データの共有部分を送信しないこと
を特徴とする付記６に記載のデータ共有方法。
【０１４２】
（付記８）前記第１データ処理装置は、前記第２データ処理装置から受信した前記データの共有部分を前記第３データ処理装置へ送信すること
を特徴とする付記１に記載のデータ共有方法。
【０１４３】
（付記９）前記第３データ処理装置は、前記第１データ処理装置から前記データの共有部分を受信した場合に、前記第２データ処理装置との間で前記データの共有部分を共有すること
を特徴とする付記１に記載のデータ共有方法。
【０１４４】
（付記１０）複数のデータ処理装置で共有するデータを格納するメモリと、
メモリ容量を管理するメモリ管理ユニットと、
電池残量を監視する電池残量監視ユニットと、
前記複数のデータ処理装置の中の第２データ処理装置に対する相対位置を検出するとともに前記第２データ処理装置との間の通信速度を監視する移動決定ユニットと、
を含み、
前記メモリ管理ユニットがメモリの容量の不足を検出するときに、前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信すること
を特徴とするデータ処理システム。
【０１４５】
（付記１１）前記電池残量監視ユニットが前記電池残量の減少を検出するときに、前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信すること
を特徴とする付記１０に記載のデータ処理システム。
【０１４６】
（付記１２）前記移動決定ユニットが前記相対位置の増加または前記通信速度の減少を検出するときに、前記データの共有部分を前記複数のデータ処理装置の第３データ処理装置に送信すること
を特徴とする付記１０または付記１１に記載のデータ処理システム。
【符号の説明】
【０１４７】
１００  通信システム
１３０  状態テーブル
２０１  減少量
３０１  相対位置
３０２  増加量
４０１  電池残量
４０２  送信電力
４０３，４０５  差分
４０４  タスク電力
６００  データ処理装置
６２０  バス
【国際調査報告】
2012164695.tif 000024
2012164695.tif 000025