(57)【要約】【課題】プログラムがＣＰＵによって処理される時間であるＣＰＵ利用時間を制御することによって、より適切に複数のプログラムを並行して処理することができるプログラム処理装置及びプログラム処理方法を提供する。【解決手段】本発明に係るプログラム処理装置１００は、所定の時間枠が開始する開始時刻を更新する開始時刻更新部と、更新された開始時刻を用いて、プログラムがＣＰＵによって処理された時間に基づくＣＰＵ利用値を決定するＣＰＵ利用値処理部と、ＣＰＵ利用値の設定上限値に基づいて、ＣＰＵ利用値が設定上限値となるタイミングでＣＰＵによるプログラムの処理を再開する処理再開部とを備える。【選択図】図１
2007114852.tif 000002
【特許請求の範囲】
【請求項１】
所定の時間枠を単位として、ＣＰＵを用いてプログラムを処理するプログラム処理装置であって、
前記所定の時間枠が開始する開始時刻を更新する開始時刻更新部と、
前記開始時刻更新部によって更新された前記開始時刻を用いて、前記プログラムが前記ＣＰＵによって処理された時間に基づくＣＰＵ利用値を決定するＣＰＵ利用値処理部と、
前記ＣＰＵ利用値と前記ＣＰＵ利用値の設定上限値とに基づいて、前記ＣＰＵ利用値が前記設定上限値となるタイミングで前記ＣＰＵによる前記プログラムの処理を再開する処理再開部と
を備えるプログラム処理装置。
【請求項２】
前記プログラムを処理しない非処理時間を演算する非処理時間演算部をさらに備え、
前記非処理時間演算部は、前記ＣＰＵ利用値が前記設定上限値を超えている場合、前記ＣＰＵ利用値が前記設定上限値となる前記非処理時間を演算し、
前記処理再開部は、前記非処理時間が経過したときに、前記ＣＰＵによる前記プログラムの処理を再開する請求項１に記載のプログラム処理装置。
【請求項３】
前記処理再開部は、前記ＣＰＵ利用値が前記設定上限値を超えている場合、前記所定の時間枠が経過したときに、前記ＣＰＵによる前記プログラムの処理を再開する請求項１に記載のプログラム処理装置。
【請求項４】
前記ＣＰＵ利用値が前記設定上限値を超えている場合、前記ＣＰＵ利用値に基づいて、前記設定上限値を低下させる設定値更新部をさらに備える請求項３に記載のプログラム処理装置。
【請求項５】
前記ＣＰＵ利用値が前記設定上限値を超えている場合において、前記ＣＰＵによって処理が可能であり、前記プログラムよりも前記ＣＰＵによる処理の優先度が高い高優先度プログラムが存在しない場合、前記処理再開部は、前記ＣＰＵによる前記プログラムの処理を再開する請求項１に記載のプログラム処理装置。
【請求項６】
前記プログラム以外の他プログラムを処理しない他プログラム非処理時間を演算する他プログラム非処理時間演算部をさらに備え、
前記他プログラム非処理時間演算部は、前記ＣＰＵ利用値が前記設定上限値に達していない場合、前記ＣＰＵ利用値が前記設定上限値となる前記他プログラム非処理時間を演算し、
前記処理再開部は、前記他プログラム非処理時間が経過したときに、前記ＣＰＵによる前記他プログラムの処理を再開する請求項１に記載のプログラム処理装置。
【請求項７】
前記プログラムよりも前記ＣＰＵによる処理の優先度が低い低優先度プログラムを処理しない低優先度プログラム非処理時間を演算する低優先度プログラム非処理時間演算部をさらに備え、
前記低優先度プログラム非処理時間演算部は、前記ＣＰＵ利用値が前記設定上限値に達していない場合、前記ＣＰＵ利用値が前記設定上限値に近づく前記低優先度プログラム非処理時間を演算し、
前記処理再開部は、前記低優先度プログラム非処理時間が経過したときに、前記ＣＰＵによる前記低優先度プログラムの処理を再開する請求項１に記載のプログラム処理装置。
【請求項８】
前記処理再開部は、現在時刻から前記所定の時間枠が終了する終了時刻までの時間に基づいて、前記ＣＰＵ利用値が前記設定上限値になると判定した場合、前記所定の時間枠が経過したときに、前記ＣＰＵによる前記プログラム以外の他プログラムの処理を再開する請求項１に記載のプログラム処理装置。
【請求項９】
前記処理再開部は、現在時刻から前記所定の時間枠が終了する終了時刻までの時間に基づいて、前記ＣＰＵ利用値が前記設定上限値になると判定した場合、前記所定の時間枠が経過したときに、前記プログラムよりも前記ＣＰＵによる処理の優先度が低い低優先度プログラムの処理を再開する請求項１に記載のプログラム処理装置。
【請求項１０】
前記ＣＰＵ利用値は、前記開始時刻から現在時刻までにおけるＣＰＵ利用時間である請求項１に記載のプログラム処理装置。
【請求項１１】
前記ＣＰＵ利用値は、前記開始時刻から現在時刻までにおけるＣＰＵ利用率である請求項１に記載のプログラム処理装置。
【請求項１２】
前記ＣＰＵ利用値は、前記所定の時間枠におけるＣＰＵ利用率である請求項１に記載のプログラム処理装置。
【請求項１３】
前記設定上限値と、前記ＣＰＵのクロック周波数とに基づいて、前記ＣＰＵによる前記プログラムの処理の際に用いられる前記クロック周波数を制御するクロック周波数制御部をさらに備える請求項１に記載のプログラム処理装置。
【請求項１４】
前記プログラムは、所定の関係を有する複数のプログラムを含む請求項１に記載のプログラム処理装置。
【請求項１５】
所定の時間枠を単位として、ＣＰＵを用いてプログラムを処理するプログラム処理方法であって、
前記所定の時間枠が開始する開始時刻を更新するステップと、
前記更新するステップにおいて更新された前記開始時刻を用いて、前記プログラムが前記ＣＰＵによって処理された時間に基づくＣＰＵ利用値を決定するステップと、
前記ＣＰＵ利用値と前記ＣＰＵ利用値の設定上限値とに基づいて、前記ＣＰＵ利用値が前記設定上限値となるタイミングで前記ＣＰＵによる前記プログラムの処理を再開するステップと
を備えるプログラム処理方法。
【請求項１６】
前記プログラムを処理しない非処理時間を演算するステップをさらに備え、
前記演算するステップでは、前記ＣＰＵ利用値が前記設定上限値を超えている場合、前記ＣＰＵ利用値が前記設定上限値となる前記非処理時間を演算し、
前記再開するステップでは、前記非処理時間が経過したときに、前記ＣＰＵによる前記プログラムの処理を再開する請求項１５に記載のプログラム処理方法。
【請求項１７】
前記ＣＰＵ利用値が前記設定上限値を超えている場合において、前記ＣＰＵによって処理が可能であり、前記プログラムよりも前記ＣＰＵによる処理の優先度が高い高優先度プログラムが存在しない場合、前記処理を再開するステップでは、前記ＣＰＵによる前記プログラムの処理を再開する請求項１５に記載のプログラム処理方法。
【請求項１８】
前記プログラム以外の他プログラムを処理しない他プログラム非処理時間を演算するステップをさらに備え、
前記他プログラム非処理時間を演算するステップでは、前記ＣＰＵ利用値が前記設定上限値に達していない場合、前記ＣＰＵ利用値が前記設定上限値となる前記他プログラム非処理時間を演算し、
前記処理を再開するステップでは、前記他プログラム非処理時間が経過したときに、前記ＣＰＵによる前記他プログラムの処理を再開する請求項１５に記載のプログラム処理方法。
【請求項１９】
前記プログラムよりも前記ＣＰＵによる処理の優先度が低い低優先度プログラムを処理しない低優先度プログラム非処理時間を演算するステップをさらに備え、
前記低優先度プログラム非処理時間を演算するステップでは、前記ＣＰＵ利用値が前記設定上限値に達していない場合、前記ＣＰＵ利用値が前記設定上限値に近づく前記低優先度プログラム非処理時間を演算し、
前記処理を再開するステップでは、前記低優先度プログラム非処理時間が経過したときに、前記ＣＰＵによる前記低優先度プログラムの処理を再開する請求項１５に記載のプログラム処理方法。
【請求項２０】
前記設定上限値と、前記ＣＰＵのクロック周波数とに基づいて、前記ＣＰＵによる前記プログラムの処理の際に用いられる前記クロック周波数を制御するステップをさらに備える請求項１５に記載のプログラム処理方法。
【請求項２１】
前記プログラムは、所定の関係を有する複数のプログラムを含む請求項１５に記載のプログラム処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の時間枠を単位として、ＣＰＵを用いてプログラムを処理するプログラム処理装置及びプログラム処理方法に関する。
【背景技術】
【０００２】
現代の一般的なコンピュータシステム（プログラム処理装置）は、複数のプログラムを同時に実行することができるように構成されている。複数のプログラムはＣＰＵ（処理装置）によって処理されるが、１台のコンピュータシステムに搭載されるＣＰＵ数は有限であるため、実行中のすべてのプログラムを同時に処理することができない場合がある。
【０００３】
そこで、当該プログラムがあたかも同時に実行されているような環境を実現するため、ＣＰＵによって処理されるプログラムが、オペレーティングシステム（ＯＳ）によって所定時間ごとに切り替えられている。
【０００４】
ここで、万一当該プログラムが、重大なバグを含んでいたり、悪意のある不正なプログラム（例えば、コンピュータシステムに対する負荷を必要以上に高めるプログラム）であったりした場合、コンピュータシステムが正常に動作できなくなるため問題となる。
【０００５】
このような問題の対策に関して、ＣＰＵによってプログラムが処理された時間の合計時間（ＣＰＵ利用時間）を制限する技術、具体的には、“setrlimit”を用いてＣＰＵ利用時間を制限する方法が開示されている。（例えば、非特許文献１）。
【０００６】
“setrlimit”を用いてＣＰＵ利用時間を制限する方法では、ＣＰＵ利用時間が設定上限値に到達するまで、ＣＰＵの能力を１００％使用してプログラムが処理される。このため、プログラムが、重大なバグを含んでいたり、悪意のある不正なプログラムであったりした場合に、コンピュータシステムが正常に動作できなくなる問題を完全に解決することができない。
【０００７】
そこで、所定時間内におけるＣＰＵ利用時間の比率である“ＣＰＵ利用率”に基づいてプログラムの処理時間を制御する方法も開示されている（例えば、特許文献１）。
【０００８】
具体的には、ＣＰＵ利用率が設定上限値を超えないようにするため、プログラムは、ＣＰＵによって所定時間処理された後、停止させられる。次いで、ＣＰＵによるプログラムの処理を一時的に停止させる“一時停止時間”が演算され、当該プログラムの処理を再開するときに、一時停止時間だけＣＰＵによるプログラムの処理が停止させられる。
【０００９】
また、上述したコンピュータシステムでは、実行中であるすべてのプログラムのＣＰＵ利用時間が設定上限値に到達した場合、処理可能なプログラムが存在しなくなる。このため、ＣＰＵはアイドル状態となり、単に電力を消費することとなる。
【００１０】
そこで、このような状態を回避するため、ＣＰＵ利用時間が設定上限値に到達した場合でも、他に処理可能なプログラムが存在しない場合、既にＣＰＵ利用時間が設定上限値に到達した当該プログラムをさらにＣＰＵによって処理させる方法も開示されている（例えば、非特許文献２）。
【００１１】
例えば、ＣＰＵ利用時間を計測するための単位時間を１００秒とし、単位時間内におけるＣＰＵ利用時間の閾値を１０秒に設定したとする。この場合、ＣＰＵによってプログラムが１０秒間に渡って処理されたとしても、残りの９０秒間において、他に処理可能なプログラムが存在しないのであれば、当該プログラムがさらにＣＰＵによって処理される。
【非特許文献１】Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, John S. Quarterman、"The Design and Implementation of the 4.4BSD Operating System"、Addison-Wesley、１９９６年
【非特許文献２】Shuichi O, Raj R、"Linux/RK: A Portable Resource Kernel in Linux"、Proceedings of the IEEE Real-Time Systems Symposium、１９９８年
【特許文献１】特開２０００−２８４９７６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上述した従来の方法には、次のような問題があった。すなわち、上述した特許文献１において開示されている方法では、ＣＰＵ利用率を設定されている設定上限値まで上げることができないといった問題があった。
【００１３】
具体的には、当該方法では、一時停止時間を演算した時点において既にＣＰＵによるプログラムの処理が停止させられている。このようにプログラムが停止させられている状態において、当該プログラムは、さらに一時停止時間に渡って停止させられることになる。つまり、当該プログラムは、必要以上の時間に渡って停止させられることとなる。
【００１４】
また、上述した非特許文献２に開示されている方法では、ＣＰＵで処理可能であり、かつＣＰＵ利用時間の閾値にＣＰＵ利用時間がまだ及んでいない他のプログラムが存在する場合、ＣＰＵ利用時間が既に当該閾値に到達したプログラムは、まったくＣＰＵによって処理されないこととなる。
【００１５】
しかしながら、プログラムの中には、ＣＰＵ利用時間が既に当該閾値に到達している場合でも、さらにＣＰＵによって処理されるほうが好ましいもの（例えば、動画像再生や音声通話に関するアプリケーションプログラム）が存在する。
【００１６】
そこで、本発明は、このような状況に鑑みてなされたものであり、プログラムがＣＰＵによって処理される時間であるＣＰＵ利用時間を制御することによって、より適切に複数のプログラムを並行して処理することができるプログラム処理装置及びプログラム処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上述した問題を解決するため、本発明は、次のような特徴を有している。まず、本発明の第１の特徴は、所定の時間枠（時間枠Ｗ）を単位として、ＣＰＵ（ＣＰＵ１２０）を用いてプログラム（例えば、プログラム２００）を処理するプログラム処理装置（プログラム処理装置１００）であって、前記所定の時間枠が開始する開始時刻（開始時刻ｔＳ）を更新する開始時刻更新部（開始時刻更新部１１１）と、前記開始時刻更新部によって更新された前記開始時刻を用いて、前記プログラムが前記ＣＰＵによって処理された時間に基づくＣＰＵ利用値（例えば、ＣＰＵ利用時間Ｐ１）を決定するＣＰＵ利用値処理部（ＣＰＵ利用値処理部１１２）と、前記ＣＰＵ利用値と前記ＣＰＵ利用値の設定上限値（例えば、設定値Ｓ１）とに基づいて、前記ＣＰＵ利用値が前記設定上限値となるタイミングで前記ＣＰＵによる前記プログラムの処理を再開する処理再開部（処理再開部１１３）とを備えることを要旨とする。
【００１８】
このようなプログラム処理装置によれば、ＣＰＵ利用値が設定上限値となるタイミングでＣＰＵによるプログラムの処理が再開される。このため、従来のＣＰＵ利用時間を制限する方法が有する問題、つまり、プログラムが必要以上の時間に渡って停止させられるといった問題を解消することができ、プログラムのＣＰＵ利用値が設定上限値により近づくように制御することができる。
【００１９】
本発明の第２の特徴は、本発明の第１の特徴に係り、前記プログラムを処理しない非処理時間（非処理時間Ｐ２）を演算する非処理時間演算部（非処理時間演算部１１４）をさらに備え、前記非処理時間演算部は、前記ＣＰＵ利用値が前記設定上限値を超えている場合、前記ＣＰＵ利用値が前記設定上限値となる前記非処理時間を演算し、前記処理再開部は、前記非処理時間が経過したときに、前記ＣＰＵによる前記プログラムの処理を再開することを要旨とする。
【００２０】
本発明の第３の特徴は、本発明の第１の特徴に係り、前記処理再開部は、前記ＣＰＵ利用値が前記設定上限値を超えている場合、前記所定の時間枠が経過したときに、前記ＣＰＵによる前記プログラムの処理を再開することを要旨とする。
【００２１】
本発明の第４の特徴は、本発明の第３の特徴に係り、前記ＣＰＵ利用値が前記設定上限値を超えている場合、前記ＣＰＵ利用値に基づいて、前記設定上限値を低下させる設定値更新部（設定値更新部１１６）をさらに備えることを要旨とする。
【００２２】
本発明の第５の特徴は、本発明の第１の特徴に係り、前記ＣＰＵ利用値が前記設定上限値を超えている場合において、前記ＣＰＵによって処理が可能であり、前記プログラムよりも前記ＣＰＵによる処理の優先度が高い高優先度プログラム（例えば、プログラム２１０）が存在しない場合、前記処理再開部は、前記ＣＰＵによる前記プログラムの処理を再開することを要旨とする。
【００２３】
本発明の第６の特徴は、本発明の第１の特徴に係り、前記プログラム以外の他プログラム（例えば、プログラム２１０，プログラム２２０）を処理しない他プログラム非処理時間を演算する他プログラム非処理時間演算部（非処理時間演算部１１４）をさらに備え、前記他プログラム非処理時間演算部は、前記ＣＰＵ利用値が前記設定上限値に達していない場合、前記ＣＰＵ利用値が前記設定上限値となる前記他プログラム非処理時間を演算し、前記処理再開部は、前記他プログラム非処理時間が経過したときに、前記ＣＰＵによる前記他プログラムの処理を再開することを要旨とする。
【００２４】
本発明の第７の特徴は、本発明の第１の特徴に係り、前記プログラムよりも前記ＣＰＵによる処理の優先度が低い低優先度プログラム（例えば、プログラム２２０）を処理しない低優先度プログラム非処理時間を演算する低優先度プログラム非処理時間演算部（非処理時間演算部１１４）をさらに備え、前記低優先度プログラム非処理時間演算部は、前記ＣＰＵ利用値が前記設定上限値に達していない場合、前記ＣＰＵ利用値が前記設定上限値に近づく前記低優先度プログラム非処理時間を演算し、前記処理再開部は、前記低優先度プログラム非処理時間が経過したときに、前記ＣＰＵによる前記低優先度プログラムの処理を再開することを要旨とする。
【００２５】
本発明の第８の特徴は、本発明の第１の特徴に係り、前記処理再開部は、現在時刻（現在時刻ｔ）から前記所定の時間枠が終了する終了時刻（終了時刻ｔＥ）までの時間に基づいて、前記ＣＰＵ利用値が前記設定上限値になると判定した場合、前記所定の時間枠が経過したときに、前記ＣＰＵによる前記プログラム以外の他プログラムの処理を再開することを要旨とする。
【００２６】
本発明の第９の特徴は、本発明の第１の特徴に係り、前記処理再開部は、現在時刻（現在時刻ｔ）から前記所定の時間枠が終了する終了時刻（終了時刻ｔＥ）までの時間に基づいて、前記ＣＰＵ利用値が前記設定上限値になると判定した場合、前記所定の時間枠が経過したときに、前記プログラムよりも前記ＣＰＵによる処理の優先度が低い低優先度プログラムの処理を再開することを要旨とする。
【００２７】
本発明の第１０の特徴は、本発明の第１の特徴に係り、前記ＣＰＵ利用値は、前記開始時刻から現在時刻（現在時刻ｔ）までにおけるＣＰＵ利用時間であることを要旨とする。
【００２８】
本発明の第１１の特徴は、本発明の第１の特徴に係り、前記ＣＰＵ利用値は、前記開始時刻から現在時刻（現在時刻ｔ）までにおけるＣＰＵ利用率（ＣＰＵ利用率Ｒ）であることを要旨とする。
【００２９】
本発明の第１２の特徴は、本発明の第１の特徴に係り、前記ＣＰＵ利用値は、前記所定の時間枠におけるＣＰＵ利用率（ＣＰＵ利用率Ｒ）であることを要旨とする。
【００３０】
本発明の第１３の特徴は、本発明の第１の特徴に係り、前記設定上限値と、前記ＣＰＵのクロック周波数とに基づいて、前記ＣＰＵによる前記プログラムの処理の際に用いられる前記クロック周波数を制御するクロック周波数制御部（クロック周波数制御部１１５）をさらに備えることを要旨とする。
【００３１】
本発明の第１４の特徴は、本発明の第１の特徴に係り、前記プログラムは、所定の関係を有する複数のプログラムを含むことを要旨とする。
【００３２】
本発明の第１５の特徴は、所定の時間枠を単位として、ＣＰＵを用いてプログラムを処理するプログラム処理方法であって、前記所定の時間枠が開始する開始時刻を更新するステップと、前記更新するステップにおいて更新された前記開始時刻を用いて、前記プログラムが前記ＣＰＵによって処理された時間に基づくＣＰＵ利用値を決定するステップと、前記ＣＰＵ利用値と前記ＣＰＵ利用値の設定上限値とに基づいて、前記ＣＰＵ利用値が前記設定上限値となるタイミングで前記ＣＰＵによる前記プログラムの処理を再開するステップとを備えることを要旨とする。
【００３３】
本発明の第１６の特徴は、本発明の第１５の特徴に係り、前記プログラムを処理しない非処理時間を演算するステップをさらに備え、前記演算するステップでは、前記ＣＰＵ利用値が前記設定上限値を超えている場合、前記ＣＰＵ利用値が前記設定上限値となる前記非処理時間を演算し、前記再開するステップでは、前記非処理時間が経過したときに、前記ＣＰＵによる前記プログラムの処理を再開することを要旨とする。
【００３４】
本発明の第１７の特徴は、本発明の第１５の特徴に係り、前記ＣＰＵ利用値が前記設定上限値を超えている場合において、前記ＣＰＵによって処理が可能であり、前記プログラムよりも前記ＣＰＵによる処理の優先度が高い高優先度プログラムが存在しない場合、前記処理を再開するステップでは、前記ＣＰＵによる前記プログラムの処理を再開することを要旨とする。
【００３５】
本発明の第１８の特徴は、本発明の第１５の特徴に係り、前記プログラム以外の他プログラムを処理しない他プログラム非処理時間を演算するステップをさらに備え、前記他プログラム非処理時間を演算するステップでは、前記ＣＰＵ利用値が前記設定上限値に達していない場合、前記ＣＰＵ利用値が前記設定上限値となる前記他プログラム非処理時間を演算し、前記処理を再開するステップでは、前記他プログラム非処理時間が経過したときに、前記ＣＰＵによる前記他プログラムの処理を再開することを要旨とする。
【００３６】
本発明の第１９の特徴は、本発明の第１５の特徴に係り、前記プログラムよりも前記ＣＰＵによる処理の優先度が低い低優先度プログラムを処理しない低優先度プログラム非処理時間を演算するステップをさらに備え、前記低優先度プログラム非処理時間を演算するステップでは、前記ＣＰＵ利用値が前記設定上限値に達していない場合、前記ＣＰＵ利用値が前記設定上限値に近づく前記低優先度プログラム非処理時間を演算し、前記処理を再開するステップでは、前記低優先度プログラム非処理時間が経過したときに、前記ＣＰＵによる前記低優先度プログラムの処理を再開することを要旨とする。
【００３７】
本発明の第２０の特徴は、本発明の第１５の特徴に係り、前記設定上限値と、前記ＣＰＵのクロック周波数とに基づいて、前記ＣＰＵによる前記プログラムの処理の際に用いられる前記クロック周波数を制御するステップをさらに備えることを要旨とする。
【００３８】
本発明の第２１の特徴は、本発明の第１５の特徴に係り、前記プログラムは、所定の関係を有する複数のプログラムを含むことを要旨とする。
【発明の効果】
【００３９】
本発明の特徴によれば、プログラムがＣＰＵによって処理される時間であるＣＰＵ利用時間を制御することによって、より適切に複数のプログラムを並行して処理することができるプログラム処理装置及びプログラム処理方法を提供することができる。
【発明を実施するための最良の形態】
【００４０】
［第１実施形態］
次に、本発明の第１実施形態について説明する。なお、以下の図面の記載において、同一または類似の部分には、同一または類似の符号を付している。ただし、図面は模式的なものであり、各寸法の比率などは現実のものとは異なることに留意すべきである。
【００４１】
したがって、具体的な寸法などは以下の説明を参酌して判断すべきものである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【００４２】
（プログラム処理装置の機能ブロック構成）
図１は、本実施形態に係るプログラム処理装置１００の機能ブロック構成図である。図１に示すように、プログラム処理装置１００は、オペレーティングシステム１１０（以下、ＯＳ１１０）、ＣＰＵ１２０及び記憶部１３０を備えている。記憶部１３０には、ＣＰＵ１２０において処理されるプログラム２００〜２２０が記憶されている。
【００４３】
また、ＯＳ１１０は、開始時刻更新部１１１、ＣＰＵ利用値処理部１１２、処理再開部１１３、非処理時間演算部１１４、クロック周波数制御部１１５及びクロック周波数制御部１１５を備えている。
【００４４】
プログラム処理装置１００は、所定の時間枠である時間枠Ｗ（図３参照）を単位として、ＣＰＵ１２０を用いてプログラム２００〜２２０を処理する。なお、プログラム処理装置１００は、処理対象とするプログラムを切り替えながら、プログラム２００〜２２０を同時に並行して処理する。また、プログラム処理装置１００は、所定の関係（例えば、同様な処理を実行）を有する複数のプログラム（例えば、プログラム２００とプログラム２１０）を対象として処理を実行することができる。
【００４５】
開始時刻更新部１１１は、ＣＰＵ１２０による処理が制限される実行中のプログラムのプロセス（制限プロセス）が、ＣＰＵ１２０によって処理された時間の合計時間であるＣＰＵ利用時間Ｐ１を取得するため、起点となる開始時刻ｔＳ（図３参照）を更新する。すなわち、開始時刻更新部１１１は、時間枠Ｗが開始する開始時刻ｔＳを更新する。
【００４６】
なお、プログラム処理装置１００では、一般的に複数のプロセスが同時に存在するため、図３に示すように、制限プロセスは時間枠Ｗの一部分においてのみ、ＣＰＵ１２０によって処理される。また、開始時刻ｔＳの更新の判定には、予め定められた時刻や現在時刻ｔ（図３参照）などを用いることができる。
【００４７】
本実施形態では、開始時刻更新部１１１は、図２に示すような構造を有するデータを用いて制限プロセスを管理する。なお、プログラム（制限プロセス）のＣＰＵ利用時間Ｐ１を制限するため、例えば、ＯＳ１１０とは別個の利用時間管理プログラムを用いてもよい。
【００４８】
ＣＰＵ利用値処理部１１２は、プログラム２００〜２２０がＣＰＵ１２０によって処理された時間に基づくＣＰＵ利用値を決定する。具体的には、ＣＰＵ利用値処理部１１２は、開始時刻更新部１１１によって更新された開始時刻ｔＳを用いて、ＣＰＵ利用値を決定する。
【００４９】
本実施形態では、ＣＰＵ利用値処理部１１２は、開始時刻ｔＳから現在時刻ｔまでにおけるＣＰＵ利用時間Ｐ１をＣＰＵ利用値として用いることができる。
【００５０】
また、ＣＰＵ利用値処理部１１２は、ＣＰＵ利用時間Ｐ１に代えて、開始時刻ｔＳから現在時刻ｔまでにおけるＣＰＵ利用率ＲをＣＰＵ利用値として用いることができる。
【００５１】
さらに、ＣＰＵ利用値処理部１１２は、時間枠ＷにおけるＣＰＵ利用率ＲをＣＰＵ利用値として用いることもできる。
【００５２】
処理再開部１１３は、ＣＰＵ利用値と、ＣＰＵ利用値の設定値Ｓ１（設定上限値）とに基づいて、ＣＰＵ利用値が設定値Ｓ１となるタイミングでＣＰＵ１２０によるプログラム（制限プロセス）の処理を再開する。
【００５３】
すなわち、処理再開部１１３は、ＣＰＵ利用値を設定値Ｓ１まで低下させるため、非処理時間演算部１１４によって演算された非処理時間Ｐ２（図３参照）が経過したときに、ＣＰＵ１２０によるプログラム（制限プロセス）の処理を再開する。
【００５４】
なお、制限プロセスをＣＰＵ１２０によって処理されないようにする方法としては、制限プロセス自体を非処理時間Ｐ２停止する、或いは、制限プロセスがＣＰＵ１２０を利用できるようになっても非処理時間Ｐ２が経過するまで当該制限プロセスを処理しない（スピンロック）などがある。
【００５５】
また、処理再開部１１３は、現在時刻ｔから時間枠Ｗが終了する終了時刻ｔＥまでの時間に基づいて、ＣＰＵ利用値が設定値Ｓ１になると判定した場合、時間枠Ｗが経過したときに、ＣＰＵ１２０によるプログラム（例えば、プログラム２００）以外の他プログラム（例えば、プログラム２２０）の処理を再開することができる。
【００５６】
さらに、処理再開部１１３は、現在時刻ｔから終了時刻ｔＥまでの時間に基づいて、ＣＰＵ利用値が設定値Ｓ１になると判定した場合、時間枠Ｗが経過したときに、処理中のプログラム（例えば、プログラム２００）よりもＣＰＵ１２０による処理の優先度が低い低優先度プログラム（例えば、プログラム２２０）の処理を再開することができる。
【００５７】
非処理時間演算部１１４は、ＣＰＵ１２０がプログラム２００〜２２０を処理しない非処理時間Ｐ２演算する。具体的には、非処理時間演算部１１４は、ＣＰＵ利用値が設定値Ｓ１を超えている場合、ＣＰＵ利用値が設定値Ｓ１となる非処理時間Ｐ２を演算する。
【００５８】
なお、設定値Ｓ１としては、ＣＰＵ利用時間Ｐ１自体やＣＰＵ利用率Ｒの上限値などを用いることができる。
【００５９】
クロック周波数制御部１１５は、設定値Ｓ１と、ＣＰＵ１２０のクロック周波数とに基づいて、ＣＰＵ１２０によるプログラム２００〜２２０の処理の際に用いられるクロック周波数を制御する。
【００６０】
具体的には、クロック周波数制御部１１５は、設定値Ｓ１に基づいて、設定値Ｓ１を満足するように対象プログラム（制限プロセス）を処理できるクロック周波数を演算する。すなわち、クロック周波数制御部１１５は、ＣＰＵ１２０の標準クロック周波数（例えば、１ＧＨｚ）及び制限プロセスの規模に対して、設定値Ｓ１に余裕がある場合、当該制限プロセスを処理する際におけるＣＰＵ１２０の動作クロック周波数を低下（例えば、８００ＭＨｚ）させる。
【００６１】
（プログラム処理装置の動作）
次に、本実施形態に係るプログラム処理装置１００の動作について説明する。図４に示すように、ステップＳ１０１において、プログラム処理装置１００は、プログラム、例えば、プログラム２００（制限プロセス）を起動して実行を開始した際に、当該制限プロセスの開始時刻ｔＳを取得する。
【００６２】
ステップＳ１０２において、プログラム処理装置１００は、実行を開始したプログラム２００の制限プロセスを時間枠Ｗ内において、断続的に処理する（図３参照）。
【００６３】
ステップＳ１０３において、プログラム処理装置１００は、プログラム２００の制限プロセスの処理が終了したか否かを判定する。
【００６４】
当該制限プロセスの処理が終了していない場合（ステップＳ１０３のＮＯ）、ステップＳ２００において、プログラム処理装置１００は、実行処理判定サブルーチンを実行する。なお、実行処理判定サブルーチンの具体的な内容については後述する。
【００６５】
当該制限プロセスの処理が終了した場合（ステップＳ１０３のＹＥＳ）、プログラム処理装置１００は、異なる制限プロセスについて、ステップＳ１０１からの処理を開始する。
【００６６】
図５は、上述したステップＳ２００における実行処理判定サブルーチンの具体的な処理フローを示している。図５に示すように、ステップＳ２０１において、プログラム処理装置１００は、現在時刻ｔ、及び開始時刻ｔＳから現在時刻ｔまでの当該制限プロセスのＣＰＵ利用時間Ｐ１を取得する。
【００６７】
ステップＳ２０２において、プログラム処理装置１００は、ＣＰＵ利用時間Ｐ１に基づいて、当該制限プロセスのＣＰＵ利用値が設定値Ｓ１を超えているか否かを判定する。
【００６８】
例えば、プログラム処理装置１００は、開始時刻ｔＳ、現在時刻ｔ及びＣＰＵ利用時間Ｐ１に基づいて演算することができるＣＰＵ利用率Ｒが設定値Ｓ１を超えているか否かを判定する。なお、プログラム処理装置１００は、上述したように、ＣＰＵ利用時間Ｐ１自体をＣＰＵ利用値として用いることもできる。
【００６９】
ＣＰＵ利用値が設定上限値を超えている場合（ステップＳ２０２のＹＥＳ）、ステップＳ２０３において、プログラム処理装置１００は、当該制限プロセスを処理しない非処理時間Ｐ２を決定する。
【００７０】
例えば、ＣＰＵ利用率Ｒが設定値Ｓ１を超えている場合、プログラム処理装置１００は、ＣＰＵ利用率Ｒが設定値Ｓ１となるために必要な当該制限プロセスの非処理時間を演算し、当該非処理時間を非処理時間Ｐ２と決定する。
【００７１】
一方、ＣＰＵ利用率Ｒが設定値Ｓ１を超えていない場合（ステップＳ２０２のＮＯ）、プログラム処理装置１００は、実行処理判定サブルーチンを終了する。
【００７２】
ステップＳ２０４において、プログラム処理装置１００は、非処理時間Ｐ２が経過するまで、当該制限プロセスの処理を中止する。非処理時間Ｐ２が経過すると、プログラム処理装置１００は、実行処理判定サブルーチンを終了し、図４に示したステップＳ１０１からの処理を再び開始する。
【００７３】
（作用・効果）
以上説明した本実施形態に係るプログラム処理装置１００によれば、ＣＰＵ利用値（例えば、ＣＰＵ利用率Ｒ）が設定値Ｓ１（設定上限値）となるタイミングでＣＰＵ１２０によるプログラム（制限プロセス）の処理が再開される。このため、従来のＣＰＵ利用時間を制限する方法が有する問題、つまり、プログラムが必要以上の時間に渡って停止させられるといった問題を解消することができ、ＣＰＵ利用値が設定値Ｓ１により近づくように制御することができる。
【００７４】
例えば、同時に１０個のプログラムが実行されており、各プログラムは、３０ｍｓｅｃ単位で処理されているとする。この場合、ＣＰＵは、３００ｍｓｅｃに渡って停止状態となり得る。
【００７５】
ここで、所定の時間（例えば、１秒間）の直後におけるＣＰＵ利用率Ｒが８５％であり、設定上限値が８０％に設定されていた場合、従来のＣＰＵ利用時間を制限する方法では、当該プログラムのＣＰＵによる処理が再開されるタイミング、具体的には、一時停止時間に渡って停止させる直前では、ＣＰＵ利用率Ｒが約６５．４％（＝８５０／（１０００＋３００）となってしまう。つまり、設定上限値が８０％に設定されていた場合、実際には、さらに一時停止時間に渡って当該プログラムを停止させる必要がない。
【００７６】
プログラム処理装置１００によれば、ＣＰＵ利用値が設定値Ｓ１となる非処理時間Ｐ２が演算されるため、非処理時間Ｐ２を適宜調整することによって、ＣＰＵ利用値が設定値Ｓ１により近づくように制御することができる。
【００７７】
つまり、非処理時間Ｐ２ではプログラム（制限プロセス）がＣＰＵ１２０によって処理されないため、非処理時間Ｐ２によって設定値Ｓ１を超えた時間が打ち消される。すなわち、プログラム処理装置１００によれば、制限プロセスのＣＰＵ１２０の利用を設定値Ｓ１以下に制限しつつ、当該制限プロセスを処理することができる。
【００７８】
また、不正なプログラム（制限プロセス）の疑いがある場合において、プログラム処理装置１００を安全に動作させるために、当該制限プロセスに対してどの程度の非処理時間Ｐ２を設定すればよいかをユーザが予め特定しておくことは非常に困難であるが、プログラム処理装置１００によれば、このような問題を回避することができる。
【００７９】
プログラム処理装置１００によれば、設定値Ｓ１と、ＣＰＵ１２０の標準クロック周波数とに基づいて、ＣＰＵ１２０によるプログラム２００〜２２０の処理の際に用いられる動作クロック周波数が制御される。
【００８０】
このため、動作クロック周波数は、プログラム２００〜２２０（制限プロセス）の設定値Ｓ１に応じて変化する。つまり、設定値Ｓ１を抑えておけば、制限プロセスによってＣＰＵ１２０の全能力を利用することができなくなり、不正なプログラム（制限プロセス）をＣＰＵ１２０によって処理しても、電力を過剰に消費するなど、特に、携帯通信端末などにおいては深刻となる問題を回避することができる。
【００８１】
プログラム処理装置１００によれば、所定の関係（例えば、同様な処理を実行）を有する複数のプログラムを対象として処理（例えば、ＣＰＵ利用値や動作クロック周波数の制御）を実行することができる。このため、不正なプログラムの疑いがあるプログラム（制限プロセス）を効率的に制御することができる。また、プログラム処理装置１００に対する負荷を低減することができる。
【００８２】
［第２実施形態］
次に、本発明の第２実施形態について説明する。上述した本発明の第１実施形態に係るプログラム処理装置１００では、ＣＰＵ利用時間Ｐ１の基準となる開始時刻ｔＳは、それぞれのプログラム（制限プロセス）ごとに更新されるため、それぞれの制限プロセスの開始時刻ｔＳは一致しないことが殆どである。
【００８３】
したがって、あるタイミングにおいて、特定の制限プロセス（例えば、プログラム２００の制限プロセス）が非処理時間Ｐ２内にあっても、他の制限プロセス（例えば、プログラム２１０の制限プロセス）が、当該制限プロセスの非処理時間Ｐ２内にあるとは限らない。
【００８４】
本実施形態に係るプログラム処理装置１００Ａは、すべての制限プロセスを対象として、ＣＰＵ利用時間Ｐ１の開始時刻ｔＳを一致させ、複数の制限プロセスを一括して制御する。
【００８５】
なお、以下、上述した本発明の第１実施形態に係るプログラム処理装置１００と異なる部分について主に説明し、プログラム処理装置１００と同様の部分についてはその説明を適宜省略する。
【００８６】
（プログラム処理装置の機能ブロック構成）
図５は、プログラム処理装置１００Ａの機能ブロック構成図である。図５に示すように、プログラム処理装置１００Ａでは、上述したプログラム処理装置１００と比較すると、設定値更新部１１６が追加されている。
【００８７】
本実施形態に係る開始時刻更新部１１１は、図７に示すように、時間枠Ｗが開始する時刻を開始時刻ｔＳとするとともに、時間枠Ｗが終了し、次の時間枠Ｗが開始する時刻を開始時刻ｔＳとして順次更新する。
【００８８】
本実施形態に係るＣＰＵ利用値処理部１１２は、時間枠Ｗの時間内において、制限プロセスがＣＰＵ１２０によって処理された時間の合計時間であるＣＰＵ利用時間Ｐ１を用いる。
【００８９】
本実施形態に係る処理再開部１１３は、ＣＰＵ利用値が設定値Ｓ１（設定上限値）を超えている場合、時間枠Ｗが経過したときに、ＣＰＵ１２０によるプログラム（制限プロセス）の処理を再開する。
【００９０】
具体的には、処理再開部１１３は、図７に示すように、時間枠Ｗの時間内である現在時刻ｔにおいて、ＣＰＵ利用値が設定値Ｓ１を超えている判定した場合、当該時間枠Ｗが経過したときに、ＣＰＵ１２０によるプログラム（制限プロセス）の処理を再開する。
【００９１】
設定値更新部１１６は、ＣＰＵ利用値が設定値Ｓ１を超えている場合、当該ＣＰＵ利用値に基づいて、設定値Ｓ１を低下させる。つまり、処理再開部１１３がプログラム（制限プロセス）の処理を再開する時点では、ＣＰＵ利用値が設定値Ｓ１を超えているため、当該制限プロセスのＣＰＵ利用値を設定値Ｓ１にするためには、ＣＰＵ利用値の“超過分”を調整する必要がある。
【００９２】
設定値更新部１１６は、超過したＣＰＵ利用値に基づいて、当該制限プロセスのＣＰＵ利用値を元々設定されていた設定値Ｓ１に戻すような新たな設定上限値に更新、具体的には、設定値Ｓ１の値を低下させる。
【００９３】
すなわち、ある時間枠Ｗの開示時点では、ＣＰＵ利用値が設定値Ｓ１を超えているが、当該プログラムが実行される全体時間では、ＣＰＵ利用値を設定値Ｓ１以下に制限することができる。
【００９４】
また、設定値更新部１１６は、ＣＰＵ利用値が設定値Ｓ１に到達していない場合、次の時間枠Ｗにおいて、当該制限プロセスのＣＰＵ利用値を元々設定されていた設定値Ｓ１に戻すように、設定値Ｓ１の値を上昇させてもよい。
【００９５】
（プログラム処理装置の動作）
次に、本実施形態に係るプログラム処理装置１００Ａの動作について説明する。プログラム処理装置１００Ａは、図４に示したようにプログラム処理装置１００と概ね同様に動作するが、ステップＳ２００の実行処理判定サブルーチンにおける動作が異なっている。
【００９６】
図８は、プログラム処理装置１００Ａの実行処理判定サブルーチンの処理フローを示している。図８に示すように、ステップＳ２１１において、プログラム処理装置１００Ａは、現在時刻ｔ、及び開始時刻ｔＳから現在時刻ｔまでの当該制限プロセスのＣＰＵ利用時間Ｐ１を取得する。
【００９７】
ステップＳ２１２において、プログラム処理装置１００Ａは、時間枠Ｗが経過したか否かを現在時刻ｔに基づいて判定する。
【００９８】
時間枠Ｗが経過していない場合（ステップＳ２１２のＮＯ）、ステップＳ２１３において、プログラム処理装置１００Ａは、ＣＰＵ利用時間Ｐ１に基づいて、当該制限プロセスのＣＰＵ利用値が設定値Ｓ１を超えているか否かを判定する。なお、ＣＰＵ利用値としては、上述したように、ＣＰＵ利用時間Ｐ１自体やＣＰＵ利用率Ｒが用いられる。
【００９９】
当該制限プロセスのＣＰＵ利用値が設定値Ｓ１を超えている場合（ステップＳ２１３のＹＥＳ）、ステップＳ２１５において、プログラム処理装置１００Ａは、時間枠Ｗが経過するまで当該制限プロセスの処理を中止する。
【０１００】
一方、当該制限プロセスのＣＰＵ利用値が設定値Ｓ１を超えていない場合（ステップＳ２１３のＮＯ）、プログラム処理装置１００Ａは、実行処理判定サブルーチンを終了する。
【０１０１】
また、時間枠Ｗが経過している場合（ステップＳ２１２のＹＥＳ）、ステップＳ２１４において、プログラム処理装置１００Ａは、次の時間枠Ｗを開始し、当該時間枠Ｗにおける新たなＣＰＵ利用時間Ｐ１を取得する。
【０１０２】
ステップＳ２１６において、プログラム処理装置１００Ａは、新たな時間枠Ｗの開始の時刻を開始時刻ｔＳとして更新する。
【０１０３】
ステップＳ２１７において、プログラム処理装置１００Ａは、超過したＣＰＵ利用値に基づいて、当該制限プロセスのＣＰＵ利用値を元々設定されていた設定値Ｓ１に戻すような新たな設定上限値に更新、具体的には、設定値Ｓ１の値を低下させる。
【０１０４】
（作用・効果）
以上説明した本実施形態に係るプログラム処理装置１００Ａによれば、時間枠Ｗ内において、ＣＰＵ利用値が設定値Ｓ１を超えると、当該制限プロセスは、時間枠Ｗ内の残りの時間ではＣＰＵ１２０によって処理されない。
【０１０５】
このため、ＣＰＵ利用値がさらに上昇することが防止される。また、時間枠Ｗを単位として制御することによって、すべての制限プロセスを対象として、ＣＰＵ利用時間Ｐ１の開始時刻ｔＳを一致させ、複数の制限プロセスを一括して制御することができる。
【０１０６】
また、プログラム処理装置１００Ａによれば、ＣＰＵ利用値が設定値Ｓ１を超えた場合、当該制限プロセスのＣＰＵ利用値を元々設定されていた設定値Ｓ１に戻すような新たな設定上限値に更新、具体的には、設定値Ｓ１の値を低下させる。このため、当該制限プロセスを含むプログラムが実行される全体時間では、ＣＰＵ利用値を設定値Ｓ１以下に制限することができる。
【０１０７】
［第３実施形態］
次に、本発明の第３実施形態について説明する。上述した本発明の第１実施形態に係るプログラム処理装置１００では、実行中のすべてのプログラム（制限プロセス）のＣＰＵ利用値が設定値Ｓ１を超えている場合、ＣＰＵ１２０がアイドル状態となり、何れのプログラムも処理されない状態となる。
【０１０８】
本実施形態に係るプログラム処理装置１００Ｂは、上述した本発明の第１実施形態に係るプログラム処理装置１００において、ＣＰＵ１２０がアイドル状態となることを回避することができる。
【０１０９】
（プログラム処理装置の機能ブロック構成）
プログラム処理装置１００Ｂの機能ブロック構成は、上述したプログラム処理装置１００と同様である（図１参照）。また、以下、上述した本発明の第１実施形態に係るプログラム処理装置１００と異なる部分について主に説明し、プログラム処理装置１００と同様の部分についてはその説明を適宜省略する。
【０１１０】
本実施形態に係る処理再開部１１３は、プログラム、例えば、プログラム２００（制限プロセス）のＣＰＵ利用値が設定値Ｓ１を超えている場合において、ＣＰＵ１２０によって処理が可能であり、プログラム２００よりもＣＰＵ１２０による処理の優先度が高い高優先度プログラム（例えば、プログラム２１０）が存在しない（実行されていない）場合、ＣＰＵ１２０によるプログラム２００の処理を再開する。
【０１１１】
（プログラム処理装置の動作）
次に、本実施形態に係るプログラム処理装置１００Ｂの動作について説明する。プログラム処理装置１００Ｂは、図４に示したようにプログラム処理装置１００と概ね同様に動作するが、ステップＳ２００の実行処理判定サブルーチンにおける動作が異なっている。
【０１１２】
図９は、プログラム処理装置１００Ｂの実行処理判定サブルーチンの処理フローを示している。図９に示すように、ステップＳ２２１において、プログラム処理装置１００Ｂは、現在時刻ｔ、及び開始時刻ｔＳから現在時刻ｔまでの当該制限プロセスのＣＰＵ利用時間Ｐ１を取得する。
【０１１３】
ステップＳ２２２において、プログラム処理装置１００Ｂは、ＣＰＵ利用時間Ｐ１に基づいて、当該制限プロセスのＣＰＵ利用値が設定値Ｓ１を超えているか否かを判定する。なお、ＣＰＵ利用値としては、上述したように、ＣＰＵ利用時間Ｐ１自体やＣＰＵ利用率Ｒが用いられる。
【０１１４】
当該制限プロセスのＣＰＵ利用値が設定値Ｓ１を超えている場合（ステップＳ２２２のＹＥＳ）、ステップＳ２２３において、プログラム処理装置１００Ｂは、ＣＰＵ利用値が設定値Ｓ１となる非処理時間Ｐ２を決定する。
【０１１５】
一方、ＣＰＵ利用値が設定値Ｓ１を超えていない場合（ステップＳ２２２のＮＯ）、プログラム処理装置１００Ｂは、実行処理判定サブルーチンを終了する。
【０１１６】
ステップＳ２２４において、プログラム処理装置１００Ｂは、当該制限プロセスを含むプログラム（例えば、プログラム２００）よりもＣＰＵ１２０による処理の優先度が高い高優先度プログラム（例えば、プログラム２１０）が存在する（実行されているか）否かを判定する。
【０１１７】
高優先度プログラムが存在しない場合（ステップＳ２２４のＮＯ）、ステップＳ２２５において、プログラム処理装置１００Ｂは、当該制限プロセス、つまり、プログラム２００の制限プロセスをＣＰＵ１２０によって処理する。
【０１１８】
一方、高優先度プログラムが存在する場合（ステップＳ２２４のＹＥＳ）、プログラム処理装置１００Ｂは、ステップＳ２２６の処理を実行する。
【０１１９】
ステップＳ２２６において、プログラム処理装置１００Ｂは、ステップＳ２２３において決定した非処理時間Ｐ２が経過したか否かを判定する。
【０１２０】
非処理時間Ｐ２が経過した場合（ステップＳ２２６のＹＥＳ）、プログラム処理装置１００Ｂは、実行処理判定サブルーチンを終了する。
【０１２１】
（作用・効果）
以上説明した本実施形態に係るプログラム処理装置１００Ｂによれば、ＣＰＵ利用値が設定値Ｓ１を超えている場合でも、ＣＰＵ１２０で処理可能なプログラムの中で、最も高い優先度のプログラムは、ＣＰＵ１２０によりさらに処理される。
【０１２２】
このため、ＣＰＵ１２０がアイドル状態になる機会が減少し、より効率的にＣＰＵ１２０を利用することができる。
【０１２３】
［第４実施形態］
次に、本発明の第４実施形態について説明する。上述した本発明の第１実施形態に係るプログラム処理装置１００では、設定値Ｓ１を用いてＣＰＵ利用値、結果的には制限プロセスのＣＰＵ利用時間Ｐ１を制御する形態とした。
【０１２４】
この場合、不正なプログラムに対しては、ＣＰＵ１２０の利用を制限することができるが、所定の時間内に必ず一定量のプロセスが処理されることが必要なプログラムも存在する。
【０１２５】
例えば、携帯電話端末やパーソナルコンピュータなどに実装される音声通信（電話）のプログラムの場合、一定の時間間隔ごとに音声パケットなどを処理しないと、処理遅延によって音声信号が滑らかに出力されない。
【０１２６】
本実施形態に係るプログラム処理装置１００Ｃは、それぞれのプログラムに対して設定されたＣＰＵ利用値の設定値Ｓ１を確実に満足するように動作する。
【０１２７】
なお、プログラム処理装置１００Ｃの機能ブロック構成は、上述したプログラム処理装置１００と同様である（図１参照）。また、以下、上述した本発明の第１実施形態に係るプログラム処理装置１００と異なる部分について主に説明し、プログラム処理装置１００と同様の部分についてはその説明を適宜省略する。
【０１２８】
本実施形態に係る非処理時間演算部１１４は、特定のプログラム（例えば、プログラム２００）の制限プロセス以外の他プログラム（例えば、プログラム２１０，２２０）の制限プロセスを処理しない他プログラム非処理時間を演算する。本実施形態において、非処理時間演算部１１４は、他プログラム非処理時間演算部を構成する。
【０１２９】
具体的には、非処理時間演算部１１４は、特定のプログラム（例えば、プログラム２００）の制限プロセスのＣＰＵ利用値が設定値Ｓ１（設定上限値）に達していない場合、当該ＣＰＵ利用値が設定値Ｓ１となる他プログラム非処理時間を演算することができる。
【０１３０】
さらに、本実施形態に係る非処理時間演算部１１４は、特定のプログラム（例えば、プログラム２００）の制限プロセスよりもＣＰＵ１２０による処理の優先度が低い低優先度プログラム（例えば、プログラム２２０）を処理しない低優先度プログラム非処理時間を演算することができる。本実施形態において、非処理時間演算部１１４は、低優先度プログラム非処理時間演算部を構成する。
【０１３１】
具体的には、非処理時間演算部１１４は、特定のプログラム（例えば、プログラム２００）の制限プロセスのＣＰＵ利用値が設定値Ｓ１（設定上限値）に達していない場合、当該ＣＰＵ利用値が設定値Ｓ１に近づく低優先度プログラム非処理時間を演算することができる。
【０１３２】
本実施形態に係る処理再開部１１３は、非処理時間演算部１１４によって演算された他プログラム非処理時間が経過したときに、ＣＰＵ１２０による他プログラム（例えば、プログラム２１０）の制限プロセスの処理を再開する。
【０１３３】
また、処理再開部１１３は、低優先度プログラム非処理時間が経過したときに、ＣＰＵ１２０による低優先度プログラム（プログラム２２０）の制限プロセスの処理を再開することができる。
【０１３４】
（プログラム処理装置の動作）
次に、本実施形態に係るプログラム処理装置１００Ｃの動作について説明する。プログラム処理装置１００Ｃは、図４に示したようにプログラム処理装置１００と概ね同様に動作するが、ステップＳ２００の実行処理判定サブルーチンにおける動作が異なっている。
【０１３５】
図１０は、プログラム処理装置１００Ｃの実行処理判定サブルーチンの処理フローを示している。図１０に示すように、ステップＳ２３１において、プログラム処理装置１００Ｃは、現在時刻ｔ、及び開始時刻ｔＳから現在時刻ｔまでの当該制限プロセス（例えば、プログラム２００の制限プロセス）のＣＰＵ利用時間Ｐ１を取得する。
【０１３６】
ステップＳ２３２において、プログラム処理装置１００Ｃは、ＣＰＵ利用時間Ｐ１に基づいて、当該制限プロセスのＣＰＵ利用値が設定値Ｓ１を超えているか否かを判定する。なお、ＣＰＵ利用値としては、上述したように、ＣＰＵ利用時間Ｐ１自体やＣＰＵ利用率Ｒが用いられる。
【０１３７】
当該制限プロセスのＣＰＵ利用値が設定値Ｓ１を超えていない場合（ステップＳ２３２のＮＯ）、ステップＳ２３３において、プログラム処理装置１００Ｃは、当該制限プロセス以外の他プログラム（例えば、プログラム２１０，２２０）の制限プロセスを処理しない他プログラム非処理時間を決定する。
【０１３８】
例えば、プログラム処理装置１００Ｃは、当該制限プロセスのＣＰＵ利用値が設定値Ｓ１となるために必要な処理時間を、他プログラムの制限プロセスの非処理時間として演算し、当該非処理時間を他プログラム非処理時間と決定する。
【０１３９】
一方、当該制限プロセスのＣＰＵ利用値が設定値Ｓ１を超えている場合（ステップＳ２３２のＹＥＳ）、プログラム処理装置１００Ｃは、実行処理判定サブルーチンを終了する。すなわち、当該制限プロセスのＣＰＵ利用値が設定値Ｓ１を超えている場合、既に設定値Ｓ１が満足されているため、当該制限プロセスをさらに処理する必要はない。
【０１４０】
ステップＳ２３４において、プログラム処理装置１００Ｃは、他プログラム非処理時間が経過するまで、他プログラムの制限プロセスの処理を中止する。他プログラム非処理時間が経過すると、プログラム処理装置１００Ｃは、実行処理判定サブルーチンを終了する。
【０１４１】
（作用・効果）
以上説明した本実施形態に係るプログラム処理装置１００Ｃによれば、特定のプログラム（例えば、プログラム２００）の制限プロセスのＣＰＵ利用値が設定値Ｓ１に達していない場合、当該ＣＰＵ利用値が設定値Ｓ１に達するように、他プログラム（例えば、プログラム２１０，２２０）の制限プロセスを処理しない他プログラム非処理時間が決定される。
【０１４２】
つまり、プログラム処理装置１００Ｃによれば、特定のプログラム（例えば、プログラム２００）の制限プロセスは、確実にＣＰＵ１２０によって処理されるため、所定の時間内に必ず一定量のプロセスが処理されることが必要なプログラム（例えば、音声通信用のプログラム）も適切に実行することができる。
【０１４３】
また、プログラム処理装置１００Ｃによれば、特定のプログラム（例えば、プログラム２００）の制限プロセスのＣＰＵ利用値が設定値Ｓ１に達していない場合、当該ＣＰＵ利用値が設定値Ｓ１に達するように、当該特定のプログラムよりもＣＰＵ１２０による処理の優先度が低い他プログラム（例えば、プログラム２２０）の制限プロセスを処理しない低優先度プログラム非処理時間が決定される。
【０１４４】
つまり、プログラム処理装置１００Ｃによれば、特定のプログラム（例えば、プログラム２００）の制限プロセスより優先度が低い他プログラム（例えば、プログラム２２０）の制限プロセスの処理が中止されるため、特定のプログラム（例えば、プログラム２００）の制限プロセスが処理される頻度を向上させることができる。
【０１４５】
（その他の実施形態）
上述したように、本発明の一実施形態を通じて本発明の内容を開示したが、この開示の一部をなす論述及び図面は、本発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態が明らかとなろう。
【０１４６】
例えば、上述したプログラム処理装置１００，１００Ａ〜１００Ｃを構成するＯＳ１１０は、携帯通信端末やパーソナルコンピュータにおいて実行可能なプログラムとしても提供することができる。
【０１４７】
このように、本発明は、ここでは記載していない様々な実施の形態などを含むことは勿論である。したがって、本発明の技術的範囲は、上述の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【０１４８】
【図１】本発明の第１、第３及び第４実施形態に係るプログラム処理装置の機能ブロック構成図である。
【図２】本発明の実施形態に係るプログラム処理装置（開始時刻更新部）においてプログラムの管理に用いられるデータの構造の一例を示す図である。
【図３】本発明の第１実施形態に係るプログラム処理装置におけるプログラムの処理状態を説明するための説明図である。
【図４】本発明の実施形態に係るプログラム処理装置の動作フロー図である。
【図５】本発明の第１実施形態に係るプログラム処理装置において実行される実行処理判定フローを示す図である。
【図６】本発明の第２実施形態に係るプログラム処理装置の機能ブロック構成図である。
【図７】本発明の第２実施形態に係るプログラム処理装置におけるプログラムの処理状態を説明するための説明図である。
【図８】本発明の第２実施形態に係るプログラム処理装置において実行される実行処理判定フローを示す図である。
【図９】本発明の第３実施形態に係るプログラム処理装置において実行される実行処理判定フローを示す図である。
【図１０】本発明の第４実施形態に係るプログラム処理装置において実行される実行処理判定フローを示す図である。
【符号の説明】
【０１４９】
１００，１００Ａ〜１００Ｃ…プログラム処理装置、１１０…オペレーティングシステム（ＯＳ）、１１１…開始時刻更新部、１１２…ＣＰＵ利用値処理部、１１３…処理再開部、１１４…非処理時間演算部、１１５…クロック周波数制御部、１１６…設定値更新部、１２０…ＣＰＵ、１３０…記憶部、２００…プログラム
【図１】
2007114852.tif 000003
【図２】
2007114852.tif 000004
【図３】
2007114852.tif 000005
【図４】
2007114852.tif 000006
【図５】
2007114852.tif 000007
【図６】
2007114852.tif 000008
【図７】
2007114852.tif 000009
【図８】
2007114852.tif 000010
【図９】
2007114852.tif 000011
【図１０】
2007114852.tif 000012