(57)【要約】【課題】活動状態におけるデータ退避のための書き込み頻度を削減し、ストレージの寿命短縮を抑制すること。【解決手段】事前複写作成部２１が、バックグラウンドに切り替えられたアプリが使用するメモリ領域のコピーを作成するとともに、メモリ管理表を更新する。そして、ハイバネーション状態に遷移する際に、未複写領域退避部２２が、メモリ管理表を参照して、アプリが使用するメモリ領域のうち事前複写作成部２１によりコピーが作成されたメモリ領域を除くメモリ領域のコピーを作成する。【選択図】図２
2017157156.tif 000002
【特許請求の範囲】
【請求項１】
バックグラウンドへ切り替えられたアプリが使用するメモリ領域のコピーを不揮発性記憶装置に作成する事前複写部と、
ハイバネーション状態に遷移する際に、一般のアプリが使用するメモリ領域のうち前記事前複写部によりコピーが作成された状態にあるメモリ領域を除くメモリ領域のコピーを前記不揮発性記憶装置に作成する退避部と
を有することを特徴とするスマート装置。
【請求項２】
前記事前複写部は、常駐アプリ以外のアプリが新規に起動されたとき、又は、フォアグラウンドアプリが切り替えられたときに、バックグラウンドに切り替えられたアプリが使用するメモリ領域のコピーを前記不揮発性記憶装置に作成することを特徴とする請求項１に記載のスマート装置。
【請求項３】
前記事前複写部及び前記退避部は、前記不揮発性記憶装置のハイバネーション領域にコピーを作成することを特徴とする請求項１又は２に記載のスマート装置。
【請求項４】
前記事前複写部及び前記退避部は、前記不揮発性記憶装置のスワップ領域にコピーを作成することを特徴とする請求項１又は２に記載のスマート装置。
【請求項５】
ハイバネーション状態に遷移する際に、アプリ以外が使用するメモリ領域のコピーを前記不揮発性記憶装置のハイバネーション領域に作成するハイバネーション部をさらに有することを特徴とする請求項４に記載のスマート装置。
【請求項６】
コンピュータが、
バックグラウンドへ切り替えられたアプリが使用するメモリ領域のコピーを不揮発性記憶装置に作成し、
ハイバネーション状態に遷移する際に、一般のアプリが使用するメモリ領域のうちコピーが作成された状態にあるメモリ領域を除くメモリ領域のコピーを前記不揮発性記憶装置に作成する
処理を実行することを特徴とするデータ退避処理方法。
【請求項７】
コンピュータに、
バックグラウンドへ切り替えられたアプリが使用するメモリ領域のコピーを不揮発性記憶装置に作成し、
ハイバネーション状態に遷移する際に、一般のアプリが使用するメモリ領域のうちコピーが作成された状態にあるメモリ領域を除くメモリ領域のコピーを前記不揮発性記憶装置に作成する
処理を実行させることを特徴とするデータ退避処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スマート装置、データ退避処理方法及びデータ退避処理プログラムに関する。
【背景技術】
【０００２】
スマートフォン、スマートウォッチ等のスマート装置は、動作している時間より処理がない待機状態の期間が長い。例えば、スマートウォッチは、スマートフォンからイベントを通知されたとき、ユーザにより設定変更が行われるとき等の限られたときだけ動作し、他の期間は待機状態にある。図１２は、スマートウォッチの動作を説明するための図である。
【０００３】
図１２に示すように、例えば、スマートウォッチ８は、ＢＬＥ（Bluetooth（登録商標、以下同様）  Low  Energy）待ち受けの待機状態で、スマートフォン９からのイベント着信があると、バイブ、ＬＥＤ等でユーザに通知する。そして、スマートウォッチ８は、ユーザの操作に基づき、メール本文の転送等の動作を行った後、待機状態に戻る。
【０００４】
このように、スマート装置では、待機状態の期間が長いため、待機状態の消費電力を減らすことによって、バッテリの動作時間を長くすることができる。そこで、待機状態のときにスマート装置の状態をハイバネーション状態に遷移させる技術がある。図１３は、ハイバネーションによる消費電力の削減を説明するための図である。
【０００５】
図１３に示すように、スマート装置が活動状態にあるときは、消費電力は高くなるが、活動状態にある期間は、待機状態にある期間と比較すると短い。そこで、待機状態の消費電力をハイバネーションにより下げることで、スマート装置の消費電力を削減することができる。図１３では、待機状態の電力（旧）が、ハイバネーションを行わない場合の待機状態の消費電力を示し、待機状態の電力（新）が、ハイバネーションを行った場合の待機状態の消費電力を示す。
【０００６】
ただし、スマート装置の状態をハイバネーション状態に遷移させるためには、ＣＰＵ（Central  Processing  Unit）及びメモリのデータを退避し、スマート装置が活動状態になるときに、退避したデータを復元できるようにする必要がある。図１４は、状態遷移時のデータの退避と復元を説明するための図である。
【０００７】
図１４に示すように、スマートウォッチ８は、活動状態からハイバネーション状態に遷移する前に、データの退避処理を行い、ハイバネーション状態から復帰する前に、データの復元処理を行う。したがって、ハイバネーションでは、データ退避時間及びデータ復元時間をできるだけ短縮することが重要となる。図１５は、データ退避時間を短縮する技術を説明するための図である。
【０００８】
図１５に示すように、データ退避時間を短縮するために、スマートウォッチ８は、活動状態にあるときに、定期的にメモリ上のデータのコピーをストレージ７に作成する。そして、退避処理では、スマートウォッチ８は、前回のコピーから変更されたデータだけをストレージ７に退避する。このように、退避処理において、前回のコピーから変更されたデータだけをストレージ７に退避することで、スマートウォッチ８は、データ退避時間を短縮することができる。
【０００９】
なお、データ復元については、オン状態からオフ状態に移行するときに、処理の単位毎に区分して処理データを退避させ、オフ状態からオン状態に移行するときに、再開させたい処理に用いられる処理データのみを復元することで、復元時間を短縮する技術がある。
【００１０】
また、アイドル状態となっているデバイスに関して適時デバイスの状態を不揮発性メモリに書き込み、サスペンド処理を行う場合には、記憶されていないデバイスの状態のみを記憶することで、状態の記憶にかかる時間を短縮する技術がある。
【００１１】
また、ＲＡＭ（Random  Access  Memory）に記憶されたデータをフラッシュメモリに定期的に書き込む場合に、最新の書き込みからの経過時間もしくはＲＡＭ中のデータの重要度によって行うことで、フラッシュメモリを長く使用可能とする技術がある。また、フラッシュメモリの更新データを変更頻度が少ない上位部と変更頻度が多い下位部に分け、上位部については同一のデータが保持されている場合には書き込みを行わないことで、書き込み時間を短縮するとともに低寿命化を抑制する技術がある。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００９−１０４３２０号公報
【特許文献２】特開平１１−１３４０７５号公報
【特許文献３】特開平１０−１３３９４０号公報
【特許文献４】特開２０１４−２１５６２８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
データ退避時間を短縮するために、活動状態にあるときに、定期的にメモリ上のデータのコピーをストレージに作成する従来技術には、ストレージに対する書き込み回数が多くなり、フラッシュメモリ等のストレージの寿命が短くなるという問題がある。
【００１４】
本発明は、１つの側面では、活動状態におけるデータ退避のための書き込み頻度を削減し、ストレージの寿命短縮を抑制することを目的とする。
【課題を解決するための手段】
【００１５】
１つの態様では、スマート装置は、事前複写部と退避部とを有する。前記事前複写部は、バックグラウンドへ切り替えられたアプリが使用するメモリ領域のコピーを不揮発性記憶装置に作成する。前記退避部は、ハイバネーション状態に遷移する際に、一般のアプリが使用するメモリ領域のうち前記事前複写部によりコピーが作成された状態にあるメモリ領域を除くメモリ領域のコピーを前記不揮発性記憶装置に作成する。
【発明の効果】
【００１６】
１つの側面では、ストレージの寿命短縮を抑制することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施例１に係るデータ退避とデータ復元を説明するための図である。
【図２】図２は、実施例１に係るスマート装置の機能構成を示す図である。
【図３】図３は、メモリ管理表の一例を示す図である。
【図４】図４は、事前複写作成部による処理のフローを示すフローチャートである。
【図５】図５は、未複写領域退避部による処理のフローを示すフローチャートである。
【図６】図６は、退避領域選択部による処理のフローを示すフローチャートである。
【図７】図７は、実施例２に係るデータ退避とデータ復元を説明するための図である。
【図８Ａ】図８Ａは、ハイバネーションとスワップの連動を説明するための第１の図である。
【図８Ｂ】図８Ｂは、ハイバネーションとスワップの連動を説明するための第２の図である。
【図９】図９は、実施例２に係るスマート装置の機能構成を示す図である。
【図１０】図１０は、未複写領域退避部による処理のフローを示すフローチャートである。
【図１１】図１１は、実施例１及び２に係るデータ退避処理プログラムを実行するコンピュータのハードウェア構成を示す図である。
【図１２】図１２は、スマートウォッチの動作を説明するための図である。
【図１３】図１３は、ハイバネーションによる消費電力の削減を説明するための図である。
【図１４】図１４は、データの退避と復元を説明するための図である。
【図１５】図１５は、データ退避時間を短縮する技術を説明するための図である。
【発明を実施するための形態】
【００１８】
以下に、本願の開示するスマート装置、データ退避処理方法及びデータ退避処理プログラムの実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
【実施例１】
【００１９】
まず、実施例１に係るスマート装置によるデータ退避とデータ復元について説明する。図１は、実施例１に係るスマート装置によるデータ退避とデータ復元を説明するための図である。なお、図１では、スマート装置の一例としてスマートウォッチが図示されている。
【００２０】
図１に示すように、実施例１に係るスマート装置１は、活動状態において、アプリの状態変化時にハイバネーション領域にデータを保存する。ここで、アプリとは、スマート装置１で実行されるアプリケーションである。また、ハイバネーション領域とは、スマート装置１がハイバネーション状態に遷移する際に、ＣＰＵ及びメモリのデータを退避する領域であり、ストレージ７内の領域である。また、ストレージ７は、書き込み回数に制限のある不揮発性記憶装置であり、例えばフラッシュメモリである。
【００２１】
スマート装置１は、アプリがフォアグラウンドからバックグラウンドに切り替わると、そのアプリが使用するメモリ領域のデータをハイバネーション領域に保存する。ここで、フォアグラウンドとは、アプリが出力する画面が表示装置に表示されている状態であり、バックグラウンドとは、アプリが出力する画面が表示装置に表示されていない状態である。また、アプリが使用するメモリ領域のデータには、アプリのプログラムコードも含まれる。
【００２２】
バックグラウンドアプリは、メモリ上に居座っているものの、実行されない。そのため、スマート装置１を起動してからの時間が長くなると、メモリ上には休止状態のアプリが確保しているメモリ領域が大量に存在することとなる。これらの休止状態のアプリが確保しているメモリ領域はアプリの切り替えやアプリの強制終了が発生しない限り変化しない。したがって、バックグラウンドアプリが使用するメモリ領域のデータは、事前に保存されて更新されないため、ハイバネーション状態に遷移する際の保存が不要となる。
【００２３】
このため、スマート装置１は、ハイバネーション状態に遷移する際の退避処理で、未保存のデータだけをハイバネーション領域に一括保存する。また、スマート装置１は、ハイバネーション状態から復帰する際の復元処理で、ハイバネーション領域のデータを復元する。
【００２４】
このように、スマート装置１は、アプリがフォアグラウンドからバックグラウンドに切り替わると、そのアプリが使用するメモリ領域のデータをストレージ７に保存する。したがって、定期的にメモリのデータを保存する場合と比べて、スマート装置１は、ストレージ７に対する書き込み回数を減らすことができる。
【００２５】
次に、実施例１に係るスマート装置１の機能構成について説明する。図２は、実施例１に係るスマート装置１の機能構成を示す図である。図２に示すように、スマート装置１は、端末状態制御部２と、メモリ管理部３と、アプリ管理部４と、データ退避処理部５とを有する。
【００２６】
端末状態制御部２は、スマート装置１の状態を管理する。スマート装置１の状態には、活動状態、ハイバネーション状態が含まれる。端末状態制御部２は、スマート装置１の状態がハイバネーション状態に遷移するとハイバネーションへの状態遷移を後述するハイバネーション部３０に通知する。
【００２７】
メモリ管理部３は、メモリ６をブロック単位で管理する。メモリ管理部３は、後述するメモリ管理表を作成する。アプリ管理部４は、アプリの状態を管理する。アプリ管理部４は、アプリの起動、終了、フォアグラウンドとバックグラウンドの切り替え等を行い、アプリケーション制御全体を統括する。アプリ管理部４は、アプリ実行状況を後述する事前複写作成部２２に通知する。
【００２８】
データ退避処理部５は、メモリ６が記憶するデータのストレージ７への退避に関連する処理を行う。データ退避処理部５は、メモリ管理表記憶部１０と、データコピー管理部２０と、ハイバネーション部３０とを有する。
【００２９】
メモリ管理表記憶部１０は、メモリ６の状況をブロック単位で管理するための情報が登録されたメモリ管理表を記憶する。図３は、メモリ管理表の一例を示す図である。図３に示すように、メモリ管理表では、ブロック毎に番地とコピー作成状況が対応付けられる。番地は、ブロックの先頭アドレスと最終アドレスを示す。
【００３０】
コピー作成状況は、ストレージ７にブロックのコピーが作成されているか否かを示す。「済」はストレージ７にブロックのコピーが作成されていることを示し、「未」はストレージ７にブロックのコピーが作成されていないことを示す。なお、使用されていないブロックについては、コピー作成状況は「（未使用）」である。
【００３１】
データコピー管理部２０は、メモリ６が記憶するデータのコピーのストレージ７への作成を管理する。データコピー管理部２０は、事前複写作成部２１と、未複写領域退避部２２とを有する。
【００３２】
事前複写作成部２１は、スマート装置１が活動状態にあるときに、バックグラウンドに切り替わったアプリが使用するメモリ領域のコピーを作成し、コピーを作成したメモリ領域に含まれるブロックにメモリ管理表で対応付けられるコピー作成状況を「済」にする。
【００３３】
また、事前複写作成部２１は、終了したアプリが使用したメモリ領域のコピーをストレージ７から削除し、終了したアプリが解放したブロックにメモリ管理表で対応付けられるコピー作成状況を「未使用」にする。また、事前複写作成部２１は、フォアグラウンドに切り替わったアプリが使用するメモリ領域に含まれるブロックにメモリ管理表で対応付けられるコピー作成状況を「未」にする。
【００３４】
未複写領域退避部２２は、メモリ管理表を参照し、コピー作成状況が「未」であるブロックについて、スマート装置１がハイバネーション状態に遷移するときに、未コピー領域を後述する退避領域選択部３１に通知することで、コピーを作成する。
【００３５】
ハイバネーション部３０は、データコピー管理部２０の指示に基づいて、メモリ６のブロックのコピーをストレージ７に作成する。また、ハイバネーション部３０は、データコピー管理部２０の指示に基づいて、ストレージ７に作成したコピーを削除する。ハイバネーション部３０は、退避領域選択部３１と、データ退避部３２とを有する。
【００３６】
退避領域選択部３１は、ハイバネーション状態への状態遷移通知を端末状態制御部２から受け取ると、未複写領域退避部２２に未コピー領域について問い合わせる。問い合わせを受けた未複写領域退避部２２は、メモリ管理表を参照して、未コピー領域を退避領域選択部３１に通知する。
【００３７】
具体的には、未複写領域退避部２２は、メモリ管理表のコピー作成状況が「未」であるブロックのリストを退避領域選択部３１に通知する。退避領域選択部３１は、未コピー領域の通知を受け取ると、コピーを作成するブロックリストとしてデータ退避部３２に渡す。
【００３８】
データ退避部３２は、退避領域選択部３１からコピーを作成する対象ブロックのブロックリストを受け取ると、ブロックリストにリストアップされているブロックのデータをメモリ６から読み出してストレージ７に書き込む。
【００３９】
また、データ退避部３２は、事前複写作成部２１からコピーを作成する対象ブロックのブロックリストを受け取ると、ブロックリストにリストアップされているブロックのデータをメモリ６から読み出してストレージ７に書き込む。また、データ退避部３２は、事前複写作成部２１からコピーを削除する対象ブロックのブロックリストを受け取ると、ブロックリストにリストアップされているブロックのデータをストレージ７から削除する。
【００４０】
なお、ハイバネーション部３０は、スマート装置１がハイバネーション状態に遷移する際にＣＰＵのレジスタ等の値をストレージ７に退避し、スマート装置１がハイバネーション状態から復帰する際にＣＰＵのレジスタ等の値をストレージ７から復元する。
【００４１】
次に、事前複写作成部２１による処理のフローについて説明する。図４は、事前複写作成部２１による処理のフローを示すフローチャートである。図４に示すように、事前複写作成部２１は、アプリ管理部４からアプリ実行状況をイベントとして受け取ると、イベント種類は何であるかを判定する（ステップＳ１）。
【００４２】
その結果、イベント種類がフォアグラウンドアプリの切り替えである場合には、事前複写作成部２１は、バックグラウンドになったアプリが使用するメモリ領域のコピーを作成し（ステップＳ２）、メモリ管理表を更新する（ステップＳ３）。
【００４３】
また、イベント種類が新規アプリ起動である場合には、事前複写作成部２１は、起動アプリの種別は何であるかを判定する（ステップＳ４）。そして、起動アプリの種別が常駐アプリである場合には、バックグラウンドに切り替えられるアプリはないので、事前複写作成部２１は、ステップＳ３に進む。一方、起動アプリの種別が常駐アプリでない場合には、バックグラウンドに切り替えられるアプリがあるので、事前複写作成部２１は、ステップＳ２に進む。
【００４４】
また、イベント種類がアプリ終了である場合には、事前複写作成部２１は、該当アプリのコピー済みデータを消去し（ステップＳ５）、ステップＳ３へ進む。
【００４５】
このように、事前複写作成部２１が、バックグラウンドになったアプリが使用するメモリ領域のコピーを事前に作成するので、スマート装置１は、ハイバネーション状態へ遷移する際のデータ退避に要する時間を短縮することができる。
【００４６】
次に、未複写領域退避部２２による処理のフローについて説明する。図５は、未複写領域退避部２２による処理のフローを示すフローチャートである。図５に示すように、未複写領域退避部２２は、メモリ管理表を取得し（ステップＳ１１）、利用中の全メモリのうちコピーを未作成のブロックのリストを作成する（ステップＳ１２）。そして、未複写領域退避部２２は、ハイバネーション部３０の退避領域領域選択部３１に作成したリストを未コピー領域通知として通知する（ステップＳ１３）。
【００４７】
このように、未複写領域退避部２２がコピーを未作成のブロックのリストを作成して退避領域選択部３１に送信することによって、退避領域選択部３１はデータ退避部３２にデータを退避するブロックを指示することができる。
【００４８】
次に、退避領域選択部３１による処理のフローについて説明する。図６は、退避領域選択部３１による処理のフローを示すフローチャートである。図６に示すように、退避領域選択部３１は、ハイバネーション状態への状態遷移通知を受け取ると、未複写領域退避部２２へ未コピーの領域を問い合わせる（ステップＳ２１）。そして、退避領域選択部３１は、未コピーのブロックリストを受信し（ステップＳ２２）、データ退避部３２へブロックリスト中のブロックのデータ退避を指示する（ステップＳ２３）。
【００４９】
このように、退避領域選択部３１は、未複写領域退避部２２へ未コピーの領域を問い合わせることによって、データを退避するブロックのリストを取得することができる。
【００５０】
上述してきたように、実施例１では、事前複写作成部２１が、バックグラウンドに切り替えられたアプリが使用するメモリ領域のコピーを作成するとともに、メモリ管理表を更新する。そして、ハイバネーション状態に遷移する際に、未複写領域退避部２２が、メモリ管理表を参照して、アプリが使用するメモリ領域のうち事前複写作成部２１によりコピーが作成されたメモリ領域を除くメモリ領域のコピーを作成する。したがって、スマート装置１は、アプリが使用するメモリ領域のコピーを事前にストレージ７に書き込む頻度を削減することができ、ストレージ７の寿命短縮を抑制することができる。
【００５１】
また、実施例１では、事前複写作成部２１は、常駐アプリ以外のアプリが新規に起動されたとき、又は、フォアグラウンドアプリが切り替えられたときに、バックグラウンドに切り替えられたアプリがあると判定する。したがって、事前複写作成部２１は、バックグラウンドに切り替えられたアプリを正確に判定することができる。
【実施例２】
【００５２】
ところで、上記実施例１では、事前にメモリデータのコピーをハイバネーション領域に作成する場合について説明したが、ハイバネーション領域の代わりにスワップ領域にコピーを作成することもできる。そこで、実施例２では、事前にメモリデータのコピーをスワップ領域に作成する場合について説明する。なお、スワップ領域とは、ストレージ７内の領域であり、メモリ領域が不足した場合に、メモリ６に空き領域を作成するために、一部のメモリ領域のデータが書き出される領域である。
【００５３】
図７は、実施例２に係るスマート装置によるデータ退避とデータ復元について説明するための図である。図７に示すように、実施例２に係るスマート装置１ａは、図１と比較して、プレ活動状態を有し、また、活動状態において、アプリの状態変化時にハイバネーション領域の代わりにスワップ領域にデータを保存する。
【００５４】
また、ハイバネーション状態に遷移する際の退避処理では、スマート装置１ａは、未保存のデータを、ハイバネーション状態から復帰する際にユーザ処理再開に不要なデータと必要なデータに分けてストレージ７に保存する。すなわち、スマート装置１ａは、ハイバネーション状態から復帰する際にユーザ処理再開に不要なデータをスワップ領域に保存し、ハイバネーション状態から復帰する際にユーザ処理再開に必要なデータをハイバネーション領域に保存する。
【００５５】
そして、スマート装置１ａは、ハイバネーション状態から復帰する際の復元処理で、ハイバネーション領域のデータだけを復元し、プレ活動状態に遷移する。プレ活動状態では、スマート装置１ａは、ユーザ処理を再開するとともに、スワップ領域のデータをスワップインにより復元し、スワップ領域のデータを全て復元すると、活動状態に遷移する。
【００５６】
すなわち、スマート装置１ａは、ハイバネーションとスワップとを連動させてデータの退避と復元を行う。図８Ａ及び図８Ｂは、ハイバネーションとスワップの連動を説明するための図である。
【００５７】
図８Ａに示すように、活動状態では、スマート装置１ａは、アプリの状態変化時にスワップ領域にデータを保存する。そして、スマート装置１ａは、退避処理の前半で、ユーザ処理再開に不要なデータをスワップ領域に退避し、退避処理の後半で、ユーザ処理再開に必要なデータをハイバネーション領域に退避する。そして、スマート装置１ａは、ハイバネーション状態に遷移する。
【００５８】
そして、スマート装置１ａは、ハイバネーション状態から復帰する際の復元処理で、図８Ｂに示すように、ユーザ処理再開に必要なデータをハイバネーション領域から復元し、プレ活動状態に遷移する。そして、スマート装置１ａは、プレ活動状態において、ユーザ処理を再開するとともに、ユーザ処理再開に不要なデータをスワップ領域から復元し、スワップ領域からの復元が完了すると活動状態に遷移する。
【００５９】
このように、スマート装置１ａは、ハイバネーションとスワップとを連動させてデータの退避と復元を行うことによって、ハイバネーション状態から復帰する際のユーザ処理再開までの時間を短縮することができる。
【００６０】
次に、実施例２に係るスマート装置１ａの機能構成について説明する。図９は、実施例２に係るスマート装置１ａの機能構成を示す図である。なお、ここでは説明の便宜上、図２に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
【００６１】
図９に示すように、スマート装置１ａは、図２に示したスマート装置１と比較して、端末状態制御部２に代えて端末状態制御部２ａを有し、メモリ管理部３に代えてメモリ管理部３ａを有し、データ退避処理部５の代わりにデータ退避処理部５ａを有する。
【００６２】
端末状態制御部２ａは、端末状態制御部２と同様の機能を有するが、ハイバネーション状態への状態遷移の通知を、後述するデータコピー管理部２０ａの未複写領域退避部２２ａに通知する。メモリ管理部３ａは、メモリ管理部３と同様の機能を有するが、メモリ６が不足すると、メモリ不足を後述するスワップ部４０ａの退避領域選択部４１ａに通知する。
【００６３】
データ退避処理部５ａは、図２に示したデータ退避処理部５と比較すると、データコピー管理部２０に代えてデータコピー管理部２０ａを有し、ハイバネーション部３０に代えてハイバネーション部３０ａを有し、新たにスワップ部４０ａを有する。
【００６４】
データコピー管理部２０ａは、データコピー管理部２０と同様に、メモリ６のデータのコピーを管理するが、管理する対象は、一般のアプリが使用するメモリ６だけである。すなわち、データコピー管理部２０ａは、ＯＳ（Operating  System）、ミドルウェア、常駐アプリ等ユーザ処理再開に必要なデータについては対象としない。
【００６５】
データコピー管理部２０ａは、図２に示したデータコピー管理部２０と比較数すると、事前複写作成部２１に代えて事前複写作成部２１ａを有し、未複写領域退避部２２に代えて未複写領域退避部２２ａを有する。
【００６６】
事前複写作成部２１ａは、事前複写作成部２１と同様の機能を有するが、ハイバネーション部３０ではなくスワップ部４０ａにブロックリストを渡してブロックのコピー作成を指示する。
【００６７】
未複写領域退避部２２ａは、未複写領域退避部２２と同様に未コピー領域のブロックリストを作成するが、未コピー領域の問い合わせを受けることはない。未複写領域退避部２２ａは、端末状態制御部２ａからハイバネーション状態への状態遷移の通知を受けて未コピー領域のブロックリストを作成する。また、ハイバネーション部３０ではなくスワップ部４０ａにブロックリストを渡してブロックのコピー作成を指示する。
【００６８】
ハイバネーション部３０ａは、スマート装置１ａがハイバネーション状態に遷移する際の退避処理の後半で、ＣＰＵのレジスタ等の値も含めてユーザ処理再開に必要なデータをストレージ７に退避する。また、ハイバネーション部３０ａは、ハイバネーション状態から復帰する際の復元処理で、ＣＰＵのレジスタ等の値も含めてユーザ処理再開に必要なデータをストレージ７からメモリ６に復元する。
【００６９】
スワップ部４０ａは、データコピー管理部２０ａの指示に基づいて、メモリ６のブロックのコピーをストレージ７のスワップ領域に作成する。スワップ部４０ａは、退避領域選択部４１ａと、データ退避部４２ａとを有する。
【００７０】
退避領域選択部４１ａは、メモリ管理部３ａからメモリ不足通知を受け取ると、ストレージ７に退避するブロックを選択し、選択したブロックのリストをデータ退避部４２ａに渡す。
【００７１】
データ退避部４２ａは、退避領域選択部４１ａ、未複写領域選択部２２ａ、事前複写作成部２１ａから退避するブロックのリストを受け取り、リストにあるブロックのデータをストレージ７のスワップ領域にコピーする。また、データ退避部４２ａは、事前複写作成部２１ａからコピーを削除する対象ブロックのブロックリストを受け取ると、ブロックリストにリストアップされているブロックのデータをストレージ７から削除する。
【００７２】
次に、未複写領域退避部２２ａによる処理のフローについて説明する。図１０は、未複写領域退避部２２ａによる処理のフローを示すフローチャートである。図１０に示すように、未複写領域退避部２２ａは、メモリ管理表を取得し（ステップＳ３１）、一般のアプリが利用中の全メモリのうちコピーを未作成のブロックのリストを作成する（ステップＳ３２）。そして、未複写領域退避部２２ａは、スワップ部４０ａのデータ退避部４２ａに作成したリストをブロックリストとして通知する（ステップＳ３３）。
【００７３】
上述してきたように、実施例２では、データコピー管理部２０ａは、スワップ部４０ａにブロックリストを渡してデータの退避を指示する。そして、スワップ部４０ａのデータ退避部４２ａがブロックリストにあるブロックのコピーをストレージ７のスワップ領域に作成する。したがって、スマート装置１ａは、ハイバネーション状態から復帰する際に、ユーザ処理再開に不要なデータをプレ活動状態において復元することができ、短時間でユーザ処理を再開することができる。
【００７４】
なお、実施例１及び２に示したデータ退避処理部は、同様の機能を有するデータ退避処理プログラムをコンピュータで実行することによって実現される。そこで、データ退避処理プログラムを実行するコンピュータについて説明する。
【００７５】
図１１は、実施例１及び２に係るデータ退避処理プログラムを実行するコンピュータのハードウェア構成を示す図である。図１１に示すように、コンピュータ５０は、ＣＰＵ５０ａと、フラッシュメモリ５０ｂと、メモリ５０ｃと、表示部５０ｄと、無線通信部５０ｅを有する。
【００７６】
ＣＰＵ５０ａは、メモリ５０ｃに記憶されたアプリ、データ退避処理プログラム等のプログラムを読み出して実行する処理装置である。フラッシュメモリ５０ｂは、アプリ、データ退避処理プログラム等を記憶する不揮発性のメモリである。フラッシュメモリ５０ｂは、図２及び図９に示したストレージ７に対応する。
【００７７】
メモリ５０ｃは、フラッシュメモリ５０ｂから読み出されたアプリ、データ退避処理プログラム等を記憶するＲＡＭ（Random  Access  Memory）である。また、メモリ５０ｃは、データ退避処理プログラムの実行に必要なデータ、データ退避処理プログラム実行の途中結果等を記憶する。メモリ５０ｃは、図２及び図９に示したメモリ６に対応する。
【００７８】
表示部５０ｄは、アプリが出力する画面を表示する装置であり、例えば、液晶表示装置である。また、表示部５０ｄは、ユーザのタッチ操作を受け付け、受け付けたデータをＣＰＵ５０ａに渡す。
【００７９】
無線通信部５０ｅは、無線ＬＡＮ（Local  Area  Network）、Bluetooth、携帯電話用通信等の無線通信を行うモジュールである。無線通信部５０ｅは、複数の無線通信機能を備えてもよい。
【符号の説明】
【００８０】
１，１ａ    スマート装置
２，２ａ    端末状態制御部
３，３ａ    メモリ管理部
４    アプリ管理部
５，５ａ    データ退避処理部
６    メモリ
７    ストレージ
８    スマートウォッチ
９    スマートフォン
１０    メモリ管理表記憶部
２０，２０ａ    データコピー管理部
２１，２１ａ    事前複写作成部
２２，２２ａ    未複写領域退避部
３０，３０ａ    ハイバネーション部
３１    退避領域選択部
３２    データ退避部
４０ａ    スワップ部
４１ａ    退避領域選択部
４２ａ    データ退避部
５０    コンピュータ
５０ａ    ＣＰＵ
５０ｂ    フラッシュメモリ
５０ｃ    メモリ
５０ｄ    表示部
５０ｅ    無線通信部
【図１】
2017157156.tif 000003
【図２】
2017157156.tif 000004
【図３】
2017157156.tif 000005
【図４】
2017157156.tif 000006
【図５】
2017157156.tif 000007
【図６】
2017157156.tif 000008
【図７】
2017157156.tif 000009
【図８Ａ】
2017157156.tif 000010
【図８Ｂ】
2017157156.tif 000011
【図９】
2017157156.tif 000012
【図１０】
2017157156.tif 000013
【図１１】
2017157156.tif 000014
【図１２】
2017157156.tif 000015
【図１３】
2017157156.tif 000016
【図１４】
2017157156.tif 000017
【図１５】
2017157156.tif 000018