(57)【要約】  本出願の実施例は、端末技術の分野に属するプロセッサコアのスケジューリング方法、装置、端末及び記憶媒体を開示する。前記方法は、ターゲットアプリケーションプログラムが組み込みＳＤＫによって提供される第１のＡＰＩを呼び出すことによって、オペレーティングシステムにターゲット要求を送信するステップであって、ターゲット要求は、オペレーティングシステムを指示してプロセッサのコア情報をフィードバックするために用いられ、コア情報は、第１の性能コアと第２の性能コアの配置状況を含むステップと、オペレーティングシステムがターゲットアプリケーションプログラムにコア情報をフィードバックするステップと、ターゲットアプリケーションプログラムがコア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングしてターゲットアプリケーションプログラムのプロセスを実行するステップと、を含む。本出願の実施例では、ターゲットアプリケーションプログラムがコア情報に基づいて対応するプロセッサコアを適応的にスケジューリングしてプロセスを実行することができ、オペレーティングシステムのタイムリーなスケジューリングができないことによって引き起こされるアプリケーションプログラムのフリーズ問題を回避し、アプリケーションプログラムの実行品質を最適化する効果を達成する。
2021518955.tif 000002
【特許請求の範囲】
【請求項１】
端末に適用されるプロセッサコアのスケジューリング方法であって、
前記端末内のプロセッサは、少なくとも一つの第１の性能コアと少なくとも一つの第２の性能コアとを含み、前記第１の性能コアの性能は、前記第２の性能コアの性能より高く、前記端末は、オペレーティングシステムと少なくとも一つのアプリケーションプログラムとを実行し、前記方法は、
ターゲットアプリケーションプログラムが、組み込みソフトウェア開発キットＳＤＫによって提供される第１のアプリケーションプログラミングインターフェースＡＰＩを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するステップであって、前記ターゲット要求は、前記オペレーティングシステムを指示してプロセッサのコア情報をフィードバックするために用いられ、前記コア情報は、前記第１の性能コアと前記第２の性能コアの配置状況を含むステップと、
前記オペレーティングシステムが前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするステップと、
前記ターゲットアプリケーションプログラムが前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行するステップと、を含む、
ことを特徴とするプロセッサコアのスケジューリング方法。
【請求項２】
前記コア情報には、各コアに対応するコアタイプとコア番号とを含み、前記コアタイプは、前記第１の性能コアと前記第２の性能コアとを含み、
前記ターゲットアプリケーションプログラムが前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行するステップは、
前記ターゲットアプリケーションプログラムが前記プロセスに対応する前記ターゲットコアを決定するステップと、
前記ターゲットアプリケーションプログラムが前記ターゲットコアのコア番号と前記プロセスのプロセス識別子とに基づいて、システムコールの方式によって前記プロセスと各コアのバインダー度を設定するステップであって、前記プロセスと前記ターゲットコアのバインダー度は、前記プロセスと他のコアのバインダー度より大きいステップと、
前記オペレーティングシステムが前記バインダー度に基づいて前記プロセスと前記ターゲットコアをバインドするステップであって、バインドされた前記プロセスは、前記ターゲットコア上で実行するステップと、を含む、
ことを特徴とする請求項１に記載のプロセッサコアのスケジューリング方法。
【請求項３】
前記ターゲットアプリケーションプログラムが前記プロセスに対応する前記ターゲットコアを決定するステップは、
前記ターゲットアプリケーションプログラムが現在のアプリケーションシーンを取得するステップと、
前記現在のアプリケーションシーンが第１のアプリケーションシーンに属している場合、前記ターゲットアプリケーションプログラムが前記第１の性能コアを前記ターゲットコアとして決定するステップと、
前記現在のアプリケーションシーンが第２のアプリケーションシーンに属している場合、前記ターゲットアプリケーションプログラム前記第２の性能コアを前記ターゲットコアとして決定するステップと、を含み、
前記第１のアプリケーションシーンのプロセッサに対する性能ニーズは、前記第２のアプリケーションシーンのプロセッサに対する性能ニーズより高い、
ことを特徴とする請求項２に記載のプロセッサコアのスケジューリング方法。
【請求項４】
前記コア情報には、各コアの負荷情報をさらに含み、
前記ターゲットアプリケーションプログラムが前記プロセスに対応する前記ターゲットコアを決定するステップは、
前記ターゲットアプリケーションプログラムが現在のアプリケーションシーンを取得するステップと、
前記ターゲットアプリケーションプログラムが前記負荷情報に基づいて各コアの負荷を決定するステップと、
前記現在のアプリケーションシーンが第１の性能アプリケーションシーンに属している場合、前記ターゲットアプリケーションプログラムが、負荷が負荷閾値より低い前記第１の性能コアを前記ターゲットコアとして決定するステップと、
前記現在のアプリケーションシーンが第２の性能アプリケーションシーンに属している場合、前記ターゲットアプリケーションプログラムが、負荷が負荷閾値より低い前記第２の性能コアを前記ターゲットコアとして決定するステップと、を含み、
前記第１のアプリケーションシーンのプロセッサに対する性能ニーズは、前記第２のアプリケーションシーンのプロセッサに対する性能ニーズより高い、
ことを特徴とする請求項２に記載のプロセッサコアのスケジューリング方法。
【請求項５】
ターゲットアプリケーションプログラムが組み込みＳＤＫによって提供される第１のＡＰＩを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信する前に、前記方法は、
前記ターゲットアプリケーションプログラムが前記組み込みＳＤＫによって提供される第２のＡＰＩを呼び出すことによって、前記オペレーティングシステムにスケジューリング要求を送信するステップであって、前記スケジューリング要求は、前記オペレーティングシステムを指示して前記ターゲットアプリケーションプログラムを実行する難易度レベルをフィードバックするために用いられるステップと、
前記オペレーティングシステムが前記ターゲットアプリケーションプログラムに前記難易度レベルをフィードバックするステップと、
前記難易度レベルが予め設定されたレベル閾値より高い場合、前記ターゲットアプリケーションプログラムが前記組み込みＳＤＫによって提供される第１のＡＰＩを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するステップを実行するステップと、
前記難易度レベルが予め設定されたレベル閾値より低い場合、前記ターゲットアプリケーションプログラムがコアスケジューリングを行わないステップと、をさらに含む、
ことを特徴とする請求項１〜４のいずれかに記載のプロセッサコアのスケジューリング方法。
【請求項６】
ターゲットアプリケーションプログラムが組み込みＳＤＫによって提供される第１のＡＰＩを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信した後、前記方法は、
前記オペレーティングシステムが前記ターゲットアプリケーションプログラムのアプリケーション識別子を取得するステップと、
前記ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属している場合、前記オペレーティングシステムが前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするステップを実行するステップであって、前記予め設定されたアプリケーション識別子リストには、コアスケジューリングをサポートするアプリケーションプログラムのアプリケーション識別子が含まれるステップと、
前記ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属していない場合、前記オペレーティングシステムが前記ターゲット要求に応答しないステップと、をさらに含む、
ことを特徴とする請求項１〜４のいずれかに記載のプロセッサコアのスケジューリング方法。
【請求項７】
前記ターゲットアプリケーションプログラムが前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行した後、前記方法は、
フォアグラウンド実行からバックグラウンド実行に切り替える場合、前記ターゲットアプリケーションプログラムがシステムコールの方式によって前記第２の性能コアをスケジューリングして前記プロセスを実行するステップをさらに含む、
ことを特徴とする請求項１〜４のいずれかに記載のプロセッサコアのスケジューリング方法。
【請求項８】
端末に適用されるプロセッサコアのスケジューリング装置であって、
前記端末内のプロセッサは、少なくとも一つの第１の性能コアと少なくとも一つの第２の性能コアとを含み、前記第１の性能コアの性能は、前記第２の性能コアの性能より高く、前記端末は、オペレーティングシステムと少なくとも一つのアプリケーションプログラムとを実行し、前記装置は、
組み込みソフトウェア開発キットＳＤＫによって提供される第１のアプリケーションプログラミングインターフェースＡＰＩを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するためのターゲットアプリケーションプログラムモジュールであって、前記ターゲット要求は、前記オペレーティングシステムを指示してプロセッサのコア情報をフィードバックするために用いられ、前記コア情報は、前記第１の性能コアと前記第２の性能コアの配置状況を含むターゲットアプリケーションプログラムモジュールと、
前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするためのオペレーティングシステムモジュールと、
前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行するためのターゲットアプリケーションプログラムモジュールと、を含む、
ことを特徴とするプロセッサコアのスケジューリング装置。
【請求項９】
前記コア情報には、各コアに対応するコアタイプとコア番号とを含み、前記コアタイプは、前記第１の性能コアと前記第２の性能コアとを含み、
前記ターゲットアプリケーションプログラムモジュールは、
前記プロセスに対応する前記ターゲットコアを決定し、
前記ターゲットコアのコア番号と前記プロセスのプロセス識別子とに基づいて、システムコールの方式によって前記プロセスと各コアのバインダー度を設定するために用いられ、前記プロセスと前記ターゲットコアのバインダー度は、前記プロセスと他のコアのバインダー度より大きく、
前記オペレーティングシステムシステムモジュールは、前記バインダー度に基づいて前記プロセスと前記ターゲットコアをバインドするために用いられ、バインドされた前記プロセスは、前記ターゲットコア上で実行する、
ことを特徴とする請求項８に記載のプロセッサコアのスケジューリング装置。
【請求項１０】
前記ターゲットアプリケーションプログラムモジュールは、さらに、
現在のアプリケーションシーンを取得し、
前記現在のアプリケーションシーンが第１のアプリケーションシーンに属している場合、前記第１の性能コアを前記ターゲットコアとして決定し、
前記現在のアプリケーションシーンが第２のアプリケーションシーンに属している場合、前記第２の性能コアを前記ターゲットコアとして決定するために用いられ、
前記第１のアプリケーションシーンのプロセッサに対する性能ニーズは、前記第２のアプリケーションシーンのプロセッサに対する性能ニーズより高い、
ことを特徴とする請求項９に記載のプロセッサコアのスケジューリング装置。
【請求項１１】
前記コア情報には、各コアの負荷情報をさらに含み、
前記ターゲットアプリケーションプログラムモジュールは、
現在のアプリケーションシーンを取得し、
前記負荷情報に基づいて各コアの負荷を決定し、
前記現在のアプリケーションシーンが第１の性能アプリケーションシーンに属している場合、負荷が負荷閾値より低い前記第１の性能コアを前記ターゲットコアとして決定し、
前記現在のアプリケーションシーンが第２の性能アプリケーションシーンに属している場合、負荷が負荷閾値より低い前記第２の性能コアを前記ターゲットコアとして決定するために用いられ、
前記第１のアプリケーションシーンのプロセッサに対する性能ニーズは、前記第２のアプリケーションシーンのプロセッサに対する性能ニーズより高い、
ことを特徴とする請求項９に記載のプロセッサコアのスケジューリング装置。
【請求項１２】
前記ターゲットアプリケーションプログラムモジュールは、さらに、前記組み込みＳＤＫによって提供される第２のＡＰＩを呼び出すことによって、前記オペレーティングシステムにスケジューリング要求を送信するために用いられ、前記スケジューリング要求は、前記オペレーティングシステムを指示して前記ターゲットアプリケーションプログラムを実行する難易度レベルをフィードバックするために用いられ、
前記オペレーティングシステムモジュールは、前記ターゲットアプリケーションプログラムに前記難易度レベルをフィードバックするために用いられ、
前記ターゲットアプリケーションプログラムモジュールは、さらに、前記難易度レベルが予め設定されたレベル閾値より高い場合、前記組み込みＳＤＫによって提供される第１のＡＰＩを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するステップを実行するために用いられ、
前記ターゲットアプリケーションプログラムモジュールは、さらに、前記難易度レベルが予め設定されたレベル閾値より低い場合、コアスケジューリングを行わないために用いられる、
ことを特徴とする請求項８〜１１のいずれかに記載のプロセッサコアのスケジューリング装置。
【請求項１３】
前記オペレーティングシステムモジュールは、さらに、
前記ターゲットアプリケーションプログラムのアプリケーション識別子を取得し、
前記ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属している場合、前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするステップを実行し、
前記ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属していない場合、前記ターゲット要求に応答しないために用いられ、
前記予め設定されたアプリケーション識別子リストには、コアスケジューリングをサポートするアプリケーションプログラムのアプリケーション識別子が含まれる、
ことを特徴とする請求項８〜１１のいずれかに記載のプロセッサコアのスケジューリング装置。
【請求項１４】
前記ターゲットアプリケーションプログラムモジュールは、さらに、
フォアグラウンド実行からバックグラウンド実行に切り替える場合、システムコールの方式によって前記第２の性能コアをスケジューリングして前記プロセスを実行するために用いられる、
ことを特徴とする請求項８〜１１のいずれかに記載のプロセッサコアのスケジューリング装置。
【請求項１５】
プロセッサとメモリとを含む端末であって、
前記メモリには、少なくとも一つの命令が記憶され、前記少なくとも一つの命令が前記プロセッサによって実行される場合、請求項１〜７のいずれかに記載のプロセッサコアのスケジューリング方法が実現される、
ことを特徴とする端末。
【請求項１６】
コンピュータ読み取り可能な記憶媒体であって、
前記記憶媒体には、少なくとも一つの命令が記憶され、前記少なくとも一つの命令がプロセッサによって実行される場合、請求項１〜７のいずれかに記載のプロセッサコアのスケジューリング方法が実現される、
ことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１９年０４月２０日に中国国家知識産権局に提出された、特許出願の番号が２０１８１０３６２６９５.６であり、発明名称が「プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体」である中国特許出願の優先権を主張するものであり、当該中国特許出願の全ての内容は参照により本願に組み入れられる。
【０００２】
本出願の実施例は、端末技術の分野に関し、特に、プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体に関する。
【背景技術】
【０００３】
プロセッサ製造技術の継続的な改善に伴い、端末全体の処理能力を向上させるために、多くのメーカーが端末にマルチコアのプロセッサを配置する。
【０００４】
性能と消費電力などの観点から、マルチコアを含むプロセッサは、Ｂｉｇ−Ｌｉｔｔｌｅアーキテクチャを採用する。Ｂｉｇ−Ｌｉｔｔｌｅアーキテクチャを採用するプロセッサには、複数の高性能コアと複数の低性能コアが含まれ、その中、高性能コアは、複雑な演算を処理するために用いられ、低性能コアは、簡単な演算を処理するために用いられる。しかしながら、関連技術には合理的なプロセッサコアのスケジューリング方法が提供されていない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本出願の実施例は、プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体を提供する。前記技術案は以下のとおりである
【課題を解決するための手段】
【０００６】
一態様では、端末に適用されるリソース配置方法を提供し、前記端末内のプロセッサは、少なくとも一つの第１の性能コアと少なくとも一つの第２の性能コアとを含み、前記第１の性能コアの性能は、前記第２の性能コアの性能より高く、前記端末は、オペレーティングシステムと少なくとも一つのアプリケーションプログラムとを実行し、前記方法は、
ターゲットアプリケーションプログラムが組み込みソフトウェア開発キット（Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ、ＳＤＫ）によって提供される第１のアプリケーションプログラミングインターフェース（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ、ＡＰＩ）を呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するステップであって、前記ターゲット要求は、前記オペレーティングシステムを指示してプロセッサのコア情報をフィードバックするために用いられ、前記コア情報は、前記第１の性能コアと前記第２の性能コアの配置状況を含むステップと、
前記オペレーティングシステムが前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするステップと、
前記ターゲットアプリケーションプログラムが前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行するステップと、を含む。
【０００７】
別の態様では、端末に適用されるプロセッサコアのスケジューリング装置を提供し、前記端末内のプロセッサは、少なくとも一つの第１の性能コアと少なくとも一つの第２の性能コアとを含み、前記第１の性能コアの性能は、前記第２の性能コアの性能より高く、前記端末は、オペレーティングシステムと少なくとも一つのアプリケーションプログラムとを実行し、前記装置は、
組み込みＳＤＫによって提供される第１のＡＰＩを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するためのターゲットアプリケーションプログラムモジュールであって、前記ターゲット要求は、前記オペレーティングシステムを指示してプロセッサのコア情報をフィードバックするために用いられ、前記コア情報は、前記第１の性能コアと前記第２の性能コアの配置状況を含むターゲットアプリケーションプログラムモジュールと、
前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするためのオペレーティングシステムモジュールと、
前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行するためのターゲットアプリケーションプログラムモジュールと、を含む。
【０００８】
別の態様では、プロセッサとメモリとを含む端末を提供し、前記メモリには、少なくとも一つの命令が記憶され、前記少なくとも一つの命令が前記プロセッサによって実行される場合、第１の態様に記載のプロセッサコアのスケジューリング方法が実現される。
【０００９】
別の態様では、コンピュータ読み取り可能な記憶媒体を提供し、前記記憶媒体には、少なくとも一つの命令が記憶され、前記少なくとも一つの命令がプロセッサによって実行される場合、第１の態様に記載のプロセッサコアのスケジューリング方法が実現される。
【図面の簡単な説明】
【００１０】
【図１】本出願の例示的な実施例により提供される端末の概略構成図である。
【図２】端末におけるアプリケーションプログラムとオペレーティングシステムとの通信プロセスの実施の概略図である。
【図３】本出願の例示的な実施例により提供される端末の概略構成図である。
【図４】図３に示す端末におけるアプリケーションプログラムとオペレーティングシステムとの通信プロセスの実施の概略図である。
【図５】図３に示す端末におけるアプリケーションプログラムとオペレーティングシステムとの通信プロセスの実施の概略図である。
【図６】本出願の別の例示的な実施例により提供される端末の概略構成図である。
【図７】本出願の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。
【図８】本出願の別の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。
【図９】本出願の別の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。
【図１０】本出願の別の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。
【図１１】本出願の別の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。
【図１２】本出願の一実施例により提供されるプロセッサコアのスケジューリング装置の構成ブロック図を示す。
【発明を実施するための形態】
【００１１】
本発明の目的、技術案、及び利点をより明確にするために、以下、図面を組み合わせて本発明の実施方式をさらに詳細に説明する。
本明細書で言及される「複数」は、二つ以上を指す。「及び／又は」は、関連するオブジェクトの関連関係を示し、三つの関係が存在する可能性を示し、例えば、Ａ及び／又はＢは、Ａが単独で存在するか、ＡとＢが同時に存在するか、Ｂが単独で存在する三つの場合を示すことができる。文字「／」は、一般的に、前後の関連オブジェクトが「又は」の関係であることを示す。
【００１２】
図１を参照すると、本出願の例示的な実施例により提供される端末１００の構造ブロック図を示す。当該端末１００は、スマートフォン、タブレットコンピュータ、電子書籍などのアプリケーションプログラムを実行できる電子機器であってもよい。本出願における端末１００は、プロセッサ１１０、メモリ１２０、及び入出力装置１３０のうちの一つ又は複数の以下のようなコンポーネントを含むことができる。
【００１３】
プロセッサ１１０は、一つの又は複数の処理コアを含むことができる。プロセッサ１１０は、様々なインターフェースと回線を使用してすべての端末１００内の各部分を接続し、メモリ１２０に記憶されている命令、プログラム、コードセット又は命令セットを実行し、及びメモリ１２０に記憶されているデータを呼び出すことによって、端末１００の様々な機能と処理データを実行する。選択可能には、プロセッサ１１０は、デジタル信号処理（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ、ＤＳＰ）、フィールドプログラマブルゲートアレイ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、ＦＰＧＡ）、プログラマブルロジックアレイ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ａｒｒａｙ、ＰＬＡ）のうちの少なくとも一つのハードウェア形式で実現することができる。プロセッサ１１０は、中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵ）、画像処理プロセッサ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＧＰＵ）、及びモデムなどのうちの一つ又は複数の組み合わせを統合することができる。その中、ＣＰＵは、主に、オペレーティングシステム、ユーザインターフェース、及びアプリケーションプログラムなどを処理し、ＧＰＵは、表示コンテンツのレンダリングと描画を担当するために用いられ、モデムは、無線通信を処理するために用いられる。上記のモデムは、プロセッサ１１０に統合されず、一つの通信チップによって単独に実現されることができることを理解されたい。
【００１４】
本出願の実施例では、プロセッサ１１０に統合されているＣＰＵは、少なくとも二つのコアを含み、且つ少なくとも二つのコアには、少なくとも一つの第１の性能コア（高性能コア）と少なくとも一つの第２の性能コア（低性能コア）とを含み、その中、単一の第１の性能コアの処理能力は、単一の第２の性能コアの処理能力より高い。例えば、当該ＣＰＵには、８つのコアが含まれ、その中、４つのコアは第１の性能コアであり、他の４つのコアは第２の性能コアである。
【００１５】
選択可能には、第１の性能コアの動作周波数は、第２の性能コアの動作周波数より高く、且つ第１の性能コアの消費電力は、第２の性能コアの消費電力より高い。例えば、第１の性能コアの動作周波数は２.０ＧＨｚであり、第２の性能コアの動作周波数は１.２ＧＨｚである。本出願の実施例は、二つのプロセッサコアの動作周波数に対して限定しない。
【００１６】
メモリ１２０は、ランダムアクセスメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＲＡＭ）を含むことができ、読み取り専用メモリ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）も含むことができる。選択可能には、当該メモリ１２０は、非一時的なコンピュータ読み取り可能な媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ−ｒｅａｄａｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。メモリ１２０は、命令、プログラム、コード、コードセット、又は命令セットを記憶するために使用することができる。メモリ１２０は、ストレージプログラム領域とストレージデータ領域とを含むことができ、その中、ストレージプログラム領域は、オペレーティングシステムを実現するための命令、少なくとも一つの機能を実現するための命令（例えばタッチ機能、音声再生機能、画像再生機能など）、以下の各方法の実施例を実現するための命令などを記憶することができ、当該オペレーティングシステムは、アンドロイド（Ａｎｄｒｏｉｄ）システム（Ａｎｄｒｏｉｄシステム基づいて深さ開発したシステムを含む）、アップル社が開発したＩＯＳシステム（ＩＯＳシステム基づいて深さ開発したシステムを含む）、又は他のシステムであってもよい。ストレージデータ領域は、端末１００が使用中に作成したデータ（例えば電話帳、音声ビデオデータ、チャット記録データ）などを記憶することもできる。
【００１７】
メモリ１２０は、オペレーティングシステム空間とユーザ空間に分割することができ、オペレーティングシステムは、オペレーティングシステム空間で実行され、ネイティブ及びサードパーティアプリケーションは、ユーザ空間で実行される。異なるサードパーティアプリケーションがいずれも良い実行効果に達することができることを確保するために、オペレーティングシステムは、異なるサードパーティアプリケーションに対して、対応するシステムリソースを割り当てる。しかしながら、同一のサードパーティアプリケーション内の異なるアプリケーションシーンがシステムリソースに対するニーズにも差異が存在し、例えば、ローカルリソースローディングシーンでは、サードパーティアプリケーションはディスクの読み出し速度に対する要求が高く、動画レンダリングシーンでは、サードパーティアプリケーションは、ＧＰＵ性能に対する要求が高い。オペレーティングシステムとサードパーティアプリケーションとの間は互いに独立しており、オペレーティングシステムは、サードパーティアプリケーション現在のアプリケーションシーンを即時に感知することができないことが多く、オペレーティングシステムは、サードパーティアプリケーションの具体的なアプリケーションシーンに基づいて対応的にシステムリソースの適応を行うことができない。
【００１８】
また、サードパーティアプリケーションの実行品質は、オペレーティングシステムのリアルタイムの実行状態にも関連付けられており、サードパーティアプリケーションがオペレーティングシステムの現在の実行状態を即時に取得できない場合、その実行品質にも影響を与える。例えば、端末の温度が高すぎる場合、サードパーティアプリケーションは、相変わらず第１の性能モードで実行し、端末温度の継続的な上昇によってシステムクラッシュを引き起こし、サードパーティアプリケーションも実行しなくなる。
【００１９】
図２に示すように、サードパーティアプリケーションの実行品質を向上させるために、サードパーティアプリケーションとオペレーティングシステムとの間のデータ通信が必要であり、オペレーティングシステムがサードパーティアプリケーションの現在のシーン情報を随時に取得し、現在のシーン基づいて対応的にシステムリソースの適応を行うとともに、サードパーティアプリケーションは、オペレーティングシステムの実行状態をリアルタイムに取得し、当該実行状態基づいて対応的にプログラム最適化を行うことができる。
【００２０】
Ａｎｄｒｏｉｄシステムであるオペレーティングシステムを例として、メモリ１２０に記憶されたプログラムとデータは、図３に示すように、メモリ１２０には、Ｌｉｎｕｘカーネル層２２０、システム実行ライブラリ層２４０、アプリケーションフレームワーク層２６０、及びアプリケーション層２８０が記憶されることができ、その中、Ｌｉｎｕｘカーネル層２２０、システム実行ライブラリ層２４０、及びアプリケーションフレームワーク層２６０は、オペレーティングシステム空間に属し、アプリケーション層２８０はユーザ空間に属する。Ｌｉｎｕｘカーネル層２２０は、端末１００の様々なハードウェアに、ディスプレイドライバ、オーディオドライバ、カメラドライバ、ブルートゥースドライバ、Ｗｉ−Ｆｉドライバ、及び電力管理などのような下層のドライバを提供する。システム実行ライブラリ層２４０は、いくつかのＣ／Ｃ＋＋ライブラリによってＡｎｄｒｏｉｄシステムに主要な特性サポートを提供する。例えば、ＳＱＬｉｔｅライブラリは、データベースのサポートを提供し、ＯｐｅｎＧＬ／ＥＳライブラリは、３Ｄ描画のサポートを提供し、ＷｅＢｋｉｔライブラリは、ブラウザカーネルのサポートなどを提供する。システム実行ライブラリ層２４０には、アンドロイドランタイムライブラリ（Ａｎｄｒｏｉｄ  Ｒｕｎｔｉｍｅ）がさらに提供され、これは、主に、開発者がＪａｖａ言語を使用してＡｎｄｒｏｉｄアプリケーションを作成できるいくつかのコアライブラリを提供する。アプリケーションフレームワーク層２６０は、アプリケーションプログラムを構築する時に使用できる様々なＡＰＩを提供し、開発者は、アクティビティ管理、ウィンドウ管理、ビュー管理、通知管理、コンテンツプロバイダ、パッケージ管理、通話管理、リソース管理、ポジショニング管理など、これらのＡＰＩを使用して自体のアプリケーションプログラムを構築することもできる。アプリケーション層２８０には、少なくとも一つのアプリケーションプログラムが実行され、これらのアプリケーションプログラムは、連絡先プログラム、ショートメッセージプログラム、クロックプログラム、カメラアプリケーションなどのオペレーティングシステムに付属するネイティブアプリケーションプログラムであってもよく、ゲーム系アプリケーションプログラム、インスタントメッセージングプログラム、写真美化プログラム、ショッピングプログラムなどの第三者の開発者が開発したサードパーティアプリケーションであってもよい。
【００２１】
オペレーティングシステムとサードパーティアプリケーションとの間の実現可能な通信方式は、図４に示すように、サードパーティアプリケーションに、オペレーティングシステムと通信するためのＳＤＫが組みこまれている。
【００２２】
その中、ＳＤＫは、いくつかの抽象的なＡＰＩを含み、オペレーティングシステム開発者によってサードパーティアプリケーション開発者に提供し、サードパーティアプリケーション開発者によって当該ＳＤＫをサードパーティアプリケーションに組み込む。このようなサードパーティアプリケーションをインストールしてオペレーティングシステムで実行した後、ＳＤＫによって提供されるＡＰＩを呼び出してオペレーティングシステムと通信することができる。
【００２３】
図４に示すように、システム実行ライブラリ層２４０は、インターフェース通信システム２４２を追加的に含むことができる。当該インターフェース通信システム２４２は、オペレーティングシステム内の一つのサブシステムとすることができ、又はオペレーティングシステムに組み込まれた一つのアプリケーションプログラムとすることもできる。インターフェース通信システム２４２にＳＤＫインターフェースが設定され、サードパーティアプリケーションは、組み込みＳＤＫのＡＰＩを呼び出して、当該ＳＤＫインターフェース間とバインダー（Ｂｉｎｄｅｒ）の方式によってデータ通信を行う。このように、サードパーティアプリケーションのアプリケーションシーンに関するデータは、ＳＤＫによってオペレーティングシステムに伝送することができ、且つ／又は、オペレーティングシステム実行状態に関するデータも、ＳＤＫによってサードパーティアプリケーションに伝送することができる。
【００２４】
別の実現可能な通信方式では、図５に示すように、サードパーティアプリケーションは、ソケット（Ｓｏｃｋｅｔ）方式でインターフェース通信システム２４２のＳｏｃｋｅｔインターフェースと持続的接続を確立することができ、サードパーティアプリケーションとオペレーティングシステムとの間には、当該持続的接続によって通信することができる。
【００２５】
図４及び図５に示すように、インターフェース通信システム２４２に異なるポリシーモジュールを設定することができ、サードパーティアプリケーションによって送信されたデータを受信した後、インターフェース通信システム２４２は、サードパーティアプリケーションに対応するポリシーモジュールを使用してデータを分析し、対応するリソース配分最適化ポリシーを取得する。分析して取得されたリソース配分最適化ポリシーに基づいて、インターフェース通信システム２４２は、制御インターフェースを介してＬｉｎｕｘカーネル層２２０に通知してシステムリソース配分最適化を行う。その中、当該制御インターフェースは、Ｓｙｓｆｓの方式を採用してＬｉｎｕｘカーネル層２２０と通信することができる。
【００２６】
選択可能には、インターフェース通信システム２４２内の異なるポリシーモジュールは、異なるサードパーティアプリケーション（すなわち、異なるアプリケーションプログラムに対してポリシーモジュールを設定する）に対応することができ、又は、異なるポリシーモジュールは、異なるタイプのサードパーティアプリケーション（すなわち、異なるタイプのアプリケーションプログラムに対してポリシーモジュールを設定する）に対応することができ、又は、異なるポリシーモジュールは、異なるシステムリソース（すなわち、異なるシステムリソースに対してポリシーモジュールを設定する）に対応することができ、又は、異なるポリシーモジュールは、異なるアプリケーションシーン（すなわち、異なるアプリケーションシーンに対してポリシーモジュールを設定する）に対応することができ、本出願の実施例は、ポリシーモジュールの具体的な設定方式に対して限定しない。
【００２７】
選択可能には、図４又は５に示すように、サードパーティアプリケーションに異なるポリシーモジュールを設定することができ、オペレーティングシステムによって送信された実行状態に関するデータを受信した後、サードパーティアプリケーションは、異なるポリシーモジュールによって異なるプログラム最適化ポリシーを作成し、プログラム最適化ポリシーに基づいてプログラムを最適化する。
【００２８】
その中、インターフェース通信システム２４２は、Ｂｉｎｄｅｒの方式でアプリケーションフレームワーク層２６０と通信することもでき、アプリケーションフレームワーク層２６０によって送信されたフォアグラウンドアプリケーション情報を受信するために用いられ、フォアグラウンドアプリケーション情報に基づいて、現在のフォアグラウンドで実行されているサードパーティアプリケーションのみに対してシステムリソース最適化を行う。
【００２９】
ＩＯＳシステムであるオペレーティングシステムを例として、メモリ１２０に記憶されているプログラムとデータでは、図６に示すように、ＩＯＳシステムは、コアオペレーティングシステム層３２０（Ｃｏｒｅ  ＯＳ  ｌａｙｅｒ）、コアサービス層３４０（Ｃｏｒｅ  Ｓｅｒｖｉｃｅｓ  ｌａｙｅｒ）、メディア層３６０（Ｍｅｄｉａ  ｌａｙｅｒ）、タッチ可能層３８０（Ｃｏｃｏａ  Ｔｏｕｃｈ  Ｌａｙｅｒ）を含む。コアオペレーティングシステム層３２０は、オペレーティングシステムカーネル、ドライバプログラム、及び下層プログラムフレームワークを含み、これらの下層プログラムフレームワークは、ハードウェアに近い機能を提供して、コアサービス層３４０に位置するプログラムフレームワークによって使用される。コアサービス層３４０は、基礎（Ｆｏｕｎｄａｔｉｏｎ）フレームワーク、アカウントフレームワーク、広告フレームワーク、データ記憶フレームワーク、ネットワーク接続フレームワーク、地理的位置フレームワーク、モーションフレームなど、アプリケーションプログラムに必要なシステムサービス及び／又はプログラムフレームワークを提供する。メディア層３６０は、グラフィック画像に関するインターフェース、オーディオ技術に関するインターフェース、ビデオ技術に関するインターフェース、音声ビデオ伝送技術の無線再生（ＡｉｒＰｌａｙ）インターフェースなど、アプリケーションプログラムにオーディオビジュアルに関連するインターフェースを提供する。タッチ可能層３８０は、アプリケーションプログラム開発のために様々な一般的に使用されるインターフェースに関するフレームワークを提供する。タッチ可能層３８０は、ユーザ在端末１００でのタッチインタラクション操作を担当する。例えば、ローカル通知サービス、リモートプッシュサービス、広告フレームワーク、ゲームツールフレームワーク、メッセージユーザインターフェースインターフェース（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ、ＵＩ）フレームワーク、ユーザインターフェースＵＩＫｉｔフレームワーク、地図フレームワークなどである。
【００３０】
図６に示すフレームワークでは、ほとんどのアプリケーションプログラムに関連付けられたフレームワークは、コアサービス層３４０内の基礎フレームワークとタッチ可能層３８０内のＵＩＫｉｔフレームワークとを含むが、これらに限定されない。基礎フレームワークは、多くの基本的なオブジェクトクラスとデータタイプを提供し、すべてのアプリケーションプログラムに基本的なシステムサービスを提供し、ＵＩとは無関係である。ＵＩＫｉｔフレームワークによって提供されるクラスは、基礎のＵＩクラスライブラリであり、タッチに基づいてユーザインターフェースを作成するために用いられ、ＩＯＳアプリケーションプログラムは、ＵＩＫｉｔフレームワーク基づいてＵＩを提供するため、ユーザインターフェースと、描画、処理、及びユーザインタラクションイベントと、応答ジェスチャなどを構築するためのアプリケーションプログラムの基礎アーキテクチャを提供する。
【００３１】
その中、ＩＯＳシステムにおいて、サードパーティアプリケーションとオペレーティングシステムとのデータ通信を実現する方式及び原理は、Ａｎｄｒｏｉｄシステムを参照することができ、ここでは詳しく説明しない。
【００３２】
入出力装置１３０は、タッチディスプレイスクリーンを含むことができ、当該タッチディスプレイスクリーンは、ユーザが指、タッチペンなどの任意の適切な物体を使用してその上又は近くのタッチ操作を受信し、及び各アプリケーションプログラムのユーザインターフェースを表示する。タッチディスプレイスクリーンは、通常、端末１００のフロントパネルに設定する。タッチディスプレイスクリーンは、フルスクリーン、曲面スクリーン、又は異型スクリーンとして設計されてもよい。タッチディスプレイスクリーンは、さらに、フルスクリーンと曲面スクリーンの組み合わせ、及び異型スクリーンと曲面スクリーンの組み合わせとして設計されてもよく、本出願の実施例は、これに限定されない。
【００３３】
さらに、当業者は、上記の図面に示される端末１００の構造は、端末１００に対する制限を構成せず、端末は、図示しているものよりも多く又はより少ないコンポーネント、又はいくつかのコンポーネントの組み合わせ、又は異なるコンポーネントの配置を含むことができることを理解されたい。例えば、端末１００は、無線周波数回路、入力ユニット、センサ、オーディオ回路、ワイヤレスフィデリティ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ、ＷｉＦｉ）モジュール、電源、ブルートゥースモジュールなどのコンポーネントをさらに含み、ここで繰り返し説明しない。
【００３４】
関連技術では、プロセッサコアをスケジューリングする動作は、スケジューラによって現在の負荷状況に基づいて独自的に完成する。例えば、低性能コアの負荷が大きすぎることが検出された場合、スケジューラは、高性能コアの実行プロセスをスケジューリングし、高性能コアの負荷が小さいことが検出された場合、スケジューラは、低性能コアの実行プロセスをスケジューリングする。
【００３５】
しかしながら、負荷に基づいてプロセッサコアをスケジューリングすることはヒステリシス性がある。可能なシーンでは、あるアプリケーションプログラムのプロセスに短いアイドル状態が発生した場合、この時に負荷が小さいため、スケジューラは、低性能コアをスケジューリングして当該プロセスを実行するが、当該プロセスが再びビジー状態になる場合、スケジューラは負荷が大きすぎることを検出した場合のみ、プロセッサコアをスケジューリングし、タイムリーなスケジューリングができず、タイムリーなスケジューリングができなくなるとアプリケーションプログラムのフリーズを引き起こし、アプリケーションプログラムの実行品質に影響を与える。
【００３６】
上記の問題を回避するために、本出願の実施例では、アプリケーションプログラムは、組み込みＳＤＫによって提供されるＡＰＩによってオペレーティングシステムとデータ通信を行い、オペレーティングシステムからプロセッサのコア情報を取得することによって、自身のプロセスがプロセッサ性能に対するニーズとコア情報とに基づいて、システムコールの方式を採用してプロセッサコアの動的スケジューリングを実現する。負荷に基づいてプロセッサコアのスケジューリングを行うことに比較して、本出願の実施例により提供される方法を採用することは、コアスケジューリングのヒステリシス性を回避し、コアスケジューリングのヒステリシス性を向上させることによって、アプリケーションプログラムにフリーズなどの問題が発生することを回避し、アプリケーションプログラムの実行の円滑性を向上させることができる。
【００３７】
図７を参照すると、本出願の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。本実施例は、オペレーティングシステムと少なくとも一つのアプリケーションプログラムを実行する端末１００に当該方法を適用した例を説明する。当該方法は、以下のようなステップを含む。
ステップ７０１：ターゲットアプリケーションプログラムが組み込みＳＤＫによって提供される第１のＡＰＩを呼び出すことによって、オペレーティングシステムにターゲット要求を送信し、ターゲット要求は、オペレーティングシステムを指示してプロセッサのコア情報をフィードバックするために用いられ、コア情報は、第１の性能コアと第２の性能コアの配置状況を含む。
【００３８】
ターゲットアプリケーションプログラムは、オペレーティングシステム開発者によって提供されるＳＤＫが組み込まれたサードパーティアプリケーションであってもよく、当該ターゲットアプリケーションプログラムは、ゲーム系アプリケーションプログラム、ビデオ再生系アプリケーションプログラム、及びインスタントメッセージングアプリケーションプログラムなどであってもよく、本出願の実施例は、ターゲットアプリケーションプログラムに対して具体的に限定しない。
【００３９】
組み込まれたＳＤＫにいくつかのＡＰＩが含まれ、ターゲットアプリケーションプログラムの起動が完了した後、組み込みＳＤＫによって提供される第１のＡＰＩを呼び出すことによって、オペレーティングシステムとの間でＢｉｎｄｅｒ接続を確立し、当該Ｂｉｎｄｅｒ接続によってオペレーティングシステムとデータ通信接続を確立し、当該データ通信接続によって、ターゲットアプリケーションプログラムがオペレーティングシステムにターゲット要求を送信し、オペレーティングシステムを指示してプロセッサのコア情報をフィードバックする。
【００４０】
その中、当該コア情報には、少なくともプロセッサコアアーキテクチャを示す情報が含まれている。選択可能には、当該コア情報には、各（プロセッサ）コアに対応するコアタイプとコア番号が含まれ、当該コアタイプは、第１の性能コアと第２の性能コアとを含む。例えば、当該コア情報は、コア番号０〜３の四つのプロセッサコアが第１の性能コアであり、コア番号４〜７の四つのプロセッサコアが第２の性能コアである。
【００４１】
プロセッサコアアーキテクチャは変化が発生しないため、可能な実施方式では、ターゲットアプリケーションプログラムが最初にコア情報を取得した後、コア情報内のプロセッサコアアーキテクチャを示す情報を記憶する。ターゲットアプリケーションプログラムは、今後に、当該プロセッサコア構造を直接に取得することができる。
【００４２】
ステップ７０２：オペレーティングシステムがターゲットアプリケーションプログラムにコア情報をフィードバックする。
【００４３】
これに対応して、オペレーティングシステムは、ターゲットアプリケーションプログラムと間のデータ通信接続によって、当該コア情報をフィードバックする。
【００４４】
端末に複数の組み込みＳＤＫのアプリケーションプログラムがインストールして実行される可能性があり、且つオペレーティングシステムは複数のアプリケーションプログラムとデータ通信接続を同時に確立する可能性があるため、フォアグラウンドアプリケーションプログラムの実行品質を確保するために、可能な実施方式では、オペレーティングシステムは、フォアグラウンドアプリケーションのフォアグラウンドアプリケーション識別子を取得し、ターゲットアプリケーションプログラムのアプリケーション識別子とフォアグラウンドアプリケーション識別子が一致するか否かを検出する。例示的には、図４に示すように、アプリケーションフレームワーク層２５０とインターフェース通信システム２４２との間にＢｉｎｄｅｒ接続が確立され、オペレーティングシステムは、アプリケーションフレームワーク層２５０からフォアグラウンドアプリケーション情報を取得し、当該フォアグラウンドアプリケーション情報中には、フォアグラウンドアプリケーション識別子が含まれる。
【００４５】
両者が一致する場合、オペレーティングシステムはターゲットアプリケーションプログラムにコア情報をフィードバックし、両者が一致していない場合、オペレーティングシステムはターゲットアプリケーションプログラムにコア情報をフィードバックしない。
【００４６】
不正なアプリケーションプログラムが端末プロセッサのコア情報を取得して、セキュリティリスクを引き起こすことを回避するために、可能な実施方式では、オペレーティングシステムはターゲット要求を受信した後、以下のようなステップを実行する。
【００４７】
一、オペレーティングシステムがターゲットアプリケーションプログラムのアプリケーション識別子を取得する。
【００４８】
二、ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属している場合、オペレーティングシステムがターゲットアプリケーションプログラムにコア情報をフィードバックし、予め設定されたアプリケーション識別子リストには、コアスケジューリングをサポートするアプリケーションプログラムのアプリケーション識別子が含まれる。
【００４９】
選択可能には、オペレーティングシステムにアプリケーション識別子リストを予め設定し、当該予め設定されたアプリケーション識別子リストには、プロセッサコアのスケジューリングをサポートするアプリケーションプログラムのアプリケーション識別子が含まれる。選択可能には、当該リストは、オペレーティングシステム開発者によって設定され、且つ暗号化されて端末内に記憶される。
【００５０】
ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属している場合、オペレーティングシステムがターゲットアプリケーションプログラムにコア情報をフィードバックする。
【００５１】
三、ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属していない場合、オペレーティングシステムがターゲット要求に応答しない。
【００５２】
ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属していない場合、オペレーティングシステムがターゲット要求に応答しなく、ターゲットアプリケーションプログラムにコア情報をフィードバックしない。
【００５３】
選択可能には、ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属していない場合、オペレーティングシステムは、ターゲットアプリケーションプログラムと間の接続を切断する。
【００５４】
なお、ターゲットアプリケーションプログラムが予め設定されたアプリケーション識別子リストに属しているか否かを検出するステップは、ターゲットアプリケーションプログラムとデータ通信接続を確立する時に実行することもでき、本実施例はこれに限定しない。
【００５５】
選択可能には、オペレーティングシステムは、データパケットの形式でコア情報を送信し、且つデータパケットのフォーマットは、オペレーティングシステムと予め規定する。その中、データパケットのフォーマットは、ジェイソン（ＪａｖａＳｃｒｉｐｔ  ＯＢｊｅｃｔ  Ｎｏｔａｔｉｏｎ、ＪＳＯＮ）、プロトコルバッファ（ＰｒｏｔｏｃｏｌＢｕｆｆｅｒ、ＰｒｏｔｏＢｕｆ）、又はカスタムフォーマットなどであってもよい。
【００５６】
ステップ７０３：ターゲットアプリケーションプログラムがコア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングしてターゲットアプリケーションプログラムのプロセスを実行する。
【００５７】
これに対応して、ターゲットアプリケーションプログラムがオペレーティングシステムによって送信されたデータパケットを受信した後、予め規定されたデータパケットフォーマットを使用して当該データパケットを解析することによって、その中に含まれるコア情報を取得する。
【００５８】
選択可能には、ターゲットアプリケーションプログラムは、コア情報及び自身のプロセスが処理性能に対するニーズに基づいて、対応するコアをスケジューリングして自身のプロセスを実行する。プロセッサコアのスケジューリングは、最終的にオペレーティングシステムによって制御されるため、ターゲットアプリケーションプログラムは、システムコールの方式を採用してプロセッサコアのスケジューリングを間接的に実現する。
【００５９】
その中、当該ターゲットコアは、第１の性能コア内の少なくとも一つ、又は、第２の性能コア内の少なくとも一つである。
【００６０】
選択可能には、ターゲットコアの数とプロセス内のスレッドの数が正相関関係であり、且つ関連付けられたスレッドは同一のターゲットコアで実行されるため、当該ターゲットコア内のコンテキスト情報を共有し、実行効率を向上させる。
【００６１】
可能な実施方式では、自身のプロセスが処理性能に対するニーズが性能閾値より高い場合、ターゲットアプリケーションプログラムは、第１の性能コアをスケジューリングして自身のプロセスを実行し、自身のプロセスが処理性能に対するニーズが性能閾値より低い場合、ターゲットアプリケーションプログラムは、第２の性能コアをスケジューリングして自身のプロセスを実行して、全体の消費電力を低減する。
【００６２】
選択可能には、バックグラウンド実行状態にあるアプリケーションプログラムが演算性能に対する要求が低いため、消費電力を削減するために、フォアグラウンド実行からバックグラウンド実行に切り替える場合、ターゲットアプリケーションプログラムは、システムコールの方式によって第２の性能コアをスケジューリングしてプロセスを実行する。
【００６３】
以上のように、本出願の実施例により提供されるプロセッサコアのスケジューリング方法では、ターゲットアプリケーションプログラムにＳＤＫを組み込むことによって、ターゲットアプリケーションプログラムがＳＤＫによって提供されるＡＰＩインターフェースを呼び出すことができ、オペレーティングシステムから端末プロセッサのコア情報を取得し、コア情報に基づいて適切なプロセッサコアをスケジューリングして現在のプロセスを実行し、本出願の実施例では、ターゲットアプリケーションプログラムがコア情報に基づいて対応するプロセッサコアを適応的にスケジューリングしてプロセスを実行することができ、オペレーティングシステムのタイムリーなスケジューリングができないことによって引き起こされるアプリケーションプログラムのフリーズ問題を回避し、アプリケーションプログラムの実行品質を最適化する効果を達成する。
【００６４】
選択可能には、コア情報には、各コアに対応するコアタイプとコア番号とを含み、コアタイプは、第１の性能コアと第２の性能コアとを含み、
ターゲットアプリケーションプログラムがコア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングしてターゲットアプリケーションプログラムのプロセスを実行するステップは、
ターゲットアプリケーションプログラムがプロセスに対応するターゲットコアを決定するステップと、
ターゲットアプリケーションプログラムがターゲットコアのコア番号とプロセスのプロセス識別子とに基づいて、システムコールの方式によってプロセスと各コアのバインダー度を設定するステップであって、プロセスとターゲットコアのバインダー度は、プロセスと他のコアのバインダー度より大きいステップと、
オペレーティングシステムがバインダー度に基づいてプロセスとターゲットコアをバインドするステップであって、バインドされたプロセスは、ターゲットコア上で実行するステップと、を含む。
【００６５】
選択可能には、ターゲットアプリケーションプログラムがプロセスに対応するターゲットコアを決定するステップは、
ターゲットアプリケーションプログラムが現在のアプリケーションシーンを取得するステップと、
現在のアプリケーションシーンが第１のアプリケーションシーンに属している場合、ターゲットアプリケーションプログラムが第１の性能コアをターゲットコアとして決定するステップと、
現在のアプリケーションシーンが第２のアプリケーションシーンに属している場合、ターゲットアプリケーションプログラム第２の性能コアをターゲットコアとして決定するステップと、を含み、
第１のアプリケーションシーンのプロセッサに対する性能ニーズは、第２のアプリケーションシーンのプロセッサに対する性能ニーズより高い。
【００６６】
選択可能には、コア情報には、各コアの負荷情報をさらに含み、
ターゲットアプリケーションプログラムがプロセスに対応するターゲットコアを決定するステップは、
ターゲットアプリケーションプログラムが現在のアプリケーションシーンを取得するステップと、
ターゲットアプリケーションプログラムが負荷情報に基づいて各コアの負荷を決定するステップと、
現在のアプリケーションシーンが第１の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムが、負荷が負荷閾値より低い第１の性能コアをターゲットコアとして決定するステップと、
現在のアプリケーションシーンが第２の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムが、負荷が負荷閾値より低い第２の性能コアをターゲットコアとして決定するステップと、を含み、
第１のアプリケーションシーンのプロセッサに対する性能ニーズは、第２のアプリケーションシーンのプロセッサに対する性能ニーズより高い。
【００６７】
選択可能には、ターゲットアプリケーションプログラムが組み込みＳＤＫによって提供される第１のＡＰＩを呼び出すことによって、オペレーティングシステムにターゲット要求を送信する前に、
ターゲットアプリケーションプログラムが組み込みＳＤＫによって提供される第２のＡＰＩを呼び出すことによって、オペレーティングシステムにスケジューリング要求を送信するステップであって、スケジューリング要求は、オペレーティングシステムを指示してターゲットアプリケーションプログラムを実行する難易度レベルをフィードバックするために用いられるステップと、
オペレーティングシステムがターゲットアプリケーションプログラムに難易度レベルをフィードバックするステップと、
難易度レベルが予め設定されたレベル閾値より高い場合、ターゲットアプリケーションプログラム組み込みＳＤＫによって提供される第１のＡＰＩを呼び出すことによって、オペレーティングシステムにターゲット要求を送信するステップを実行するステップと、
難易度レベルが予め設定されたレベル閾値より低い場合、ターゲットアプリケーションプログラムがコアスケジューリングを行わないステップと、をさらに含む。
【００６８】
可能な実施方式では、ターゲットアプリケーションプログラムは、プロセッサコアバインダー度（ａｆｆｉｎｉｔｙ、又は親和度と呼ばれる）を設定する方式を使用して、プロセスとターゲットコアをバインドすることによって、ターゲットコアでプロセスを実行することを実現する。以下、例示的な実施例を使用して説明する。
【００６９】
図８を参照すると、本出願の別の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。本実施例は、オペレーティングシステムと少なくとも一つのアプリケーションプログラムを実行する端末１００に当該方法を適用した例を説明する。当該方法は、以下のようなステップを含む。
ステップ８０１：ターゲットアプリケーションプログラムが組み込みＳＤＫによって提供される第１のＡＰＩを呼び出すことによって、オペレーティングシステムにターゲット要求を送信し、ターゲット要求は、オペレーティングシステムを指示してプロセッサのコア情報をフィードバックするために用いられ、コア情報は、第１の性能コアと第２の性能コアの配置状況を含む。
【００７０】
本ステップの実施方式は、上記のステップ７０１と類似であり、本実施例は、ここで詳しく説明しない。
【００７１】
ステップ８０２：オペレーティングシステムがターゲットアプリケーションプログラムにコア情報をフィードバックし、当該コア情報には、各コアに対応するコアタイプとコア番号とを含みる。
【００７２】
異なるモデルのプロセッサによって採用されているプロセッサコアアーキテクチャは異なる（コア数が異なり、高性能コア及び低性能コアの配置が異なる）ため、後続のスケジューリングの精度を確保するために、オペレーティングシステムによってフィードバックされたコア情報には、プロセッサコア構造を示す情報が含まれ、その中には、各コアに対応するコアタイプとコア番号が含まれる。
【００７３】
８コアプロセッサであるプロセッサを例として、８つのプロセッサコアに対応するコア番号は０〜７である。オペレーティングシステムによってフィードバックされたコア情報指示コア番号が０〜３であるプロセッサコアは第１の性能コアであり、コア番号が４〜７であるプロセッサコアは第２の性能コアである。
【００７４】
ステップ８０３：ターゲットアプリケーションプログラムがプロセスに対応するターゲットコアを決定する。
【００７５】
可能な実施方式では、ターゲットアプリケーションプログラムがフォアグラウンド実行状態にある場合、プロセスに対応するターゲットコアは、一定に保たれ、すなわち、ターゲットアプリケーションプログラムのプロセスは、常にターゲットコアで実行される。ターゲットアプリケーションプログラムがフォアグラウンドで実行する時に良好の実行品質をいずれも達成することを確保するために、ターゲットアプリケーションプログラムは、自身のプロセスの最大処理性能ニーズに基づいてターゲットコアを決定し、その中、当該最大処理性能ニーズは、アプリケーションプログラム開発者によってアプリケーションプログラムに予め書き込まれる。
【００７６】
例示的には、ターゲットアプリケーションプログラムが、メール系アプリケーションプログラム、天気系アプリケーションプログラムなど、プロセッサ演算能力に対するニーズが低いアプリケーションプログラムである場合、異なるアプリケーションシーンでのプロセッサ演算能力に対するニーズがいずれも低いため、ターゲットアプリケーションプログラムは、自身のプロセスに対応するターゲットコアを第２の性能コアとして決定し、ターゲットアプリケーションプログラムが、インスタントメッセージング系アプリケーションプログラム、ゲーム系アプリケーションプログラム、ウェブブラウズ系アプリケーションプログラム、ビデオ再生系アプリケーションプログラムなど、プロセッサ演算能力に対するニーズが高いアプリケーションプログラムである場合、ある特定のアプリケーションシーン（例えばゲーム対戦シーン、ビデオ通話シーンなど）でのプロセッサ演算能力に対するニーズがいずれも高いため、ターゲットアプリケーションプログラムは、自身のプロセスに対応するターゲットコアを第１の性能コアとして決定する。
【００７７】
しかしながら、同一のアプリケーションプログラムが異なるアプリケーションシーンでのプロセッサ演算能力に対するニーズが異なる可能性がある。例えば、ゲーム系アプリケーションプログラムを例として、ゲームのメインインターフェースシーンでは、プロセスプロセッサ演算能力に対するニーズが低く、ゲーム対戦シーンでは、プロセスプロセッサ演算能力に対するニーズが高い。ターゲットアプリケーションプログラムのプロセスが常にターゲットコアで実行された場合、プロセッサ演算リソースの浪費となり、端末の全体の消費電力を増加する。
【００７８】
したがって、別の可能な実施方式では、ターゲットアプリケーションプログラムがフォアグラウンド実行状態にある場合、ターゲットアプリケーションプログラムは、現在のアプリケーションシーンに基づいて、プロセスに対応するターゲットコアを動的に決定する。図９に示すように、本ステップは、以下のようなステップを含むことができる。
【００７９】
ステップ８０３Ａ：ターゲットアプリケーションプログラムが現在のアプリケーションシーンを取得する。
【００８０】
その中、アプリケーションシーンとは、ターゲットアプリケーションプログラムにおける異なる実行段階に対応するシーンを指し、例えば、ゲーム系アプリケーションプログラムについて、当該アプリケーションシーンは、ゲームデータローディングシーン、ゲームデータ更新シーン、ゲームのメインインターフェースシーン、及びゲーム対戦シーンなどを含む。
【００８１】
選択可能には、アプリケーションシーンが変化した場合、ターゲットアプリケーションプログラムは、現在のアプリケーションシーンを取得し、その中、アプリケーションシーンは、シーン番号を使用して示す。
【００８２】
ステップ８０３Ｂ：現在のアプリケーションシーンが第１の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムが第１の性能コアをターゲットコアとして決定する。
【００８３】
選択可能には、開発者がターゲットアプリケーションプログラムを開発する時、プロセッサ演算性能に対するアプリケーションシーンのニーズに基づいて、アプリケーションシーンを第１の性能アプリケーションシーンと第２の性能アプリケーションシーンに分割し、その中、第１の性能アプリケーションシーンでのプロセスのプロセッサに対する性能ニーズは、第２の性能アプリケーションシーンでのプロセスのプロセッサに対する性能ニーズより高い。
【００８４】
ゲーム系アプリケーションプログラムを例として、対応する第１の性能アプリケーションシーンは、ゲームショッピングモールインターフェースシーン、ゲームカットシーン、及びゲーム対戦シーンを含み、対応する第２の性能アプリケーションシーンは、ゲームリソース更新シーン、ゲームのメインインターフェースシーン、及びゲームアカウント登録シーンを含む。
【００８５】
さらに、ターゲットアプリケーションプログラムは、現在のアプリケーションシーンが第１の性能アプリケーションシーンに属しているか否かを検出し、該当する場合、ターゲットアプリケーションプログラムが第１の性能コアをターゲットコアとして決定し、該当しない場合、ターゲットアプリケーションプログラムは、現在のアプリケーションシーンが第２の性能アプリケーションシーンに属していると決定される。
【００８６】
ステップ８０２内の例を組み合わせて、現在のアプリケーションシーンが第１の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムは、コア番号が０と１である第１の性能コアをターゲットコアとして決定する。
【００８７】
ステップ８０３Ｃ：現在のアプリケーションシーンが第２の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラム第２の性能コアをターゲットコアとして決定する。
【００８８】
現在のアプリケーションシーンが第２の性能アプリケーションシーンに属している場合、消費電力を削減するために、ターゲットアプリケーションプログラムは、第２の性能コアをターゲットコアとして決定する。
【００８９】
ステップ８０２内の例を組み合わせて、現在のアプリケーションシーンが第２の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムは、コア番号が４である第２の性能コアをターゲットコアとして決定する。
【００９０】
ステップ８０４：ターゲットアプリケーションプログラムがターゲットコアのコア番号とプロセスのプロセス識別子とに基づいて、システムコールの方式によってプロセスと各コアのバインダー度を設定する。
【００９１】
可能な実現方式では、プロセスとプロセッサコアのバインダー度は、一つのマスク（ｍａｓｋ）を使用して示す。８コアプロセッサを例として、デフォルトの状況において、当該マスクは０ｘｆｆであり、２進数の１１１１１１１１に変換し、プロセスと各プロセッサコアのバインダー度が同じであることを示し、プロセスは、任意のプロセッサコアで実行することができる。
【００９２】
ターゲットアプリケーションプログラムのプロセスを指定のターゲットコアで実行させるために、可能な実施方式では、ターゲットアプリケーションプログラムは、オペレーティングシステムによって提供される関数を利用し、システムコールの方式を採用してプロセスと各コアのバインダー度を設定し（すなわち、マスクを設定する）、その中、プロセスとターゲットコアのバインダー度は、プロセスと他のコアのバインダー度より大きい。
【００９３】
バインダー度を設定する方式について、選択可能には、ターゲットアプリケーションプログラムは、ターゲットコアのコア番号に基づいて、マスク内のターゲットコアに対応する数字を１に設定し、マスク内の他のターゲットコアに対応する数字を０に設定することによって、ターゲットマスクを取得し、当該ターゲットマスクとプロセスのプロセス識別子（ＰＩＤ、Ｐｒｏｃｅｓｓ  ＩＤｅｎｔｉｔｙ）とに基づいて、プロセスと各コアのバインダー度を設定する。
【００９４】
例示的には、ターゲットコアがコア番号２及び３の第１の性能コアである場合、ターゲットアプリケーションプログラムは、０ｘ３０（２進数の００１１００００に対応する）であるターゲットマスクを生成することによって、ターゲットマスクとプロセス識別子ＰＩＤ００１とに基づいてプロセスとターゲットコアのバインダー度を設定する。
【００９５】
ステップ８０５：オペレーティングシステムがバインダー度に基づいてプロセスとターゲットコアをバインドする。
【００９６】
可能な実施方式では、オペレーティングシステムは、ターゲットマスクに基づいてプロセスと各コアのバインダー度を決定することによって、プロセスとターゲットコアをバインドする。
【００９７】
上記のステップ８０４内の例を組み合わせて、オペレーティングシステムは、ターゲットマスク０ｘ３０に基づいてターゲットコアのコア番号が２と３であることを決定することによって、二つの第１の性能コアをプロセスとバインドする。
【００９８】
バインドされたプロセスは、ターゲットコア上で実行され、バインダー度が変化した場合のみ、オペレーティングシステムは、ターゲットコアとプロセスとの間のバインドをキャンセルする。
【００９９】
選択可能には、バインド後、ターゲットコア上でターゲットアプリケーションプログラムのプロセスのみが実行されることによって、他のプロセスが処理性能に与える影響を回避し、ターゲットアプリケーションプログラムの実行品質を向上させる。
【０１００】
本実施例では、ターゲットアプリケーションプログラムは、ターゲットコアのコア番号とプロセスのプロセス番号とに基づいて、プロセスと各コアのバインダー度を設定して、オペレーティングシステムがバインダー度に基づいてプロセスとターゲットコアをバインドし、プロセスがターゲットコアでの実行を確保し、プロセスの実行品質を向上させる。
【０１０１】
また、ターゲットアプリケーションプログラムは、現在のアプリケーションシーンに基づいて、ターゲットコアを動的に決定し、高性能アプリケーションシーンでの実行品質を確保するとともに、低性能アプリケーションシーンでのプロセッサ消費電力を低減する。
【０１０２】
プロセスがコアをバインドする時、ターゲットコア上の他のプロセスの実行に影響を与えることを回避するために、可能な実施方式では、ターゲットアプリケーションプログラムは、同時に、現在のアプリケーションシーンとプロセッサコアの負荷状況とに基づいて、ターゲットコアを決定する。図９に基づいて、図１０に示すように、ステップ８０２は、ステップ８０２１に置き換えることができる。
【０１０３】
ステップ８０２１：オペレーティングシステムがターゲットアプリケーションプログラムにコア情報をフィードバックし、当該コア情報には、各コアに対応するコアタイプ及びコア番号と、各コアの負荷情報とが含まれる。
【０１０４】
ステップ８０２と相違していることは、オペレーティングシステムによってフィードバックされたコア情報は、各コアの現在の負荷情報をさらに含む。その中、当該負荷情報は、オペレーティングシステムがカーネル層をアクセスすることによって取得される。
【０１０５】
選択可能には、当該負荷情報は各コアの負荷を含み、当該負荷は、コア使用率で示すことができる。
【０１０６】
これに対応して、ステップ８０３Ａから８０３Ｃは、ステップ８０３Ｄから８０３Ｇに置き換えることができる。
ステップ８０３Ｄ：ターゲットアプリケーションプログラムが現在のアプリケーションシーンを取得する。
【０１０７】
本ステップの実施方式はステップ８０３Ａと類似し、本実施例は、ここで詳しく説明しない。
【０１０８】
ステップ８０３Ｅ：ターゲットアプリケーションプログラムが負荷情報に基づいて各コアの負荷を決定する。
【０１０９】
ターゲットアプリケーションプログラムが各負荷情報を取得した後、各コアの現在の負荷状況をさらに決定する。
【０１１０】
ステップ８０３Ｆ：現在のアプリケーションシーンが第１の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムが、負荷が負荷閾値より低い第１の性能コアをターゲットコアとして決定する。
【０１１１】
コアの負荷が高い場合、他のプロセスが実行されることを示し、他のプロセスに大きな影響を与えることを回避するために、ターゲットアプリケーションプログラムは、負荷が負荷閾値より低いコアからターゲットコアを決定する。例えば、当該負荷閾値のコア使用率は２０％である。
【０１１２】
例示的には、現在のアプリケーションシーンが第１の性能アプリケーションシーンであり、且つ第１の性能コア（コア番号が順次に０〜３である）の負荷が順次に３０％、２２％、０％、０％であり、ターゲットアプリケーションプログラムは、コア番号が２と３である第１の性能コアをターゲットコアとして決定する。
【０１１３】
ステップ８０３Ｇ：現在のアプリケーションシーンが第２の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムが、負荷が負荷閾値より低い第２の性能コアをターゲットコアとして決定する。
【０１１４】
上記のステップ８０３Ｆとは類似しており、現在のアプリケーションシーンが第２の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムは、負荷が負荷閾値より低い第２の性能コアからターゲットコアを決定する。
【０１１５】
本実施例では、ターゲットアプリケーションプログラムは、コアの負荷状況に基づいて、負荷が軽いコアをターゲットコアとして選択することによって、コアをバインドする時に他のプロセスに与える影響を低減する。
【０１１６】
異なる端末のプロセッサコアの性能に差異が存在するため、すべての端末がすべて上記の方法を使用してプロセッサコアをスケジューリングする必要がない（特に、ハイエンドプロセッサが配置される端末は、その低性能コアの演算能力もアプリケーションプログラムの正常実行を確保することができる）。選択可能には、ターゲットアプリケーションプログラムは、スケジューリングを行う前に、実行環境に応じてプロセッサコアのスケジューリングを行うか否かを判断する。図８に基づいて、図１１に示すように、ステップ８０１の前に、以下のようなステップをさらに含む。
【０１１７】
ステップ８０１１：ターゲットアプリケーションプログラムが組み込みＳＤＫによって提供される第２のＡＰＩを呼び出すことによって、オペレーティングシステムにスケジューリング要求を送信し、スケジューリング要求は、オペレーティングシステムを指示してターゲットアプリケーションプログラムを実行する難易度レベルをフィードバックするために用いられる。
【０１１８】
送信ターゲット要求と類似しており、ターゲットアプリケーションプログラムは、ＳＤＫ内の第２のＡＰＩ（第１のＡＰＩとは異なる）を呼び出すことによって、オペレーティングシステムにスケジューリング要求を送信する。選択可能には、当該スケジューリング要求には、アプリケーション識別子が含まれ、当該アプリケーション識別子は、ターゲットアプリケーションプログラムのパッケージ名であってもよい。
【０１１９】
その中、当該難易度レベルは、プロセッサの性能と負の相関関係があり、すなわち、プロセッサの性能が高いほど、ターゲットアプリケーションプログラムを実行する難易度レベルが低くなる。
【０１２０】
ステップ８０１２：オペレーティングシステムがターゲットアプリケーションプログラムに難易度レベルをフィードバックする。
【０１２１】
可能な実施方式では、オペレーティングシステムには、異なるアプリケーションプログラムと実行難易度レベルとの間の対応関係が予め設定され、当該対応関係は、オペレーティングシステム開発者によって提供され、且つ動的に更新することができる。
【０１２２】
例示的には、当該対応関係は表１のように示す。
【０１２３】
【表１】
2021518955.tif 000003
これに対応して、オペレーティングシステムは、ターゲットアプリケーションプログラムのアプリケーション識別子に基づいて、対応する難易度レベルを決定する。
【０１２４】
ステップ８０１３：難易度レベルが予め設定されたレベル閾値より高いか否かを検出する。
【０１２５】
さらに、ターゲットアプリケーションプログラムは、難易度レベルが予め設定されたレベル閾値より高いか否かを検出し、それより高い場合、プロセッサコアをスケジューリングする必要があると決定し、ステップ８０１を実行し、それより低い場合、プロセッサ性能が強いと決定し、ステップ８０１４を実行する。表１を組み合わせて、当該予め設定されたレベル閾値はＬｅｖｅｌ２であってもよい。
【０１２６】
ステップ８０１４：難易度レベルが予め設定されたレベル閾値より低い場合、ターゲットアプリケーションプログラムは、ターゲット要求を送信しない。
【０１２７】
選択可能には、コアスケジューリングを行う必要がない場合、オペレーティングシステムは、デフォルト方式を採用し、負荷に基づいてプロセッサコアをスケジューリングする。
【０１２８】
図１２を参照すると、本出願の一実施例により提供されるプロセッサコアのスケジューリング装置の構成ブロック図を示す。当該プロセッサコアのスケジューリング装置は、ソフトウェア、ハードウェア、又は両者の組み合わせによって端末の全部又は一部を実現する。当該装置は、ターゲットアプリケーションプログラムモジュール１２１０とオペレーティングシステムモジュール１２２０とを含む。
【０１２９】
ターゲットアプリケーションプログラムモジュール１２１０は、組み込みＳＤＫによって提供される第１のＡＰＩを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するために用いられ、前記ターゲット要求は、前記オペレーティングシステムを指示してプロセッサのコア情報をフィードバックするために用いられ、前記コア情報は、前記第１の性能コアと前記第２の性能コアの配置状況を含み、
オペレーティングシステムモジュール１２２０は、前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするために用いられ、
ターゲットアプリケーションプログラムモジュール１２１０は、前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行するために用いられる。
【０１３０】
選択可能には、前記コア情報には、各コアに対応するコアタイプとコア番号とを含み、前記コアタイプは、前記第１の性能コアと前記第２の性能コアとを含み、
前記ターゲットアプリケーションプログラムモジュール１２１０は、
前記プロセスに対応する前記ターゲットコアを決定し、
前記ターゲットコアのコア番号と前記プロセスのプロセス識別子とに基づいて、システムコールの方式によって前記プロセスと各コアのバインダー度を設定するために用いられ、前記プロセスと前記ターゲットコアのバインダー度は、前記プロセスと他のコアのバインダー度より大きく、
前記オペレーティングシステムモジュール１２２０は、前記バインダー度に基づいて前記プロセスと前記ターゲットコアをバインドするために用いられ、バインドされた前記プロセスは、前記ターゲットコア上で実行する。
【０１３１】
選択可能には、前記ターゲットアプリケーションプログラムモジュール１２１０は、さらに、
現在のアプリケーションシーンを取得し、
前記現在のアプリケーションシーンが第１の性能アプリケーションシーンに属している場合、前記第１の性能コアを前記ターゲットコアとして決定し、
前記現在のアプリケーションシーンが第２の性能アプリケーションシーンに属している場合、前記第２の性能コアを前記ターゲットコアとして決定するために用いられ、
前記第１のアプリケーションシーンのプロセッサに対する性能ニーズは、前記第２のアプリケーションシーンのプロセッサに対する性能ニーズより高い。
【０１３２】
選択可能には、前記コア情報には、各コアの負荷情報をさらに含み、
前記ターゲットアプリケーションプログラムモジュール１２１０は、さらに、
現在のアプリケーションシーンを取得し、
前記負荷情報に基づいて各コアの負荷を決定し、
前記現在のアプリケーションシーンが第１の性能アプリケーションシーンに属している場合、負荷が負荷閾値より低い前記第１の性能コアを前記ターゲットコアとして決定し、
前記現在のアプリケーションシーンが第２の性能アプリケーションシーンに属している場合、負荷が負荷閾値より低い前記第２の性能コアを前記ターゲットコアとして決定するために用いられ、
前記第１のアプリケーションシーンのプロセッサに対する性能ニーズは、前記第２のアプリケーションシーンのプロセッサに対する性能ニーズより高い。
【０１３３】
選択可能には、前記ターゲットアプリケーションプログラムモジュール１２１０は、さらに、前記組み込みＳＤＫによって提供される第２のＡＰＩを呼び出すことによって、前記オペレーティングシステムにスケジューリング要求を送信するために用いられ、前記スケジューリング要求は、前記オペレーティングシステムを指示して前記ターゲットアプリケーションプログラムを実行する難易度レベルをフィードバックするために用いられ、
前記オペレーティングシステムモジュール１２２０は、さらに、前記ターゲットアプリケーションプログラムに前記難易度レベルをフィードバックするために用いられ、
前記ターゲットアプリケーションプログラムモジュール１２１０は、さらに、前記難易度レベルが予め設定されたレベル閾値より高い場合、前記組み込みＳＤＫによって提供される第１のＡＰＩを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するステップを実行するために用いられ、
前記ターゲットアプリケーションプログラムモジュール１２１０は、さらに、前記難易度レベルが予め設定されたレベル閾値より低い場合、コアスケジューリングを行わないために用いられる。
【０１３４】
選択可能には、前記オペレーティングシステムモジュール１２２０は、さらに、
前記ターゲットアプリケーションプログラムのアプリケーション識別子を取得し、
前記ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属している場合、前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするステップを実行し、
前記ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属していない場合、前記ターゲット要求に応答しないために用いられ、
前記予め設定されたアプリケーション識別子リストには、コアスケジューリングをサポートするアプリケーションプログラムのアプリケーション識別子が含まれる。
【０１３５】
選択可能には、前記ターゲットアプリケーションプログラム１２１０は、さらに、フォアグラウンド実行からバックグラウンド実行に切り替える場合、システムコールの方式によって前記第２の性能コアをスケジューリングして前記プロセスを実行するために用いられる。
【０１３６】
以上のように、本出願の実施例により提供されるプロセッサコアのスケジューリング装置では、ターゲットアプリケーションプログラムにＳＤＫを組み込むことによって、ターゲットアプリケーションプログラムがＳＤＫによって提供されるＡＰＩインターフェースを呼び出すことができ、オペレーティングシステムから端末プロセッサのコア情報を取得し、コア情報に基づいて適切なプロセッサコアをスケジューリングして現在のプロセスを実行し、本出願の実施例では、ターゲットアプリケーションプログラムがコア情報に基づいて対応するプロセッサコアを適応的にスケジューリングしてプロセスを実行することができ、オペレーティングシステムのタイムリーなスケジューリングができないことによって引き起こされるアプリケーションプログラムのフリーズ問題を回避し、アプリケーションプログラムの実行品質を最適化する効果を達成する。
【０１３７】
本実施例では、ターゲットアプリケーションプログラムターゲットコアのコア番号とプロセスのプロセス番号とに基づいて、プロセスと各コアのバインダー度を設定して、オペレーティングシステムがバインダー度に基づいてプロセスとターゲットコアをバインドし、プロセスがターゲットコアでの実行を確保し、プロセスの実行品質を向上させる。
【０１３８】
また、ターゲットアプリケーションプログラムは、現在のアプリケーションシーンに基づいて、ターゲットコアを動的に決定し、性能アプリケーションシーンでの実行品質を確保するとともに、低性能アプリケーションシーンでのプロセッサ消費電力を低減する。
【０１３９】
本実施例では、ターゲットアプリケーションプログラムは、コアの負荷状況に基づいて、負荷が軽いコアをターゲットコアとして選択することによって、コアをバインドする時に他のプロセスに与える影響を低減する。
【０１４０】
本出願の実施例は、コンピュータ読み取り可能な媒体をさらに提供し、当該コンピュータ読み取り可能な媒体には、少なくとも一つの命令が記憶され、前記少なくとも一つの命令が前記プロセッサによってローディングして実行される場合、各実施例に記載のプロセッサコアのスケジューリング方法が実現される。
【０１４１】
本出願の実施例は、コンピュータプログラム製品をさらに提供し、当該コンピュータプログラム製品には、少なくとも一つの命令が記憶され、前記少なくとも一つの命令が前記プロセッサによってローディングして実行される場合、各実施例に記載のプロセッサコアのスケジューリング方法が実現される。
【０１４２】
当業者は、上記の一つ又は複数の例では、本出願の実施例によって説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせによって実現されることを認識すべきである。ソフトウェアを使用して実現する場合、これらの機能をコンピュータ読み取り可能な媒体に記憶したり、又はコンピュータ読み取り可能な媒体上の一つ又は複数の命令又はコードとして伝送することができる。コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体と通信媒体とを含み、その中、通信媒体は、一つの場所から別の場への転送を容易にするコンピュータプログラムの任意の媒体を含む。記憶媒体は、汎用又は専用コンピュータによってアクセスできる任意の利用可能な媒体であってもよい。 
【０１４３】
以上には、本発明の実施例における好ましい実施例が開示されているに過ぎない。本発明の実施例を限定することなく、本発明の実施例の真髄及び原則を逸脱しない範囲で、様々な修正、同等変換や改善を行うことは、いずれも本発明の実施例の保護範囲に属する。
【図１】
2021518955.tif 000004
【図２】
2021518955.tif 000005
【図３】
2021518955.tif 000006
【図４】
2021518955.tif 000007
【図５】
2021518955.tif 000008
【図６】
2021518955.tif 000009
【図７】
2021518955.tif 000010
【図８】
2021518955.tif 000011
【図９】
2021518955.tif 000012
【図１０】
2021518955.tif 000013
【図１１】
2021518955.tif 000014
【図１２】
2021518955.tif 000015
【国際調査報告】
2021518955.tif 000016
2021518955.tif 000017
2021518955.tif 000018
2021518955.tif 000019