(57)【要約】  メモリを処理するための方法および装置ならびにコンピュータ可読記憶媒体が提供される。本方法では、処理されるべきアプリケーションによって占有された複数の回収可能なメモリページが決定され、処理されるべきアプリケーションに対応する回収割合が決定され、回収可能なメモリページおよび回収割合に従って回収数が決定され、回収可能なメモリページの中から回収数のメモリページが選択され、回収される。
2021506016.tif 000002
【特許請求の範囲】
【請求項１】
メモリを処理するための方法であって、前記方法が電子機器において実行される方法において、
処理されるべきアプリケーションによって占有された複数の回収可能なメモリページを決定すること（３０２）と、
前記処理されるべきアプリケーションに対応する回収割合を決定すること（３０４）と、
前記複数の回収可能なメモリページおよび前記回収割合に従って回収数を決定すること（３０６）と、
前記複数の回収可能なメモリページの中から前記回収数の回収可能なメモリページを選択し、前記回収数のメモリページを回収すること（３０８）と
を含むことを特徴とする、方法。
【請求項２】
処理されるべきアプリケーションによって占有された複数の回収可能なメモリページを決定する前記こと（３０２）が、
前記処理されるべきアプリケーションによって占有されたすべてのメモリページを、前記処理されるべきアプリケーションによって占有されたメモリを問い合わせすることによって決定することと、
前記複数の回収可能なメモリページとして少なくとも１つの特定のメモリページを除く前記すべてのメモリページを決定することであって、前記少なくとも１つ特定のメモリページの各々に格納されたデータが前記処理されるべきアプリケーションによって使用されているかまたは前記処理されるべきアプリケーションの正常な動作を保持するために必要なデータであることと
を含む、請求項１に記載の方法。
【請求項３】
前記複数の回収可能なメモリページとして少なくとも１つの特定のメモリページを除くすべてのメモリページを決定する前記ことが、
前記処理されるべきアプリケーションによって使用されているデータを格納しているかまたは前記処理されるべきアプリケーションの正常な動作を保持するために必要なデータを有する少なくとも１つ特定のメモリページを決定することと、
前記少なくとも１つ特定のメモリページの各々に占有マークを構成することであって、前記占有マークが、前記特定のメモリページが回収可能であり得ないことを指示することと、
前記複数の回収可能なメモリページとして、それに前記占有マークが構成されている少なくとも１つの特定のメモリページを除く前記すべてのメモリページを決定することと
を含む、請求項２に記載の方法。
【請求項４】
前記処理されるべきアプリケーションによって占有されたメモリのすべてのメモリページを問い合わせする前記ことが、
前記処理されるべきアプリケーションのメモリマップドファイルをトラバースすることと、
メモリマップドファイルにおいて、前記処理されるべきアプリケーションによって占有されたすべてのメモリマップドファイルを問い合わせすることと
を含む、請求項３に記載の方法。
【請求項５】
前記処理されるべきアプリケーションに対応する回収割合を決定する前記こと（３０４）が、
前記処理されるべきアプリケーションのアプリケーションタイプを決定することであって、前記アプリケーションタイプが前記処理されるべきアプリケーションの再開所要時間と回収割合との間の対応関係を示し、各再開所要時間が、回収割合の前記処理されるべきアプリケーションの前記複数の回収可能なメモリページが回収された後で前記処理されるべきアプリケーションを再開するために要する所要時間を示すことと、
前記アプリケーションタイプに対応する回収モデルに従って前記処理されるべきアプリケーションに対応する回収割合を決定することと
を含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記アプリケーションタイプに対応する回収モデルに従って前記処理されるべきアプリケーションに対応する回収割合を決定する前記ことが、
前記アプリケーションタイプが、前記処理されるべきアプリケーションの再開所要時間と回収割合との間に対応関係がないことを示す場合、前記処理されるべきアプリケーションに対応する前記回収割合が１００％であると決定すること
を含む、請求項５に記載の方法。
【請求項７】
前記アプリケーションタイプに対応する回収モデルに従って前記処理されるべきアプリケーションに対応する回収割合を決定する前記ことが、
前記アプリケーションタイプが、前記処理されるべきアプリケーションの再開所要時間と回収割合との間に線形の対応関係があることを示す場合、前記線形の対応関係の傾きに従って前記処理されるべきアプリケーションに対応する回収割合を決定すること
を含む、請求項５に記載の方法。
【請求項８】
前記アプリケーションタイプに対応する回収モデルに従って前記処理されるべきアプリケーションに対応する回収割合を決定する前記ことが、
前記アプリケーションタイプが、前記処理されるべきアプリケーションの再開所要時間と回収割合との間に非線形の対応関係があることを示す場合、前記処理されるべきアプリケーションに対応する前記回収割合を、回収されるメモリページの総数と前記処理されるべきアプリケーションの再開所要時間との間の費用対効果が最高になるように決定すること
を含む、請求項５に記載の方法。
【請求項９】
前記処理されるべきアプリケーションに対応する回収割合を決定する前記こと（３０４）が、
前記処理されるべきアプリケーションに対応する回収割合と再開所要時間との間の対応関係を決定することであって、前記再開所要時間が、前記回収割合の前記処理されるべきアプリケーションによって占有された前記回収可能なメモリページが回収された後で前記処理されるべきアプリケーションを再開するための所要時間であることと、
回収割合と再開所要時間との間の前記対応関係に従って前記回収可能なメモリページの回収割合を決定することと
を含む、請求項１から４のいずれか一項に記載の方法。
【請求項１０】
前記回収可能なメモリページの中から前記回収割合のメモリページを選択し、前記回収数のメモリページを回収する前記こと（３０８）が、
アイドル時間のサイズ降順に従って前記回収可能なメモリページの中から前記回収数の回収可能なメモリページを選択し、前記回収数のメモリページを回収することであって、前記アイドル時間が、その間に前記回収可能なメモリページが前記処理されるべきアプリケーションによって使用されない時間であること
を含む、請求項１から９のいずれか一項に記載の方法。
【請求項１１】
前記回収可能なメモリページの中から前記回収割合のメモリページを選択し、前記回収数のメモリページを回収する前記こと（３０８）が、
メモリページの通し番号に従って等間隔で前記回収可能なメモリページの中から前記回収数の回収可能なメモリページを選択し、前記回収数のメモリページを回収すること
を含む、請求項１から９のいずれか一項に記載の方法。
【請求項１２】
処理されるべきアプリケーションによって占有された回収可能なメモリページを決定すること（３０２）の前に、前記方法が、
少なくとも１つのフォアグラウンドアプリケーションが前記処理されるべきアプリケーションに依存しているかどうかを検出することと、
少なくとも１つのフォアグラウンドアプリケーションが前記処理されるべきアプリケーションに依存している場合、前記処理されるべきアプリケーションの優先度を前記フォアグラウンドアプリケーションと一致するように調整することと、
前記フォアグラウンドアプリケーションが処理されるべきアプリケーションに依存していない場合、処理されるべきアプリケーションによって占有された回収可能なメモリページを決定する前記動作を行うことと
をさらに含む、請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
メモリとプロセッサとを含む電子機器であって、前記メモリが、前記プロセッサによって実行されると、前記プロセッサに、請求項１から１２のいずれか一項に記載の方法を行わせるコンピュータプログラムを格納する、電子機器。
【請求項１４】
プロセッサによって実行されると、前記プロセッサに、請求項１から１２のいずれか一項に記載の方法を行わせるコンピュータプログラムを格納しているコンピュータ可読記憶媒体。
【請求項１５】
メモリからコンピュータプログラムを呼び出し、前記コンピュータプログラムを実行して、チップ上にインストールされている装置に請求項１から１２のいずれか一項に記載の方法を行わせるためのプロセッサを含むチップ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ処理の分野に関し、特に、メモリを処理するための方法および装置ならびにコンピュータ可読記憶媒体に関する。
【背景技術】
【０００２】
電子機器にインストールされたアプリケーションが動作するとき、特定のメモリが占有される必要がある。メモリは動作中のアプリケーションの主要なデータ記憶媒体である。電子機器のメモリ容量は限られているため、バックグラウンドアプリケーションによって占有されたメモリが過剰な場合、フォアグラウンドアプリケーションの動作効率が影響を受ける可能性がある。したがって、フォアグラウンドアプリケーションの動作効率を改善するために、メモリを回収する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
メモリを処理するための１つの関連する方法は、バックグラウンドで動作している単一のアプリケーションによって占有されたメモリを完全に回収することである。しかしながら、単一のアプリケーションによって使用されるメモリが完全に回収された後、次の開始および実行プロセスにおいてほぼすべての回収されたメモリをリロードする必要があり、それによって、メモリが回収されたアプリケーションの動作速度が目立って低下することになる。
【課題を解決するための手段】
【０００４】
本開示の実施形態は、フォアグラウンドアプリケーションの動作効率を改善するとともにメモリが回収されたアプリケーションの動作に及ぼす影響を低減させることもできる、メモリを処理するための方法および装置、ならびにコンピュータ可読記憶媒体を提供する。
【０００５】
第１の態様では、メモリを処理するための方法が提供され、本方法は電子機器において実行される。本方法では、処理されるべきアプリケーションによって占有された複数の回収可能なメモリページが決定され、処理されるべきアプリケーションに対応する回収割合が決定され、複数の回収可能なメモリページおよび回収割合に従って回収数が決定され、複数の回収可能なメモリページの中から回収数の回収可能なメモリページが選択され、回収される。
【０００６】
第２の態様では、メモリとプロセッサとを含む電子機器が提供され、メモリは、プロセッサによって実行されると、プロセッサに、処理されるべきアプリケーションによって占有された複数の回収可能なメモリページを決定することと、処理されるべきアプリケーションに対応する回収割合を決定することと、複数の回収可能なメモリページおよび回収割合に従って回収数を決定することと、複数の回収可能なメモリページの中から回収数の回収可能なメモリページを選択し、回収数のメモリページを回収することと、を行わせるコンピュータプログラムを格納する。
【０００７】
第３の態様では、プロセッサによって実行されると、プロセッサに、処理されるべきアプリケーションによって占有された複数の回収可能なメモリページを決定することと、処理されるべきアプリケーションに対応する回収割合を決定することと、複数の回収可能なメモリページおよび回収割合に従って回収数を決定することと、複数の回収可能なメモリページの中から回収数の回収可能なメモリページを選択し、回収数のメモリページを回収することと、を含む方法を行わせるコンピュータプログラムを格納しているコンピュータ可読記憶媒体を提供する。
【０００８】
本開示の実施形態によって提供される、メモリを処理するための方法および装置、電子機器ならびにコンピュータ可読記憶媒体では、処理されるべきアプリケーションによって占有された回収可能なメモリページおよび対応する回収割合が取得され、回収可能なメモリページおよび回収割合に従って回収数が決定され、回収可能なメモリページの中から回収数のメモリページが選択され、回収される。回収されるオブジェクトは回収可能なメモリページであり、必ずしもすべての回収可能なメモリページが回収されるとは限らないため、回収可能なメモリページは処理されるべきアプリケーションに対応する回収割合に従って回収され、よって処理されるべきアプリケーションに及ぼす動作影響が低減される。さらに、回収されたメモリページは解放され、他のアプリケーションによって使用され得るので、システムの総体的な処理効率も改善される。メモリを様々なアプリケーションのために割合として回収することにより、システムメモリ全体が増加したときに各アプリケーションに及ぼす悪影響がごくわずかであることが保証され、処理されるべきアプリケーションのメモリの回収と動作との間のバランスが維持される。
【０００９】
本開示の実施形態における技術的解決策をより明確に説明するために、実施形態または従来技術に関する説明で使用される必要がある図面を以下で簡単に紹介する。以下の説明の図面は本開示の一部の実施形態にすぎないことが明らかである。当業者はこれらの図面に従って難なく他の図面をさらに得ることができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態による電子機器の内部構造図である。
【図２】一実施形態による電子機器におけるシステムの部分フレーム図である。
【図３】一実施形態によるメモリを処理するための方法の流れ図である。
【図４Ａ】一実施形態における無関係のアプリケーションの回収割合を示すグラフである。
【図４Ｂ】一実施形態による線形アプリケーションの回収割合を示すグラフである。
【図４Ｃ】一実施形態による非線形アプリケーションの回収割合を示すグラフである。
【図５】別の実施形態によるメモリを処理するための方法の流れ図である。
【図６】一実施形態によるメモリ処理装置の構造ブロック図である。
【図７】別の実施形態によるメモリ処理装置の構造ブロック図である。
【図８】一実施形態による携帯電話の部分構造のブロック図である。
【発明を実施するための形態】
【００１１】
本開示の目的、技術的解決策および利点をより明確にするために、本開示を、図面および実施形態と併せて以下でさらに詳述する。本明細書に記載される具体的な実施形態は、本開示を限定するためではなく本開示を説明するために使用されているにすぎないことが理解されよう。
【００１２】
本開示の少なくともいくつかの実施形態は以下の解決策を提供する。
【００１３】
解決策１．メモリを処理するための方法であって、電子機器において実行され、
処理されるべきアプリケーションによって占有された複数の回収可能なメモリページを決定することと、
処理されるべきアプリケーションに対応する回収割合を決定することと、
複数の回収可能なメモリページおよび回収割合に従って回収数を決定することと、
複数の回収可能なメモリページの中から回収数の回収可能なメモリページを選択し、回収数のメモリページを回収することと
を含む、方法。
【００１４】
解決策２．処理されるべきアプリケーションによって占有された複数の回収可能なメモリページを決定することが、
処理されるべきアプリケーションによって占有されたすべてのメモリページを、処理されるべきアプリケーションによって占有されたメモリを問い合わせすることによって決定することと、
複数の回収可能なメモリページとして少なくとも１つの特定のメモリページを除くすべてのメモリページを決定することであって、少なくとも１つ特定のメモリページの各々に格納されたデータが処理されるべきアプリケーションによって使用されているかまたは処理されるべきアプリケーションの正常な動作を保持するために必要なデータであることと
を含む、解決策１に記載の方法。
【００１５】
解決策３．複数の回収可能なメモリページとして少なくとも１つの特定のメモリページを除くすべてのメモリページを決定することが、
処理されるべきアプリケーションによって使用されているデータを格納しているかまたは処理されるべきアプリケーションの正常な動作を保持するために必要なデータを有する少なくとも１つ特定のメモリページを決定することと、
少なくとも１つ特定のメモリページの各々に占有マークを構成することであって、占有マークが、特定のメモリページが回収可能であり得ないことを指示する、構成することと、
複数の回収可能なメモリページとして、それに占有マークが構成されている少なくとも１つの特定のメモリページを除くすべてのメモリページを決定することと
を含む、解決策２に記載の方法。
【００１６】
解決策４．処理されるべきアプリケーションによって占有されたメモリのすべてのメモリページを問い合わせすることが、
処理されるべきアプリケーションのメモリマップドファイルをトラバースすることと、
メモリマップドファイルにおいて、処理されるべきアプリケーションによって占有されたすべてのメモリページを問い合わせすることと
を含む、解決策３に記載の方法。
【００１７】
解決策５．処理されるべきアプリケーションに対応する回収割合を決定することが、
処理されるべきアプリケーションのアプリケーションタイプを決定することであって、アプリケーションタイプが処理されるべきアプリケーションの再開所要時間と回収割合との間の対応関係を示し、各再開所要時間が、回収割合の処理されるべきアプリケーションの複数の回収可能なメモリページが回収された後で処理されるべきアプリケーションを再開するために要する所要時間を示すことと、
アプリケーションタイプに対応する回収モデルに従って処理されるべきアプリケーションに対応する回収割合を決定することと
を含む、解決策１に記載の方法。
【００１８】
解決策６．アプリケーションタイプに対応する回収モデルに従って処理されるべきアプリケーションに対応する回収割合を決定することが、
アプリケーションタイプが、処理されるべきアプリケーションの再開所要時間と回収割合との間に対応関係がないことを示す場合、処理されるべきアプリケーションに対応する回収割合が１００％であると決定すること
を含む、解決策５に記載の方法。
【００１９】
解決策７．アプリケーションタイプに対応する回収モデルに従って処理されるべきアプリケーションに対応する回収割合を決定することが、
アプリケーションタイプが、処理されるべきアプリケーションの再開所要時間と回収割合との間に線形の対応関係があることを示す場合、線形の対応関係の傾きに従って処理されるべきアプリケーションに対応する回収割合を決定すること
を含む、解決策５に記載の方法。
【００２０】
解決策６．アプリケーションタイプに対応する回収モデルに従って処理されるべきアプリケーションに対応する回収割合を決定することが、
アプリケーションタイプが、処理されるべきアプリケーションの再開所要時間と回収割合との間に非線形の対応関係があることを示す場合、処理されるべきアプリケーションに対応する回収割合を、回収されるメモリページの総数と処理されるべきアプリケーションの再開所要時間との間の費用対効果が最高になるように決定すること
を含む、解決策５に記載の方法。
【００２１】
解決策９．処理されるべきアプリケーションに対応する回収割合を決定することが、
処理されるべきアプリケーションに対応する回収割合と再開所要時間との間の対応関係を決定することであって、再開所要時間が、回収割合の処理されるべきアプリケーションによって占有された回収可能なメモリページが回収された後で処理されるべきアプリケーションを再開するための所要時間であることと、
回収割合と再開所要時間との間の対応関係に従って回収可能なメモリページの回収割合を決定することと
を含む、解決策１に記載の方法。
【００２２】
解決策１０．回収可能なメモリページの中から回収割合のメモリページを選択し、回収数のメモリページを回収することが、
アイドル時間のサイズ降順に従って回収可能なメモリページの中から回収数の回収可能なメモリページを選択し、回収数のメモリページを回収することであって、アイドル時間が、その間に回収可能なメモリページが処理されるべきアプリケーションによって使用されない時間であること
を含む、解決策１に記載の方法。
【００２３】
解決策１１．回収可能なメモリページの中から回収割合のメモリページを選択し、回収数のメモリページを回収することが、
メモリページの通し番号に従って等間隔で回収可能なメモリページの中から回収数の回収可能なメモリページを選択し、回収数のメモリページを回収すること
を含む、解決策１に記載の方法。
【００２４】
解決策１２．処理されるべきアプリケーションによって占有された回収可能なメモリページを決定することの前に、本方法が、
少なくとも１つのフォアグラウンドアプリケーションが処理されるべきアプリケーションに依存しているかどうかを検出することと、
少なくとも１つのフォアグラウンドアプリケーションが処理されるべきアプリケーションに依存している場合、処理されるべきアプリケーションの優先度をフォアグラウンドアプリケーションと一致するように調整することと、
フォアグラウンドアプリケーションが処理されるべきアプリケーションに依存していない場合、処理されるべきアプリケーションによって占有された回収可能なメモリページを決定する動作を行うことと
をさらに含む、解決策１に記載の方法。
【００２５】
解決策１３．メモリとプロセッサとを含む電子機器であって、メモリが、プロセッサによって実行されると、プロセッサに、
処理されるべきアプリケーションによって占有された複数の回収可能なメモリページを決定することと、
処理されるべきアプリケーションに対応する回収割合を決定することと、
複数の回収可能なメモリページおよび回収割合に従って回収数を決定することと、
複数の回収可能なメモリページの中から回収数の回収可能なメモリページを選択し、回収数のメモリページを回収することと
を行わせるコンピュータプログラムを格納する、電子機器。
【００２６】
解決策１４．処理されるべきアプリケーションによって占有された複数の回収可能なメモリページを決定することが、
処理されるべきアプリケーションによって占有されたすべてのメモリページを、処理されるべきアプリケーションによって占有されたメモリを問い合わせすることによって決定することと、
複数の回収可能なメモリページとして少なくとも１つの特定のメモリページを除くすべてのメモリページを決定することであって、少なくとも１つ特定のメモリページの各々に格納されたデータが処理されるべきアプリケーションによって使用されているかまたは処理されるべきアプリケーションの正常な動作を保持するために必要なデータであることと
を含む、解決策１３に記載の電子機器。
【００２７】
解決策１５．複数の回収可能なメモリページとして少なくとも１つの特定のメモリページを除くすべてのメモリページを決定することが、
処理されるべきアプリケーションによって使用されているデータを格納しているかまたは処理されるべきアプリケーションの正常な動作を保持するために必要なデータを有する少なくとも１つ特定のメモリページを決定することと、
少なくとも１つ特定のメモリページの各々に占有マークを構成することであって、占有マークが、特定のメモリページが回収可能であり得ないことを指示することと、
複数の回収可能なメモリページとして、それに占有マークが構成されている少なくとも１つの特定のメモリページを除くすべてのメモリページを決定することと
を含む、解決策１４に記載の電子機器。
【００２８】
解決策１６．処理されるべきアプリケーションによって占有されたメモリのすべてのメモリページを問い合わせすることが、
処理されるべきアプリケーションのメモリマップドファイルをトラバースすることと、
メモリマップドファイルにおいて、処理されるべきアプリケーションによって占有されたすべてのメモリページを問い合わせすることと
を含む、解決策１５に記載の電子機器。
【００２９】
解決策１７．処理されるべきアプリケーションに対応する回収割合を決定することが、
処理されるべきアプリケーションのアプリケーションタイプを決定することであって、アプリケーションタイプが処理されるべきアプリケーションの再開所要時間と回収割合との間の対応関係を示し、各再開所要時間が、処理されるべきアプリケーションの回収割合の複数の回収可能なメモリページが回収された後で処理されるべきアプリケーションを再開するために要する所要時間を示すことと、
アプリケーションタイプに対応する回収モデルに従って処理されるべきアプリケーションに対応する回収割合を決定することと
を含む、解決策１３に記載の電子機器。
【００３０】
解決策１８．アプリケーションタイプに対応する回収モデルに従って処理されるべきアプリケーションに対応する回収割合を決定することが、
アプリケーションタイプが、処理されるべきアプリケーションの再開所要時間と回収割合との間に対応関係がないことを示す場合、処理されるべきアプリケーションに対応する回収割合が１００％であると決定すること
を含む、解決策１７に記載の電子機器。
【００３１】
解決策１９．アプリケーションタイプに対応する回収モデルに従って処理されるべきアプリケーションに対応する回収割合を決定することが、
アプリケーションタイプが、処理されるべきアプリケーションの再開所要時間と回収割合との間に線形の対応関係があることを示す場合、線形の対応関係の傾きに従って処理されるべきアプリケーションに対応する回収割合を決定すること
を含む、解決策１７に記載の電子機器。
【００３２】
解決策２０．アプリケーションタイプに対応する回収モデルに従って処理されるべきアプリケーションに対応する回収割合を決定することが、
アプリケーションタイプが、処理されるべきアプリケーションの再開所要時間と回収割合との間に非線形の対応関係があることを示す場合、処理されるべきアプリケーションに対応する回収割合を、回収されるメモリページの総数と処理されるべきアプリケーションの再開所要時間との間の費用対効果が最高になるように決定すること
を含む、解決策１７に記載の電子機器。
【００３３】
解決策２１．処理されるべきアプリケーションに対応する回収割合を決定することが、
処理されるべきアプリケーションに対応する回収割合と再開所要時間との間の対応関係を決定することであって、再開所要時間が、回収割合の処理されるべきアプリケーションによって占有された回収可能なメモリページが回収された後で処理されるべきアプリケーションを再開するための所要時間であることと、
回収割合と再開所要時間との間の対応関係に従って回収可能なメモリページの回収割合を決定することと
を含む、解決策１３に記載の電子機器。
【００３４】
解決策２２．回収可能なメモリページの中から回収割合のメモリページを選択し、回収数のメモリページを回収することが、
アイドル時間のサイズ降順に従って回収可能なメモリページの中から回収数の回収可能なメモリページを選択し、回収数のメモリページを回収することであって、アイドル時間が、その間に回収可能なメモリページが処理されるべきアプリケーションによって使用されない時間であること
を含む、解決策１３に記載の電子機器。
【００３５】
解決策２３．回収可能なメモリページの中から回収割合のメモリページを選択し、回収数のメモリページを回収することが、
メモリページの通し番号に従って等間隔で回収可能なメモリページの中から回収数の回収可能なメモリページを選択し、回収数のメモリページを回収すること
を含む、解決策１３に記載の電子機器。
【００３６】
解決策２４．プロセッサが、
処理されるべきアプリケーションによって占有された複数の回収可能なメモリページを決定する前に、少なくとも１つのフォアグラウンドアプリケーションが処理されるべきアプリケーションに依存しているかどうかを検出し、
少なくとも１つのフォアグラウンドアプリケーションが処理されるべきアプリケーションに依存している場合、処理されるべきアプリケーションの優先度をフォアグラウンドアプリケーションと一致するように調整し、かつ
フォアグラウンドアプリケーションが処理されるべきアプリケーションに依存していない場合、処理されるべきアプリケーションによって占有された回収可能なメモリページを決定する動作を行う
ようにさらに構成される、解決策１３に記載の電子機器。
【００３７】
解決策２５．プロセッサによって実行されると、プロセッサに、
処理されるべきアプリケーションによって占有された複数の回収可能なメモリページを決定することと、
処理されるべきアプリケーションに対応する回収割合を決定することと、
複数の回収可能なメモリページおよび回収割合に従って回収数を決定することと、
複数の回収可能なメモリページの中から回収数の回収可能なメモリページを選択し、回収数のメモリページを回収することと
を含む方法を行わせるコンピュータプログラムを格納しているコンピュータ可読記憶媒体。
【００３８】
一実施形態では、図１に示されるように、電子機器の内部構造図が提供される。電子機器は、システムバスを介して接続された、プロセッサと、メモリと、表示画面とを含む。プロセッサは、電子機器全体の動作を支援するための計算および制御能力を提供するように構成される。メモリは、データ、プログラム、および／または命令コードなどを格納するように構成され、メモリは少なくとも１つコンピュータプログラムを格納し、コンピュータプログラムは、プロセッサによって、本開示の実施形態で提供され、電子機器に適用される、メモリを処理するための方法を実装するために実行され得る。メモリは、磁気ディスク、光ディスク、読取り専用メモリ（ＲＯＭ）などの不揮発性記憶媒体、またはランダム・アクセス・メモリ（ＲＡＭ）などを含み得る。例えば、一実施形態では、メモリは、不揮発性記憶媒体および内部メモリを含む。不揮発性記憶媒体は、オペレーティングシステム、データベースおよびコンピュータプログラムを格納する。データベースは、様々な実施形態で提供されるメモリを処理するための方法を実装するための関連付けられたデータを格納し、例えば、各アプリケーションの名前や各アプリケーションに割り振られたメモリページなどの情報を格納し得る。コンピュータプログラムは、プロセッサによって、本開示の様々な実施形態で提供されるメモリを処理するための方法を実装するために実行され得る。内部メモリは、不揮発性記憶媒体内のオペレーティングシステム、データベースおよびコンピュータプログラムのためのキャッシュ動作環境を提供する。表示画面は、容量式スクリーンや電子画面などのタッチスクリーンであってもよく、タッチスクリーンは、フォアグラウンドアプリケーションのインターフェース表示情報を表示するように構成され、また、表示画面に作用するタッチ操作を検出して、フォアグラウンドアプリケーションとバックグラウンドアプリケーションとを切り替えるための命令などの対応する命令を生成するようにも構成され得る。
【００３９】
図１に示される構造は、本開示の解決策と関連付けられた部分構造ブロック図にすぎず、本開示の解決策が適用される電子機器に限定されず、具体的には、電子機器は、図に示される部分より多いかまたは少ない部分を含んでいてもよく、またはいくつかの部分を結合してもよく、異なる部分配置を有していてもよいことを、当業者は理解できよう。例えば、電子機器は、システムバスを介して接続されたネットワークインターフェースをさらに含み、ネットワークインターフェースは、外部電子機器と通信し、例えば、サーバと通信するためのイーサネットカードや無線ネットワークカードであり得る。
【００４０】
一実施形態では、図２に示されるように、電子機器の部分アーキテクチャ図が提供される。電子機器のアーキテクチャシステムは、ＪＡＶＡ空間層２１０と、ローカルフレーム層２２０と、カーネル空間層２３０とを含む。ＪＡＶＡ空間層２１０は、凍結および解凍アプリケーション２１２を含むことができ、電子機器は、凍結および解凍アプリケーション２１２を介してアプリケーションごとの凍結ポリシーを実装して、バックグラウンドで電力を消費する関連アプリケーションに対して凍結操作を行い得る。ローカルフレーム層２２０は、リソース優先度および制限管理モジュール２２２と、プラットフォーム凍結管理モジュール２２４とを含む。電子機器は、リソース優先度および制限管理モジュール２２２を介してリアルタイムで異なるアプリケーションを異なる優先度および異なるリソースの編成で維持し、性能を最適化し、電力消費を削減するという効果を達成するように上位の要求に従ってアプリケーションプログラムのリソースカテゴリを調整し得る。電子機器は、プラットフォーム凍結管理モジュール２２４を介して凍結時間のエントリ所要時間に従って、凍結できるタスクをバックグラウンドで異なる事前設定対応凍結層に割り振り得る。あるいは、３つの凍結層、すなわち、ＣＰＵ制約スリープモード、ＣＰＵ凍結スリープモード、およびプロセス深凍結モードがあってもよい。ＣＰＵ制約スリープモードは、関連プロセスによって占有されたＣＰＵリソースを制約して、関連プロセスがより少ないＣＰＵリソースを占有し、アイドルＣＰＵリソースが他の未凍結プロセスに向けられ、ＣＰＵリソースの占有が制約され、ネットワークリソースおよび入力／出力（Ｉ／Ｏ）インターフェースリソースのためのプロセスの占有もこれに対応して制約されるようにすること、を指す。ＣＰＵ凍結スリープモードは、関連プロセスがＣＰＵを使用することを禁止し、メモリの占有を保持し、ＣＰＵリソースが禁止されると、対応するネットワークリソースおよびＩ／Ｏインターフェースリソースも禁止されること、を指す。プロセス深凍結モードは、ＣＰＵリソースを禁止することに加えて関連プロセスによって占有されたメモリをさらに回収し、回収されたメモリが他のプロセスの使用に供され得ること、を指す。カーネル空間層２３０は、ユーザ識別子（ＵＩＤ）管理モジュール２３１と、Ｃｇｒｏｕｐモジュール２３２と、バインダ管理および制御モジュール２３３と、プロセスメモリ回収モジュール２３４と、凍結満了中止モジュール２３５とを含む。ＵＩＤ管理モジュール２３１は、アプリケーションのＵＩＤに基づいて第三者アプリケーションのリソースを管理または凍結するように構成される。プロセス識別子（ＰＩＤ）に基づくプロセス管理および制御と比較して、ＵＩＤを介してユーザのアプリケーションリソースを均一に管理する方がより好都合である。Ｃｇｒｏｕｐモジュール２３２は、完全な中央処理装置（ＣＰＵ）、ＣＰＵＳＥＴ、メモリ、Ｉ／Ｏおよびネット関連のリソース制限機構のセットを提供するように構成される。バインダ管理および制御モジュール２３３は、バックグラウンドバインダ通信の優先度を制御するように構成される。ローカルフレーム層２２０のインターフェースモジュールは上位層に展開されたバインダインターフェースを含み、上位層のフレームまたはアプリケーションは、提供されたバインダインターフェースを介してリソース優先度および制限管理モジュール２２２ならびにプラットフォーム凍結管理モジュール２２４にリソース制限または凍結命令を送る。プロセスメモリ回収モジュール２３４はプロセス深凍結モードを実装するように構成されるので、ある第三者アプリケーションが凍結状態にあるとき、プロセスファイル領域が主として解放され、それによって、メモリを節約し、アプリケーションの次の開始速度を上げるという効果が達成される。凍結満了中止モジュール２３５は、凍結満了シーンで生じた異常を解決するように構成される。上記のアーキテクチャを介して、本開示の様々な実施形態におけるメモリを処理するための方法が実装され得る。
【００４１】
一実施形態では、図３に示されるように、メモリを処理するための方法が提供される。本実施形態では、この方法が図１に示される電子機器に適用される例を説明する。方法は以下の動作を含む。
【００４２】
動作３０２で、処理されるべきアプリケーションによって占有された複数の回収可能なメモリページが決定される。
【００４３】
処理されるべきアプリケーションは、その占有メモリが回収される必要があるアプリケーションを表す。通常、処理されるべきアプリケーションは、バックグラウンドアプリケーションである。バックグラウンドアプリケーションは、バックグラウンドで動作しているアプリケーションであり、これに対応して、フォアグラウンドで動作しているアプリケーションがフォアグラウンドアプリケーションである。アプリケーション（ＡＰＰ）の動作は通常、複数の関連付けられたプロセスの動作によって具体化される。プロセスは、あるデータセットに関するコンピュータ内のプログラムの操作アクティビティであり、リソース割り振りおよびスケジューリングのためのシステムの基本単位であり、オペレーティングシステム構造の基礎である。フォアグラウンドアプリケーションの動作に関与するプロセスがフォアグラウンドプロセスであり、バックグラウンドアプリケーションの動作に関与するプロセスがバックグラウンドプロセスである。
【００４４】
動作状態のアプリケーションは、動作中のデータを格納するためにメモリ空間を占有する必要がある。異なる動作状態の異なるアプリケーションによって占有されるメモリ空間は必ずしも同じではない。メモリページはオペレーティングシステムのメモリ管理単位であり、異なる電子機器によって設定されたメモリページによって占有される単位メモリサイズは必ずしも同じではない。例えば、電子機器内のメモリ空間は１００，０００メモリページに分割されており、処理されるべきアプリケーションによって占有されたメモリページはメモリページ１００からメモリページ２００であり、その中のメモリページ１３０からメモリページ２００が回収可能なメモリページである。
【００４５】
一実施形態では、電子機器は、動作中に処理されるべきアプリケーションによって占有されたすべてのメモリページを事前記録でき、すべてのメモリページの中から回収可能なメモリページが決定される。回収可能なメモリページは、回収可能であり、処理されるべきアプリケーションまたは他のアプリケーションの動作に影響を及ぼさないか、わずかに影響を及ぼすメモリページを表す。
【００４６】
一実施形態では、電子機器は、すべてのメモリページの中でどのメモリページが回収可能なメモリページであり、どのメモリページが回収可能ではないメモリページであるかを記録でき、記録情報に従って処理されるべきアプリケーションによって占有された回収可能なメモリページを決定し得る。
【００４７】
動作３０４で、処理されるべきアプリケーションに対応する回収割合が決定される。
【００４８】
回収割合は、回収されるべきメモリの回収の割合を表し、回収割合は、回収可能なメモリの回収の大きさを導くために使用される。例えば、回収部分は５０％であり、これは占有メモリの５０％が回収され得ることを表す。電子機器は、異なるアプリケーションに対応する回収割合を事前設定する。あるいは、異なる回収割合とアプリケーション識別子との間の対応関係が確立されてもよく、電子機器は、処理されるべきアプリケーションのアプリケーション識別子と回収割合との間の対応関係に従って対応する回収割合を決定し得る。アプリケーション識別子は、アプリケーションを一意に識別するために使用され、事前設定された桁の数、文字（ｌｅｔｔｅｒ）および他の文字（ｃｈａｒａｃｔｅｒ）のうちの１つまたは複数によって構成され得る。
【００４９】
一実施形態では、回収割合を処理されるべきアプリケーションの再開所要時間に従って決定でき、電子機器は、異なる割合に従って処理されるべきアプリケーションによって占有された回収可能なメモリページの回収を予備検査し得る。処理されるべきアプリケーションが、割合に対応するメモリページが回収された後で再開されるときに必要な開始所要時間が検出され、開始所要時間が再開所要時間である。異なる割合に対応する再開所要時間に従って比較的適切な割合が決定され、決定された割合が処理されるべきアプリケーションに対応する回収割合と見なされる。
【００５０】
動作３０６で、回収可能なメモリページおよび回収割合に従って回収数が決定される。
【００５１】
回収数は、メモリページの回収数であり、この数は整数である。回収数は、回収可能なメモリページの総数と決定された回収割合との積であり得る。積が整数ではない場合、積に近似した整数が選択され得る。例えば、最も近似した整数が四捨五入で回収数として決定され得るか、または対応する整数が、切り捨て法や繰り上げ法などの方法に従って回収数として決定され得る。
【００５２】
本明細書では回収数は四捨五入で決定される。例えば、１００の回収可能なメモリページがあるとき、回収割合が３０．５％であり、得られた積が３０．５である場合、１００の回収可能なメモリページの中から３１ページが回収され、回収割合が２１．２％である場合、２１ページが回収され得る。
【００５３】
動作３０８で、回収可能なメモリページの中から回収数のメモリページが選択され、回収される。
【００５４】
電子機器は、決定された回収数に従って、処理されるべきアプリケーションによって占有された回収可能なメモリページの中から回収数のメモリページを選択し、回収数のメモリページを回収して、フォアグラウンドアプリケーションまたは他のアプリケーションによって使用されるように回収数の回収可能なメモリページを解放することができ、それによって、システムの総体的な処理効率が改善される。あるいは、電子機器は、回収割合に従って上記のプロセスメモリ回収モジュール２３４を介して回収可能なメモリページの中からメモリページを回収し得るので、メモリページが回収された後、処理されるべきアプリケーションに及ぼす影響はわずかである。
【００５５】
例えば、回収割合は３０％であり、１００の回収可能なメモリページがある。１００の回収可能なメモリページの中から３０のメモリページが回収される。すなわち、３０の回収可能なメモリページが解放されるので、電子機器の３０のアイドルメモリページがフォアグラウンドアプリケーションまたは他のバックグラウンドアプリケーションのために追加される。
【００５６】
このメモリを処理するための方法では、処理されるべきアプリケーションによって占有された回収可能なメモリページおよび対応する回収割合が決定され、回収可能なメモリページおよび回収割合に従って回収数が決定され、回収可能なメモリページの中から回収数のメモリページが選択され、回収される。回収されるオブジェクトは回収可能なメモリページであり、必ずしもすべての回収可能なメモリページが回収されるとは限らないため、回収可能なメモリページは処理されるべきアプリケーションに対応する回収割合に従って回収され、よって処理されるべきアプリケーションに及ぼす動作影響が低減される。さらに、回収されたメモリページは解放され、他のアプリケーションによって使用され得るので、システムの総体的な処理効率も改善される。メモリを様々なアプリケーションのために割合として回収することにより、システムメモリ全体が増加したときに各アプリケーションに及ぼす悪影響がごくわずかであることが保証され、処理されるべきアプリケーションのメモリの回収と動作との間のバランスが維持される。
【００５７】
一実施形態では、動作３０２は、処理されるべきアプリケーションによって占有されたメモリのすべてのメモリページを問い合わせすることと、すべてのメモリページの中から回収可能なメモリページを決定することとを含む。
【００５８】
あるいは、電子機器は、異なるアプリケーションによって占有されたメモリのメモリページをリアルタイムで記録し、占有された各メモリページが回収可能であるかどうかを、リアルタイムでさらに記録してもよい。例えば、あるメモリページ内のデータが現在、他のアプリケーションまたは処理されるべきアプリケーションによって使用されている場合、そのメモリページは回収可能ではないメモリページであると判断され、占有メモリページ内のデータがアプリケーションによって使用されていないか、またはこの状態の時間が事前設定時間を超えると記録されている場合、そのメモリページは回収可能なメモリページであると判断される。
【００５９】
事前に記録された情報から処理されるべきアプリケーションによって占有されたすべてのメモリページを問い合わせすることができ、記録された各メモリページの使用状態に従って、そのメモリページが回収可能なメモリページであるかどうかが判断され、次いですべての回収可能なメモリページが決定される。
【００６０】
一実施形態では、処理されるべきアプリケーションによって占有されたメモリのすべてのメモリページを問い合わせする動作は、処理されるべきアプリケーションのメモリマップドファイルをトラバースすることと、メモリマップドファイルにおいて、処理されるべきアプリケーションによって占有されたすべてのメモリページを問い合わせすることと、を含む。
【００６１】
メモリマップドファイルは、ファイルからメモリへのマッピングである。電子機器は、処理されるべきアプリケーションのための対応するメモリマップドファイルを確立し、メモリマップドファイルに、対応するアプリケーションによって占有されたメモリページが提供され、処理されるべきアプリケーションに対応するメモリマップドファイルがトラバースされ、処理されるべきアプリケーションによって占有されたメモリページがトラバースされた各メモリマップドファイルから読み出されるので、処理されるべきアプリケーションによって占有されたすべてのメモリページを決定でき、処理されるべきアプリケーションによって占有されたメモリページの問い合わせ効率および問い合わせの包括性が改善される。
【００６２】
一実施形態では、すべてのメモリページの中から回収可能なメモリページを決定する動作は、すべてのメモリページから占有マークを持っているメモリページを除外することと、除外されたメモリページ以外のメモリページから回収可能なメモリページを決定することとを含む。
【００６３】
処理されるべきアプリケーションによって占有されたすべての問い合わせされたメモリページについて、電子機器は、問い合わせされた各メモリページが占有マークを持っているかどうかまたは問い合わせされた各メモリページが複数のアプリケーションによって占有されているかどうかを検出し得る。占有マークは、対応するメモリページに格納されたデータが現在、処理されるべきアプリケーションによって使用されているか、または処理されるべきアプリケーションが正常な動作を保持するときにそのメモリページ内のデータが必要であることを表す。データが削除された後、処理されるべきアプリケーションは正常に動作できなくなるか、または対応するデータを格納するために新しいメモリページを繰り返し占有することが必要になる。電子機器は、対応するメモリページを回収できないことを示すために、これらのタイプの検出データを格納するメモリページに占有マークを設定し得る。
【００６４】
処理されるべきアプリケーションによって占有されたメモリページに格納されたデータはまた、他のアプリケーションによって使用される可能性もある。すなわち、複数のアプリケーションがメモリページ内のデータを使用する。占有マークはこのタイプのメモリページにも設定され得るので、電子機器は、このタイプのメモリページが回収されないことを示すために、このタイプのメモリページも同様に除外する。
【００６５】
除外されたメモリページに対して残ったメモリページが回収可能なメモリページであり、電子機器はこれらのメモリページからメモリを回収し得る。
【００６６】
一実施形態では、電子機器は、図２に示されるリソース優先度および制限管理モジュール２２２を呼び出して、処理されるべきアプリケーションのメモリマップドファイルをトラバースでき、メモリマップドファイルにおいて、処理されるべきアプリケーションによって占有されたすべてのメモリページが問い合わせされ、リソース優先度および制限管理モジュール２２２は、各メモリページが回収可能なメモリページであるかどうかを検出し、対応する占有マークが回収可能ではないメモリページに設定され、各メモリページが複数のアプリケーションによっても占有されているかどうかが記録され、問い合わせされたすべてのメモリページから占有マークを持っているメモリページおよび／または複数のアプリケーションによって占有されたメモリページが除外され、除外されたメモリページ以外のメモリページから回収可能なメモリページが決定される。
【００６７】
一実施形態では、処理されるべきアプリケーションに対応する回収割合を決定する動作は、処理されるべきアプリケーションのアプリケーションタイプを決定することと、アプリケーションタイプに対応する回収モデルに従って計算された回収割合を決定することとを含む。
【００６８】
アプリケーションタイプは、メモリ回収後に処理されるべきアプリケーションに及ぼす動作影響に従って設定されたタイプである。アプリケーションタイプは、無関係タイプ、線形タイプおよび非線形タイプを含む。無関係タイプは、処理されるべきアプリケーションの回収可能なメモリが回収された後で回収数にかかわらず対応するアプリケーションに対して目立った影響を表さない。線形タイプは、回収可能なメモリの回収割合の増加とともに、対応するアプリケーションの再開所要時間も増加し、再開所要時間と回収割合とが線形またはほぼ線形増加の関係を有することを表す。非線形タイプは、無関係タイプでも線形タイプでもない他のタイプを表す。目立った影響がないこととは、正常な開始所要時間に対する、異なる回収割合に対応する再開所要時間の超過する割合が事前設定割合範囲より小さいことを表す。ほぼ線形の増加とは、対応するおおよその傾きに従って異なる回収割合によって適合された再開所要時間と対応する回収割合の下での再開所要時間との間の誤差が事前設定範囲内の誤差を超えないことを表す。
【００６９】
電子機器は、異なるアプリケーションについて、メモリが異なる回収割合に従って回収された後のアプリケーションに及ぼす影響に従ってこのアプリケーションに対応するアプリケーションタイプを設定する。電子機器は、アプリケーションタイプごとに対応する回収モデルをさらに設定し、回収モデルに従って、異なる割合に従って回収可能なメモリページが回収された後の各アプリケーションタイプに対応する再開所要時間のサイズを計算する。
【００７０】
異なる回収割合および対応する再開所要時間に従って最適な回収割合が決定されるので、正常な開始所要時間に対してさほど大幅に増加しない再開所要時間を保持するという条件の下で、回収割合が最大になり、最適な回収割合が決定される。
【００７１】
一実施形態では、処理されるべきアプリケーションのアプリケーションタイプが無関係タイプである場合、回収モデルを介して計算される回収割合は１００％であり得る。すなわち、回収可能なメモリページは１００％回収され得る。処理されるべきアプリケーションのアプリケーションタイプが非線形タイプである場合、適切な割合が回収割合として選択され得るので、回収されるメモリページの数と対応するアプリケーションの再開所要時間との間の費用対効果は最高になる。例えば、事前設定された所要時間閾値である再開所要時間に対応する割合を選択でき、その割合が回収割合と見なされる。あるいは、正常な開始所要時間の事前設定された倍数である再開所要時間に対応する割合を選択でき、その割合が回収割合と見なされる。事前設定された所要時間閾値または事前設定された倍数は、経験値に従って設定された適切な値であり得る。例えば、所要時間閾値は２秒または３秒であり、事前設定された倍数は１．５または２であり得る。
【００７２】
処理されるべきアプリケーションのアプリケーションタイプが線形タイプである場合、対応する回収割合を異なる傾きに従って決定でき、傾きは、回収割合に対して異なる回収割合の下で対応する再開所要時間によって形成される曲線の傾斜の大きさを表す。傾きが大きくなると、決定される回収割合は、処理されるべきアプリケーションのメモリの回収と動作との間のバランスを維持するように、相対的に小さくなる
例えば、図４Ａ、図４Ｂから図４Ｃに示されるように、一実施形態における無関係のアプリケーション、線形アプリケーションおよび非線形アプリケーションの回収割合のグラフがそれぞれ提供されている。回収割合のグラフの水平座標は回収割合を表し、垂直座標は対応する回収割合の下での再開所要時間を表す。無関係のアプリケーションの回収割合のグラフは、異なる回収割合に従って対応するアプリケーションの回収可能なメモリページが回収された後で対応する再開所要時間が変化しないかまたはわずかに変化することを反映している。線形アプリケーションの回収割合のグラフの対応する傾きは、異なる回収割合の下で変化しないかまたはわずかに変化するが、非線形アプリケーションの回収割合のグラフは、一部の傾きは大きく、一部の傾きは小さい。非線形アプリケーションでは、回収可能なメモリページの回収割合として最小の傾きに対応する回収割合が選択され得る。
【００７３】
一実施形態では、動作３０４は、処理されるべきアプリケーションに対応する回収割合と再開所要時間との間の対応関係を決定することであって、再開所要時間が、回収割合の処理されるべきアプリケーションによって占有された回収可能なメモリページが回収された後で処理されるべきアプリケーションを再開するための所要時間である、決定することと、回収割合と再開所要時間との間の対応関係に従って回収可能なメモリページの回収割合を決定することと、を含む、
電子機器は、アプリケーションごとに対応する回収割合と再開所要時間との間の対応関係を設定し得る。対応関係は、アプリケーションによって占有されたメモリから異なる割合の回収可能なメモリが回収された後の対応する再開所要時間を表す。あるいは、対応関係は、対応する回収割合と再開所要時間との間の比較表であるか、または回収割合のグラフであってもよい。グラフは、異なる回収割合の下での対応する再開所要時間である。異なる再開所要時間に対する対応関係に従って適切な回収割合が選択され、アプリケーションによって占有された回収可能なメモリページの回収割合と見なされる。
【００７４】
あるいは、電子機器は、対応する開始所要時間閾値を設定してもよく、第２の開始所要時間が開始所要時間閾値に達したときに、対応する割合が回収可能なメモリページの回収割合として決定される。開始所要時間閾値は事前設定経験値であってもよく、さらに、異なるアプリケーションに対応する開始所要時間閾値が必ずしも同じであるとは限らない。例えば、対応する開始所要時間閾値は、対応するアプリケーションの正常な開始所要時間に従って決定されてもよく、正常な開始所要時間の１．５倍または２倍の所要時間が開始所要時間閾値と見なされる。
【００７５】
回収割合は再開所要時間に従って決定され、それによって、処理されるべきアプリケーションのメモリの回収と動作との間のバランスが維持される。
【００７６】
一実施形態では、動作３０８は、アイドル時間のサイズ降順に従って回収可能なメモリページの中から回収数のメモリページを選択し、回収数のメモリページを回収すること、またはメモリページの通し番号に従って等間隔で回収可能なメモリページの中から回収数のメモリページを選択し、回収数のメモリページを回収すること、を含む。
【００７７】
あるいは、電子機器は、回収数に従って回収可能なメモリページの中からメモリページをランダムに回収し得るか、またはメモリページの通し番号に従って等間隔で回収可能なメモリページの中から回収数のメモリページを選択し、回収数のメモリページを回収し得る。メモリページの通し番号は、電子機器によってメモリページに設定された番号であり、メモリページは、１、２、３、以下同様の順序で付番され得る。例えば、回収割合が３３％である場合、決定される均一な回収間隔は、２つのメモリページの回収間隔である。例えば、回収可能なメモリページはメモリページ１からメモリページ１００であり、よって、メモリページ１、メモリページ４、メモリページ７、メモリページ１０、…、メモリページ９７、およびメモリページ１００を順に回収でき、それによって、回収可能なメモリページの３３％の回収が実現される。均一な間隔で回収することにより、連続したメモリの各セグメントを完全に回収できないことが保証され、それによって、アプリケーションが再開されるときにより安定する。
【００７８】
一実施形態では、メモリページはまたメモリページのアイドル時間に従って回収され得る。電子機器は、処理されるべきアプリケーションのための各メモリページのアイドル時間を記録し、アイドル時間から回収数のメモリページをサイズ降順に選択し、回収数のメモリページを回収し得る。
【００７９】
メモリページに格納されたデータは必ずしもアプリケーションによって使用されるとは限らないため、メモリページのアイドル時間は、メモリページに格納されたデータが、システムが処理されるべきアプリケーションにメモリを割り振った後で最近使用されてから非使用状態にある時間を表す。電子機器は、各メモリページのデータ使用状況に従ってリアルタイムで各メモリページのアイドル時間を更新し、処理されるべきアプリケーションによって占有されたメモリページを回収する準備が整うと、最近記録された各回収可能なメモリページのアイドル時間が決定され得る。
【００８０】
４０％の回収割合を例にとり、そのアイドル時間が最初の４０％以内である回収可能なメモリページが回収され得る。アイドル時間に従ってメモリページを回収することにより、長時間にわたって占有された回収可能なメモリページを即時に回収でき、それによって処理されるべきアプリケーションに及ぼす影響が低減される。
【００８１】
一実施形態では、回収可能な各メモリページのタイムスタンプによって記録された更新時刻が決定され、更新時刻に従って対応する回収可能なメモリページのアイドル時間が計算される。
【００８２】
電子機器は、上記のリソース優先度および制限管理モジュール２２２を介してメモリページごとのタイムスタンプを作成でき、タイムスタンプは対応する更新時刻を記録するために使用され、更新時刻は、対応するメモリページの最近の使用時刻を表す。各メモリページ内のメモリが使用されていることが検出されると、タイムスタンプによって記録された更新時刻が更新され得る。
【００８３】
メモリページの割り振りを最近開始した、メモリページを回収した、解放したなどという状況下では、またはプロセッサ内のキャッシュの使用状態を問い合わせしたという状況下では、これに対応して関与するメモリページ内のデータが使用されると判断され、対応する状況下でのシステム時刻が更新時刻として生成される。メモリ回収機構が実行され始めると、対応するメモリページのアイドル時間が、タイムスタンプによって記録された更新時刻および現在のシステム時刻に従って計算され得る。現在時刻と最新時刻との差が対応するメモリページのアイドル時間である。
【００８４】
各回収可能なメモリページの更新時刻はソフトウェアを介してタイムスタンプを作成するという方法で記録され、アイドル時間は更新時刻に従って決定されるので、異なるプロセッサが効果的に共存でき、メモリ回収の普遍性が改善される。
【００８５】
一実施形態では、ＬＲＵ管理ユニットを介して記録された回収可能な各メモリページの更新時刻が決定され、更新時刻に従って対応する回収可能なメモリページのアイドル時間が計算される。
【００８６】
対応するＬＲＵ管理ユニットは、プロセッサ内のメモリ管理またはキャッシュユニットに配置され、最近使用されたメモリに関する統計をとるように構成される。ＬＲＵ管理ユニットは、各メモリアドレスおよび各メモリアドレスの更新時刻を記録でき、あるアドレスに対応するメモリが使用されると、プロセッサは対応するメモリアドレスおよび更新時刻を保存のためにＬＲＵ管理ユニットに入れる。メモリ回収機構が実行され始めると、メモリアドレスとメモリページとの間の対応関係に従って各メモリアドレスに対応するメモリページが分かるので、ＬＲＵ管理ユニットから対応するメモリページの更新時刻を読み出すことができる。メモリページの割り振りを最近開始した、メモリページを回収した、解放したなどという状況下では、またはプロセッサ内のキャッシュの使用状態を問い合わせしたという状況下では、これに対応して関与するメモリページ内のデータが使用されると判断され、対応する状況下でのシステム時刻が更新時刻として生成される。
【００８７】
ＬＲＵ管理ユニットが満了すると、割り込み情報が生成されてオペレーティングシステムに通知され、オペレーティングシステムは、ＬＲＵ管理ユニットのデータを読み出した後でＬＲＵ管理ユニット内のデータを空にできるので、ＬＲＵ管理ユニットは、各メモリアドレスや対応する更新情報などの情報を格納する作業を再開し得る。
【００８８】
本実施形態では、ＬＲＵ管理ユニットを作成することによって、各メモリの使用状態を正確に追跡でき、それによって、メモリページの更新時刻の検出精度が改善されるとともに、メモリ回収の利便性も改善される。
【００８９】
一実施形態では、図５に示されるように、メモリを処理するための別の方法が提供される。方法は以下の動作を含む。
【００９０】
動作５０２で、処理されるべきアプリケーションのメモリマップドファイルがトラバースされ、メモリマップドファイルにおいて、処理されるべきアプリケーションによって占有されたすべてのメモリページが問い合わせされる。
【００９１】
一実施形態では、電子機器は、システムのメモリ使用率が事前設定割合を超えることが検出されるか、またはユーザ操作によってトリガされたメモリ回収命令が受け取られると、メモリ回収機構をトリガし、すべての動作中のアプリケーションの中からメモリ回収アプリケーションを決定でき、決定されたアプリケーションが処理されるべきアプリケーションである。
【００９２】
一実施形態では、あるアプリケーションがフォアグラウンドからバックグラウンドに切り替えられることを検出し、そのアプリケーションを、プラットフォーム凍結管理モジュール２２４を介してプロセス深凍結モードに設定した後、電子機器はアプリケーションのメモリ回収機構をトリガし得る。
【００９３】
電子機器は、上記のリソース優先度および制限管理モジュール２２２を介して処理されるべきアプリケーションのメモリマップドファイルをトラバースし、トラバースされた各メモリマップドファイルから処理されるべきアプリケーションによって占有されたメモリページを問い合わせし得るので、処理されるべきアプリケーションによって占有されたすべてのメモリページを問い合わせすることができる。
【００９４】
動作５０４で、すべてのメモリページから占有マークを持っているメモリページが除外され、除外されたメモリページ以外のメモリページから回収可能なメモリページが決定される。
【００９５】
問い合わせされた各メモリページに二次トラバースが行われてもよく、二次トラバースは、問い合わせされた各メモリページが回収可能なメモリページであるかどうかを検出するために使用され、占有マークを持っているメモリページが検出されると、そのメモリページは回収可能ではないメモリページであると判断され、そのメモリページは除外され、二次トラバース後に得られたメモリページが回収可能なメモリページであり、電子機器は、すべての回収可能なメモリページの中からメモリページを選択し、そのメモリページを回収し得る。二次トラバースは、回収可能なメモリページの検出の包括性を改善し得る。
【００９６】
動作５０６で、処理されるべきアプリケーションのアプリケーションタイプが決定され、アプリケーションタイプに対応する回収モデルによって計算された回収割合が決定される。
【００９７】
アプリケーションタイプは、無関係タイプ、線形タイプおよび非線形タイプを含む。異なるアプリケーションタイプは異なる回収モデルに対応する。電子機器は、各アプリケーションのアプリケーションタイプを記録し、アプリケーションタイプに従って対応する回収モデルを決定し、回収モデルから異なる回収割合に対応する再開所要時間を問い合わせし、異なる再開所要時間に従って回収モデルから適切な再開所要時間に対応する回収割合を選択し、その回収割合を回収可能なメモリページの回収割合と見なす。
【００９８】
動作５０８で、回収可能なメモリページおよび回収割合に従って回収数が決定され、回収数のメモリページが、メモリページの通し番号に従って等間隔で回収可能なメモリページの中から選択され、回収される。
【００９９】
一実施形態では、電子機器は、上記のリソース優先度および制限管理モジュール２２２を介してプロセスメモリ回収モジュール２３４に決定された回収数を送り、受け取られた回収数に従ってプロセスメモリ回収モジュール２３４を介して処理されるべきアプリケーションによって占有された回収可能なメモリページを回収し得る。あるいは、回収可能なメモリページ間の回収間隔が回収割合に従って決定されてもよく、回収間隔に従って回収可能なメモリページが選択され、選択された回収可能なメモリページが回収される。
【０１００】
例えば、決定された回収割合が５０％である場合、回収は回収可能なメモリページの間隔で行われ得る。回収割合が８０％である場合、４つの連続したメモリページが回収されるたびに１つの回収可能なメモリページを保持でき、それによって、連続したメモリの各セグメントを完全に回収できないことが保証され、アプリケーションが再開されるときにより安定する。
【０１０１】
このメモリを処理するための方法では、処理されるべきアプリケーションによって占有された回収可能なメモリページおよび対応する回収割合が決定され、回収可能なメモリページおよび回収割合に従って回収数が決定され、回収可能なメモリページの中から回収数のメモリページが選択され、回収される。回収されるオブジェクトは回収可能なメモリページであり、必ずしもすべての回収可能なメモリページが回収されるとは限らないため、回収可能なメモリページは処理されるべきアプリケーションに対応する回収割合に従って回収され、よって処理されるべきアプリケーションに及ぼす動作影響が低減される。さらに、回収されたメモリページは解放され、他のアプリケーションによって使用され得るので、システムの総体的な処理効率も改善される。メモリを様々なアプリケーションのために割合として回収することにより、システムメモリ全体が増加したときに各アプリケーションに及ぼす悪影響がごくわずかであることが保証され、処理されるべきアプリケーションのメモリの回収と動作との間のバランスが維持される。
【０１０２】
一実施形態では、処理されるべきアプリケーションによって占有された複数の回収可能なメモリページを決定することの前に、本方法は、フォアグラウンドアプリケーションが処理されるべきアプリケーションに依存しているかどうかを検出することと、そうである場合、処理されるべきアプリケーションの優先度をフォアグラウンドアプリケーションと一致するように調整することと、そうでない場合、処理されるべきアプリケーションによって占有された回収可能なメモリページを決定する動作を行うことと、をさらに含む。
【０１０３】
一実施形態では、フォアグラウンドアプリケーションが処理されるべきアプリケーションに対する依存関係を終了すると、処理されるべきアプリケーションによって占有された回収可能なメモリページを決定する動作が行われる。
【０１０４】
依存関係は、あるアプリケーションが別の１つまたは複数のアプリケーションのデータを使用することにより別のアプリケーションの正常な動作をより円滑に実装できることを表す。依存関係を有する２つのアプリケーションがそれぞれ被依存アプリケーションと依存アプリケーションとであり、電子機器は、フォアグラウンドアプリケーションによって依存されており、フォアグラウンドアプリケーションによって依存されているバックグラウンドアプリケーションとしてバックグラウンドで動作する、検出された処理されるべきアプリケーションを決定する。電子機器は、フォアグラウンドアプリケーションによって依存されている検出されたバックグラウンドアプリケーションに対応する被依存マークを設定し、バックグラウンド・アプリケーション・プールの中から被依存マークを有するバックグラウンドアプリケーションを決定し、そのバックグラウンドアプリケーションをフォアグラウンドアプリケーションによって依存されているバックグラウンドアプリケーションとして決定し得る。フォアグラウンドアプリケーションはフォアグラウンドで動作しているアプリケーションである。
【０１０５】
処理されるべきアプリケーションがフォアグラウンドアプリケーションによって依存されている場合、処理されるべきアプリケーションをフォアグラウンドアプリケーションによって依存されているアプリケーションとして決定でき、フォアグラウンドアプリケーションによって依存されている処理されるべきアプリケーションの優先度は、フォアグラウンドアプリケーションの優先度と一致するように調整される。
【０１０６】
あるいは、電子機器は、フォアグラウンドアプリケーションによって依存されている問い合わせされた処理されるべきアプリケーションの優先度を調整し得るので、調整された優先度はフォアグラウンドアプリケーションの優先度と一致する。電子機器は、フォアグラウンドアプリケーションによって依存されている異なる処理されるべきアプリケーションの優先度とフォアグラウンド優先度との間の一致関係を設定し得る。フォアグラウンドアプリケーションによって依存されていることに適用できる処理されるべきアプリケーションの対応する優先度はこの一致関係に従って決定され、フォアグラウンドアプリケーションによって依存されている処理されるべきアプリケーションの優先度はこの優先度に合わせて調整されるので、フォアグラウンドアプリケーションによって依存されている処理されるべきアプリケーションのリソース制限の程度が低減され、フォアグラウンドアプリケーションによって依存されている処理されるべきアプリケーションに利用可能なリソースの制限の程度は、フォアグラウンドアプリケーションの制限の程度と一致する。
【０１０７】
一実施形態では、フォアグラウンドアプリケーションの優先度と一致する優先度は、フォアグラウンドアプリケーションの優先度と同じ優先度であり得る。すなわち、電子機器は、フォアグラウンドアプリケーションによって依存されている処理されるべきアプリケーションの優先度を、フォアグラウンドアプリケーションの優先度と同じ優先度に合わせて調整し得るので、フォアグラウンドアプリケーションによって依存されている処理されるべきアプリケーションに利用可能なリソースの制限の程度はフォアグラウンドアプリケーションの制限の程度と同じである。
【０１０８】
処理されるべきアプリケーションに対する依存関係を検出することにより、フォアグラウンドアプリケーションによって依存されている処理されるべきアプリケーションの優先度は、フォアグラウンドアプリケーションと一致する優先度に合わせて調整される。フォアグラウンドアプリケーションの優先度は通常最高であるため、利用可能なリソースの対応する制限の程度は最低であり、バックグラウンドプロセスの優先度は、バックグラウンドプロセスによる過剰なリソースの占有に起因するフォアグラウンドアプリケーションに及ぼす影響を防止するために、より低い。しかしながら、バックグラウンドプロセスにはフォアグラウンドアプリケーションによって依存されているという状況があり、被依存バックグラウンドプロセスの実行効率もフォアグラウンドアプリケーションに影響を及ぼし得る。本開示の実施形態では、依存されている処理されるべきアプリケーションの優先度をフォアグラウンド優先度と一致する優先度に合わせて調整することにより、依存されている処理されるべきアプリケーションに利用可能なリソースの制限の程度を低減でき、依存されている処理されるべきアプリケーションの処理効率が改善される。依存されている処理されるべきアプリケーションの処理効率が改善されるので、依存されている処理されるべきアプリケーションに依存しているフォアグラウンドアプリケーションの処理効率も改善される。
【０１０９】
一実施形態では、処理されるべきアプリケーションとフォアグラウンドアプリケーションとの間にソケット通信、バインダ通信、メモリ共有またはロック待機が存在する場合、バックグラウンドプロセスとフォアグラウンドアプリケーションとの間に通信機構が存在すると判断される。
【０１１０】
フォアグラウンドアプリケーションとの通信機構を有するバックグラウンドプロセスが存在するかどうかは、以下の方法のうちのいずれか１つまたは複数で検出され得る。
【０１１１】
（１）フォアグラウンドアプリケーションとのソケットおよび／またはバインダ通信を有するバックグラウンドプロセスが存在するかどうかを検出すること、
（２）フォアグラウンドアプリケーションとのメモリ共有を有するバックグラウンドプロセスが存在するかどうかを検出すること、および
（３）フォアグラウンドアプリケーションとのロックリソースを待機しているバックグラウンドプロセスが存在するかどうかを検出すること。
【０１１２】
電子機器は、バインダドライブでフォアグラウンドアプリケーションとバックグラウンドプロセスとの間にバインダ通信が存在するかどうかを検出するための検出機構を提供し、バインダドライブで提供された検出機構を呼び出してフォアグラウンドアプリケーションとのバインダ通信を有するバックグラウンドプロセスを検出し、検出されたバックグラウンドプロセスをフォアグラウンドアプリケーションによって依存されているバックグラウンドプロセスとして決定し得る。
【０１１３】
一実施形態では、電子機器は、様々なロックリソースを検出でき、ロックリソースはスレッドロック、ファイルハンドル、信号などを含む。ロック待機、すなわちロックリソース待機が各ロックリソースに発生しているかどうかが検出され得る。ロック待機が生成されていることが検出されると、待機挙動がフォアグラウンドアプリケーションで発生しているかどうかがさらに検出され得る。そうである場合、ロックリソースを待機しているすべてのバックグラウンドプロセスがトラバースされ、ロックリソースを待機している検出されたバックグラウンドプロセスは、フォアグラウンドアプリケーションによって依存されているバックグラウンドプロセスとして決定される。
【０１１４】
一実施形態では、電子機器は、オペレーティングシステムのカーネル空間でロックリソース監視モジュールおよび優先度調整モジュールを提供し、ロックリソース監視モジュールをカーネルの元の待機インターフェースに組み込み得る。ロックリソース監視モジュールは、スレッドロック、ファイルハンドル、信号などの様々なロックリソースが待機しているかどうか、および待機挙動がフォアグラウンドアプリケーションで発生しているかどうかを検出し、そうである場合、検出されたメッセージを優先度調整モジュールに送る。優先度調整モジュールは、ロックリソースを待機しているすべてのバックグラウンドプロセスをトラバースし、これらのバックグラウンドプロセスを、フォアグラウンドアプリケーションによって依存されているバックグラウンドプロセスとして決定する。優先度調整モジュールは、対応する処理されるべきアプリケーションの優先度を一致する優先度に合わせて調整する。
【０１１５】
一実施形態では、バックグラウンドプロセスとフォアグラウンドアプリケーションとの間に同期機構が存在する場合、同期機構を有する処理されるべきアプリケーションは、フォアグラウンドアプリケーションによって依存されているバックグラウンドプロセスとして決定される。
【０１１６】
電子機器はまた、ｆｕｔｅｘシステムを呼び出すことによって、フォアグラウンドアプリケーションとの同期機構を有するバックグラウンドプロセスがバックグラウンド・プロセス・セットに存在するかどうかを検出し、同期機構を有するバックグラウンドプロセスをフォアグラウンドアプリケーションによって依存されているバックグラウンドプロセスとして決定し得る。
【０１１７】
並行プログラミングでは、各プロセスのパブリック変数へのアクセスが制約されなければならず、この制約は同期と呼ばれる。オペレーティングシステムでは、ユーザモードの同期機構がｆｕｔｅｘシステムを呼び出すことによって実装され得る。ユーザモードは非特権状態を指す。同期機構は、セマフォ、排他的ロックなどを含む。ｆｕｔｅｘシステムを呼び出すことによってフォアグラウンドアプリケーションとの任意の１つの同期機構を有するバックグラウンドプロセスが存在することが検出されると、検出されたバックグラウンドプロセスは、フォアグラウンドアプリケーションによって依存されているバックグラウンドプロセスとして決定され得る。
【０１１８】
フォアグラウンドアプリケーションとバックグラウンドプロセスとの間の通信機構および／または同期機構を検出することにより、フォアグラウンドアプリケーションとの通信機構および／または同期機構を有する検出されたバックグラウンドプロセスは、フォアグラウンドアプリケーションによって依存されているバックグラウンドプロセスとして決定されるので、フォアグラウンドアプリケーションによって依存されている処理されるべきアプリケーションの検出効率を改善することができる。
【０１１９】
図３および図５の流れ図の様々な動作は矢印の指示に従って順に表示されているが、これらの動作は必ずしも矢印によって示された順で行われるとは限らないことを理解されたい。本明細書で明記されない限り、これらの動作に対する厳密な順序制限はなく、これらの動作は他の順序で行われ得る。さらに、図３および図５の少なくともいくつかの動作は複数の下位動作または複数の段階を含むことができ、これらの下位動作または段階は必ずしも同時に完了されるとは限らず、異なる時点で行われ得る場合もあり、これらの下位動作または段階は必ずしも順に行われるとは限らず、他の動作または他の動作の下位動作もしくは段階と交替でまたは交互に行われる場合もある。
【０１２０】
一実施形態では、図６に示されるように、メモリ処理装置が提供される。本装置は、メモリページ取得モジュール６０２と、回収割合取得モジュール６０４と、メモリ回収モジュール６０６とを含む。メモリページ取得モジュール６０２は、処理されるべきアプリケーションによって占有された回収可能なメモリページを決定するように構成される。回収割合取得モジュール６０４は、処理されるべきアプリケーションに対応する回収割合を決定するように構成される。またメモリ回収モジュール６０６は、回収可能なメモリページおよび回収割合に従って回収数を決定し、回収可能なメモリページの中から回収数のメモリページを選択し、回収数のメモリページを回収するように構成される。
【０１２１】
一実施形態では、メモリページ取得モジュール６０２は、処理されるべきアプリケーションによって占有されたメモリのすべてのメモリページを問い合わせし、すべてのメモリページから占有マークを持っているメモリページを除外し、除外されたメモリページ以外のメモリページから回収可能なメモリページを決定する、ようにさらに構成される。
【０１２２】
一実施形態では、メモリページ取得モジュール６０２は、処理されるべきアプリケーションのメモリマップドファイルをトラバースし、メモリマップドファイルにおいて、処理されるべきアプリケーションによって占有されたすべてのメモリページを問い合わせする、ようにさらに構成される。
【０１２３】
一実施形態では、回収割合取得モジュール６０４は、処理されるべきアプリケーションのアプリケーションタイプを決定し、アプリケーションタイプに対応する回収モデルによって計算された回収割合を決定するようにさらに構成される。
【０１２４】
一実施形態では、回収割合取得モジュール６０４は、処理されるべきアプリケーションに対応する回収割合と再開所要時間との間の対応関係を決定し、再開所要時間が、回収割合の処理されるべきアプリケーションによって占有された回収可能なメモリページが回収された後で処理されるべきアプリケーションを再開するための所要時間であり、回収割合と再開所要時間との間の対応関係に従って回収可能なメモリページの回収割合を決定する、ようにさらに構成される。
【０１２５】
一実施形態では、メモリ回収モジュール６０６は、アイドル時間のサイズ降順に従って回収可能なメモリページの中から回収数のメモリページを選択し、回収数のメモリページを回収するか、またはメモリページの通し番号に従って等間隔で回収可能なメモリページの中から回収数のメモリページを選択し、回収数のメモリページを回収する、ようにさらに構成される。
【０１２６】
一実施形態では、図７に示されるように、別のメモリ処理装置が提供される。本装置は、依存関係検出モジュール６０８と、優先度調整モジュール６１０とをさらに含む。
【０１２７】
依存関係検出モジュール６０８は、フォアグラウンドアプリケーションが処理されるべきアプリケーションに依存しているかどうかを検出するように構成される。
【０１２８】
優先度調整モジュール６１０は、処理されるべきアプリケーションがフォアグラウンドアプリケーション依存されている場合、処理されるべきアプリケーションの優先度をフォアグラウンドアプリケーションと一致するよう調整するように構成される。
【０１２９】
本メモリ処理装置では、処理されるべきアプリケーションによって占有された回収可能なメモリページおよび対応する回収割合が決定され、回収可能なメモリページおよび回収割合に従って回収数が決定され、回収可能なメモリページの中から回収数のメモリページが選択され、回収される。回収されるオブジェクトは回収可能なメモリページであり、必ずしもすべての回収可能なメモリページが回収されるとは限らないため、回収可能なメモリページは処理されるべきアプリケーションに対応する回収割合に従って回収され、よって処理されるべきアプリケーションに及ぼす動作影響が低減される。さらに、回収されたメモリページは解放され、他のアプリケーションによって使用され得るので、システムの総体的な処理効率も改善される。メモリを様々なアプリケーションのために割合として回収することにより、システムメモリ全体が増加したときに各アプリケーションに及ぼす悪影響がごくわずかであることが保証され、処理されるべきアプリケーションのメモリの回収と動作との間のバランスが維持される。
【０１３０】
上記のメモリ処理装置における各モジュールの分割は例示のためにすぎず、他の実施形態では、本メモリ処理装置は、上記のメモリ処理装置の全部または一部の機能を完了する必要に応じて異なるモジュールに分割され得る。
【０１３１】
本メモリ処理装置に関する特定の制限についてはメモリを処理するための方法に対する制限を参照でき、ここでは詳述しない。上記のメモリ処理装置の様々なモジュールは、ソフトウェア、ハードウェア、またはそれらの組み合わせによって全部または一部が実装され得る。様々なモジュールは、ハードウェアの形態で電子機器のプロセッサに組み込まれるかまたはプロセッサから独立していてもよく、プロセッサが呼び出して各モジュールに対応する動作を行うために、ソフトウェアの形態で電子機器のメモリに格納されていてもよい。
【０１３２】
本開示の実施形態で提供されるメモリ処理装置の各モジュールは、コンピュータプログラムの形態で実装され得る。コンピュータプログラムは、端末やサーバなどの電子機器で動作し得る。電子機器のメモリにはコンピュータプログラムによって形成されたプログラムモジュールが格納され得る。コンピュータプログラムは、プロセッサによって、本開示の実施形態に記載されるメモリを処理するための方法の動作を実装するために実行される。
【０１３３】
一実施形態では、電子機器が提供され、電子機器は、メモリと、プロセッサと、メモリに格納された、プロセッサ上で動作可能なコンピュータプログラムとを含み、プロセッサは、様々な実施形態で提供されるメモリを処理するための方法の動作を実装するためにコンピュータプログラムを実行する。
【０１３４】
一実施形態では、コンピュータ可読記憶媒体も提供され、コンピュータ可読記憶媒体はコンピュータプログラムを格納しており、コンピュータプログラムは、プロセッサによって、本開示の様々な実施形態に記載されるメモリを処理するための方法の動作を実装するために実行される。
【０１３５】
一実施形態では、命令を含むコンピュータプログラム製品が提供される。本コンピュータプログラム製品はコンピュータで動作し、コンピュータは、本開示の様々な実施形態に記載されるメモリを処理するための方法を行う。
【０１３６】
本開示の実施形態はコンピュータ装置も提供する。図８に示されるように、説明の便宜上、本開示の実施形態と関連付けられた部分だけが示されている。開示されていない特定の技術的詳細については、本開示の実施形態における方法の部分を参照されたい。コンピュータ端末は、携帯電話、タブレットコンピュータ、パーソナル・デジタル・アシスタント（ＰＤＡ）、ＰＯＳシステム（ＰＯＳ）、車載コンピュータ、およびウェアラブル装置を含む任意の端末機器であり得る。携帯電話はコンピュータ端末と見なされる。
【０１３７】
図８は、本開示の一実施形態によるコンピュータ端末と関連付けられた携帯電話の部分構造のブロック図である。図８である、携帯電話は、無線周波数（ＲＦ）回路８１０、メモリ８２０、入力部８３０、表示部８４０、センサ８５０、オーディオ回路８６０、ワイヤレスフィデリティ（Ｗｉ‐Ｆｉ）モジュール８７０、プロセッサ８８０、電源８９０、および他の部分を含む。図８に示される携帯電話構造は携帯電話に限定されず、携帯電話は、図に示されている部分より多いかもしくは少ない部分を含むか、またはいくつかの部分を組み合わせるか、または異なる部分配置を有していてもよい。
【０１３８】
ＲＦ回路８１０は、情報の受信および送信中もしくは呼び出し中に信号を受信および送信するように構成されていてもよく、基地局の下り情報を受信し、次いで処理のためにプロセッサ８８０にその情報を送信してもよく、または基地局に上りデータを送信してもよい。通常、ＲＦ回路は、アンテナ、少なくとも１つの増幅器、送受信機、結合器、低雑音増幅器（ＬＮＡ）、デュプレクサなどを含むが、これに限定されない。加えて、ＲＦ回路８１０は、無線通信およびネットワークを介して他の装置とさらに通信し得る。無線通信は、グローバル・システム・オブ・モバイル・コミュニケーションズ（ＧＳＭ）、汎用パケット無線サービス（ＧＰＲＳ）、符号分割多元接続（ＣＤＭＡ）、広帯域符号分割多元接続（ＷＣＤＭＡ）、ロング・ターム・エボリューション（ＬＴＥ）、電子メール、ショート・メッセージ・サービス（ＳＭＳ）などを含むがこれに限定されない任意の１つの通信規格またはプロトコルを使用し得る。
【０１３９】
メモリ８２０は、ソフトウェアプログラムとモジュールとを格納するように構成されてもよく、プロセッサ８８０は、メモリ８２０に格納されたソフトウェアプログラムとモジュールとを動作させることによって携帯電話の様々な機能ＡＰＰおよびデータ処理を実行する。メモリ８２０は主に記憶プログラム領域と記憶データ領域とを含むことができ、記憶プログラム領域はオペレーションシステム、少なくとも１つの機能に必要なＡＰＰ（音再生機能のアプリケーションプログラム、画像再生機能のアプリケーションプログラムなど）などを格納し得る。また記憶データ領域は、携帯電話の使用に従って作成されたデータ（オーディオデータ、連絡先など）を格納し得る。加えて、メモリ８２０は高速ＲＡＭを含んでいてもよく、ディスク記憶装置などの不揮発性メモリ、フラッシュデバイス、または他の不揮発性固体記憶装置をさらに含み得る。
【０１４０】
入力部８３０は、デジタルまたは文字情報を受け取り、携帯電話８００のユーザ設定および機能制御と関連付けられたキー信号入力を生成するように構成され得る。具体的には、入力部８３０は、タッチパネル８３１と他の入力装置８３２とを含み得る。タッチパネル８３１はタッチスクリーンとも呼ばれ、ユーザの表面または付近でのタッチ操作（指やスタイラスなどの任意の適切な物体または付属品を使用したタッチパネル８３１の表面またはタッチパネル８３１の付近でのユーザの操作など）を収集し、事前設定プログラムに従って対応する接続装置を駆動する。一実施形態では、タッチパネル８３１は、タッチ検出装置とタッチコントローラとを含み得る。タッチ検出装置は、ユーザのタッチの向きを検出し、タッチ操作によってもたらされた信号を検出し、その信号をタッチコントローラに送る。またタッチコントローラは、タッチ検出装置からタッチ情報を受け取り、それをタッチ座標に変換し、そのタッチ座標をプロセッサ８８０に送り、プロセッサ８８０によるコマンドを受け取り、コマンドを実行することができる。加えて、タッチパネル８３１は、抵抗、静電容量、赤外線、表面弾性波などの複数のタイプを使用して実装されてもよい。入力部８３０は、タッチパネル８３１に加えて、他の入力装置８３２をさらに含み得る。具体的には、その他の入力装置８３２は、物理キーボード、機能キー（音量制御キーやスイッチキーなど）などのうちの１つまたは複数を含み得るが、これに限定されない。
【０１４１】
表示部８４０は、ユーザによって入力された情報またはユーザに提供された情報または携帯電話の様々なメニューを表示するように構成され得る。表示部８４０は表示パネル８４１を含み得る。一実施形態では、表示パネル８４１は、液晶ディスプレイ（ＬＣＤ）、有機発光ダイオード（ＯＬＥＤ）などの形態で構成され得る。一実施形態では、タッチパネル８３１は表示パネル８４１をカバーでき、タッチパネル８３１が表面または付近でのタッチ操作を検出すると、そのタッチ操作はタッチイベントのタイプを決定するためにプロセッサ８８０に送られ、次いでプロセッサ８８０は、タッチイベントのタイプに従って表示パネル８４１上に対応する視覚出力を提供する。タッチパネル８３１および表示パネル８４１は、図８では２つの独立した部分として働くことによって携帯電話の入力および入力機能を実装するが、タッチパネル８３１および表示パネル８４１は、いくつかの実施形態では、携帯電話の入力および入力機能を実装するために一体化され得る。
【０１４２】
携帯電話８００は、光センサ、動きセンサ、他のセンサなどの少なくとも１つのセンサ８５０をさらに含み得る。具体的には、光センサは周囲光センサおよび近接センサを含んでいてもよく、周囲光センサは、周囲光の明るさに従って表示パネル８４１の輝度を調整でき、近接センサは、表示パネル８４１および／またはバックライトを閉じることができる。動きセンサは、加速度計センサをさらに含んでいてもよく、加速度計センサは、各方向の加速度の大きさを検出し、止まっている間の重力の大きさおよび方向を検出し得る。加速度計センサは、携帯電話ジェスチャのＡＰＰ（例えば、水平画面と垂直画面の切り替え）、および振動識別関連機能（例えば、歩数計やノッキング）を識別するように構成され得る。加えて、携帯電話は、ジャイロスコープセンサ、気圧計センサ、湿度計センサ、温度計センサ、赤外線センサなどの他のセンサでも構成され得る。
【０１４３】
オーディオ回路８６０、スピーカ８６１およびマイクロフォン８６２は、ユーザと携帯電話との間のオーディオインターフェースを提供し得る。オーディオ回路８６０は、受け取られたオーディオデータから変換された電気信号をスピーカ８６１に送ることができ、スピーカ８６１はその電気信号を出力のために音響信号に変換する。さらに、マイクロフォン８６２は、収集された音響信号を電気信号に変換し、オーディオ回路８６０は受け取られた電気信号をオーディオデータに変換し、次いでそのオーディオデータを処理のためにプロセッサ８８０に出力し、オーディオデータはＲＦ回路８１０を介して別の携帯電話に送られるか、またはオーディオデータはさらに処理するためにメモリ８２０に出力される。
【０１４４】
Ｗｉ‐Ｆｉは短距離伝送技術に属し、携帯電話は、Ｗｉ‐Ｆｉモジュール８７０によってユーザが電子メールを受信および送信したり、ウェブページを閲覧したり、ストリーミングメディアにアクセスしたりするのを支援でき、ユーザに無線広帯域インターネットアクセスを提供する。図８にはＷｉ‐Ｆｉモジュール８７０が示されているが、Ｗｉ‐Ｆｉモジュールは携帯電話８００の必須構成要素には属さず、必要に応じて省くことができる。
【０１４５】
プロセッサ８８０は、携帯電話のコントロールセンタであり、様々なインターフェースおよび線を使用して携帯電話全体のすべての部分を接続し、メモリ８２０に格納されたソフトウェアプログラムおよび／またはモジュールを動作させるかまたは実行し、メモリ８２０に格納されたデータを呼び出して、携帯電話の様々な機能および処理を実行して、携帯電話を完全に監視するように構成される。一実施形態では、プロセッサ８８０は、１つまたは複数の処理装置を含み得る。一実施形態では、プロセッサ８８０は、アプリケーションプロセッサおよび変調・復調プロセッサと統合されていてもよく、アプリケーションプロセッサはオペレーションシステム、ユーザインターフェース、アプリケーションプログラムなどを主に処理し、変調・復調プロセッサは無線通信を主に処理する。変調・復調プロセッサはプロセッサ８８０と統合されていなくてもよいことが理解されよう。例えば、プロセッサ８８０は、アプリケーションプロセッサとベースバンドプロセッサとを統合してもよく、ベースバンドプロセッサと他の周辺チップとは変調・復調プロセッサを構成し得る。携帯電話８００は、各構成要素に電力を供給するための電源８９０（電池など）をさらに含み得る。好ましくは、電源は、電源管理システムによって充電、放電および電力消費管理を実装するように、電源管理システムを介して論理的にプロセッサ８８０と接続され得る。
【０１４６】
一実施形態では、携帯電話８００は、カメラ、ブルートゥースモジュールなどをさらに含み得る。
【０１４７】
本開示の実施形態では、携帯電話に含まれるプロセッサは、メモリに格納されたコンピュータプログラムを実行して、上記のメモリを処理するための方法を実装する。
【０１４８】
本開示で使用されたメモリ、記憶装置、データベースまたは他の媒体へのあらゆる言及は、不揮発性メモリおよび／または揮発性メモリを含み得る。適切な不揮発性メモリは、ＲＯＭ、プログラム可能ＲＯＭ（ＰＲＯＭ）、電気的プログラム可能ＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、またはフラッシュメモリを含み得る。揮発性メモリは、外部キャッシュメモリとして使用されるＲＡＭを含み得る。限定ではなく例示として、ＲＡＭは、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、デュアル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、エンハンストＳＤＲＡＭ（ＥＳＤＲＡＭ）、Ｓｙｎｃｈｌｉｎｋ  ＤＲＡＭ（ＳＬＤＲＡＭ）、ラムバスダイレクトＲＡＭ（ＲＤＲＡＭ）、ダイレクト・ラムバス・ダイナミックＲＡＭ（ＤＲＤＲＡＭ）、およびラムバスダイナミックＲＡＭ（ＲＤＲＡＭ）などの複数の形態で取得され得る。
【０１４９】
上記の実施形態は、本開示のいくつかの実装方法を具体的により詳細に説明しているにすぎず、よって、本開示の特許範囲に対する限定と理解することはできない。当業者であれば本開示の概念から逸脱することなくいくつかの変形および改変を行い得ることを指摘しておきたい。それらの変形および改変は本開示の保護範囲内に含まれる。したがって、本開示の保護範囲は添付の特許請求の範囲によって決定されるべきである。
【図１】
2021506016.tif 000003
【図２】
2021506016.tif 000004
【図３】
2021506016.tif 000005
【図４Ａ】
2021506016.tif 000006
【図４Ｂ】
2021506016.tif 000007
【図４Ｃ】
2021506016.tif 000008
【図５】
2021506016.tif 000009
【図６】
2021506016.tif 000010
【図７】
2021506016.tif 000011
【図８】
2021506016.tif 000012
【国際調査報告】
2021506016.tif 000013
2021506016.tif 000014