(57)【要約】【課題】ＣＰＵ使用率等が設定されていないアプリケーションの性能劣化を防止することができるコンピュータ装置を提供すること。【解決手段】本開示にかかるコンピュータ装置１０は、起動中のアプリケーションが使用しているリソースに従って、起動中のアプリケーションの優先度を決定する優先度決定部１１と、予め定められた優先度よりも高い優先度の高優先アプリケーションが、高優先アプリケーションに定められた性能要件を満たしていない場合に、高優先アプリケーションよりも低い優先度の低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くする割当制御部１２と、を備える。【選択図】図１
2018169727.tif 000002
【特許請求の範囲】
【請求項１】
起動中のアプリケーションが使用しているリソースに従って、前記起動中のアプリケーションの優先度を決定する優先度決定部と、
予め定められた優先度よりも高い優先度の高優先アプリケーションが、前記高優先アプリケーションに定められた性能要件を満たしていない場合に、前記高優先アプリケーションよりも低い優先度の低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くする割当制御部と、を備えるコンピュータ装置。
【請求項２】
前記割当制御部は、
前記低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くした後に、前記高優先アプリケーションが、前記性能要件を満たしているか否かを監視する、請求項１に記載のコンピュータ装置。
【請求項３】
前記割当制御部は、
前記低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くした後に、前記高優先アプリケーションが、前記性能要件を満たしていないと判定した場合、前記低優先アプリケーションに対するプロセッサの割り当て時間をさらに短くする、もしくは、前記低優先アプリケーションより優先度が高く、前記高優先アプリケーションより優先度が低い中優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くする、請求項２に記載のコンピュータ装置。
【請求項４】
前記優先度決定部は、
起動中のアプリケーションであって、優先度が定められていないアプリケーションについて、使用しているリソースに従って優先度を決定する、請求項１乃至３のいずれか１項に記載のコンピュータ装置。
【請求項５】
前記性能要件は、
前記高優先アプリケーションに関する処理が実行されてから前記高優先アプリケーションに関する処理が完了するまでの応答時間、もしくは、前記高優先アプリケーションに関するデータのスループットに関する要件である、請求項１乃至４のいずれか１項に記載のコンピュータ装置。
【請求項６】
前記割当制御部は、
プロセッサの割り当て時間を、起動中の全てのアプリケーションに対して実質的に均等にしている状態において、前記高優先アプリケーションが前記性能要件を満たしていない場合に、優先度が最も低いアプリケーションに対するプロセッサの割り当て時間を現在よりも低くする、請求項１乃至５のいずれか１項に記載のコンピュータ装置。
【請求項７】
前記割当制御部は、
前記低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くする場合、前記低優先アプリケーションに対する前記プロセッサの目標使用率を定め、前記目標使用率に近づくように、前記プロセッサの割り当て時間を短くする、請求項１乃至６のいずれか１項に記載のコンピュータ装置。
【請求項８】
前記起動中のアプリケーションが使用しているリソースに従って、前記起動中のアプリケーションが、優先度の異なる複数のアプリケーショングループのうちどのアプリケーショングループに分類されるかを定める条件テーブルを有する条件テーブル格納部をさらに備え、
前記優先度決定部は、
前記条件テーブルを用いて、前記起動中のアプリケーションの優先度を決定する、請求項１乃至７のいずれか１項に記載のコンピュータ装置。
【請求項９】
起動中のアプリケーションが使用しているリソースに従って、前記起動中のアプリケーションの優先度を決定し、
予め定められた優先度よりも高い優先度の高優先アプリケーションが、前記高優先アプリケーションに定められた性能要件を満たしていない場合に、前記高優先アプリケーションよりも低い優先度の低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くする、アプリケーション制御方法。
【請求項１０】
起動中のアプリケーションが使用しているリソースに従って、前記起動中のアプリケーションの優先度を決定し、
予め定められた優先度よりも高い優先度の高優先アプリケーションが、前記高優先アプリケーションに定められた性能要件を満たしていない場合に、前記高優先アプリケーションよりも低い優先度の低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くすることをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はコンピュータ装置、アプリケーション制御方法、及びプログラムに関し、例えば優先度の異なるアプリケーションを有するコンピュータ装置、アプリケーション制御方法、及びプログラムに関する。
【背景技術】
【０００２】
スマートフォンもしくはサーバ装置等のコンピュータ装置は、複数の機能を有している。コンピュータ装置における複数の機能は、例えば、複数のアプリケーションもしくは複数のソフトウェア等によって実現される。コンピュータ装置が有するアプリケーションとして、例えば、音声通話サービスに関連するリアルタイムアプリケーション、メッセージサービス等の非リアルタイムアプリケーション、及びバッチ処理を実行するアプリケーション等がある。それぞれのアプリケーションは、ＣＰＵ（Central Processing Unit）等のプロセッサを使用する時間が割り当てられる。それぞれのアプリケーションにプロセッサの使用時間を割り当てることをリソース制御もしくはスケジューリング等と称し、それぞれのアプリケーションを公平かつ効率的に動作させるようにリソース制御が実行されることが望まれている。
【０００３】
特許文献１には、リソース制御の具体例が開示されている。特許文献１におけるリソース制御は、スレッドグループ毎にＣＰＵ使用率もしくはＣＰＵ使用時間を設定する。それぞれのスレッドは、スレッドグループに設定されたＣＰＵ使用率に従って処理が実行される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１６４６６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１におけるリソース制御は、予めスレッドグループに対してＣＰＵ使用率を設定する必要がある。しかし、コンピュータ装置において実行されるスレッドもしくはアプリケーションの数は多く、全てのアプリケーションをグループ化し、さらに、全てのアプリケーションに対して事前にＣＰＵ使用率を設定することは困難である。全てのアプリケーションに対して、ＣＰＵ使用率が設定されていない場合、ＣＰＵ使用率が設定されたアプリケーションと、ＣＰＵ使用率が設定されていないアプリケーションが混在することになる。この場合、ＣＰＵ使用率が設定されていないアプリケーションにおけるプロセッサの使用時間が十分でなく、このようなアプリケーションの性能品質が劣化するという問題がある。
【０００６】
本開示の目的は、ＣＰＵ使用率等が設定されていないアプリケーションの性能劣化を防止することができるコンピュータ装置、アプリケーション制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本開示の第１の態様にかかるコンピュータ装置は、起動中のアプリケーションが使用しているリソースに従って、前記起動中のアプリケーションの優先度を決定する優先度決定部と、予め定められた優先度よりも高い優先度の高優先アプリケーションが、前記高優先アプリケーションに定められた性能要件を満たしていない場合に、前記高優先アプリケーションよりも低い優先度の低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くする割当制御部と、を備える。
【０００８】
本開示の第２の態様にかかるアプリケーション制御方法は、起動中のアプリケーションが使用しているリソースに従って、前記起動中のアプリケーションの優先度を決定し、予め定められた優先度よりも高い優先度の高優先アプリケーションが、前記高優先アプリケーションに定められた性能要件を満たしていない場合に、前記高優先アプリケーションよりも低い優先度の低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くする。
【０００９】
本開示の第３の態様にかかるプログラムは、起動中のアプリケーションが使用しているリソースに従って、前記起動中のアプリケーションの優先度を決定し、予め定められた優先度よりも高い優先度の高優先アプリケーションが、前記高優先アプリケーションに定められた性能要件を満たしていない場合に、前記高優先アプリケーションよりも低い優先度の低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くすることをコンピュータに実行させる。
【発明の効果】
【００１０】
本開示により、ＣＰＵ使用率等が設定されていないアプリケーションの性能劣化を防止することができるコンピュータ装置、アプリケーション制御方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかるコンピュータ装置の構成図である。
【図２】実施の形態２にかかるコンピュータ装置の構成図である。
【図３】実施の形態２にかかるアプリケーション分類条件を示す図である。
【図４】実施の形態２にかかる優先度決定条件を示す図である。
【図５】実施の形態２にかかるＣＰＵ使用率の変化を示す図である。
【図６】実施の形態２にかかるアプリケーションの優先度を決定する処理の流れを示す図である。
【図７】実施の形態２にかかるリソース制御処理の流れを示す図である。
【発明を実施するための形態】
【００１２】
（実施の形態１）
以下、図面を参照して本開示の実施の形態について説明する。図１を用いて実施の形態１にかかるコンピュータ装置１０の構成例について説明する。コンピュータ装置１０は、プロセッサがメモリに格納されたプログラムを実行することによって動作する。コンピュータ装置１０は、例えば、スマートフォン端末、携帯電話端末、タブレット型端末等であってもよい。また、コンピュータ装置１０は、サーバ装置等であってもよい。プロセッサは、例えば、マイクロプロセッサ、ＭＰＵ（Micro Processing Unit）、もしくはＣＰＵ（Central Processing Unit）であってもよい。メモリは、揮発性メモリもしくは不揮発性メモリであってもよく、揮発性メモリ及び不揮発性メモリの組み合わせによって構成されてもよい。プロセッサは、以降の図面を用いて説明されるアルゴリズムをコンピュータに行わせるための命令群を含む１又は複数のプログラムを実行する。
【００１３】
コンピュータ装置１０は、優先度決定部１１及び割当制御部１２を有している。優先度決定部１１及び割当制御部１２は、プロセッサがメモリに格納されたプログラムを実行することによって処理が実行されるソフトウェアもしくはモジュール等であってもよい。また、優先度決定部１１及び割当制御部１２は、チップもしくは回路等のハードウェアであってもよい。
【００１４】
優先度決定部１１は、起動中のアプリケーションが使用しているリソースに従って、起動中のアプリケーションの優先度を決定する。起動中のアプリケーションは、例えば、ＣＰＵ等のプロセッサを使用した処理が実行中であるアプリケーションであってもよい。リソースは、例えば、ソケットもしくは疑似端末等であってもよい。
【００１５】
ソケットは、例えば、ネットワークを介して接続されている他のコンピュータ装置との間においてデータを送信もしくは受信する場合に使用されるネットワークソケットであってもよい。ネットワークソケットは、具体的には、inetソケットであってもよい。
【００１６】
疑似端末は、例えば、コンピュータ装置１０のメモリ上に設定された疑似的な端末装置である。疑似端末は、例えば、テキストデータを入力するためのインタフェース等として用いられる。優先度は、例えば、高優先、中優先、低優先のように、複数の優先レベルが定められてもよい。高優先が設定されたアプリケーションを高優先アプリケーションとし、中優先が設定されたアプリケーションを中優先アプリケーションとし、低優先が設定されたアプリケーションを低優先アプリケーションとしてもよい。
【００１７】
割当制御部１２は、高優先アプリケーションが、高優先アプリケーションに定められた性能要件を満たしていない場合に、高優先アプリケーションより優先度が低いアプリケーションである低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くする。性能要件は、例えば、ＣＰＵに対してアプリケーションの処理の実行が要求されてから、アプリケーションの処理が完了するまでの応答性能に関する要件であってもよい。具体的には、性能要件として、応答時間が、Ｘ秒以内（Ｘは０以上の値）等と定められてもよい。もしくは、性能要件は、アプリケーションに関するデータのスループット、遅延時間等に関する要件であってもよい。具体的には、性能要件として、スループットがＸｂｐｓ（bit per second）以上、遅延時間がＸ秒以内等と定められてもよい。
【００１８】
プロセッサの割り当て時間は、プロセッサがアプリケーションに関する処理を実行する時間である。プロセッサの割り当て時間は、プロセッサの実行時間と言い換えられてもよい。
【００１９】
以上説明したように、実施の形態１にかかるコンピュータ装置１０は、起動中のアプリケーションが使用しているリソースに従って、優先度を決定することができる。これより、それぞれのアプリケーションについて事前に優先度が定められていない場合であっても、起動後のアプリケーションの動作によって自動的に優先度が定められる。
【００２０】
さらに、高優先アプリケーションが、高優先アプリケーションに定められた性能要件を満たしていない場合、低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くすることができる。低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くすることによって、高優先アプリケーションに対して現在よりも長い間プロセッサを割り当てることができる。その結果、高優先アプリケーションが性能要件を満たす可能性を向上させることができる。
【００２１】
（実施の形態２）
続いて、図２を用いて実施の形態２にかかるコンピュータ装置１０の構成例について説明する。コンピュータ装置１０は、優先度決定部１１及び割当制御部１２を有している。優先度決定部１１は、条件テーブル格納部２１を有している。さらに、割当制御部１２は、アプリケーション監視部２２及びスケジューラ２３を有している。
【００２２】
条件テーブル格納部２１は、図３に示すアプリケーション分類条件及び図４に示す優先度決定条件を有している。アプリケーション分類条件は、起動中のアプリケーションが使用しているリソースに従ってアプリケーションを分類するための条件を定めている。図３は、リソースとして、inetソケット及び疑似端末を用いてアプリケーションを分類することを示している。起動中のアプリケーションが、inetソケットを使用し、さらに、疑似端末を使用している場合、そのアプリケーションは、オンラインアプリケーションに分類される。
【００２３】
起動中のアプリケーションが、inetソケットを使用し、さらに、疑似端末を使用していない場合、そのアプリケーションは、デーモンに分類される。起動中のアプリケーションが、inetソケットを使用しておらず、さらに、疑似端末を使用している場合、そのアプリケーションは、コマンドラインに分類される。起動中のアプリケーションが、inetソケットを使用しておらず、さらに、疑似端末を使用していない場合、バッチ処理に分類される。
【００２４】
図４は、図３において分類されたアプリケーションの優先順位が定められている。図４においては、オンラインアプリケーション、コマンドライン、デーモン、バッチ処理の順に優先度が高いことを示している。
【００２５】
図２に戻り、アプリケーション監視部２２は、アプリケーションの監視を行う。具体的には、アプリケーション監視部２２は、アプリケーションが起動中か否か、起動されているアプリケーションがどのリソースを使用しているか、起動されているアプリケーションに関する応答性能が性能要件を満たしているか否か等を監視している。
【００２６】
アプリケーション監視部２２は、監視結果に関する情報をスケジューラ２３へ出力する。スケジューラ２３は、アプリケーション監視部２２から出力された監視結果に関する情報及び条件テーブル格納部２１が有しているアプリケーション分類条件及び優先度決定条件を用いて、それぞれのアプリケーションの優先度を決定する。さらに、スケジューラ２３は、決定した優先度に基づいてそれぞれのアプリケーションに対するＣＰＵの割り当て時間を決定する。
【００２７】
スケジューラ２３における、アプリケーションに対するＣＰＵの割り当て時間の決定処理の例について説明する。スケジューラ２３は、起動されているアプリケーションに関する応答性能が性能要件を満たしているとの監視結果を受け取った場合、それぞれのアプリケーションが現在のＣＰＵ使用率を満たすように現在のＣＰＵの割り当て時間を継続してもよい。スケジューラ２３は、起動されているアプリケーションに関する応答性能が性能要件を満たしていないとの監視結果を受け取った場合、低優先アプリケーションに対するＣＰＵの割り当て時間もしくはＣＰＵを使用する回数を減少させてもよい。
【００２８】
ここで、低優先アプリケーション及び中優先アプリケーションにＣＰＵ使用率の下限値が予め定められていてもよい。ＣＰＵ使用率の下限値は、ＣＰＵ使用率の目標値と称されてもよい。スケジューラ２３は、起動されているアプリケーションに関する応答性能が性能要件を満たしていないとの監視結果を受け取った場合、さらに、低優先アプリケーションに関するＣＰＵ使用率が下限値に達しているか否かを判定してもよい。スケジューラ２３は、低優先アプリケーションのＣＰＵ使用率が下限値に達しており、低優先アプリケーションのＣＰＵの割り当て時間をこれ以上減少させることができない場合、中優先アプリケーションへのＣＰＵの割り当て時間もしくは使用回数を減少させてもよい。
【００２９】
続いて、図５を用いて、スケジューラ２３によるＣＰＵの割り当て時間を変更することによるＣＰＵ使用率の変化について説明する。図５においては、オンラインアプリをリアルタイムタスクに分類し、コマンドライン及びデーモンを、準リアルタイムタスクに分類して説明する。例えば、スケジューラ２３は、リアルタイムタスクに分類されたアプリケーションの応答性能が性能要件を満たしている場合、リアルタイムタスク、準リアルタイムタスク、及びバッチ処理のＣＰＵ使用率が実質的に均等になるようにそれぞれのアプリケーションへＣＰＵの割り当て時間を決定してもよい。
【００３０】
スケジューラ２３は、リアルタイムタスクに分類されたアプリケーションの応答性能が性能要件を満たしていない場合、例えば、バッチ処理のＣＰＵ使用率が３３％から７％へ減少するようにＣＰＵの割り当て時間を変更してもよい。図５は、バッチ処理のＣＰＵ使用率の減少に伴い、リアルタイムタスクのＣＰＵ使用率が増加していることを示している。言い換えると、スケジューラ２３は、低優先アプリケーションに対するＣＰＵの割り当て時間を減少させた場合、高優先アプリケーションに対するＣＰＵの割り当て時間を増加させる。
【００３１】
スケジューラ２３は、例えば、ＣＰＵの割り当て時間を１回変更することによって、バッチ処理のＣＰＵ使用率を３３％から７％へ減少させてもよく、段階的にバッチ処理のＣＰＵ使用率を３３％から７％へ減少させてもよい。言い換えると、スケジューラ２３は、低優先アプリケーションに対するＣＰＵの割り当て時間の変更を１回実施してもよく、複数回実施してもよい。変更後のＣＰＵ使用率は、目標使用率と称されてもよい。
【００３２】
例えば、スケジューラ２３は、はじめに、バッチ処理のＣＰＵ使用率を３３％から１５％へ減少させるようにＣＰＵの割り当て時間を変更してもよい。スケジューラ２３は、バッチ処理に対するＣＰＵの割り当て時間を変更した後に、アプリケーション監視部２２からリアルタイムタスクに含まれるアプリケーションの応答性能が性能要件を満たしているか否かに関する情報を受け取る。スケジューラ２３は、リアルタイムタスクに含まれるアプリケーションの応答性能が性能要件を満たしているとの監視結果を受け取った場合、バッチ処理のＣＰＵ使用率として１５％を維持するようにＣＰＵの割り当て時間を決定してもよい。スケジューラ２３は、ＣＰＵの割り当て時間を変更した後に、アプリケーション監視部２２からリアルタイムタスクに含まれるアプリケーションの応答性能が性能要件を満たしていないとの監視結果を受け取った場合、さらに、バッチ処理のＣＰＵ使用率を減少させるようにＣＰＵの割り当て時間を変更してもよい。
【００３３】
続いて、図６を用いてアプリケーションの優先度を決定する処理の流れについて説明する。図６の処理は、アプリケーションの優先度を決定するための事前学習処理と称されてもよい。
【００３４】
はじめに、アプリケーション監視部２２は、コンピュータ装置１０が有するそれぞれのアプリケーションが起動しているか否かを判定する（Ｓ１１）。また、アプリケーション監視部２２は、起動されているアプリケーションの処理が終了しているか否かについても判定してもよい。処理が終了しているアプリケーションは、ＣＰＵを用いた処理が不要なアプリケーションである。
【００３５】
次に、アプリケーション監視部２２は、アプリケーションが使用しているソフトウェアリソースを確認する（Ｓ１２）。ソフトウェアリソースは、例えば、ソケット及び疑似端末等であってもよい。
【００３６】
次に、スケジューラ２３は、それぞれのアプリケーションが使用しているリソースに関する情報を図３に示すアプリケーション分類条件に適用し、アプリケーションを分類する（Ｓ１３）。次に、スケジューラ２３は、ステップＳ１３において分類したアプリケーションを、図４に示す優先度決定条件に適用し、アプリケーションの優先度を決定する（Ｓ１４）。起動中の全てのアプリケーションについて優先度を決定するまで、ステップＳ１２〜Ｓ１４の処理が繰り返されてもよい。
【００３７】
続いて、図７を用いてリソース制御処理の流れについて説明する。図７の処理は、リアルタイム処理と称されてもよい。
【００３８】
はじめに、アプリケーション監視部２２は、オンラインアプリケーション（APL：Application）に分類された複数のアプリケーションに含まれる少なくとも１つのアプリケーションの応答性能の低下を検出する（Ｓ２１）。例えば、アプリケーション監視部２２は、応答時間が、予め定められた閾値を上回った場合に、応答性能が低下したと判定してもよい。
【００３９】
次に、スケジューラ２３は、低優先アプリケーションのＣＰＵ使用率を減少させるように、低優先アプリケーションのＣＰＵの割り当て時間を変更する（Ｓ２２）。具体的には、スケジューラ２３は、低優先アプリケーションに割り当てるＣＰＵの割り当て時間を減少させる。もしくは、スケジューラ２３は、低優先アプリケーションに割り当てるＣＰＵの使用機会を減少させる。
【００４０】
次に、アプリケーション監視部２２は、低優先アプリケーションのＣＰＵの割り当て時間が変更された後のオンラインアプリケーションの応答時間が、予め定められた閾値よりも短いか否かを監視する（Ｓ２３）。アプリケーション監視部２２は、起動中のアプリケーションであって、オンラインアプリケーションに分類された全てのアプリケーションの応答性能を監視してもよく、いくつかのアプリケーションを抽出して監視してもよい。
【００４１】
スケジューラ２３は、アプリケーション監視部２２からオンライアプリケーションの応答時間が、予め定められた閾値よりも短いとの監視結果を受け取った場合、処理を終了する。つまり、スケジューラ２３は、現在のＣＰＵ使用率を維持するように、それぞれのアプリケーションにおける現在のＣＰＵの割り当て時間を継続する。
【００４２】
スケジューラ２３は、アプリケーション監視部２２からオンライアプリケーションの応答時間が、予め定められた閾値よりも長いとの監視結果を受け取った場合、ステップＳ２２の処理を繰り返す。つまり、スケジューラ２３は、さらに、低優先アプリケーションのＣＰＵ使用率を下げるように、低優先アプリケーションのＣＰＵの割り当て時間を変更する。
【００４３】
また、スケジューラ２３は、ステップＳ２１において検出された高優先アプリケーションの数が予め定められた閾値を上回った場合に、ステップＳ２２の処理を実行してもよい。つまり、スケジューラ２３は、性能劣化が発生している高優先アプリケーションの数が増加している場合に、低優先アプリケーションのＣＰＵ使用率を下げるようにして、高優先アプリケーションにおけるＣＰＵの割り当て時間を増加させてもよい。
【００４４】
もしくは、スケジューラ２３は、ステップＳ２１において、高優先アプリケーションの応答性能の低下が予め定められた閾値を上回る時間継続した場合に、ステップＳ２２の処理を実行してもよい。つまり、スケジューラ２３は、高優先アプリケーションが、一時的に応答性能が低下した場合であってもＣＰＵの割り当て時間の変更を行わず、高優先アプリケーションの応答性能が継続的に低下した場合に、ＣＰＵの割り当て時間の変更を行ってもよい。
【００４５】
以上説明したように、実施の形態２にかかるコンピュータ装置１０を用いることによって、低優先アプリケーションに対するＣＰＵの割り当て時間を減少させることによって、高優先アプリケーションのＣＰＵ使用率を上昇させることができる。
【００４６】
また、スケジューラ２３は、高優先アプリケーションが性能要件を満たすか否かに応じて、段階的に低優先アプリケーションのＣＰＵ使用率を下げるようにＣＰＵの割り当て時間を変更することができる。これより、低優先アプリケーションのＣＰＵ使用率が短時間に大幅に低下することを回避することができるため、低優先アプリケーションの性能が急激に低下することを防止することができる。
【００４７】
（実施の形態３）
続いて、実施の形態３にかかるアプリケーションの分類方法について説明する。実施の形態３においては、システムコールを用いたアプリケーションの分類について説明する。システムコールは、アプリケーションを実行する際に、ＯＳ（Oparating System）が有する機能もしくは関数を呼び出す処理である。ＯＳが有する機能もしくは関数は、例えば、read、write、及びsocket等がある。
【００４８】
例えば、アプリケーション監視部２２は、アプリケーション毎のシステムコールの発行パターンを監視してもよい。システムコールの発行パターンは、例えば、アプリケーション毎に使用される機能もしくは関数の出現パターンであってもよい。出現パターンは、例えば、readとwriteとが交互に呼び出されるパターンであってもよく、はじめにsocketが呼び出され、その後、readとwriteとが所定の回数交互に呼び出されるパターン等であってもよい。また、システムコールの発行パターンは、使用される機能もしくは関数が呼び出される間隔であってもよい。呼び出される間隔は、例えば、readとwriteとが等間隔の期間に呼び出される場合があってもよく、socketが呼び出された後、次にreadが呼び出されるまでの間隔と、readとwriteとが繰り返し出現する場合の間隔とが異なるような場合であってもよい。また、システムコールの発行パターンは、使用される機能もしくは関数の出現パターンと呼び出される間隔とが組み合わされてもよい。
【００４９】
システムコールは、ソケットもしくは疑似端末等のリソースが使用されていない場合においても発行されることがある。そのため、アプリケーション監視部２２は、起動していないアプリケーションについても管理し、そのアプリケーションにおけるシステムコールの発行パターンを特定してもよい。
【００５０】
条件テーブル格納部２１は、例えば、システムコールの発行パターンと、オンラインアプリケーション、デーモン、コマンドライン、もしくはバッチ処理等のアプリケーションの種類とを関連付けて管理するテーブルを有していてもよい。
【００５１】
スケジューラ２３は、アプリケーション監視部２２から出力されるアプリケーションに関するシステムコールの発行パターンと、条件テーブル格納部２１において管理されているテーブルとを用いて、アプリケーションの種類を特定し、さらに、そのアプリケーションの優先度を決定する。
【００５２】
以上説明したように、実施の形態３にかかるアプリケーションの分類方法において、コンピュータ装置１０は、アプリケーション毎のシステムコールの発行パターンを用いることができる。アプリケーション監視部２２は、アプリケーションが、ソケットもしくは疑似端末等のリソースを用いていない状態においても、システムコールの発行パターンを特定するための処理を実行することができる。これより、スケジューラ２３は、起動される頻度が少ないアプリケーションであっても、特定されたシステムコールの発行パターンに従って、アプリケーションを分類することができる。
【００５３】
また、システムコールの発行パターンは、統計情報を用いて特定してもよい。例えばシステムコールの発行パターンは、所定の期間に発行されるシステムコールを分析して特定される場合もある。所定の期間とは、アプリケーション監視部２２がアプリケーションにおいて使用されるリソースを取得する期間よりも十分に長い期間である。
【００５４】
このような場合、例えば、スケジューラ２３は、リアルタイムにＣＰＵの割り当てを変更する場合には、はじめに、アプリケーションの使用リソースに応じて優先度を決定する。その後、スケジューラ２３は、決定したアプリケーション毎の優先度を、システムコールの発行パターンを用いて検証してもよい。スケジューラ２３は、システムコールの発行パターンを用いてアプリケーション毎の優先度を検証した結果、使用リソースに応じて決定された優先度と異なる優先度が適切であると判定した場合、システムコールの発行パターンを用いて決定された優先度に変更してもよい。
【００５５】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００５６】
なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、本開示は、それぞれの実施の形態を適宜組み合わせて実施されてもよい。
【００５７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
起動中のアプリケーションが使用しているリソースに従って、前記起動中のアプリケーションの優先度を決定する優先度決定部と、
予め定められた優先度よりも高い優先度の高優先アプリケーションが、前記高優先アプリケーションに定められた性能要件を満たしていない場合に、前記高優先アプリケーションよりも低い優先度の低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くする割当制御部と、を備えるコンピュータ装置。
（付記２）
前記割当制御部は、
前記低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くした後に、前記高優先アプリケーションが、前記性能要件を満たしているか否かを監視する、付記１に記載のコンピュータ装置。
（付記３）
前記割当制御部は、
前記低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くした後に、前記高優先アプリケーションが、前記性能要件を満たしていないと判定した場合、前記低優先アプリケーションに対するプロセッサの割り当て時間をさらに短くする、もしくは、前記低優先アプリケーションより優先度が高く、前記高優先アプリケーションより優先度が低い中優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くする、付記２に記載のコンピュータ装置。
（付記４）
前記優先度決定部は、
起動中のアプリケーションであって、優先度が定められていないアプリケーションについて、使用しているリソースに従って優先度を決定する、付記１乃至３のいずれか１項に記載のコンピュータ装置。
（付記５）
前記性能要件は、
前記高優先アプリケーションに関する処理が実行されてから前記高優先アプリケーションに関する処理が完了するまでの応答時間、もしくは、前記高優先アプリケーションに関するデータのスループットに関する要件である、付記１乃至４のいずれか１項に記載のコンピュータ装置。
（付記６）
前記割当制御部は、
プロセッサの割り当て時間を、起動中の全てのアプリケーションに対して実質的に均等にしている状態において、前記高優先アプリケーションが前記性能要件を満たしていない場合に、優先度が最も低いアプリケーションに対するプロセッサの割り当て時間を現在よりも低くする、付記１乃至５のいずれか１項に記載のコンピュータ装置。
（付記７）
前記割当制御部は、
前記低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くする場合、前記低優先アプリケーションに対する前記プロセッサの目標使用率を定め、前記目標使用率に近づくように、前記プロセッサの割り当て時間を短くする、付記１乃至６のいずれか１項に記載のコンピュータ装置。
（付記８）
起動中のアプリケーションが使用している前記リソースは、ソケット及び疑似端末のうち少なくとも一方を含むソフトウェアリソースである、付記１乃至７のいずれか１項に記載のコンピュータ装置。
（付記９）
前記起動中のアプリケーションが使用しているリソースに従って、前記起動中のアプリケーションが、優先度の異なる複数のアプリケーショングループのうちどのアプリケーショングループに分類されるかを定める条件テーブルを有する条件テーブル格納部をさらに備え、
前記優先度決定部は、
前記条件テーブルを用いて、前記起動中のアプリケーションの優先度を決定する、付記１乃至８のいずれか１項に記載のコンピュータ装置。
（付記１０）
起動中のアプリケーションが使用しているリソースに従って、前記起動中のアプリケーションの優先度を決定し、
予め定められた優先度よりも高い優先度の高優先アプリケーションが、前記高優先アプリケーションに定められた性能要件を満たしていない場合に、前記高優先アプリケーションよりも低い優先度の低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くする、アプリケーション制御方法。
（付記１１）
起動中のアプリケーションが使用しているリソースに従って、前記起動中のアプリケーションの優先度を決定し、
予め定められた優先度よりも高い優先度の高優先アプリケーションが、前記高優先アプリケーションに定められた性能要件を満たしていない場合に、前記高優先アプリケーションよりも低い優先度の低優先アプリケーションに対するプロセッサの割り当て時間を現在よりも短くすることをコンピュータに実行させるプログラム。
【符号の説明】
【００５８】
１０  コンピュータ装置
１１  優先度決定部
１２  割当制御部
２１  条件テーブル格納部
２２  アプリケーション監視部
２３  スケジューラ
【図１】
2018169727.tif 000003
【図２】
2018169727.tif 000004
【図３】
2018169727.tif 000005
【図４】
2018169727.tif 000006
【図５】
2018169727.tif 000007
【図６】
2018169727.tif 000008
【図７】
2018169727.tif 000009