(57)【要約】  本発明は、メモリ最適化方法、装置、プログラム、及び記録媒体に関し、コンピュータの技術分野に属する。前記方法は、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出することと、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース臨界値に達したことを検出すれば、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加することと、前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなることと、を含む。【選択図】図１
2016538675.tif 000002
【特許請求の範囲】
【請求項１】
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記コントロールグループに対応するリソース閾値よりも小さく、かつ前記新たに作成されたプロセスを前記コントロールグループに付加した後に前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも大きい場合のリソース値であるリソース臨界値に達するか否かを検出することと、
現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース臨界値に達したことを検出すれば、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加することと、
前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなることと、
を含むことを特徴とするメモリ最適化方法。
【請求項２】
前記コントロールグループが前記リソース閾値により制限されるシステムコントロールグループである場合、
前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加することは、
前記システムコントロールグループの前記リソース閾値を保存することと、
前記リソース閾値の前記システムコントロールグループにおけるすべてのプロセスが占用する合計リソース値に対する制限を取り消すことと、
前記新たに作成されたプロセスを前記システムコントロールグループに付加することと、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記コントロールグループがリソース閾値により制限されない非システムコントロールグループである場合、
前記方法は、
システムコントロールグループのリソース閾値を読み取り、前記リソース閾値を前記非システムコントロールグループに対応するリソース閾値として確定すること、をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなることは、
前記コントロールグループに対して、前記リソース閾値よりも大きい初期リソース閾値を設定することと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出することと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいことを検出すれば、前記初期リソース閾値を低減し、前記初期リソース閾値が前記リソース閾値に等しくなりかつ前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも大きいことを検出すれば、前記コントロールグループにおける前記空のプロセスが占用するリソースに対してスワップ操作を実行し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、
を含むことを特徴とする請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記初期リソース閾値を低減し、前記初期リソース閾値が前記リソース閾値に等しくなりかつ前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することは、
前記初期リソース閾値を低減することと、
低減した後の前記初期リソース閾値と前記リソース閾値との差が所定の数値よりも小さいか否かを検出することと、
前記差が前記所定の数値よりも小さいことを検出すれば、低減した後の前記初期リソース閾値を前記リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、
を含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記初期リソース閾値を低減する場合にエラーがあれば、前記初期リソース閾値の補正を停止することと、
所定の期間を隔てた後、前記初期リソース閾値を、低減する前の初期リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、
をさらに含むことを特徴とする請求項４に記載の方法。
【請求項７】
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記コントロールグループに対応するリソース閾値よりも小さく、かつ前記新たに作成されたプロセスを前記コントロールグループに付加した後に前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも大きい場合のリソース値であるリソース臨界値に達するか否かを検出するように構成されるリソース検出モジュールと、
前記リソース検出モジュールにより現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース臨界値に達したことを検出すると、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加するように構成されるプロセス付加モジュールと、
前記プロセス付加モジュールにより付加された前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるように構成されるリソーススワップモジュールと、
を含むことを特徴とするメモリ最適化装置。
【請求項８】
前記コントロールグループが前記リソース閾値により制限されるシステムコントロールグループである場合、前記プロセス付加モジュールは、
前記システムコントロールグループの前記リソース閾値を保存するように構成される閾値保存サブモジュールと、
前記リソース閾値の前記システムコントロールグループにおけるすべてのプロセスが占用する合計リソース値に対する制限を取り消すように構成される制限取消しサブモジュールと、
前記新たに作成されたプロセスを前記システムコントロールグループに付加するように構成されるプロセス付加サブモジュールと、
を含むことを特徴とする請求項７に記載の装置。
【請求項９】
前記コントロールグループがリソース閾値により制限されない非システムコントロールグループである場合、前記装置は、
システムコントロールグループのリソース閾値を読み取り、前記リソース閾値を前記非システムコントロールグループに対応するリソース閾値として確定するように構成される閾値読取りモジュールをさらに含むことを特徴とする請求項７に記載の装置。
【請求項１０】
前記リソーススワップモジュールは、
前記コントロールグループに対して、前記リソース閾値よりも大きい初期リソース閾値を設定するように構成される第１の設定サブモジュールと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記第１の設定サブモジュールにより設定された前記初期リソース閾値よりも小さいか否かを検出するように構成されるリソース検出サブモジュールと、
前記リソース検出サブモジュールにより前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいことを検出すると、前記初期リソース閾値を低減し、前記初期リソース閾値が前記リソース閾値に等しくなりかつ前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される第１の処理サブモジュールと、
前記リソース検出サブモジュールにより前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも大きいことを検出すると、前記コントロールグループにおける前記空のプロセスが占用するリソースに対してスワップ操作を実行し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される第２の処理サブモジュールと、
を含むことを特徴とする請求項７〜９のいずれか１項に記載の装置。
【請求項１１】
前記第１の処理サブモジュールは、
前記初期リソース閾値を低減するように構成される閾値低減サブモジュールと、
前記閾値低減サブモジュールにより低減された後の前記初期リソース閾値と前記リソース閾値との差が所定の数値よりも小さいか否かを検出するように構成される差検出サブモジュールと、
前記差検出サブモジュールにより前記差が前記所定の数値よりも小さいことを検出すると、低減した後の前記初期リソース閾値を前記リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される第２の設定サブモジュールと、
を含むことを特徴とする請求項１０に記載の装置。
【請求項１２】
前記第１の処理サブモジュールは、
前記初期リソース閾値を低減する場合にエラーがあると、前記初期リソース閾値の補正を停止するように構成される補正一時停止サブモジュールと、
所定の期間を隔てた後、前記初期リソース閾値を、低減する前の初期リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される繰り返し検出サブモジュールと、
をさらに含むことを特徴とする請求項１０に記載の装置。
【請求項１３】
プロセッサと、
プロセッサが実行可能な命令を記憶するメモリと、を含み、
前記プロセッサは、
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記コントロールグループに対応するリソース閾値よりも小さく、かつ前記新たに作成されたプロセスを前記コントロールグループに付加した後に前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも大きい場合のリソース値であるリソース臨界値に達するか否かを検出し、
現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース臨界値に達したことを検出すれば、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加し、
前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなる、
ように構成されることを特徴とするメモリ最適化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータの技術分野に関し、特にメモリ最適化方法及び装置に関する。
【背景技術】
【０００２】
端末で実行するアプリケーションプログラムが多くなるにつれて、端末が利用可能なメモリがますます少なくなっており、実行しているアプリケーションプログラムの滑らかな動作に悪影響を及ぼしているため、端末に対してメモリ最適化を行う必要がある。
【０００３】
メモリ最適化を行う場合、端末は、作成された複数のプロセスを一つのコントロールグループ（Ｃｏｎｔｒｏｌ  Ｇｒｏｕｐ、Ｃｇｒｏｕｐ）に区分するとともに、リソース閾値を設定することにより該コントロールグループにおいてプロセスが占用可能な合計リソース値を制限することができ、端末は、新たに作成されたプロセスを該コントロールグループに加入する必要があるが、加入された後に該コントロールグループの合計リソース値がリソース閾値を超えたことを検出した場合、スワップ（ｓｗａｐ）操作を実行し、即ち、端末は、コントロールグループにおいてある期間内に利用されていない空のプロセスに対応するデータを記憶デバイスに移転し、該データが占用するリソースを該新たに作成されたプロセスに割り当て、該空のプロセスを再度利用する必要がある場合に、記憶デバイスから該データをコントロールグループが占用するリソースに移転する。
【０００４】
発明者は、本発明を実現する過程において、従来の技術では少なくとも端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという欠陥が存在していると発見した。
【発明の概要】
【０００５】
端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという問題を解決するために、本発明は、メモリ最適化方法及び装置を提供する。
【０００６】
本発明の実施例の第１の形態によれば、
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記コントロールグループに対応するリソース閾値よりも小さく、かつ前記新たに作成されたプロセスを前記コントロールグループに付加した後に前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも大きい場合のリソース値であるリソース臨界値に達するか否かを検出することと、
現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース臨界値に達したことを検出すれば、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加することと、
前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなることと、
を含むメモリ最適化方法を提供する。
【０００７】
好ましくは、前記コントロールグループが前記リソース閾値により制限されるシステムコントロールグループである場合、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加することは、
前記システムコントロールグループの前記リソース閾値を保存することと、
前記リソース閾値の前記システムコントロールグループにおけるすべてのプロセスが占用する合計リソース値に対する制限を取り消すことと、
前記新たに作成されたプロセスを前記システムコントロールグループに付加することと、を含む。
【０００８】
好ましくは、前記コントロールグループがリソース閾値により制限されない非システムコントロールグループである場合、前記方法はさらに、
システムコントロールグループのリソース閾値を読み取り、前記リソース閾値を前記非システムコントロールグループに対応するリソース閾値として確定することを含む。
【０００９】
好ましくは、前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなることは、
前記コントロールグループに対して、前記リソース閾値よりも大きい初期リソース閾値を設定することと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出することと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいことを検出すれば、前記初期リソース閾値を低減し、前記初期リソース閾値が前記リソース閾値に等しくなりかつ前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも大きいことを検出すれば、前記コントロールグループにおける前記空のプロセスが占用するリソースに対してスワップ操作を実行し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、を含む。
【００１０】
好ましくは、前記初期リソース閾値を低減し、前記初期リソース閾値が前記リソース閾値に等しくなりかつ前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することは、
前記初期リソース閾値を低減することと、
低減した後の前記初期リソース閾値と前記リソース閾値との差が所定の数値よりも小さいか否かを検出することと、
前記差が前記所定の数値よりも小さいことを検出すれば、低減した後の前記初期リソース閾値を前記リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、を含む。
【００１１】
好ましくは、前記方法はさらに、
前記初期リソース閾値を低減する場合にエラーがあれば、前記初期リソース閾値の補正を停止することと、
所定の期間を隔てた後、前記初期リソース閾値を、低減する前の初期リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、を含む。
【００１２】
本発明の実施例の第２の形態によれば、
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記コントロールグループに対応するリソース閾値よりも小さく、かつ前記新たに作成されたプロセスを前記コントロールグループに付加した後に前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも大きい場合のリソース値であるリソース臨界値に達するか否かを検出するように構成されるリソース検出モジュールと、
前記リソース検出モジュールにより現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース臨界値に達したことを検出すると、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加するように構成されるプロセス付加モジュールと、
前記プロセス付加モジュールにより付加された前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるように構成されるリソーススワップモジュールと、
を含むメモリ最適化装置を提供する。
【００１３】
好ましくは、前記コントロールグループが前記リソース閾値により制限されるシステムコントロールグループである場合、前記プロセス付加モジュールは、
前記システムコントロールグループの前記リソース閾値を保存するように構成される閾値保存サブモジュールと、
前記リソース閾値の前記システムコントロールグループにおけるすべてのプロセスが占用する合計リソース値に対する制限を取り消すように構成される制限取消しサブモジュールと、
前記新たに作成されたプロセスを前記システムコントロールグループに付加するように構成されるプロセス付加サブモジュールと、を含む。
【００１４】
好ましくは、前記コントロールグループがリソース閾値により制限されない非システムコントロールグループである場合、前記装置はさらに、
システムコントロールグループのリソース閾値を読み取り、前記リソース閾値を前記非システムコントロールグループに対応するリソース閾値として確定するように構成される閾値読取りモジュールを含む。
【００１５】
好ましくは、前記リソーススワップモジュールは、
前記コントロールグループに対して、前記リソース閾値よりも大きい初期リソース閾値を設定するように構成される第１の設定サブモジュールと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記第１の設定サブモジュールにより設定された前記初期リソース閾値よりも小さいか否かを検出するように構成されるリソース検出サブモジュールと、
前記リソース検出サブモジュールにより前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいことを検出すると、前記初期リソース閾値を低減し、前記初期リソース閾値が前記リソース閾値に等しくなりかつ前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される第１の処理サブモジュールと、
前記リソース検出サブモジュールにより前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも大きいことを検出すると、前記コントロールグループにおける前記空のプロセスが占用するリソースに対してスワップ操作を実行し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される第２の処理サブモジュールと、を含む。
【００１６】
好ましくは、前記第１の処理サブモジュールは、
前記初期リソース閾値を低減するように構成される閾値低減サブモジュールと、
前記閾値低減サブモジュールにより低減された後の前記初期リソース閾値と前記リソース閾値との差が所定の数値よりも小さいか否かを検出するように構成される差検出サブモジュールと、
前記差検出サブモジュールにより前記差が前記所定の数値よりも小さいことを検出すると、低減した後の前記初期リソース閾値を前記リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される第２の設定サブモジュールと、を含む。
【００１７】
好ましくは、前記第１の処理サブモジュールはさらに、
前記初期リソース閾値を低減する場合にエラーがあると、前記初期リソース閾値の補正を停止するように構成される補正一時停止サブモジュールと、
所定の期間を隔てた後、前記初期リソース閾値を、低減する前の初期リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される繰り返し検出サブモジュールと、を含む。
【００１８】
本発明の実施例の第３の形態によれば、
プロセッサと、
プロセッサが実行可能な命令を記憶するメモリと、を含み、
前記プロセッサは、
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記コントロールグループに対応するリソース閾値よりも小さく、かつ前記新たに作成されたプロセスを前記コントロールグループに付加した後に前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも大きい場合のリソース値であるリソース臨界値に達するか否かを検出し、
現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース臨界値に達したことを検出すれば、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加し、
前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなる、ように構成される、メモリ最適化装置を提供する。
【００１９】
本発明の実施例より提供した解決手段は、以下の有益な効果を有する。
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することでコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなることにより、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、さらに該コントロールグループにおけるすべてのプロセスが占用する合計リソース値を圧縮することができ、端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという問題を解決し、メモリを圧縮する場合に操作時間遅延を低減するという効果を達成する。
【００２０】
以上の一般的な説明及び後述の詳細な説明は、例示的なものに過ぎず、本発明を限定するものではないことを理解すべきである。
【図面の簡単な説明】
【００２１】
ここで、図面は明細書に組み込んで本明細書の一部とし、本発明に合致する実施例を示すとともに、明細書とともに本発明の原理を説明する。
【００２２】
【図１】一つの例示的実施例に示されるメモリ最適化方法のフローチャートである。
【図２】他の例示的実施例に示されるメモリ最適化方法のフローチャートである。
【図３】一つの例示的実施例に示されるメモリ最適化装置のブロック図である。
【図４】一つの例示的実施例に示されるメモリ最適化装置のブロック図である。
【図５】一つの例示的実施例に示されるメモリ最適化に用いられる装置のブロック図である。
【発明を実施するための形態】
【００２３】
ここで、例示的実施例を詳しく説明し、その実施例は図面に示される。以下の説明は図面に係る場合、特別に示されない限り、異なる図面における同じ符号は同じ又は共通する要素を示す。本発明に合致するすべての実施方式は、以下の例示的実施例で記述される実施方式に限られない。逆に、以下の例示的実施例で記述される実施方式は、特許請求の範囲に詳しく記述される、本発明のいくつかの形態に合致する装置及び方法の例に過ぎない。
【００２４】
図１は、一つの例示的実施例に示されるメモリ最適化方法のフローチャートであり、該メモリ最適化方法は、端末に用いられ、図１に示すように、該メモリ最適化方法は、以下のステップを含む。
【００２５】
ステップ１０１では、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、該リソース臨界値は、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がコントロールグループに対応するリソース閾値よりも小さく、かつ新たに作成されたプロセスをコントロールグループに付加した後に、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きい場合のリソース値である。
【００２６】
リソース閾値はコントロールグループにおけるすべてのプロセスが占用可能な合計リソースの最大値であり、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が該コントロールグループのリソース閾値よりも大きい場合、コントロールグループはリソーススワップ操作を実行することでメモリを圧縮する。
【００２７】
ステップ１０２では、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加する。
【００２８】
コントロールグループがリソース閾値により制限され、かつすべてのプロセスが占用する合計リソース値がリソース臨界値に達した場合、新たに作成されたプロセスを付加した後に、該コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さいことを保証するように、該コントロールグループに新たに作成されたプロセスを付加すると同時に、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行する必要がある。しかし、スワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加することにより、スワップ操作と付加操作の時間遅延が大きくなり、端末の実行速度に悪影響を及ぼすため、端末は、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加することができる。
【００２９】
ステップ１０３では、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなる。
【００３０】
新たに作成されたプロセスを付加した後に、この場合にコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きいため、端末は、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することによりメモリを圧縮する必要もある。スワップ操作は、コントロールグループにおける空のプロセスが占用するリソースを圧縮した後、仮想記憶デバイスに移転する操作である。
【００３１】
以上をまとめると、本発明に係るメモリ最適化方法は、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することでコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなることにより、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、さらに該コントロールグループにおけるすべてのプロセスが占用する合計リソース値を圧縮することができ、端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという問題を解決し、メモリを圧縮する場合に操作時間遅延を低減するという効果を達成する。
【００３２】
図２は、他の例示的実施例に示されるメモリ最適化方法のフローチャートであり、該メモリ最適化方法は、端末に用いられ、図２に示すように、該メモリ最適化方法は、以下のステップを含む。
【００３３】
ステップ２０１では、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、該リソース臨界値は、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がコントロールグループに対応するリソース閾値よりも小さく、かつ新たに作成されたプロセスをコントロールグループに付加した後に、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きい場合のリソース値である。
【００３４】
リソース閾値はコントロールグループにおけるすべてのプロセスが占用可能な合計リソースの最大値であり、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が該コントロールグループのリソース閾値よりも大きい場合、コントロールグループはリソーススワップ操作を実行することでメモリを圧縮する。
【００３５】
リソース臨界値は、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がコントロールグループに対応するリソース閾値よりも小さく、かつ新たに作成されたプロセスをコントロールグループに付加した後に、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きい場合のリソース値である。例えば、コントロールグループに対応するリソース閾値が５００ＭＢであり、新たに作成されたプロセスを付加するコントロールグループにおけるすべてのプロセスが占用する合計リソース値が４８０ＭＢである場合、合計リソース値の４８０Ｍがリソース閾値の５００Ｍよりも小さく、新たに作成されたプロセスを付加した後にコントロールグループにおけるすべてのプロセスが占用する合計リソース値が５２０ＭＢであり、この場合、合計リソース値の５２０Ｍがリソース閾値の５００ＭＢよりも大きく、４８０ＭＢを該コントロールグループのリソース臨界値として確定する。
【００３６】
本実施例では、コントロールグループはシステムコントロールグループでよい。ここで、システムコントロールグループは、システムに固有の、リソース閾値により制限されるコントロールグループであり、端末は、システムコントロールグループのリソース閾値を直接的に読み取って、該リソース閾値を該コントロールグループに対応するリソース閾値として確定することができる。
【００３７】
本実施例では、コントロールグループは非システムコントロールグループでもよい。非システムコントロールグループは、端末により作成されたコントロールグループであり、該コントロールグループはリソース閾値により制限されない。端末はシステムコントロールグループのリソース閾値を読み取って、該リソース閾値を該コントロールグループに対応するリソース閾値として確定することができる。即ち、コントロールグループがリソース閾値により制限されない非システムコントロールグループである場合、本実施例に係るメモリ最適化方法はさらに、システムコントロールグループのリソース閾値を読み取って、リソース閾値を非システムコントロールグループに対応するリソース閾値として確定することを含む。
【００３８】
ステップ２０２では、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加する。
コントロールグループがリソース閾値により制限され、かつすべてのプロセスが占用する合計リソース値がリソース臨界値に達した場合、新たに作成されたプロセスを付加した後に、該コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さいことを保証するように、該コントロールグループに新たに作成されたプロセスを付加すると同時に、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行する必要がある。しかし、スワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加することにより、スワップ操作と付加操作の時間遅延が大きくなり、端末の実行速度に悪影響を及ぼすため、端末は、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加することができる。
【００３９】
ここで、リソース閾値により制限されないコントロールグループは、リソース閾値により制限されるシステムコントロールグループのリソース閾値の制限を取り消した後に得られたコントロールグループでもよく、端末により作成されたリソース閾値により制限されない非システムコントロールグループでもよい。
【００４０】
ここで、コントロールグループがリソース閾値により制限されるシステムコントロールグループである場合、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加することは、
１）システムコントロールグループのリソース閾値を保存することと、
２）システムコントロールグループにおけるすべてのプロセスが占用する合計リソース値に対するリソース閾値の制限を取り消すことと、
３）新たに作成されたプロセスをシステムコントロールグループに付加することと、
を含む。
【００４１】
端末がシステムコントロールグループのリソース閾値を保存し、システムコントロールグループにおけるすべてのプロセスが占用する合計リソースに対するリソース閾値の制限を取り消すことにより、該システムコントロールグループは、リソース閾値により制限されないコントロールグループとなり、端末はさらに、新たに作成されたプロセスを該リソース閾値により制限されないシステムコントロールグループに付加する。
【００４２】
ステップ２０３では、コントロールグループに対して、リソース閾値よりも大きい初期リソース閾値を設定する。
【００４３】
新たに作成されたプロセスをコントロールグループに付加した後、この場合にコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きいため、端末は、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することによりメモリを圧縮する必要もある。スワップ操作は、コントロールグループにおける空のプロセスが占用するリソースを圧縮した後、仮想記憶デバイスに移転する操作であり、該仮想記憶デバイスは、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）でよい。
【００４４】
コントロールグループにおけるすべてのプロセスが占用する合計リソースを圧縮するとともに、リソース閾値が小さいのでスワップ操作を頻繁に実行して、端末の実行速度に悪影響を及ぼすという問題を避けるために、端末は、コントロールグループに対して一つの大きな初期リソース閾値を設定し、該初期リソース閾値を絶えずに低減し、低減した初期リソース閾値によりメモリを漸次に圧縮することができる。
【００４５】
ステップ２０４では、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出する。
初期リソース閾値を確定した後、端末は、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出し、合計リソース値が初期リソース閾値よりも小さければ、初期リソース閾値は大きすぎて設定され、初期リソース閾値を低減し、即ちステップ２０５を実行する必要がある。合計リソース値が初期リソース値よりも大きければ、スワップ操作を実行し、即ちステップ２０６を実行する必要がある。
【００４６】
ステップ２０５では、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいことを検出すれば、初期リソース閾値を低減し、初期リソース閾値がリソース閾値に等しくなりかつコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、ステップ２０４を引き続き実行する。
【００４７】
ここで、初期リソース閾値を低減し、初期リソース閾値がリソース閾値に等しくなりかつコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することは、
１）初期リソース閾値を低減することと、
２）低減した後の初期リソース閾値とリソース閾値との差が所定の数値よりも小さいか否かを検出することと、
３）差が所定の数値よりも小さいことを検出すれば、低減した後の初期リソース閾値をリソース閾値として設定し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００４８】
端末は、初期リソース閾値を低減するとともに、得られた数値を、低減した後の初期リソース閾値として確定する。ここで、低減した後の初期リソース閾値は、低減する前の初期リソース閾値から一定の数値を低減して得られてもよく、低減する前の初期リソース閾値とリソース閾値との関係に基づいて計算して得られてもよい。
【００４９】
低減する前の初期リソース閾値とリソース閾値との関係に基づいて低減した後の初期リソース閾値を計算する場合、端末は、低減した後の初期リソース閾値とリソース閾値との差を取得するとともに、該差が所定の数値よりも小さいか否かを検出する。該差が所定の数値よりも大きいことを検出すれば、端末は、低減した後の初期リソース閾値を新たな初期リソース閾値として設定し、かつコントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。該差が所定の数値よりも小さいことを検出すれば、端末は、低減した後の初期リソース閾値をリソース閾値として設定した後、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５０】
例えば、コントロールグループのリソース閾値は５００ＭＢであり、初期リソース閾値は９００ＭＢであり、所定の数値は１５０ＭＢである。端末が第１回に検出したコントロールグループにおけるすべてのプロセスが占用する合計リソース値が６００ＭＢであり、合計リソース値の６００ＭＢが初期リソース閾値の９００ＭＢより小さいため、端末は、初期リソース閾値を低減する操作を実行し、低減した後の初期リソース閾値＝低減する前の初期リソース閾値−（低減する前の初期リソース閾値−リソース閾値）／２という式に従って、低減した後の初期リソース閾値が７００ＭＢであると確定し、かつ低減した後の初期リソース閾値の７００ＭＢとリソース閾値の５００ＭＢとの差が２００ＭＢであると算出し、２００ＭＢが所定の数値の１５０Ｍよりも大きいため、端末は、７００ＭＢを初期リソース閾値として設定するとともに、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５１】
端末は第２回にコントロールグループにおけるすべてのプロセスが占用する合計リソース値が５００ＭＢであると検出すれば、合計リソース値の５００ＭＢが初期リソース閾値の７００ＭＢよりも小さいため、端末は引き続き前記式に従って低減した後の初期リソース閾値を６００ＭＢとして確定するとともに、低減した後の初期リソース閾値の６００ＭＢとリソース閾値の５００ＭＢとの差が１００ＭＢであることを取得し、１００ＭＢが所定の数値の１５０Ｍよりも小さいため、端末は低減した後の初期リソース閾値をリソース閾値の５００ＭＢとして設定した後、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５２】
説明すべきことは、端末は所定の検出期間内にコントロールグループにおけるすべてのプロセスが占用する合計リソース値が常に初期リソース閾値よりも大きいことを検出すれば、該所定の検出期間内に、端末は、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を繰り返して実行する。スワップ操作を繰り返して実行する必要がある場合、コントロールグループにおける空のプロセスが占用するリソースが少ない可能性があるため、スワップ操作の実行を一時停止し、コントロールグループにおける空のプロセスが占用するリソースが多い場合にスワップ操作を再度実行することができ、コントロールグループにおける空のプロセスが少ない場合に端末に対してスワップ操作を繰り返して実行することにより端末の実行速度に悪影響を及ぼすという問題を避け、スワップ操作の実行頻度を低減することによりメモリを漸次に圧縮し、メモリに対する圧縮効率を高めることができる。
【００５３】
そのため、端末は、所定の検出期間内にコントロールグループにおけるすべてのプロセスが占用する合計リソース値が常に初期リソース閾値よりも大きいことを検出した場合、初期リソース閾値を低減する操作にエラーがあると確定し、この場合、本実施例に係るメモリ最適化方法はさらに、
１）初期リソース閾値を低減する場合にエラーがあれば、初期リソース閾値の補正を停止することと、
２）所定の期間を隔てた後、初期リソース閾値を、低減する前の初期リソース閾値に設定し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５４】
端末は、初期リソース閾値の低減にエラーがあることを検出した場合、所定の期間内に初期リソース閾値を補正するスレッドの実行を停止し、低減する前の初期リソース閾値を初期リソース閾値として確定し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５５】
例えば、端末は、所定の検出期間の３分間内にコントロールグループにおけるすべてのプロセスが占用する合計リソース値が常に初期リソース閾値よりも大きいことを検出すれば、初期リソース閾値を補正するスレッドの実行を停止するとともに、時間を計測し始める。低減する前の初期リソース閾値が９００ＭＢでありかつ所定の期間が１分間であるとすれば、時間の計測が１分間に達した後、端末は、初期リソース閾値を、低減する前の初期リソース閾値の９００ＭＢに設定し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５６】
ステップ２０６では、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも大きいことを検出すれば、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行し、ステップ２０４を引き続き実行する。
【００５７】
例えば、端末はコントロールグループにおけるすべてのプロセスが占用する合計リソース値が９００ＭＢであることを検出し、合計リソース値の９００ＭＢが初期リソース閾値の５００ＭＢより大きい場合、端末は、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行して、コントロールグループにおける空のプロセスが占用するリソースを圧縮した後に仮想デバイスに記憶し、かつコントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５８】
以上をまとめると、本発明に係るメモリ最適化方法は、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することでコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなることにより、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、さらに該コントロールグループにおけるすべてのプロセスが占用する合計リソース値を圧縮することができ、端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという問題を解決し、メモリを圧縮する場合に操作時間遅延を低減するという効果を達成する。
【００５９】
また、初期リソース閾値を低減する場合にエラーがあれば、初期リソース閾値の補正を停止し、所定の期間を隔てた後、初期リソース閾値を、低減する前の初期リソース閾値に設定することにより、コントロールグループにおける空のプロセスが少なすぎる場合に端末に対してスワップ操作を繰り返して実行することにより端末の実行速度に悪影響を及ぼすという問題を避け、スワップ操作の実行頻度を低減することによりメモリを漸次に圧縮し、メモリに対する圧縮効率を高めることができる。
【００６０】
図３は、一つの例示的実施例に示されるメモリ最適化装置のブロック図であり、該メモリ最適化装置は、端末に用いられ、図３に示すように、該メモリ最適化装置は、リソース検出モジュール３１０、プロセス付加モジュール３２０及びリソーススワップモジュール３３０を含む。
【００６１】
該リソース検出モジュール３１０は、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出するように構成され、リソース臨界値は、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がコントロールグループに対応するリソース閾値よりも小さく、かつ新たに作成されたプロセスをコントロールグループに付加した後に、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きい場合のリソース値である。
【００６２】
該プロセス付加モジュール３２０は、リソース検出モジュールにより現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出した場合、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加するように構成される。
【００６３】
該リソーススワップモジュール３３０は、プロセス付加モジュールにより付加されたコントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるように構成される。
【００６４】
以上をまとめると、本発明に係るメモリ最適化装置は、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することでコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなることにより、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、さらに該コントロールグループにおけるすべてのプロセスが占用する合計リソース値を圧縮することができ、端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという問題を解決し、メモリを圧縮する場合に操作時間遅延を低減するという効果を達成する。
【００６５】
図４は、一つの例示的実施例に示されるメモリ最適化装置のブロック図であり、該メモリ最適化装置は、端末に用いられ、図４に示すように、該メモリ最適化装置は、リソース検出モジュール３１０、プロセス付加モジュール３２０及びリソーススワップモジュール３３０を含む。
【００６６】
該リソース検出モジュール３１０は、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出するように構成され、リソース臨界値は、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がコントロールグループに対応するリソース閾値よりも小さく、かつ新たに作成されたプロセスをコントロールグループに付加した後に、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きい場合のリソース値である。
【００６７】
該プロセス付加モジュール３２０は、リソース検出モジュール３１０が現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出した場合、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加するように構成される。
【００６８】
リソーススワップモジュール３３０は、プロセス付加モジュール３２０により付加されたコントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるように構成される。
【００６９】
好ましくは、コントロールグループがリソース閾値により制限されるシステムコントロールグループである場合、プロセス付加モジュール３２０は、閾値保存サブモジュール３２１、制限取消しサブモジュール３２２及びプロセス付加サブモジュール３２３を含む。
【００７０】
該閾値保存サブモジュール３２１は、システムコントロールグループのリソース閾値を保存するように構成される。
【００７１】
該制限取消しサブモジュール３２２は、システムコントロールグループにおけるすべてのプロセスが占用する合計リソース値に対するリソース閾値の制限を取り消すように構成される。
【００７２】
プロセス付加サブモジュール３２３は、新たに作成されたプロセスをシステムコントロールグループに付加するように構成される。
【００７３】
好ましくは、コントロールグループがリソース閾値により制限されない非システムコントロールグループである場合、装置は、閾値読取りモジュール３４０をさらに含む。
【００７４】
該閾値読取りモジュール３４０は、システムコントロールグループのリソース閾値を読み取り、リソース閾値を非システムコントロールグループに対応するリソース閾値として確定するように構成される。
【００７５】
好ましくは、リソーススワップモジュール３３０は、第１の設定サブモジュール３３１、リソース検出サブモジュール３３２、第１の処理サブモジュール３３３及び第２の処理サブモジュール３３４を含む。
【００７６】
該第１の設定サブモジュール３３１は、コントロールグループに対して、リソース閾値よりも大きい初期リソース閾値を設定するように構成される。
【００７７】
該リソース検出サブモジュール３３２は、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が第１の設定サブモジュール３３１により設定された初期リソース閾値よりも小さいか否かを検出するように構成される。
【００７８】
該第１の処理サブモジュール３３３は、リソース検出サブモジュール３３２によりコントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいことを検出した場合、初期リソース閾値を低減し、初期リソース閾値がリソース閾値に等しくなりかつコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される。
【００７９】
該第２の処理サブモジュール３３４は、リソース検出サブモジュール３３２によりコントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも大きいことを検出した場合、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される。
【００８０】
好ましくは、第１の処理サブモジュール３３３は、閾値低減サブモジュール３３３１、差検出サブモジュール３３３２及び第２の設定サブモジュール３３３３を含む。
【００８１】
該閾値低減サブモジュール３３３１は、初期リソース閾値を低減するように構成される。
【００８２】
該差検出サブモジュール３３３２は、閾値低減サブモジュール３３３１により低減された後の初期リソース閾値とリソース閾値との差が所定の数値よりも小さいか否かを検出するように構成される。
【００８３】
該第２の設定サブモジュール３３３３は、差検出サブモジュール３３３２により差が所定の数値よりも小さいことを検出した場合、低減した後の初期リソース閾値をリソース閾値として設定し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される。
【００８４】
好ましくは、第１の処理サブモジュール３３３は、補正一時停止サブモジュール３３３４及び繰り返し検出サブモジュール３３３５をさらに含む。
【００８５】
該補正一時停止サブモジュール３３３４は、初期リソース閾値を低減する場合にエラーがあると、初期リソース閾値の補正を停止するように構成される。
【００８６】
該繰り返し検出サブモジュール３３３５は、所定の期間を隔てた後、初期リソース閾値を、低減する前の初期リソース閾値に設定し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される。
【００８７】
以上をまとめると、本発明に係るメモリ最適化装置は、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することでコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなることにより、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、さらに該コントロールグループにおけるすべてのプロセスが占用する合計リソース値を圧縮することができ、端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという問題を解決し、メモリを圧縮する場合に操作時間遅延を低減するという効果を達成する。
【００８８】
また、初期リソース閾値を低減する場合にエラーがあると、初期リソース閾値の補正を停止し、所定の期間を隔てた後、初期リソース閾値を、低減する前の初期リソース閾値に設定することにより、コントロールグループにおける空のプロセスが少なすぎる場合、端末に対してスワップ操作を繰り返して実行することにより端末の実行速度に悪影響を及ぼすという問題を避け、スワップ操作の実行頻度を低減することによりメモリを漸次に圧縮し、メモリに対する圧縮効率を高めることができる。
【００８９】
前記実施例に係る装置については、その中の各モジュールが操作を実行する具体的な方式は、該方法に関する実施例において詳しく説明しているので、ここで詳しく説明しない。
【００９０】
図５は、一つの例示的実施例に示されるメモリ最適化に用いられる装置５００のブロック図である。例えば、装置５００は、携帯電話、コンピュータ、デジタル放送端末、メッセージ送受信機器、ゲームコンソール、タブレットデバイス、医療機器、フィットネス機器、パーソナルデジタルアシスタントなどであってもよい。
【００９１】
図５に示すように、装置５００は、プロセスアセンブリ５０２、メモリ５０４、電源アセンブリ５０６、マルチメディアアセンブリ５０８、オーディオアセンブリ５１０、入力／出力（Ｉ／Ｏ）インターフェイス５１２、センサアセンブリ５１４、及び通信アセンブリ５１６のうち一つ以上のアセンブリを含んでよい。
【００９２】
プロセスアセンブリ５０２は、一般的には装置５００全体の操作を制御するものであり、例えば表示、電話呼び出し、データ通信、カメラ操作、及び記録操作と関連する操作を制御する。プロセスアセンブリ５０２は、指令を実行するように一つ以上のプロセッサ５１８を含むことにより、上記方法のすべての又は一部のステップを実現するようにしてもよい。なお、プロセスアセンブリ５０２は、一つ以上のモジュールを含むことにより、プロセスアセンブリ５０２と他のアセンブリの間のインタラクションを容易にするようにしてもよい。例えば、プロセスアセンブリ５０２は、マルチメディアモジュールを含むことにより、マルチメディアアセンブリ５０８とプロセスアセンブリ５０２の間のインタラクションを容易にするようにしてもよい。
【００９３】
メモリ５０４は、各種類のデータを記憶することにより装置５００の操作を支援するように構成される。これらのデータの例は、装置５００において操作されるいずれのアプリケーションプログラム又は方法の命令、連絡対象データ、電話帳データ、メッセージ、画像、ビデオ等も含む。メモリ５０４は、いずれの種類の揮発性メモリ、不揮発性メモリ記憶デバイスまたはそれらの組み合わせによって実現されてもよく、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＰＲＯＭ（  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気メモリ、フラッシュメモリ、磁気ディスク又は光ディスクである。
【００９４】
電源アセンブリ５０６は、装置５００の多様なアセンブリに電力を供給する。電源アセンブリ５０６は、電源管理システム、一つ以上の電源、及び装置５００のための電力の生成、管理及び割り当てに関連する他のアセンブリを含んでよい。
【００９５】
マルチメディアアセンブリ５０８は、前記装置５００とユーザの間に一つの出力インターフェイスを提供するスクリーンを含む。いくつかの実施例において、スクリーンは液晶表示機器（ＬＣＤ）とタッチパネル（ＴＰ）を含んでよい。スクリーンがタッチパネルを含んでいれば、スクリーンはタッチスクリーンとして実現されることにより、ユーザからの入力信号を受信することができる。タッチパネルは一つ以上のタッチセンサを含むことにより、タッチ、スライド、及びタッチパネル上のジェスチャを検出する。前記タッチセンサは、タッチ又はスライド動作の境界だけでなく、前記タッチ又はスライド操作に係る継続時間及び圧力を検出することができる。いくつかの実施例において、マルチメディアアセンブリ５０８は、一つのフロントカメラ及び／又はリアカメラを含む。装置５００が、例えば撮影モード又はビデオモード等の操作モードにある場合、フロントカメラ及び／又はリアカメラは外部からマルチメディアデータを受信することができる。各フロントカメラとリアカメラのそれぞれは、一つの固定型の光学レンズ系、或は可変焦点距離と光学ズーム機能を有するものであってもよい。
【００９６】
オーディオアセンブリ５１０は、オーディオ信号を入出力するように構成される。例えば、オーディオアセンブリ５１０は、一つのマイク（ＭＩＣ）を含み、装置５００が、例えば呼出しモード、記録モード、及び音声認識モード等の操作モードにある場合、マイクは外部のオーディオ信号を受信するように構成される。受信されたオーディオ信号は、さらにメモリ５０４に記憶されたり、通信アセンブリ５１６を介して送信されたりすることができる。いくつかの実施例において、オーディオアセンブリ５１０は、オーディオ信号を出力するための一つのスピーカをさらに含む。
【００９７】
Ｉ／Ｏインターフェイス５１２は、プロセスアセンブリ５０２と周辺インターフェイスモジュールの間にインターフェイスを提供するものであり、前記周辺インターフェイスモジュールは、キーボード、クリックホイール、ボタン等のであってもよい。これらのボタンは、ホームボタン、ボリュームボタン、起動ボタン、及びロッキングボタンを含んでよいが、これらに限定されない。
【００９８】
センサアセンブリ５１４は、装置５００に各方面の状態に対する評価を提供するための一つ以上のセンサを含む。例えば、センサアセンブリ５１４は、装置５００のＯＮ／ＯＦＦ状態、装置５００のディスプレイとキーパッドのようなアセンブリの相対的な位置決めを検出することができる。また、センサアセンブリ５１４は、装置５００又は装置５００の一つのアセンブリの位置変更、ユーザと装置５００が接触しているか否か、装置５００の方位、又は加速／減速、装置５００の温度の変化を検出することができる。センサアセンブリ５１４は、何れの物理的接触もない状態でも付近の物体の存在を検出するための近接センサを含んでよい。センサアセンブリ５１４は、撮影アプリケーションに適用するため、ＣＭＯＳ、又はＣＣＤ画像センサのような光センサを含んでよい。いくつかの実施例において、該センサアセンブリ５１４は、加速度センサ、ジャイロスコープセンサ、磁気センサ、圧力センサ又は温度センサをさらに含んでもよい。
【００９９】
通信アセンブリ５１６は、装置５００と他の機器の間に有線、又は無線形態の通信を提供する。装置５００は、例えばＷｉＦｉ（登録商標）、２Ｇ、３Ｇ、又はこれらの組み合わせのような、通信規格に基づいた無線ネットワークに接続されてもよい。一つの例示的な実施例において、通信アセンブリ５１６は、放送チャンネルを介して外部の放送管理システムからの放送信号、又は放送に関連する情報を受信する。一つの例示的な実施例において、前記通信アセンブリ５１６は、近距離無線通信（ＮＦＣ）モジュールをさらに含むことにより、近距離通信を推進するようにする。例えば、ＮＦＣモジュールは、ＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）技術、ＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）技術、ＵＷＢ（Ｕｌｔｒａ  Ｗｉｄｅ  Ｂａｎｄ）技術、ＢＴ（Ｂｌｕｅｔｏｏｔｈ（登録商標））技術、他の技術に基づいて実現できる。
【０１００】
例示的な実施例において、装置５００は、一つ以上のＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＤＳＰＤ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｄｅｖｉｃｅ）、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子部品によって実現されるものであり、上記方法を実行する。
【０１０１】
例示的な実施例において、さらに、指令を含むコンピュータ読み取り可能な非一時的な記憶媒体、例えば、指令を含むメモリ５０４を提供し、装置５００のプロセッサ５１８により前記指令を実行して上記方法を実現する。例えば、前記コンピュータ読み取り可能な非一時的な記憶媒体は、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピーディスク（登録商標）及び光データ記憶デバイスなどであってもよい。
【０１０２】
当業者にとって、明細書を考慮してこの発明を実施した後、本発明のその他の実施方式を容易に想到し得ることができる。本願は、本発明のいかなる変形、用途又は適応的変化をカバーすることを目的とし、これら変形、用途又は適応的変化は、本発明の一般的原理に従うとともに、本発明に開示されていない本技術分野における公知の常識又は慣用の技術手段を含む。明細書及び実施例は、例示的なものに過ぎず、本発明の本当の範囲及び主旨は、特許請求の範囲に含まれる。
【０１０３】
本発明は、以上のように説明すると共に図面に示された正確な構造に限られず、その要旨を逸脱しない範囲内で各種の補正及び変更を行うことができると理解すべきである。本発明の範囲は、特許請求の範囲のみで限定される。
【０１０４】
本願は、出願番号がＣＮ２０１４１０６０２４３５．３で、出願日が２０１４年１０月３１日である中国特許出願に基づき優先権を主張し、該中国特許出願のすべての内容を本願に援用する。
【図１】
2016538675.tif 000003
【図２】
2016538675.tif 000004
【図３】
2016538675.tif 000005
【図４】
2016538675.tif 000006
【図５】
2016538675.tif 000007
【手続補正書】
【提出日】平成27年5月21日(2015.5.21)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータの技術分野に関し、特にメモリ最適化方法、装置、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
端末で実行するアプリケーションプログラムが多くなるにつれて、端末が利用可能なメモリがますます少なくなっており、実行しているアプリケーションプログラムの滑らかな動作に悪影響を及ぼしているため、端末に対してメモリ最適化を行う必要がある。
【０００３】
メモリ最適化を行う場合、端末は、作成された複数のプロセスを一つのコントロールグループ（Ｃｏｎｔｒｏｌ  Ｇｒｏｕｐ、Ｃｇｒｏｕｐ）に区分するとともに、リソース閾値を設定することにより該コントロールグループにおいてプロセスが占用可能な合計リソース値を制限することができ、端末は、新たに作成されたプロセスを該コントロールグループに加入する必要があるが、加入された後に該コントロールグループの合計リソース値がリソース閾値を超えたことを検出した場合、スワップ（ｓｗａｐ）操作を実行し、即ち、端末は、コントロールグループにおいてある期間内に利用されていない空のプロセスに対応するデータを記憶デバイスに移転し、該データが占用するリソースを該新たに作成されたプロセスに割り当て、該空のプロセスを再度利用する必要がある場合に、記憶デバイスから該データをコントロールグループが占用するリソースに移転する。
【０００４】
発明者は、本発明を実現する過程において、従来の技術では少なくとも端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという欠陥が存在していると発見した。
【発明の概要】
【０００５】
端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという問題を解決するために、本発明は、メモリ最適化方法、装置、プログラム、及び記録媒体を提供する。
【０００６】
本発明の実施例の第１の形態によれば、
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記コントロールグループに対応するリソース閾値よりも小さく、かつ前記新たに作成されたプロセスを前記コントロールグループに付加した後に前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも大きい場合のリソース値であるリソース臨界値に達するか否かを検出することと、
現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース臨界値に達したことを検出すれば、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加することと、
前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなることと、
を含むメモリ最適化方法を提供する。
【０００７】
好ましくは、前記コントロールグループが前記リソース閾値により制限されるシステムコントロールグループである場合、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加することは、
前記システムコントロールグループの前記リソース閾値を保存することと、
前記リソース閾値の前記システムコントロールグループにおけるすべてのプロセスが占用する合計リソース値に対する制限を取り消すことと、
前記新たに作成されたプロセスを前記システムコントロールグループに付加することと、を含む。
【０００８】
好ましくは、前記コントロールグループがリソース閾値により制限されない非システムコントロールグループである場合、前記方法はさらに、
システムコントロールグループのリソース閾値を読み取り、前記リソース閾値を前記非システムコントロールグループに対応するリソース閾値として確定することを含む。
【０００９】
好ましくは、前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなることは、
前記コントロールグループに対して、前記リソース閾値よりも大きい初期リソース閾値を設定することと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出することと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいことを検出すれば、前記初期リソース閾値を低減し、前記初期リソース閾値が前記リソース閾値に等しくなりかつ前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも大きいことを検出すれば、前記コントロールグループにおける前記空のプロセスが占用するリソースに対してスワップ操作を実行し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、を含む。
【００１０】
好ましくは、前記初期リソース閾値を低減し、前記初期リソース閾値が前記リソース閾値に等しくなりかつ前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することは、
前記初期リソース閾値を低減することと、
低減した後の前記初期リソース閾値と前記リソース閾値との差が所定の数値よりも小さいか否かを検出することと、
前記差が前記所定の数値よりも小さいことを検出すれば、低減した後の前記初期リソース閾値を前記リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、を含む。
【００１１】
好ましくは、前記方法はさらに、
前記初期リソース閾値を低減する場合にエラーがあれば、前記初期リソース閾値の補正を停止することと、
所定の期間を隔てた後、前記初期リソース閾値を、低減する前の初期リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、を含む。
【００１２】
本発明の実施例の第２の形態によれば、
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記コントロールグループに対応するリソース閾値よりも小さく、かつ前記新たに作成されたプロセスを前記コントロールグループに付加した後に前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも大きい場合のリソース値であるリソース臨界値に達するか否かを検出するように構成されるリソース検出モジュールと、
前記リソース検出モジュールにより現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース臨界値に達したことを検出すると、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加するように構成されるプロセス付加モジュールと、
前記プロセス付加モジュールにより付加された前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるように構成されるリソーススワップモジュールと、
を含むメモリ最適化装置を提供する。
【００１３】
好ましくは、前記コントロールグループが前記リソース閾値により制限されるシステムコントロールグループである場合、前記プロセス付加モジュールは、
前記システムコントロールグループの前記リソース閾値を保存するように構成される閾値保存サブモジュールと、
前記リソース閾値の前記システムコントロールグループにおけるすべてのプロセスが占用する合計リソース値に対する制限を取り消すように構成される制限取消しサブモジュールと、
前記新たに作成されたプロセスを前記システムコントロールグループに付加するように構成されるプロセス付加サブモジュールと、を含む。
【００１４】
好ましくは、前記コントロールグループがリソース閾値により制限されない非システムコントロールグループである場合、前記装置はさらに、
システムコントロールグループのリソース閾値を読み取り、前記リソース閾値を前記非システムコントロールグループに対応するリソース閾値として確定するように構成される閾値読取りモジュールを含む。
【００１５】
好ましくは、前記リソーススワップモジュールは、
前記コントロールグループに対して、前記リソース閾値よりも大きい初期リソース閾値を設定するように構成される第１の設定サブモジュールと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記第１の設定サブモジュールにより設定された前記初期リソース閾値よりも小さいか否かを検出するように構成されるリソース検出サブモジュールと、
前記リソース検出サブモジュールにより前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいことを検出すると、前記初期リソース閾値を低減し、前記初期リソース閾値が前記リソース閾値に等しくなりかつ前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される第１の処理サブモジュールと、
前記リソース検出サブモジュールにより前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも大きいことを検出すると、前記コントロールグループにおける前記空のプロセスが占用するリソースに対してスワップ操作を実行し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される第２の処理サブモジュールと、を含む。
【００１６】
好ましくは、前記第１の処理サブモジュールは、
前記初期リソース閾値を低減するように構成される閾値低減サブモジュールと、
前記閾値低減サブモジュールにより低減された後の前記初期リソース閾値と前記リソース閾値との差が所定の数値よりも小さいか否かを検出するように構成される差検出サブモジュールと、
前記差検出サブモジュールにより前記差が前記所定の数値よりも小さいことを検出すると、低減した後の前記初期リソース閾値を前記リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される第２の設定サブモジュールと、を含む。
【００１７】
好ましくは、前記第１の処理サブモジュールはさらに、
前記初期リソース閾値を低減する場合にエラーがあると、前記初期リソース閾値の補正を停止するように構成される補正一時停止サブモジュールと、
所定の期間を隔てた後、前記初期リソース閾値を、低減する前の初期リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される繰り返し検出サブモジュールと、を含む。
【００１８】
本発明の実施例の第３の形態によれば、
プロセッサと、
プロセッサが実行可能な命令を記憶するメモリと、を含み、
前記プロセッサは、
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記コントロールグループに対応するリソース閾値よりも小さく、かつ前記新たに作成されたプロセスを前記コントロールグループに付加した後に前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも大きい場合のリソース値であるリソース臨界値に達するか否かを検出し、
現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース臨界値に達したことを検出すれば、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加し、
前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなる、ように構成される、メモリ最適化装置を提供する。
【００１９】
本発明の実施例の第４の形態によれば、
プロセッサに実行されることにより、前記のメモリ最適化方法を実現することを特徴とするプログラムを提供する。
【００２０】
本発明の実施例の第５の形態によれば、
前記プログラムが記録された記録媒体を提供する。
【００２１】
本発明の実施例より提供した解決手段は、以下の有益な効果を有する。
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することでコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなることにより、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、さらに該コントロールグループにおけるすべてのプロセスが占用する合計リソース値を圧縮することができ、端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという問題を解決し、メモリを圧縮する場合に操作時間遅延を低減するという効果を達成する。
【００２２】
以上の一般的な説明及び後述の詳細な説明は、例示的なものに過ぎず、本発明を限定するものではないことを理解すべきである。
【図面の簡単な説明】
【００２３】
ここで、図面は明細書に組み込んで本明細書の一部とし、本発明に合致する実施例を示すとともに、明細書とともに本発明の原理を説明する。
【００２４】
【図１】一つの例示的実施例に示されるメモリ最適化方法のフローチャートである。
【図２】他の例示的実施例に示されるメモリ最適化方法のフローチャートである。
【図３】一つの例示的実施例に示されるメモリ最適化装置のブロック図である。
【図４】一つの例示的実施例に示されるメモリ最適化装置のブロック図である。
【図５】一つの例示的実施例に示されるメモリ最適化に用いられる装置のブロック図である。
【発明を実施するための形態】
【００２５】
ここで、例示的実施例を詳しく説明し、その実施例は図面に示される。以下の説明は図面に係る場合、特別に示されない限り、異なる図面における同じ符号は同じ又は共通する要素を示す。本発明に合致するすべての実施方式は、以下の例示的実施例で記述される実施方式に限られない。逆に、以下の例示的実施例で記述される実施方式は、特許請求の範囲に詳しく記述される、本発明のいくつかの形態に合致する装置及び方法の例に過ぎない。
【００２６】
図１は、一つの例示的実施例に示されるメモリ最適化方法のフローチャートであり、該メモリ最適化方法は、端末に用いられ、図１に示すように、該メモリ最適化方法は、以下のステップを含む。
【００２７】
ステップ１０１では、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、該リソース臨界値は、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がコントロールグループに対応するリソース閾値よりも小さく、かつ新たに作成されたプロセスをコントロールグループに付加した後に、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きい場合のリソース値である。
【００２８】
リソース閾値はコントロールグループにおけるすべてのプロセスが占用可能な合計リソースの最大値であり、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が該コントロールグループのリソース閾値よりも大きい場合、コントロールグループはリソーススワップ操作を実行することでメモリを圧縮する。
【００２９】
ステップ１０２では、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加する。
【００３０】
コントロールグループがリソース閾値により制限され、かつすべてのプロセスが占用する合計リソース値がリソース臨界値に達した場合、新たに作成されたプロセスを付加した後に、該コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さいことを保証するように、該コントロールグループに新たに作成されたプロセスを付加すると同時に、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行する必要がある。しかし、スワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加することにより、スワップ操作と付加操作の時間遅延が大きくなり、端末の実行速度に悪影響を及ぼすため、端末は、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加することができる。
【００３１】
ステップ１０３では、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなる。
【００３２】
新たに作成されたプロセスを付加した後に、この場合にコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きいため、端末は、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することによりメモリを圧縮する必要もある。スワップ操作は、コントロールグループにおける空のプロセスが占用するリソースを圧縮した後、仮想記憶デバイスに移転する操作である。
【００３３】
以上をまとめると、本発明に係るメモリ最適化方法は、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することでコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなることにより、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、さらに該コントロールグループにおけるすべてのプロセスが占用する合計リソース値を圧縮することができ、端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという問題を解決し、メモリを圧縮する場合に操作時間遅延を低減するという効果を達成する。
【００３４】
図２は、他の例示的実施例に示されるメモリ最適化方法のフローチャートであり、該メモリ最適化方法は、端末に用いられ、図２に示すように、該メモリ最適化方法は、以下のステップを含む。
【００３５】
ステップ２０１では、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、該リソース臨界値は、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がコントロールグループに対応するリソース閾値よりも小さく、かつ新たに作成されたプロセスをコントロールグループに付加した後に、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きい場合のリソース値である。
【００３６】
リソース閾値はコントロールグループにおけるすべてのプロセスが占用可能な合計リソースの最大値であり、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が該コントロールグループのリソース閾値よりも大きい場合、コントロールグループはリソーススワップ操作を実行することでメモリを圧縮する。
【００３７】
リソース臨界値は、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がコントロールグループに対応するリソース閾値よりも小さく、かつ新たに作成されたプロセスをコントロールグループに付加した後に、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きい場合のリソース値である。例えば、コントロールグループに対応するリソース閾値が５００ＭＢであり、新たに作成されたプロセスを付加するコントロールグループにおけるすべてのプロセスが占用する合計リソース値が４８０ＭＢである場合、合計リソース値の４８０Ｍがリソース閾値の５００Ｍよりも小さく、新たに作成されたプロセスを付加した後にコントロールグループにおけるすべてのプロセスが占用する合計リソース値が５２０ＭＢであり、この場合、合計リソース値の５２０Ｍがリソース閾値の５００ＭＢよりも大きく、４８０ＭＢを該コントロールグループのリソース臨界値として確定する。
【００３８】
本実施例では、コントロールグループはシステムコントロールグループでよい。ここで、システムコントロールグループは、システムに固有の、リソース閾値により制限されるコントロールグループであり、端末は、システムコントロールグループのリソース閾値を直接的に読み取って、該リソース閾値を該コントロールグループに対応するリソース閾値として確定することができる。
【００３９】
本実施例では、コントロールグループは非システムコントロールグループでもよい。非システムコントロールグループは、端末により作成されたコントロールグループであり、該コントロールグループはリソース閾値により制限されない。端末はシステムコントロールグループのリソース閾値を読み取って、該リソース閾値を該コントロールグループに対応するリソース閾値として確定することができる。即ち、コントロールグループがリソース閾値により制限されない非システムコントロールグループである場合、本実施例に係るメモリ最適化方法はさらに、システムコントロールグループのリソース閾値を読み取って、リソース閾値を非システムコントロールグループに対応するリソース閾値として確定することを含む。
【００４０】
ステップ２０２では、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加する。
コントロールグループがリソース閾値により制限され、かつすべてのプロセスが占用する合計リソース値がリソース臨界値に達した場合、新たに作成されたプロセスを付加した後に、該コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さいことを保証するように、該コントロールグループに新たに作成されたプロセスを付加すると同時に、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行する必要がある。しかし、スワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加することにより、スワップ操作と付加操作の時間遅延が大きくなり、端末の実行速度に悪影響を及ぼすため、端末は、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加することができる。
【００４１】
ここで、リソース閾値により制限されないコントロールグループは、リソース閾値により制限されるシステムコントロールグループのリソース閾値の制限を取り消した後に得られたコントロールグループでもよく、端末により作成されたリソース閾値により制限されない非システムコントロールグループでもよい。
【００４２】
ここで、コントロールグループがリソース閾値により制限されるシステムコントロールグループである場合、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加することは、
１）システムコントロールグループのリソース閾値を保存することと、
２）システムコントロールグループにおけるすべてのプロセスが占用する合計リソース値に対するリソース閾値の制限を取り消すことと、
３）新たに作成されたプロセスをシステムコントロールグループに付加することと、
を含む。
【００４３】
端末がシステムコントロールグループのリソース閾値を保存し、システムコントロールグループにおけるすべてのプロセスが占用する合計リソースに対するリソース閾値の制限を取り消すことにより、該システムコントロールグループは、リソース閾値により制限されないコントロールグループとなり、端末はさらに、新たに作成されたプロセスを該リソース閾値により制限されないシステムコントロールグループに付加する。
【００４４】
ステップ２０３では、コントロールグループに対して、リソース閾値よりも大きい初期リソース閾値を設定する。
【００４５】
新たに作成されたプロセスをコントロールグループに付加した後、この場合にコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きいため、端末は、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することによりメモリを圧縮する必要もある。スワップ操作は、コントロールグループにおける空のプロセスが占用するリソースを圧縮した後、仮想記憶デバイスに移転する操作であり、該仮想記憶デバイスは、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）でよい。
【００４６】
コントロールグループにおけるすべてのプロセスが占用する合計リソースを圧縮するとともに、リソース閾値が小さいのでスワップ操作を頻繁に実行して、端末の実行速度に悪影響を及ぼすという問題を避けるために、端末は、コントロールグループに対して一つの大きな初期リソース閾値を設定し、該初期リソース閾値を絶えずに低減し、低減した初期リソース閾値によりメモリを漸次に圧縮することができる。
【００４７】
ステップ２０４では、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出する。
初期リソース閾値を確定した後、端末は、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出し、合計リソース値が初期リソース閾値よりも小さければ、初期リソース閾値は大きすぎて設定され、初期リソース閾値を低減し、即ちステップ２０５を実行する必要がある。合計リソース値が初期リソース値よりも大きければ、スワップ操作を実行し、即ちステップ２０６を実行する必要がある。
【００４８】
ステップ２０５では、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいことを検出すれば、初期リソース閾値を低減し、初期リソース閾値がリソース閾値に等しくなりかつコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、ステップ２０４を引き続き実行する。
【００４９】
ここで、初期リソース閾値を低減し、初期リソース閾値がリソース閾値に等しくなりかつコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することは、
１）初期リソース閾値を低減することと、
２）低減した後の初期リソース閾値とリソース閾値との差が所定の数値よりも小さいか否かを検出することと、
３）差が所定の数値よりも小さいことを検出すれば、低減した後の初期リソース閾値をリソース閾値として設定し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５０】
端末は、初期リソース閾値を低減するとともに、得られた数値を、低減した後の初期リソース閾値として確定する。ここで、低減した後の初期リソース閾値は、低減する前の初期リソース閾値から一定の数値を低減して得られてもよく、低減する前の初期リソース閾値とリソース閾値との関係に基づいて計算して得られてもよい。
【００５１】
低減する前の初期リソース閾値とリソース閾値との関係に基づいて低減した後の初期リソース閾値を計算する場合、端末は、低減した後の初期リソース閾値とリソース閾値との差を取得するとともに、該差が所定の数値よりも小さいか否かを検出する。該差が所定の数値よりも大きいことを検出すれば、端末は、低減した後の初期リソース閾値を新たな初期リソース閾値として設定し、かつコントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。該差が所定の数値よりも小さいことを検出すれば、端末は、低減した後の初期リソース閾値をリソース閾値として設定した後、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５２】
例えば、コントロールグループのリソース閾値は５００ＭＢであり、初期リソース閾値は９００ＭＢであり、所定の数値は１５０ＭＢである。端末が第１回に検出したコントロールグループにおけるすべてのプロセスが占用する合計リソース値が６００ＭＢであり、合計リソース値の６００ＭＢが初期リソース閾値の９００ＭＢより小さいため、端末は、初期リソース閾値を低減する操作を実行し、低減した後の初期リソース閾値＝低減する前の初期リソース閾値−（低減する前の初期リソース閾値−リソース閾値）／２という式に従って、低減した後の初期リソース閾値が７００ＭＢであると確定し、かつ低減した後の初期リソース閾値の７００ＭＢとリソース閾値の５００ＭＢとの差が２００ＭＢであると算出し、２００ＭＢが所定の数値の１５０Ｍよりも大きいため、端末は、７００ＭＢを初期リソース閾値として設定するとともに、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５３】
端末は第２回にコントロールグループにおけるすべてのプロセスが占用する合計リソース値が５００ＭＢであると検出すれば、合計リソース値の５００ＭＢが初期リソース閾値の７００ＭＢよりも小さいため、端末は引き続き前記式に従って低減した後の初期リソース閾値を６００ＭＢとして確定するとともに、低減した後の初期リソース閾値の６００ＭＢとリソース閾値の５００ＭＢとの差が１００ＭＢであることを取得し、１００ＭＢが所定の数値の１５０Ｍよりも小さいため、端末は低減した後の初期リソース閾値をリソース閾値の５００ＭＢとして設定した後、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５４】
説明すべきことは、端末は所定の検出期間内にコントロールグループにおけるすべてのプロセスが占用する合計リソース値が常に初期リソース閾値よりも大きいことを検出すれば、該所定の検出期間内に、端末は、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を繰り返して実行する。スワップ操作を繰り返して実行する必要がある場合、コントロールグループにおける空のプロセスが占用するリソースが少ない可能性があるため、スワップ操作の実行を一時停止し、コントロールグループにおける空のプロセスが占用するリソースが多い場合にスワップ操作を再度実行することができ、コントロールグループにおける空のプロセスが少ない場合に端末に対してスワップ操作を繰り返して実行することにより端末の実行速度に悪影響を及ぼすという問題を避け、スワップ操作の実行頻度を低減することによりメモリを漸次に圧縮し、メモリに対する圧縮効率を高めることができる。
【００５５】
そのため、端末は、所定の検出期間内にコントロールグループにおけるすべてのプロセスが占用する合計リソース値が常に初期リソース閾値よりも大きいことを検出した場合、初期リソース閾値を低減する操作にエラーがあると確定し、この場合、本実施例に係るメモリ最適化方法はさらに、
１）初期リソース閾値を低減する場合にエラーがあれば、初期リソース閾値の補正を停止することと、
２）所定の期間を隔てた後、初期リソース閾値を、低減する前の初期リソース閾値に設定し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５６】
端末は、初期リソース閾値の低減にエラーがあることを検出した場合、所定の期間内に初期リソース閾値を補正するスレッドの実行を停止し、低減する前の初期リソース閾値を初期リソース閾値として確定し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５７】
例えば、端末は、所定の検出期間の３分間内にコントロールグループにおけるすべてのプロセスが占用する合計リソース値が常に初期リソース閾値よりも大きいことを検出すれば、初期リソース閾値を補正するスレッドの実行を停止するとともに、時間を計測し始める。低減する前の初期リソース閾値が９００ＭＢでありかつ所定の期間が１分間であるとすれば、時間の計測が１分間に達した後、端末は、初期リソース閾値を、低減する前の初期リソース閾値の９００ＭＢに設定し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００５８】
ステップ２０６では、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも大きいことを検出すれば、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行し、ステップ２０４を引き続き実行する。
【００５９】
例えば、端末はコントロールグループにおけるすべてのプロセスが占用する合計リソース値が９００ＭＢであることを検出し、合計リソース値の９００ＭＢが初期リソース閾値の５００ＭＢより大きい場合、端末は、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行して、コントロールグループにおける空のプロセスが占用するリソースを圧縮した後に仮想デバイスに記憶し、かつコントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行する。
【００６０】
以上をまとめると、本発明に係るメモリ最適化方法は、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することでコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなることにより、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、さらに該コントロールグループにおけるすべてのプロセスが占用する合計リソース値を圧縮することができ、端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという問題を解決し、メモリを圧縮する場合に操作時間遅延を低減するという効果を達成する。
【００６１】
また、初期リソース閾値を低減する場合にエラーがあれば、初期リソース閾値の補正を停止し、所定の期間を隔てた後、初期リソース閾値を、低減する前の初期リソース閾値に設定することにより、コントロールグループにおける空のプロセスが少なすぎる場合に端末に対してスワップ操作を繰り返して実行することにより端末の実行速度に悪影響を及ぼすという問題を避け、スワップ操作の実行頻度を低減することによりメモリを漸次に圧縮し、メモリに対する圧縮効率を高めることができる。
【００６２】
図３は、一つの例示的実施例に示されるメモリ最適化装置のブロック図であり、該メモリ最適化装置は、端末に用いられ、図３に示すように、該メモリ最適化装置は、リソース検出モジュール３１０、プロセス付加モジュール３２０及びリソーススワップモジュール３３０を含む。
【００６３】
該リソース検出モジュール３１０は、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出するように構成され、リソース臨界値は、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がコントロールグループに対応するリソース閾値よりも小さく、かつ新たに作成されたプロセスをコントロールグループに付加した後に、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きい場合のリソース値である。
【００６４】
該プロセス付加モジュール３２０は、リソース検出モジュールにより現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出した場合、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加するように構成される。
【００６５】
該リソーススワップモジュール３３０は、プロセス付加モジュールにより付加されたコントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるように構成される。
【００６６】
以上をまとめると、本発明に係るメモリ最適化装置は、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することでコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなることにより、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、さらに該コントロールグループにおけるすべてのプロセスが占用する合計リソース値を圧縮することができ、端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという問題を解決し、メモリを圧縮する場合に操作時間遅延を低減するという効果を達成する。
【００６７】
図４は、一つの例示的実施例に示されるメモリ最適化装置のブロック図であり、該メモリ最適化装置は、端末に用いられ、図４に示すように、該メモリ最適化装置は、リソース検出モジュール３１０、プロセス付加モジュール３２０及びリソーススワップモジュール３３０を含む。
【００６８】
該リソース検出モジュール３１０は、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出するように構成され、リソース臨界値は、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がコントロールグループに対応するリソース閾値よりも小さく、かつ新たに作成されたプロセスをコントロールグループに付加した後に、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも大きい場合のリソース値である。
【００６９】
該プロセス付加モジュール３２０は、リソース検出モジュール３１０が現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出した場合、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加するように構成される。
【００７０】
リソーススワップモジュール３３０は、プロセス付加モジュール３２０により付加されたコントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるように構成される。
【００７１】
好ましくは、コントロールグループがリソース閾値により制限されるシステムコントロールグループである場合、プロセス付加モジュール３２０は、閾値保存サブモジュール３２１、制限取消しサブモジュール３２２及びプロセス付加サブモジュール３２３を含む。
【００７２】
該閾値保存サブモジュール３２１は、システムコントロールグループのリソース閾値を保存するように構成される。
【００７３】
該制限取消しサブモジュール３２２は、システムコントロールグループにおけるすべてのプロセスが占用する合計リソース値に対するリソース閾値の制限を取り消すように構成される。
【００７４】
プロセス付加サブモジュール３２３は、新たに作成されたプロセスをシステムコントロールグループに付加するように構成される。
【００７５】
好ましくは、コントロールグループがリソース閾値により制限されない非システムコントロールグループである場合、装置は、閾値読取りモジュール３４０をさらに含む。
【００７６】
該閾値読取りモジュール３４０は、システムコントロールグループのリソース閾値を読み取り、リソース閾値を非システムコントロールグループに対応するリソース閾値として確定するように構成される。
【００７７】
好ましくは、リソーススワップモジュール３３０は、第１の設定サブモジュール３３１、リソース検出サブモジュール３３２、第１の処理サブモジュール３３３及び第２の処理サブモジュール３３４を含む。
【００７８】
該第１の設定サブモジュール３３１は、コントロールグループに対して、リソース閾値よりも大きい初期リソース閾値を設定するように構成される。
【００７９】
該リソース検出サブモジュール３３２は、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が第１の設定サブモジュール３３１により設定された初期リソース閾値よりも小さいか否かを検出するように構成される。
【００８０】
該第１の処理サブモジュール３３３は、リソース検出サブモジュール３３２によりコントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいことを検出した場合、初期リソース閾値を低減し、初期リソース閾値がリソース閾値に等しくなりかつコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される。
【００８１】
該第２の処理サブモジュール３３４は、リソース検出サブモジュール３３２によりコントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも大きいことを検出した場合、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される。
【００８２】
好ましくは、第１の処理サブモジュール３３３は、閾値低減サブモジュール３３３１、差検出サブモジュール３３３２及び第２の設定サブモジュール３３３３を含む。
【００８３】
該閾値低減サブモジュール３３３１は、初期リソース閾値を低減するように構成される。
【００８４】
該差検出サブモジュール３３３２は、閾値低減サブモジュール３３３１により低減された後の初期リソース閾値とリソース閾値との差が所定の数値よりも小さいか否かを検出するように構成される。
【００８５】
該第２の設定サブモジュール３３３３は、差検出サブモジュール３３３２により差が所定の数値よりも小さいことを検出した場合、低減した後の初期リソース閾値をリソース閾値として設定し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなるまで、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される。
【００８６】
好ましくは、第１の処理サブモジュール３３３は、補正一時停止サブモジュール３３３４及び繰り返し検出サブモジュール３３３５をさらに含む。
【００８７】
該補正一時停止サブモジュール３３３４は、初期リソース閾値を低減する場合にエラーがあると、初期リソース閾値の補正を停止するように構成される。
【００８８】
該繰り返し検出サブモジュール３３３５は、所定の期間を隔てた後、初期リソース閾値を、低減する前の初期リソース閾値に設定し、コントロールグループにおけるすべてのプロセスが占用する合計リソース値が初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される。
【００８９】
以上をまとめると、本発明に係るメモリ最適化装置は、コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達するか否かを検出し、現在時刻でコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース臨界値に達したことを検出すれば、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することでコントロールグループにおけるすべてのプロセスが占用する合計リソース値がリソース閾値よりも小さくなることにより、新たに作成されたプロセスをリソース閾値により制限されないコントロールグループに付加し、さらに該コントロールグループにおけるすべてのプロセスが占用する合計リソース値を圧縮することができ、端末はスワップ操作を実行すると同時にコントロールグループに新たに作成されたプロセスを付加する場合、スワップ操作を実行する時間遅延が長く、端末の実行速度に悪影響を及ぼすという問題を解決し、メモリを圧縮する場合に操作時間遅延を低減するという効果を達成する。
【００９０】
また、初期リソース閾値を低減する場合にエラーがあると、初期リソース閾値の補正を停止し、所定の期間を隔てた後、初期リソース閾値を、低減する前の初期リソース閾値に設定することにより、コントロールグループにおける空のプロセスが少なすぎる場合、端末に対してスワップ操作を繰り返して実行することにより端末の実行速度に悪影響を及ぼすという問題を避け、スワップ操作の実行頻度を低減することによりメモリを漸次に圧縮し、メモリに対する圧縮効率を高めることができる。
【００９１】
前記実施例に係る装置については、その中の各モジュールが操作を実行する具体的な方式は、該方法に関する実施例において詳しく説明しているので、ここで詳しく説明しない。
【００９２】
図５は、一つの例示的実施例に示されるメモリ最適化に用いられる装置５００のブロック図である。例えば、装置５００は、携帯電話、コンピュータ、デジタル放送端末、メッセージ送受信機器、ゲームコンソール、タブレットデバイス、医療機器、フィットネス機器、パーソナルデジタルアシスタントなどであってもよい。
【００９３】
図５に示すように、装置５００は、プロセスアセンブリ５０２、メモリ５０４、電源アセンブリ５０６、マルチメディアアセンブリ５０８、オーディオアセンブリ５１０、入力／出力（Ｉ／Ｏ）インターフェイス５１２、センサアセンブリ５１４、及び通信アセンブリ５１６のうち一つ以上のアセンブリを含んでよい。
【００９４】
プロセスアセンブリ５０２は、一般的には装置５００全体の操作を制御するものであり、例えば表示、電話呼び出し、データ通信、カメラ操作、及び記録操作と関連する操作を制御する。プロセスアセンブリ５０２は、指令を実行するように一つ以上のプロセッサ５１８を含むことにより、上記方法のすべての又は一部のステップを実現するようにしてもよい。なお、プロセスアセンブリ５０２は、一つ以上のモジュールを含むことにより、プロセスアセンブリ５０２と他のアセンブリの間のインタラクションを容易にするようにしてもよい。例えば、プロセスアセンブリ５０２は、マルチメディアモジュールを含むことにより、マルチメディアアセンブリ５０８とプロセスアセンブリ５０２の間のインタラクションを容易にするようにしてもよい。
【００９５】
メモリ５０４は、各種類のデータを記憶することにより装置５００の操作を支援するように構成される。これらのデータの例は、装置５００において操作されるいずれのアプリケーションプログラム又は方法の命令、連絡対象データ、電話帳データ、メッセージ、画像、ビデオ等も含む。メモリ５０４は、いずれの種類の揮発性メモリ、不揮発性メモリ記憶デバイスまたはそれらの組み合わせによって実現されてもよく、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＰＲＯＭ（  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気メモリ、フラッシュメモリ、磁気ディスク又は光ディスクである。
【００９６】
電源アセンブリ５０６は、装置５００の多様なアセンブリに電力を供給する。電源アセンブリ５０６は、電源管理システム、一つ以上の電源、及び装置５００のための電力の生成、管理及び割り当てに関連する他のアセンブリを含んでよい。
【００９７】
マルチメディアアセンブリ５０８は、前記装置５００とユーザの間に一つの出力インターフェイスを提供するスクリーンを含む。いくつかの実施例において、スクリーンは液晶表示機器（ＬＣＤ）とタッチパネル（ＴＰ）を含んでよい。スクリーンがタッチパネルを含んでいれば、スクリーンはタッチスクリーンとして実現されることにより、ユーザからの入力信号を受信することができる。タッチパネルは一つ以上のタッチセンサを含むことにより、タッチ、スライド、及びタッチパネル上のジェスチャを検出する。前記タッチセンサは、タッチ又はスライド動作の境界だけでなく、前記タッチ又はスライド操作に係る継続時間及び圧力を検出することができる。いくつかの実施例において、マルチメディアアセンブリ５０８は、一つのフロントカメラ及び／又はリアカメラを含む。装置５００が、例えば撮影モード又はビデオモード等の操作モードにある場合、フロントカメラ及び／又はリアカメラは外部からマルチメディアデータを受信することができる。各フロントカメラとリアカメラのそれぞれは、一つの固定型の光学レンズ系、或は可変焦点距離と光学ズーム機能を有するものであってもよい。
【００９８】
オーディオアセンブリ５１０は、オーディオ信号を入出力するように構成される。例えば、オーディオアセンブリ５１０は、一つのマイク（ＭＩＣ）を含み、装置５００が、例えば呼出しモード、記録モード、及び音声認識モード等の操作モードにある場合、マイクは外部のオーディオ信号を受信するように構成される。受信されたオーディオ信号は、さらにメモリ５０４に記憶されたり、通信アセンブリ５１６を介して送信されたりすることができる。いくつかの実施例において、オーディオアセンブリ５１０は、オーディオ信号を出力するための一つのスピーカをさらに含む。
【００９９】
Ｉ／Ｏインターフェイス５１２は、プロセスアセンブリ５０２と周辺インターフェイスモジュールの間にインターフェイスを提供するものであり、前記周辺インターフェイスモジュールは、キーボード、クリックホイール、ボタン等のであってもよい。これらのボタンは、ホームボタン、ボリュームボタン、起動ボタン、及びロッキングボタンを含んでよいが、これらに限定されない。
【０１００】
センサアセンブリ５１４は、装置５００に各方面の状態に対する評価を提供するための一つ以上のセンサを含む。例えば、センサアセンブリ５１４は、装置５００のＯＮ／ＯＦＦ状態、装置５００のディスプレイとキーパッドのようなアセンブリの相対的な位置決めを検出することができる。また、センサアセンブリ５１４は、装置５００又は装置５００の一つのアセンブリの位置変更、ユーザと装置５００が接触しているか否か、装置５００の方位、又は加速／減速、装置５００の温度の変化を検出することができる。センサアセンブリ５１４は、何れの物理的接触もない状態でも付近の物体の存在を検出するための近接センサを含んでよい。センサアセンブリ５１４は、撮影アプリケーションに適用するため、ＣＭＯＳ、又はＣＣＤ画像センサのような光センサを含んでよい。いくつかの実施例において、該センサアセンブリ５１４は、加速度センサ、ジャイロスコープセンサ、磁気センサ、圧力センサ又は温度センサをさらに含んでもよい。
【０１０１】
通信アセンブリ５１６は、装置５００と他の機器の間に有線、又は無線形態の通信を提供する。装置５００は、例えばＷｉＦｉ（登録商標）、２Ｇ、３Ｇ、又はこれらの組み合わせのような、通信規格に基づいた無線ネットワークに接続されてもよい。一つの例示的な実施例において、通信アセンブリ５１６は、放送チャンネルを介して外部の放送管理システムからの放送信号、又は放送に関連する情報を受信する。一つの例示的な実施例において、前記通信アセンブリ５１６は、近距離無線通信（ＮＦＣ）モジュールをさらに含むことにより、近距離通信を推進するようにする。例えば、ＮＦＣモジュールは、ＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）技術、ＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）技術、ＵＷＢ（Ｕｌｔｒａ  Ｗｉｄｅ  Ｂａｎｄ）技術、ＢＴ（Ｂｌｕｅｔｏｏｔｈ（登録商標））技術、他の技術に基づいて実現できる。
【０１０２】
例示的な実施例において、装置５００は、一つ以上のＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＤＳＰＤ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｄｅｖｉｃｅ）、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子部品によって実現されるものであり、上記方法を実行する。
【０１０３】
例示的な実施例において、さらに、指令を含むコンピュータ読み取り可能な非一時的な記憶媒体、例えば、指令を含むメモリ５０４を提供し、装置５００のプロセッサ５１８により前記指令を実行して上記方法を実現する。例えば、前記コンピュータ読み取り可能な非一時的な記憶媒体は、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピーディスク（登録商標）及び光データ記憶デバイスなどであってもよい。
【０１０４】
当業者にとって、明細書を考慮してこの発明を実施した後、本発明のその他の実施方式を容易に想到し得ることができる。本願は、本発明のいかなる変形、用途又は適応的変化をカバーすることを目的とし、これら変形、用途又は適応的変化は、本発明の一般的原理に従うとともに、本発明に開示されていない本技術分野における公知の常識又は慣用の技術手段を含む。明細書及び実施例は、例示的なものに過ぎず、本発明の本当の範囲及び主旨は、特許請求の範囲に含まれる。
【０１０５】
本発明は、以上のように説明すると共に図面に示された正確な構造に限られず、その要旨を逸脱しない範囲内で各種の補正及び変更を行うことができると理解すべきである。本発明の範囲は、特許請求の範囲のみで限定される。
【０１０６】
本願は、出願番号がＣＮ２０１４１０６０２４３５．３で、出願日が２０１４年１０月３１日である中国特許出願に基づき優先権を主張し、該中国特許出願のすべての内容を本願に援用する。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記コントロールグループに対応するリソース閾値よりも小さく、かつ前記新たに作成されたプロセスを前記コントロールグループに付加した後に前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも大きい場合のリソース値であるリソース臨界値に達するか否かを検出することと、
現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース臨界値に達したことを検出すれば、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加することと、
前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなることと、
を含むことを特徴とするメモリ最適化方法。
【請求項２】
前記コントロールグループが前記リソース閾値により制限されるシステムコントロールグループである場合、
前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加することは、
前記システムコントロールグループの前記リソース閾値を保存することと、
前記リソース閾値の前記システムコントロールグループにおけるすべてのプロセスが占用する合計リソース値に対する制限を取り消すことと、
前記新たに作成されたプロセスを前記システムコントロールグループに付加することと、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記コントロールグループがリソース閾値により制限されない非システムコントロールグループである場合、
前記方法は、
システムコントロールグループのリソース閾値を読み取り、前記リソース閾値を前記非システムコントロールグループに対応するリソース閾値として確定すること、をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなることは、
前記コントロールグループに対して、前記リソース閾値よりも大きい初期リソース閾値を設定することと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出することと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいことを検出すれば、前記初期リソース閾値を低減し、前記初期リソース閾値が前記リソース閾値に等しくなりかつ前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも大きいことを検出すれば、前記コントロールグループにおける前記空のプロセスが占用するリソースに対してスワップ操作を実行し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、
を含むことを特徴とする請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記初期リソース閾値を低減し、前記初期リソース閾値が前記リソース閾値に等しくなりかつ前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することは、
前記初期リソース閾値を低減することと、
低減した後の前記初期リソース閾値と前記リソース閾値との差が所定の数値よりも小さいか否かを検出することと、
前記差が前記所定の数値よりも小さいことを検出すれば、低減した後の前記初期リソース閾値を前記リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、
を含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記初期リソース閾値を低減する場合にエラーがあれば、前記初期リソース閾値の補正を停止することと、
所定の期間を隔てた後、前記初期リソース閾値を、低減する前の初期リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出するステップを引き続き実行することと、
をさらに含むことを特徴とする請求項４に記載の方法。
【請求項７】
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記コントロールグループに対応するリソース閾値よりも小さく、かつ前記新たに作成されたプロセスを前記コントロールグループに付加した後に前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも大きい場合のリソース値であるリソース臨界値に達するか否かを検出するように構成されるリソース検出モジュールと、
前記リソース検出モジュールにより現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース臨界値に達したことを検出すると、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加するように構成されるプロセス付加モジュールと、
前記プロセス付加モジュールにより付加された前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるように構成されるリソーススワップモジュールと、
を含むことを特徴とするメモリ最適化装置。
【請求項８】
前記コントロールグループが前記リソース閾値により制限されるシステムコントロールグループである場合、前記プロセス付加モジュールは、
前記システムコントロールグループの前記リソース閾値を保存するように構成される閾値保存サブモジュールと、
前記リソース閾値の前記システムコントロールグループにおけるすべてのプロセスが占用する合計リソース値に対する制限を取り消すように構成される制限取消しサブモジュールと、
前記新たに作成されたプロセスを前記システムコントロールグループに付加するように構成されるプロセス付加サブモジュールと、
を含むことを特徴とする請求項７に記載の装置。
【請求項９】
前記コントロールグループがリソース閾値により制限されない非システムコントロールグループである場合、前記装置は、
システムコントロールグループのリソース閾値を読み取り、前記リソース閾値を前記非システムコントロールグループに対応するリソース閾値として確定するように構成される閾値読取りモジュールをさらに含むことを特徴とする請求項７に記載の装置。
【請求項１０】
前記リソーススワップモジュールは、
前記コントロールグループに対して、前記リソース閾値よりも大きい初期リソース閾値を設定するように構成される第１の設定サブモジュールと、
前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記第１の設定サブモジュールにより設定された前記初期リソース閾値よりも小さいか否かを検出するように構成されるリソース検出サブモジュールと、
前記リソース検出サブモジュールにより前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいことを検出すると、前記初期リソース閾値を低減し、前記初期リソース閾値が前記リソース閾値に等しくなりかつ前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される第１の処理サブモジュールと、
前記リソース検出サブモジュールにより前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも大きいことを検出すると、前記コントロールグループにおける前記空のプロセスが占用するリソースに対してスワップ操作を実行し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される第２の処理サブモジュールと、
を含むことを特徴とする請求項７〜９のいずれか１項に記載の装置。
【請求項１１】
前記第１の処理サブモジュールは、
前記初期リソース閾値を低減するように構成される閾値低減サブモジュールと、
前記閾値低減サブモジュールにより低減された後の前記初期リソース閾値と前記リソース閾値との差が所定の数値よりも小さいか否かを検出するように構成される差検出サブモジュールと、
前記差検出サブモジュールにより前記差が前記所定の数値よりも小さいことを検出すると、低減した後の前記初期リソース閾値を前記リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなるまで、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される第２の設定サブモジュールと、
を含むことを特徴とする請求項１０に記載の装置。
【請求項１２】
前記第１の処理サブモジュールは、
前記初期リソース閾値を低減する場合にエラーがあると、前記初期リソース閾値の補正を停止するように構成される補正一時停止サブモジュールと、
所定の期間を隔てた後、前記初期リソース閾値を、低減する前の初期リソース閾値として設定し、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記初期リソース閾値よりも小さいか否かを検出する操作を引き続き実行するように構成される繰り返し検出サブモジュールと、
をさらに含むことを特徴とする請求項１０に記載の装置。
【請求項１３】
プロセッサと、
プロセッサが実行可能な命令を記憶するメモリと、を含み、
前記プロセッサは、
コントロールグループに新たに作成されたプロセスを付加する必要がある場合、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が、現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記コントロールグループに対応するリソース閾値よりも小さく、かつ前記新たに作成されたプロセスを前記コントロールグループに付加した後に前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも大きい場合のリソース値であるリソース臨界値に達するか否かを検出し、
現在時刻で前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース臨界値に達したことを検出すれば、前記新たに作成されたプロセスを前記リソース閾値により制限されない前記コントロールグループに付加し、
前記コントロールグループにおける空のプロセスが占用するリソースに対してスワップ操作を実行することにより、前記コントロールグループにおけるすべてのプロセスが占用する合計リソース値が前記リソース閾値よりも小さくなる、
ように構成されることを特徴とするメモリ最適化装置。
【請求項１４】
プロセッサに実行されることにより、請求項１〜６のいずれか１項に記載のメモリ最適化方法を実現することを特徴とするプログラム。
【請求項１５】
請求項１４に記載のプログラムが記録された記録媒体。
【国際調査報告】
2016538675.tif 000008
2016538675.tif 000009
2016538675.tif 000010
2016538675.tif 000011