JP7100154B2 - プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体 - Google Patents

プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体 Download PDF

Info

Publication number
JP7100154B2
JP7100154B2 JP2020558002A JP2020558002A JP7100154B2 JP 7100154 B2 JP7100154 B2 JP 7100154B2 JP 2020558002 A JP2020558002 A JP 2020558002A JP 2020558002 A JP2020558002 A JP 2020558002A JP 7100154 B2 JP7100154 B2 JP 7100154B2
Authority
JP
Japan
Prior art keywords
core
target
application program
performance
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020558002A
Other languages
English (en)
Other versions
JP7100154B6 (ja
JP2021518955A (ja
Inventor
チョン、チェ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN201810362695.6A external-priority patent/CN108536538A/zh
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Publication of JP2021518955A publication Critical patent/JP2021518955A/ja
Publication of JP7100154B2 publication Critical patent/JP7100154B2/ja
Application granted granted Critical
Publication of JP7100154B6 publication Critical patent/JP7100154B6/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • G09G2330/023Power management, e.g. power saving using energy recovery or conservation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/08Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本出願は、2019年04月20日に中国国家知識産権局に提出された、特許出願の番号が201810362695.6であり、発明名称が「プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体」である中国特許出願の優先権を主張するものであり、当該中国特許出願の全ての内容は参照により本願に組み入れられる。
本出願の実施例は、端末技術の分野に関し、特に、プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体に関する。
プロセッサ製造技術の継続的な改善に伴い、端末全体の処理能力を向上させるために、多くのメーカーが端末にマルチコアのプロセッサを配置する。
性能と消費電力などの観点から、マルチコアを含むプロセッサは、Big-Littleアーキテクチャを採用する。Big-Littleアーキテクチャを採用するプロセッサには、複数の高性能コアと複数の低性能コアが含まれ、その中、高性能コアは、複雑な演算を処理するために用いられ、低性能コアは、簡単な演算を処理するために用いられる。しかしながら、関連技術には合理的なプロセッサコアのスケジューリング方法が提供されていない。
本出願の実施例は、プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体を提供する。前記技術案は以下のとおりである
一態様では、端末に適用されるリソース配置方法を提供し、前記端末内のプロセッサは、少なくとも一つの第1の性能コアと少なくとも一つの第2の性能コアとを含み、前記第1の性能コアの性能は、前記第2の性能コアの性能より高く、前記端末は、オペレーティングシステムと少なくとも一つのアプリケーションプログラムとを実行し、前記方法は、
ターゲットアプリケーションプログラムが組み込みソフトウェア開発キット(Software Development Kit、SDK)によって提供される第1のアプリケーションプログラミングインターフェース(Application Programming Interface、API)を呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するステップであって、前記ターゲット要求は、前記オペレーティングシステムを指示してプロセッサのコア情報をフィードバックするために用いられ、前記コア情報は、前記第1の性能コアと前記第2の性能コアの配置状況を含むステップと、
前記オペレーティングシステムが前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするステップと、
前記ターゲットアプリケーションプログラムが前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行するステップと、を含む。
別の態様では、端末に適用されるプロセッサコアのスケジューリング装置を提供し、前記端末内のプロセッサは、少なくとも一つの第1の性能コアと少なくとも一つの第2の性能コアとを含み、前記第1の性能コアの性能は、前記第2の性能コアの性能より高く、前記端末は、オペレーティングシステムと少なくとも一つのアプリケーションプログラムとを実行し、前記装置は、
組み込みSDKによって提供される第1のAPIを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するためのターゲットアプリケーションプログラムモジュールであって、前記ターゲット要求は、前記オペレーティングシステムを指示してプロセッサのコア情報をフィードバックするために用いられ、前記コア情報は、前記第1の性能コアと前記第2の性能コアの配置状況を含むターゲットアプリケーションプログラムモジュールと、
前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするためのオペレーティングシステムモジュールと、
前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行するためのターゲットアプリケーションプログラムモジュールと、を含む。
別の態様では、プロセッサとメモリとを含む端末を提供し、前記メモリには、少なくとも一つの命令が記憶され、前記少なくとも一つの命令が前記プロセッサによって実行される場合、第1の態様に記載のプロセッサコアのスケジューリング方法が実現される。
別の態様では、コンピュータ読み取り可能な記憶媒体を提供し、前記記憶媒体には、少なくとも一つの命令が記憶され、前記少なくとも一つの命令がプロセッサによって実行される場合、第1の態様に記載のプロセッサコアのスケジューリング方法が実現される。
本出願の例示的な実施例により提供される端末の概略構成図である。 端末におけるアプリケーションプログラムとオペレーティングシステムとの通信プロセスの実施の概略図である。 本出願の例示的な実施例により提供される端末の概略構成図である。 図3に示す端末におけるアプリケーションプログラムとオペレーティングシステムとの通信プロセスの実施の概略図である。 図3に示す端末におけるアプリケーションプログラムとオペレーティングシステムとの通信プロセスの実施の概略図である。 本出願の別の例示的な実施例により提供される端末の概略構成図である。 本出願の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。 本出願の別の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。 本出願の別の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。 本出願の別の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。 本出願の別の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。 本出願の一実施例により提供されるプロセッサコアのスケジューリング装置の構成ブロック図を示す。
本発明の目的、技術案、及び利点をより明確にするために、以下、図面を組み合わせて本発明の実施方式をさらに詳細に説明する。
本明細書で言及される「複数」は、二つ以上を指す。「及び/又は」は、関連するオブジェクトの関連関係を示し、三つの関係が存在する可能性を示し、例えば、A及び/又はBは、Aが単独で存在するか、AとBが同時に存在するか、Bが単独で存在する三つの場合を示すことができる。文字「/」は、一般的に、前後の関連オブジェクトが「又は」の関係であることを示す。
図1を参照すると、本出願の例示的な実施例により提供される端末100の構造ブロック図を示す。当該端末100は、スマートフォン、タブレットコンピュータ、電子書籍などのアプリケーションプログラムを実行できる電子機器であってもよい。本出願における端末100は、プロセッサ110、メモリ120、及び入出力装置130のうちの一つ又は複数の以下のようなコンポーネントを含むことができる。
プロセッサ110は、一つの又は複数の処理コアを含むことができる。プロセッサ110は、様々なインターフェースと回線を使用してすべての端末100内の各部分を接続し、メモリ120に記憶されている命令、プログラム、コードセット又は命令セットを実行し、及びメモリ120に記憶されているデータを呼び出すことによって、端末100の様々な機能と処理データを実行する。選択可能には、プロセッサ110は、デジタル信号処理(Digital Signal Processing、DSP)、フィールドプログラマブルゲートアレイ(Field-Programmable Gate Array、FPGA)、プログラマブルロジックアレイ(Programmable Logic Array、PLA)のうちの少なくとも一つのハードウェア形式で実現することができる。プロセッサ110は、中央処理装置(Central Processing Unit、CPU)、画像処理プロセッサ(Graphics Processing Unit、GPU)、及びモデムなどのうちの一つ又は複数の組み合わせを統合することができる。その中、CPUは、主に、オペレーティングシステム、ユーザインターフェース、及びアプリケーションプログラムなどを処理し、GPUは、表示コンテンツのレンダリングと描画を担当するために用いられ、モデムは、無線通信を処理するために用いられる。上記のモデムは、プロセッサ110に統合されず、一つの通信チップによって単独に実現されることができることを理解されたい。
本出願の実施例では、プロセッサ110に統合されているCPUは、少なくとも二つのコアを含み、且つ少なくとも二つのコアには、少なくとも一つの第1の性能コア(高性能コア)と少なくとも一つの第2の性能コア(低性能コア)とを含み、その中、単一の第1の性能コアの処理能力は、単一の第2の性能コアの処理能力より高い。例えば、当該CPUには、8つのコアが含まれ、その中、4つのコアは第1の性能コアであり、他の4つのコアは第2の性能コアである。
選択可能には、第1の性能コアの動作周波数は、第2の性能コアの動作周波数より高く、且つ第1の性能コアの消費電力は、第2の性能コアの消費電力より高い。例えば、第1の性能コアの動作周波数は2.0GHzであり、第2の性能コアの動作周波数は1.2GHzである。本出願の実施例は、二つのプロセッサコアの動作周波数に対して限定しない。
メモリ120は、ランダムアクセスメモリ(Random Access Memory、RAM)を含むことができ、読み取り専用メモリ(Read-Only Memory)も含むことができる。選択可能には、当該メモリ120は、非一時的なコンピュータ読み取り可能な媒体(non-transitory computer-readable storage medium)を含む。メモリ120は、命令、プログラム、コード、コードセット、又は命令セットを記憶するために使用することができる。メモリ120は、ストレージプログラム領域とストレージデータ領域とを含むことができ、その中、ストレージプログラム領域は、オペレーティングシステムを実現するための命令、少なくとも一つの機能を実現するための命令(例えばタッチ機能、音声再生機能、画像再生機能など)、以下の各方法の実施例を実現するための命令などを記憶することができ、当該オペレーティングシステムは、アンドロイド(Android)システム(Androidシステム基づいて深さ開発したシステムを含む)、アップル社が開発したIOSシステム(IOSシステム基づいて深さ開発したシステムを含む)、又は他のシステムであってもよい。ストレージデータ領域は、端末100が使用中に作成したデータ(例えば電話帳、音声ビデオデータ、チャット記録データ)などを記憶することもできる。
メモリ120は、オペレーティングシステム空間とユーザ空間に分割することができ、オペレーティングシステムは、オペレーティングシステム空間で実行され、ネイティブ及びサードパーティアプリケーションは、ユーザ空間で実行される。異なるサードパーティアプリケーションがいずれも良い実行効果に達することができることを確保するために、オペレーティングシステムは、異なるサードパーティアプリケーションに対して、対応するシステムリソースを割り当てる。しかしながら、同一のサードパーティアプリケーション内の異なるアプリケーションシーンがシステムリソースに対するニーズにも差異が存在し、例えば、ローカルリソースローディングシーンでは、サードパーティアプリケーションはディスクの読み出し速度に対する要求が高く、動画レンダリングシーンでは、サードパーティアプリケーションは、GPU性能に対する要求が高い。オペレーティングシステムとサードパーティアプリケーションとの間は互いに独立しており、オペレーティングシステムは、サードパーティアプリケーション現在のアプリケーションシーンを即時に感知することができないことが多く、オペレーティングシステムは、サードパーティアプリケーションの具体的なアプリケーションシーンに基づいて対応的にシステムリソースの適応を行うことができない。
また、サードパーティアプリケーションの実行品質は、オペレーティングシステムのリアルタイムの実行状態にも関連付けられており、サードパーティアプリケーションがオペレーティングシステムの現在の実行状態を即時に取得できない場合、その実行品質にも影響を与える。例えば、端末の温度が高すぎる場合、サードパーティアプリケーションは、相変わらず第1の性能モードで実行し、端末温度の継続的な上昇によってシステムクラッシュを引き起こし、サードパーティアプリケーションも実行しなくなる。
図2に示すように、サードパーティアプリケーションの実行品質を向上させるために、サードパーティアプリケーションとオペレーティングシステムとの間のデータ通信が必要であり、オペレーティングシステムがサードパーティアプリケーションの現在のシーン情報を随時に取得し、現在のシーン基づいて対応的にシステムリソースの適応を行うとともに、サードパーティアプリケーションは、オペレーティングシステムの実行状態をリアルタイムに取得し、当該実行状態基づいて対応的にプログラム最適化を行うことができる。
Androidシステムであるオペレーティングシステムを例として、メモリ120に記憶されたプログラムとデータは、図3に示すように、メモリ120には、Linuxカーネル層220、システム実行ライブラリ層240、アプリケーションフレームワーク層260、及びアプリケーション層280が記憶されることができ、その中、Linuxカーネル層220、システム実行ライブラリ層240、及びアプリケーションフレームワーク層260は、オペレーティングシステム空間に属し、アプリケーション層280はユーザ空間に属する。Linuxカーネル層220は、端末100の様々なハードウェアに、ディスプレイドライバ、オーディオドライバ、カメラドライバ、ブルートゥースドライバ、Wi-Fiドライバ、及び電力管理などのような下層のドライバを提供する。システム実行ライブラリ層240は、いくつかのC/C++ライブラリによってAndroidシステムに主要な特性サポートを提供する。例えば、SQLiteライブラリは、データベースのサポートを提供し、OpenGL/ESライブラリは、3D描画のサポートを提供し、WeBkitライブラリは、ブラウザカーネルのサポートなどを提供する。システム実行ライブラリ層240には、アンドロイドランタイムライブラリ(Android Runtime)がさらに提供され、これは、主に、開発者がJava言語を使用してAndroidアプリケーションを作成できるいくつかのコアライブラリを提供する。アプリケーションフレームワーク層260は、アプリケーションプログラムを構築する時に使用できる様々なAPIを提供し、開発者は、アクティビティ管理、ウィンドウ管理、ビュー管理、通知管理、コンテンツプロバイダ、パッケージ管理、通話管理、リソース管理、ポジショニング管理など、これらのAPIを使用して自体のアプリケーションプログラムを構築することもできる。アプリケーション層280には、少なくとも一つのアプリケーションプログラムが実行され、これらのアプリケーションプログラムは、連絡先プログラム、ショートメッセージプログラム、クロックプログラム、カメラアプリケーションなどのオペレーティングシステムに付属するネイティブアプリケーションプログラムであってもよく、ゲーム系アプリケーションプログラム、インスタントメッセージングプログラム、写真美化プログラム、ショッピングプログラムなどの第三者の開発者が開発したサードパーティアプリケーションであってもよい。
オペレーティングシステムとサードパーティアプリケーションとの間の実現可能な通信方式は、図4に示すように、サードパーティアプリケーションに、オペレーティングシステムと通信するためのSDKが組みこまれている。
その中、SDKは、いくつかの抽象的なAPIを含み、オペレーティングシステム開発者によってサードパーティアプリケーション開発者に提供し、サードパーティアプリケーション開発者によって当該SDKをサードパーティアプリケーションに組み込む。このようなサードパーティアプリケーションをインストールしてオペレーティングシステムで実行した後、SDKによって提供されるAPIを呼び出してオペレーティングシステムと通信することができる。
図4に示すように、システム実行ライブラリ層240は、インターフェース通信システム242を追加的に含むことができる。当該インターフェース通信システム242は、オペレーティングシステム内の一つのサブシステムとすることができ、又はオペレーティングシステムに組み込まれた一つのアプリケーションプログラムとすることもできる。インターフェース通信システム242にSDKインターフェースが設定され、サードパーティアプリケーションは、組み込みSDKのAPIを呼び出して、当該SDKインターフェース間とバインダー(Binder)の方式によってデータ通信を行う。このように、サードパーティアプリケーションのアプリケーションシーンに関するデータは、SDKによってオペレーティングシステムに伝送することができ、且つ/又は、オペレーティングシステム実行状態に関するデータも、SDKによってサードパーティアプリケーションに伝送することができる。
別の実現可能な通信方式では、図5に示すように、サードパーティアプリケーションは、ソケット(Socket)方式でインターフェース通信システム242のSocketインターフェースと持続的接続を確立することができ、サードパーティアプリケーションとオペレーティングシステムとの間には、当該持続的接続によって通信することができる。
図4及び図5に示すように、インターフェース通信システム242に異なるポリシーモジュールを設定することができ、サードパーティアプリケーションによって送信されたデータを受信した後、インターフェース通信システム242は、サードパーティアプリケーションに対応するポリシーモジュールを使用してデータを分析し、対応するリソース配分最適化ポリシーを取得する。分析して取得されたリソース配分最適化ポリシーに基づいて、インターフェース通信システム242は、制御インターフェースを介してLinuxカーネル層220に通知してシステムリソース配分最適化を行う。その中、当該制御インターフェースは、Sysfsの方式を採用してLinuxカーネル層220と通信することができる。
選択可能には、インターフェース通信システム242内の異なるポリシーモジュールは、異なるサードパーティアプリケーション(すなわち、異なるアプリケーションプログラムに対してポリシーモジュールを設定する)に対応することができ、又は、異なるポリシーモジュールは、異なるタイプのサードパーティアプリケーション(すなわち、異なるタイプのアプリケーションプログラムに対してポリシーモジュールを設定する)に対応することができ、又は、異なるポリシーモジュールは、異なるシステムリソース(すなわち、異なるシステムリソースに対してポリシーモジュールを設定する)に対応することができ、又は、異なるポリシーモジュールは、異なるアプリケーションシーン(すなわち、異なるアプリケーションシーンに対してポリシーモジュールを設定する)に対応することができ、本出願の実施例は、ポリシーモジュールの具体的な設定方式に対して限定しない。
選択可能には、図4又は5に示すように、サードパーティアプリケーションに異なるポリシーモジュールを設定することができ、オペレーティングシステムによって送信された実行状態に関するデータを受信した後、サードパーティアプリケーションは、異なるポリシーモジュールによって異なるプログラム最適化ポリシーを作成し、プログラム最適化ポリシーに基づいてプログラムを最適化する。
その中、インターフェース通信システム242は、Binderの方式でアプリケーションフレームワーク層260と通信することもでき、アプリケーションフレームワーク層260によって送信されたフォアグラウンドアプリケーション情報を受信するために用いられ、フォアグラウンドアプリケーション情報に基づいて、現在のフォアグラウンドで実行されているサードパーティアプリケーションのみに対してシステムリソース最適化を行う。
IOSシステムであるオペレーティングシステムを例として、メモリ120に記憶されているプログラムとデータでは、図6に示すように、IOSシステムは、コアオペレーティングシステム層320(Core OS layer)、コアサービス層340(Core Services layer)、メディア層360(Media layer)、タッチ可能層380(Cocoa Touch Layer)を含む。コアオペレーティングシステム層320は、オペレーティングシステムカーネル、ドライバプログラム、及び下層プログラムフレームワークを含み、これらの下層プログラムフレームワークは、ハードウェアに近い機能を提供して、コアサービス層340に位置するプログラムフレームワークによって使用される。コアサービス層340は、基礎(Foundation)フレームワーク、アカウントフレームワーク、広告フレームワーク、データ記憶フレームワーク、ネットワーク接続フレームワーク、地理的位置フレームワーク、モーションフレームなど、アプリケーションプログラムに必要なシステムサービス及び/又はプログラムフレームワークを提供する。メディア層360は、グラフィック画像に関するインターフェース、オーディオ技術に関するインターフェース、ビデオ技術に関するインターフェース、音声ビデオ伝送技術の無線再生(AirPlay)インターフェースなど、アプリケーションプログラムにオーディオビジュアルに関連するインターフェースを提供する。タッチ可能層380は、アプリケーションプログラム開発のために様々な一般的に使用されるインターフェースに関するフレームワークを提供する。タッチ可能層380は、ユーザ在端末100でのタッチインタラクション操作を担当する。例えば、ローカル通知サービス、リモートプッシュサービス、広告フレームワーク、ゲームツールフレームワーク、メッセージユーザインターフェースインターフェース(User Interface、UI)フレームワーク、ユーザインターフェースUIKitフレームワーク、地図フレームワークなどである。
図6に示すフレームワークでは、ほとんどのアプリケーションプログラムに関連付けられたフレームワークは、コアサービス層340内の基礎フレームワークとタッチ可能層380内のUIKitフレームワークとを含むが、これらに限定されない。基礎フレームワークは、多くの基本的なオブジェクトクラスとデータタイプを提供し、すべてのアプリケーションプログラムに基本的なシステムサービスを提供し、UIとは無関係である。UIKitフレームワークによって提供されるクラスは、基礎のUIクラスライブラリであり、タッチに基づいてユーザインターフェースを作成するために用いられ、IOSアプリケーションプログラムは、UIKitフレームワーク基づいてUIを提供するため、ユーザインターフェースと、描画、処理、及びユーザインタラクションイベントと、応答ジェスチャなどを構築するためのアプリケーションプログラムの基礎アーキテクチャを提供する。
その中、IOSシステムにおいて、サードパーティアプリケーションとオペレーティングシステムとのデータ通信を実現する方式及び原理は、Androidシステムを参照することができ、ここでは詳しく説明しない。
入出力装置130は、タッチディスプレイスクリーンを含むことができ、当該タッチディスプレイスクリーンは、ユーザが指、タッチペンなどの任意の適切な物体を使用してその上又は近くのタッチ操作を受信し、及び各アプリケーションプログラムのユーザインターフェースを表示する。タッチディスプレイスクリーンは、通常、端末100のフロントパネルに設定する。タッチディスプレイスクリーンは、フルスクリーン、曲面スクリーン、又は異型スクリーンとして設計されてもよい。タッチディスプレイスクリーンは、さらに、フルスクリーンと曲面スクリーンの組み合わせ、及び異型スクリーンと曲面スクリーンの組み合わせとして設計されてもよく、本出願の実施例は、これに限定されない。
さらに、当業者は、上記の図面に示される端末100の構造は、端末100に対する制限を構成せず、端末は、図示しているものよりも多く又はより少ないコンポーネント、又はいくつかのコンポーネントの組み合わせ、又は異なるコンポーネントの配置を含むことができることを理解されたい。例えば、端末100は、無線周波数回路、入力ユニット、センサ、オーディオ回路、ワイヤレスフィデリティ(Wireless Fidelity、WiFi)モジュール、電源、ブルートゥースモジュールなどのコンポーネントをさらに含み、ここで繰り返し説明しない。
関連技術では、プロセッサコアをスケジューリングする動作は、スケジューラによって現在の負荷状況に基づいて独自的に完成する。例えば、低性能コアの負荷が大きすぎることが検出された場合、スケジューラは、高性能コアの実行プロセスをスケジューリングし、高性能コアの負荷が小さいことが検出された場合、スケジューラは、低性能コアの実行プロセスをスケジューリングする。
しかしながら、負荷に基づいてプロセッサコアをスケジューリングすることはヒステリシス性がある。可能なシーンでは、あるアプリケーションプログラムのプロセスに短いアイドル状態が発生した場合、この時に負荷が小さいため、スケジューラは、低性能コアをスケジューリングして当該プロセスを実行するが、当該プロセスが再びビジー状態になる場合、スケジューラは負荷が大きすぎることを検出した場合のみ、プロセッサコアをスケジューリングし、タイムリーなスケジューリングができず、タイムリーなスケジューリングができなくなるとアプリケーションプログラムのフリーズを引き起こし、アプリケーションプログラムの実行品質に影響を与える。
上記の問題を回避するために、本出願の実施例では、アプリケーションプログラムは、組み込みSDKによって提供されるAPIによってオペレーティングシステムとデータ通信を行い、オペレーティングシステムからプロセッサのコア情報を取得することによって、自身のプロセスがプロセッサ性能に対するニーズとコア情報とに基づいて、システムコールの方式を採用してプロセッサコアの動的スケジューリングを実現する。負荷に基づいてプロセッサコアのスケジューリングを行うことに比較して、本出願の実施例により提供される方法を採用することは、コアスケジューリングのヒステリシス性を回避し、コアスケジューリングのヒステリシス性を向上させることによって、アプリケーションプログラムにフリーズなどの問題が発生することを回避し、アプリケーションプログラムの実行の円滑性を向上させることができる。
図7を参照すると、本出願の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。本実施例は、オペレーティングシステムと少なくとも一つのアプリケーションプログラムを実行する端末100に当該方法を適用した例を説明する。当該方法は、以下のようなステップを含む。
ステップ701:ターゲットアプリケーションプログラムが組み込みSDKによって提供される第1のAPIを呼び出すことによって、オペレーティングシステムにターゲット要求を送信し、ターゲット要求は、オペレーティングシステムを指示してプロセッサのコア情報をフィードバックするために用いられ、コア情報は、第1の性能コアと第2の性能コアの配置状況を含む。
ターゲットアプリケーションプログラムは、オペレーティングシステム開発者によって提供されるSDKが組み込まれたサードパーティアプリケーションであってもよく、当該ターゲットアプリケーションプログラムは、ゲーム系アプリケーションプログラム、ビデオ再生系アプリケーションプログラム、及びインスタントメッセージングアプリケーションプログラムなどであってもよく、本出願の実施例は、ターゲットアプリケーションプログラムに対して具体的に限定しない。
組み込まれたSDKにいくつかのAPIが含まれ、ターゲットアプリケーションプログラムの起動が完了した後、組み込みSDKによって提供される第1のAPIを呼び出すことによって、オペレーティングシステムとの間でBinder接続を確立し、当該Binder接続によってオペレーティングシステムとデータ通信接続を確立し、当該データ通信接続によって、ターゲットアプリケーションプログラムがオペレーティングシステムにターゲット要求を送信し、オペレーティングシステムを指示してプロセッサのコア情報をフィードバックする。
その中、当該コア情報には、少なくともプロセッサコアアーキテクチャを示す情報が含まれている。選択可能には、当該コア情報には、各(プロセッサ)コアに対応するコアタイプとコア番号が含まれ、当該コアタイプは、第1の性能コアと第2の性能コアとを含む。例えば、当該コア情報は、コア番号0~3の四つのプロセッサコアが第1の性能コアであり、コア番号4~7の四つのプロセッサコアが第2の性能コアである。
プロセッサコアアーキテクチャは変化が発生しないため、可能な実施方式では、ターゲットアプリケーションプログラムが最初にコア情報を取得した後、コア情報内のプロセッサコアアーキテクチャを示す情報を記憶する。ターゲットアプリケーションプログラムは、今後に、当該プロセッサコア構造を直接に取得することができる。
ステップ702:オペレーティングシステムがターゲットアプリケーションプログラムにコア情報をフィードバックする。
これに対応して、オペレーティングシステムは、ターゲットアプリケーションプログラムと間のデータ通信接続によって、当該コア情報をフィードバックする。
端末に複数の組み込みSDKのアプリケーションプログラムがインストールして実行される可能性があり、且つオペレーティングシステムは複数のアプリケーションプログラムとデータ通信接続を同時に確立する可能性があるため、フォアグラウンドアプリケーションプログラムの実行品質を確保するために、可能な実施方式では、オペレーティングシステムは、フォアグラウンドアプリケーションのフォアグラウンドアプリケーション識別子を取得し、ターゲットアプリケーションプログラムのアプリケーション識別子とフォアグラウンドアプリケーション識別子が一致するか否かを検出する。例示的には、図4に示すように、アプリケーションフレームワーク層250とインターフェース通信システム242との間にBinder接続が確立され、オペレーティングシステムは、アプリケーションフレームワーク層250からフォアグラウンドアプリケーション情報を取得し、当該フォアグラウンドアプリケーション情報中には、フォアグラウンドアプリケーション識別子が含まれる。
両者が一致する場合、オペレーティングシステムはターゲットアプリケーションプログラムにコア情報をフィードバックし、両者が一致していない場合、オペレーティングシステムはターゲットアプリケーションプログラムにコア情報をフィードバックしない。
不正なアプリケーションプログラムが端末プロセッサのコア情報を取得して、セキュリティリスクを引き起こすことを回避するために、可能な実施方式では、オペレーティングシステムはターゲット要求を受信した後、以下のようなステップを実行する。
一、オペレーティングシステムがターゲットアプリケーションプログラムのアプリケーション識別子を取得する。
二、ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属している場合、オペレーティングシステムがターゲットアプリケーションプログラムにコア情報をフィードバックし、予め設定されたアプリケーション識別子リストには、コアスケジューリングをサポートするアプリケーションプログラムのアプリケーション識別子が含まれる。
選択可能には、オペレーティングシステムにアプリケーション識別子リストを予め設定し、当該予め設定されたアプリケーション識別子リストには、プロセッサコアのスケジューリングをサポートするアプリケーションプログラムのアプリケーション識別子が含まれる。選択可能には、当該リストは、オペレーティングシステム開発者によって設定され、且つ暗号化されて端末内に記憶される。
ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属している場合、オペレーティングシステムがターゲットアプリケーションプログラムにコア情報をフィードバックする。
三、ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属していない場合、オペレーティングシステムがターゲット要求に応答しない。
ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属していない場合、オペレーティングシステムがターゲット要求に応答しなく、ターゲットアプリケーションプログラムにコア情報をフィードバックしない。
選択可能には、ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属していない場合、オペレーティングシステムは、ターゲットアプリケーションプログラムと間の接続を切断する。
なお、ターゲットアプリケーションプログラムが予め設定されたアプリケーション識別子リストに属しているか否かを検出するステップは、ターゲットアプリケーションプログラムとデータ通信接続を確立する時に実行することもでき、本実施例はこれに限定しない。
選択可能には、オペレーティングシステムは、データパケットの形式でコア情報を送信し、且つデータパケットのフォーマットは、オペレーティングシステムと予め規定する。その中、データパケットのフォーマットは、ジェイソン(JavaScript OBject Notation、JSON)、プロトコルバッファ(ProtocolBuffer、ProtoBuf)、又はカスタムフォーマットなどであってもよい。
ステップ703:ターゲットアプリケーションプログラムがコア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングしてターゲットアプリケーションプログラムのプロセスを実行する。
これに対応して、ターゲットアプリケーションプログラムがオペレーティングシステムによって送信されたデータパケットを受信した後、予め規定されたデータパケットフォーマットを使用して当該データパケットを解析することによって、その中に含まれるコア情報を取得する。
選択可能には、ターゲットアプリケーションプログラムは、コア情報及び自身のプロセスが処理性能に対するニーズに基づいて、対応するコアをスケジューリングして自身のプロセスを実行する。プロセッサコアのスケジューリングは、最終的にオペレーティングシステムによって制御されるため、ターゲットアプリケーションプログラムは、システムコールの方式を採用してプロセッサコアのスケジューリングを間接的に実現する。
その中、当該ターゲットコアは、第1の性能コア内の少なくとも一つ、又は、第2の性能コア内の少なくとも一つである。
選択可能には、ターゲットコアの数とプロセス内のスレッドの数が正相関関係であり、且つ関連付けられたスレッドは同一のターゲットコアで実行されるため、当該ターゲットコア内のコンテキスト情報を共有し、実行効率を向上させる。
可能な実施方式では、自身のプロセスが処理性能に対するニーズが性能閾値より高い場合、ターゲットアプリケーションプログラムは、第1の性能コアをスケジューリングして自身のプロセスを実行し、自身のプロセスが処理性能に対するニーズが性能閾値より低い場合、ターゲットアプリケーションプログラムは、第2の性能コアをスケジューリングして自身のプロセスを実行して、全体の消費電力を低減する。
選択可能には、バックグラウンド実行状態にあるアプリケーションプログラムが演算性能に対する要求が低いため、消費電力を削減するために、フォアグラウンド実行からバックグラウンド実行に切り替える場合、ターゲットアプリケーションプログラムは、システムコールの方式によって第2の性能コアをスケジューリングしてプロセスを実行する。
以上のように、本出願の実施例により提供されるプロセッサコアのスケジューリング方法では、ターゲットアプリケーションプログラムにSDKを組み込むことによって、ターゲットアプリケーションプログラムがSDKによって提供されるAPIインターフェースを呼び出すことができ、オペレーティングシステムから端末プロセッサのコア情報を取得し、コア情報に基づいて適切なプロセッサコアをスケジューリングして現在のプロセスを実行し、本出願の実施例では、ターゲットアプリケーションプログラムがコア情報に基づいて対応するプロセッサコアを適応的にスケジューリングしてプロセスを実行することができ、オペレーティングシステムのタイムリーなスケジューリングができないことによって引き起こされるアプリケーションプログラムのフリーズ問題を回避し、アプリケーションプログラムの実行品質を最適化する効果を達成する。
選択可能には、コア情報には、各コアに対応するコアタイプとコア番号とを含み、コアタイプは、第1の性能コアと第2の性能コアとを含み、
ターゲットアプリケーションプログラムがコア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングしてターゲットアプリケーションプログラムのプロセスを実行するステップは、
ターゲットアプリケーションプログラムがプロセスに対応するターゲットコアを決定するステップと、
ターゲットアプリケーションプログラムがターゲットコアのコア番号とプロセスのプロセス識別子とに基づいて、システムコールの方式によってプロセスと各コアのバインダー度を設定するステップであって、プロセスとターゲットコアのバインダー度は、プロセスと他のコアのバインダー度より大きいステップと、
オペレーティングシステムがバインダー度に基づいてプロセスとターゲットコアをバインドするステップであって、バインドされたプロセスは、ターゲットコア上で実行するステップと、を含む。
選択可能には、ターゲットアプリケーションプログラムがプロセスに対応するターゲットコアを決定するステップは、
ターゲットアプリケーションプログラムが現在のアプリケーションシーンを取得するステップと、
現在のアプリケーションシーンが第1のアプリケーションシーンに属している場合、ターゲットアプリケーションプログラムが第1の性能コアをターゲットコアとして決定するステップと、
現在のアプリケーションシーンが第2のアプリケーションシーンに属している場合、ターゲットアプリケーションプログラム第2の性能コアをターゲットコアとして決定するステップと、を含み、
第1のアプリケーションシーンのプロセッサに対する性能ニーズは、第2のアプリケーションシーンのプロセッサに対する性能ニーズより高い。
選択可能には、コア情報には、各コアの負荷情報をさらに含み、
ターゲットアプリケーションプログラムがプロセスに対応するターゲットコアを決定するステップは、
ターゲットアプリケーションプログラムが現在のアプリケーションシーンを取得するステップと、
ターゲットアプリケーションプログラムが負荷情報に基づいて各コアの負荷を決定するステップと、
現在のアプリケーションシーンが第1の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムが、負荷が負荷閾値より低い第1の性能コアをターゲットコアとして決定するステップと、
現在のアプリケーションシーンが第2の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムが、負荷が負荷閾値より低い第2の性能コアをターゲットコアとして決定するステップと、を含み、
第1のアプリケーションシーンのプロセッサに対する性能ニーズは、第2のアプリケーションシーンのプロセッサに対する性能ニーズより高い。
選択可能には、ターゲットアプリケーションプログラムが組み込みSDKによって提供される第1のAPIを呼び出すことによって、オペレーティングシステムにターゲット要求を送信する前に、
ターゲットアプリケーションプログラムが組み込みSDKによって提供される第2のAPIを呼び出すことによって、オペレーティングシステムにスケジューリング要求を送信するステップであって、スケジューリング要求は、オペレーティングシステムを指示してターゲットアプリケーションプログラムを実行する難易度レベルをフィードバックするために用いられるステップと、
オペレーティングシステムがターゲットアプリケーションプログラムに難易度レベルをフィードバックするステップと、
難易度レベルが予め設定されたレベル閾値より高い場合、ターゲットアプリケーションプログラム組み込みSDKによって提供される第1のAPIを呼び出すことによって、オペレーティングシステムにターゲット要求を送信するステップを実行するステップと、
難易度レベルが予め設定されたレベル閾値より低い場合、ターゲットアプリケーションプログラムがコアスケジューリングを行わないステップと、をさらに含む。
可能な実施方式では、ターゲットアプリケーションプログラムは、プロセッサコアバインダー度(affinity、又は親和度と呼ばれる)を設定する方式を使用して、プロセスとターゲットコアをバインドすることによって、ターゲットコアでプロセスを実行することを実現する。以下、例示的な実施例を使用して説明する。
図8を参照すると、本出願の別の例示的な実施例によって示されるプロセッサコアのスケジューリング方法のフローチャートを示す。本実施例は、オペレーティングシステムと少なくとも一つのアプリケーションプログラムを実行する端末100に当該方法を適用した例を説明する。当該方法は、以下のようなステップを含む。
ステップ801:ターゲットアプリケーションプログラムが組み込みSDKによって提供される第1のAPIを呼び出すことによって、オペレーティングシステムにターゲット要求を送信し、ターゲット要求は、オペレーティングシステムを指示してプロセッサのコア情報をフィードバックするために用いられ、コア情報は、第1の性能コアと第2の性能コアの配置状況を含む。
本ステップの実施方式は、上記のステップ701と類似であり、本実施例は、ここで詳しく説明しない。
ステップ802:オペレーティングシステムがターゲットアプリケーションプログラムにコア情報をフィードバックし、当該コア情報には、各コアに対応するコアタイプとコア番号とを含みる。
異なるモデルのプロセッサによって採用されているプロセッサコアアーキテクチャは異なる(コア数が異なり、高性能コア及び低性能コアの配置が異なる)ため、後続のスケジューリングの精度を確保するために、オペレーティングシステムによってフィードバックされたコア情報には、プロセッサコア構造を示す情報が含まれ、その中には、各コアに対応するコアタイプとコア番号が含まれる。
8コアプロセッサであるプロセッサを例として、8つのプロセッサコアに対応するコア番号は0~7である。オペレーティングシステムによってフィードバックされたコア情報指示コア番号が0~3であるプロセッサコアは第1の性能コアであり、コア番号が4~7であるプロセッサコアは第2の性能コアである。
ステップ803:ターゲットアプリケーションプログラムがプロセスに対応するターゲットコアを決定する。
可能な実施方式では、ターゲットアプリケーションプログラムがフォアグラウンド実行状態にある場合、プロセスに対応するターゲットコアは、一定に保たれ、すなわち、ターゲットアプリケーションプログラムのプロセスは、常にターゲットコアで実行される。ターゲットアプリケーションプログラムがフォアグラウンドで実行する時に良好の実行品質をいずれも達成することを確保するために、ターゲットアプリケーションプログラムは、自身のプロセスの最大処理性能ニーズに基づいてターゲットコアを決定し、その中、当該最大処理性能ニーズは、アプリケーションプログラム開発者によってアプリケーションプログラムに予め書き込まれる。
例示的には、ターゲットアプリケーションプログラムが、メール系アプリケーションプログラム、天気系アプリケーションプログラムなど、プロセッサ演算能力に対するニーズが低いアプリケーションプログラムである場合、異なるアプリケーションシーンでのプロセッサ演算能力に対するニーズがいずれも低いため、ターゲットアプリケーションプログラムは、自身のプロセスに対応するターゲットコアを第2の性能コアとして決定し、ターゲットアプリケーションプログラムが、インスタントメッセージング系アプリケーションプログラム、ゲーム系アプリケーションプログラム、ウェブブラウズ系アプリケーションプログラム、ビデオ再生系アプリケーションプログラムなど、プロセッサ演算能力に対するニーズが高いアプリケーションプログラムである場合、ある特定のアプリケーションシーン(例えばゲーム対戦シーン、ビデオ通話シーンなど)でのプロセッサ演算能力に対するニーズがいずれも高いため、ターゲットアプリケーションプログラムは、自身のプロセスに対応するターゲットコアを第1の性能コアとして決定する。
しかしながら、同一のアプリケーションプログラムが異なるアプリケーションシーンでのプロセッサ演算能力に対するニーズが異なる可能性がある。例えば、ゲーム系アプリケーションプログラムを例として、ゲームのメインインターフェースシーンでは、プロセスプロセッサ演算能力に対するニーズが低く、ゲーム対戦シーンでは、プロセスプロセッサ演算能力に対するニーズが高い。ターゲットアプリケーションプログラムのプロセスが常にターゲットコアで実行された場合、プロセッサ演算リソースの浪費となり、端末の全体の消費電力を増加する。
したがって、別の可能な実施方式では、ターゲットアプリケーションプログラムがフォアグラウンド実行状態にある場合、ターゲットアプリケーションプログラムは、現在のアプリケーションシーンに基づいて、プロセスに対応するターゲットコアを動的に決定する。図9に示すように、本ステップは、以下のようなステップを含むことができる。
ステップ803A:ターゲットアプリケーションプログラムが現在のアプリケーションシーンを取得する。
その中、アプリケーションシーンとは、ターゲットアプリケーションプログラムにおける異なる実行段階に対応するシーンを指し、例えば、ゲーム系アプリケーションプログラムについて、当該アプリケーションシーンは、ゲームデータローディングシーン、ゲームデータ更新シーン、ゲームのメインインターフェースシーン、及びゲーム対戦シーンなどを含む。
選択可能には、アプリケーションシーンが変化した場合、ターゲットアプリケーションプログラムは、現在のアプリケーションシーンを取得し、その中、アプリケーションシーンは、シーン番号を使用して示す。
ステップ803B:現在のアプリケーションシーンが第1の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムが第1の性能コアをターゲットコアとして決定する。
選択可能には、開発者がターゲットアプリケーションプログラムを開発する時、プロセッサ演算性能に対するアプリケーションシーンのニーズに基づいて、アプリケーションシーンを第1の性能アプリケーションシーンと第2の性能アプリケーションシーンに分割し、その中、第1の性能アプリケーションシーンでのプロセスのプロセッサに対する性能ニーズは、第2の性能アプリケーションシーンでのプロセスのプロセッサに対する性能ニーズより高い。
ゲーム系アプリケーションプログラムを例として、対応する第1の性能アプリケーションシーンは、ゲームショッピングモールインターフェースシーン、ゲームカットシーン、及びゲーム対戦シーンを含み、対応する第2の性能アプリケーションシーンは、ゲームリソース更新シーン、ゲームのメインインターフェースシーン、及びゲームアカウント登録シーンを含む。
さらに、ターゲットアプリケーションプログラムは、現在のアプリケーションシーンが第1の性能アプリケーションシーンに属しているか否かを検出し、該当する場合、ターゲットアプリケーションプログラムが第1の性能コアをターゲットコアとして決定し、該当しない場合、ターゲットアプリケーションプログラムは、現在のアプリケーションシーンが第2の性能アプリケーションシーンに属していると決定される。
ステップ802内の例を組み合わせて、現在のアプリケーションシーンが第1の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムは、コア番号が0と1である第1の性能コアをターゲットコアとして決定する。
ステップ803C:現在のアプリケーションシーンが第2の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラム第2の性能コアをターゲットコアとして決定する。
現在のアプリケーションシーンが第2の性能アプリケーションシーンに属している場合、消費電力を削減するために、ターゲットアプリケーションプログラムは、第2の性能コアをターゲットコアとして決定する。
ステップ802内の例を組み合わせて、現在のアプリケーションシーンが第2の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムは、コア番号が4である第2の性能コアをターゲットコアとして決定する。
ステップ804:ターゲットアプリケーションプログラムがターゲットコアのコア番号とプロセスのプロセス識別子とに基づいて、システムコールの方式によってプロセスと各コアのバインダー度を設定する。
可能な実現方式では、プロセスとプロセッサコアのバインダー度は、一つのマスク(mask)を使用して示す。8コアプロセッサを例として、デフォルトの状況において、当該マスクは0xffであり、2進数の11111111に変換し、プロセスと各プロセッサコアのバインダー度が同じであることを示し、プロセスは、任意のプロセッサコアで実行することができる。
ターゲットアプリケーションプログラムのプロセスを指定のターゲットコアで実行させるために、可能な実施方式では、ターゲットアプリケーションプログラムは、オペレーティングシステムによって提供される関数を利用し、システムコールの方式を採用してプロセスと各コアのバインダー度を設定し(すなわち、マスクを設定する)、その中、プロセスとターゲットコアのバインダー度は、プロセスと他のコアのバインダー度より大きい。
バインダー度を設定する方式について、選択可能には、ターゲットアプリケーションプログラムは、ターゲットコアのコア番号に基づいて、マスク内のターゲットコアに対応する数字を1に設定し、マスク内の他のターゲットコアに対応する数字を0に設定することによって、ターゲットマスクを取得し、当該ターゲットマスクとプロセスのプロセス識別子(PID、Process IDentity)とに基づいて、プロセスと各コアのバインダー度を設定する。
例示的には、ターゲットコアがコア番号2及び3の第1の性能コアである場合、ターゲットアプリケーションプログラムは、0x30(2進数の00110000に対応する)であるターゲットマスクを生成することによって、ターゲットマスクとプロセス識別子PID001とに基づいてプロセスとターゲットコアのバインダー度を設定する。
ステップ805:オペレーティングシステムがバインダー度に基づいてプロセスとターゲットコアをバインドする。
可能な実施方式では、オペレーティングシステムは、ターゲットマスクに基づいてプロセスと各コアのバインダー度を決定することによって、プロセスとターゲットコアをバインドする。
上記のステップ804内の例を組み合わせて、オペレーティングシステムは、ターゲットマスク0x30に基づいてターゲットコアのコア番号が2と3であることを決定することによって、二つの第1の性能コアをプロセスとバインドする。
バインドされたプロセスは、ターゲットコア上で実行され、バインダー度が変化した場合のみ、オペレーティングシステムは、ターゲットコアとプロセスとの間のバインドをキャンセルする。
選択可能には、バインド後、ターゲットコア上でターゲットアプリケーションプログラムのプロセスのみが実行されることによって、他のプロセスが処理性能に与える影響を回避し、ターゲットアプリケーションプログラムの実行品質を向上させる。
本実施例では、ターゲットアプリケーションプログラムは、ターゲットコアのコア番号とプロセスのプロセス番号とに基づいて、プロセスと各コアのバインダー度を設定して、オペレーティングシステムがバインダー度に基づいてプロセスとターゲットコアをバインドし、プロセスがターゲットコアでの実行を確保し、プロセスの実行品質を向上させる。
また、ターゲットアプリケーションプログラムは、現在のアプリケーションシーンに基づいて、ターゲットコアを動的に決定し、高性能アプリケーションシーンでの実行品質を確保するとともに、低性能アプリケーションシーンでのプロセッサ消費電力を低減する。
プロセスがコアをバインドする時、ターゲットコア上の他のプロセスの実行に影響を与えることを回避するために、可能な実施方式では、ターゲットアプリケーションプログラムは、同時に、現在のアプリケーションシーンとプロセッサコアの負荷状況とに基づいて、ターゲットコアを決定する。図9に基づいて、図10に示すように、ステップ802は、ステップ8021に置き換えることができる。
ステップ8021:オペレーティングシステムがターゲットアプリケーションプログラムにコア情報をフィードバックし、当該コア情報には、各コアに対応するコアタイプ及びコア番号と、各コアの負荷情報とが含まれる。
ステップ802と相違していることは、オペレーティングシステムによってフィードバックされたコア情報は、各コアの現在の負荷情報をさらに含む。その中、当該負荷情報は、オペレーティングシステムがカーネル層をアクセスすることによって取得される。
選択可能には、当該負荷情報は各コアの負荷を含み、当該負荷は、コア使用率で示すことができる。
これに対応して、ステップ803Aから803Cは、ステップ803Dから803Gに置き換えることができる。
ステップ803D:ターゲットアプリケーションプログラムが現在のアプリケーションシーンを取得する。
本ステップの実施方式はステップ803Aと類似し、本実施例は、ここで詳しく説明しない。
ステップ803E:ターゲットアプリケーションプログラムが負荷情報に基づいて各コアの負荷を決定する。
ターゲットアプリケーションプログラムが各負荷情報を取得した後、各コアの現在の負荷状況をさらに決定する。
ステップ803F:現在のアプリケーションシーンが第1の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムが、負荷が負荷閾値より低い第1の性能コアをターゲットコアとして決定する。
コアの負荷が高い場合、他のプロセスが実行されることを示し、他のプロセスに大きな影響を与えることを回避するために、ターゲットアプリケーションプログラムは、負荷が負荷閾値より低いコアからターゲットコアを決定する。例えば、当該負荷閾値のコア使用率は20%である。
例示的には、現在のアプリケーションシーンが第1の性能アプリケーションシーンであり、且つ第1の性能コア(コア番号が順次に0~3である)の負荷が順次に30%、22%、0%、0%であり、ターゲットアプリケーションプログラムは、コア番号が2と3である第1の性能コアをターゲットコアとして決定する。
ステップ803G:現在のアプリケーションシーンが第2の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムが、負荷が負荷閾値より低い第2の性能コアをターゲットコアとして決定する。
上記のステップ803Fとは類似しており、現在のアプリケーションシーンが第2の性能アプリケーションシーンに属している場合、ターゲットアプリケーションプログラムは、負荷が負荷閾値より低い第2の性能コアからターゲットコアを決定する。
本実施例では、ターゲットアプリケーションプログラムは、コアの負荷状況に基づいて、負荷が軽いコアをターゲットコアとして選択することによって、コアをバインドする時に他のプロセスに与える影響を低減する。
異なる端末のプロセッサコアの性能に差異が存在するため、すべての端末がすべて上記の方法を使用してプロセッサコアをスケジューリングする必要がない(特に、ハイエンドプロセッサが配置される端末は、その低性能コアの演算能力もアプリケーションプログラムの正常実行を確保することができる)。選択可能には、ターゲットアプリケーションプログラムは、スケジューリングを行う前に、実行環境に応じてプロセッサコアのスケジューリングを行うか否かを判断する。図8に基づいて、図11に示すように、ステップ801の前に、以下のようなステップをさらに含む。
ステップ8011:ターゲットアプリケーションプログラムが組み込みSDKによって提供される第2のAPIを呼び出すことによって、オペレーティングシステムにスケジューリング要求を送信し、スケジューリング要求は、オペレーティングシステムを指示してターゲットアプリケーションプログラムを実行する難易度レベルをフィードバックするために用いられる。
送信ターゲット要求と類似しており、ターゲットアプリケーションプログラムは、SDK内の第2のAPI(第1のAPIとは異なる)を呼び出すことによって、オペレーティングシステムにスケジューリング要求を送信する。選択可能には、当該スケジューリング要求には、アプリケーション識別子が含まれ、当該アプリケーション識別子は、ターゲットアプリケーションプログラムのパッケージ名であってもよい。
その中、当該難易度レベルは、プロセッサの性能と負の相関関係があり、すなわち、プロセッサの性能が高いほど、ターゲットアプリケーションプログラムを実行する難易度レベルが低くなる。
ステップ8012:オペレーティングシステムがターゲットアプリケーションプログラムに難易度レベルをフィードバックする。
可能な実施方式では、オペレーティングシステムには、異なるアプリケーションプログラムと実行難易度レベルとの間の対応関係が予め設定され、当該対応関係は、オペレーティングシステム開発者によって提供され、且つ動的に更新することができる。
例示的には、当該対応関係は表1のように示す。
Figure 0007100154000001
これに対応して、オペレーティングシステムは、ターゲットアプリケーションプログラムのアプリケーション識別子に基づいて、対応する難易度レベルを決定する。
ステップ8013:難易度レベルが予め設定されたレベル閾値より高いか否かを検出する。
さらに、ターゲットアプリケーションプログラムは、難易度レベルが予め設定されたレベル閾値より高いか否かを検出し、それより高い場合、プロセッサコアをスケジューリングする必要があると決定し、ステップ801を実行し、それより低い場合、プロセッサ性能が強いと決定し、ステップ8014を実行する。表1を組み合わせて、当該予め設定されたレベル閾値はLevel2であってもよい。
ステップ8014:難易度レベルが予め設定されたレベル閾値より低い場合、ターゲットアプリケーションプログラムは、ターゲット要求を送信しない。
選択可能には、コアスケジューリングを行う必要がない場合、オペレーティングシステムは、デフォルト方式を採用し、負荷に基づいてプロセッサコアをスケジューリングする。
図12を参照すると、本出願の一実施例により提供されるプロセッサコアのスケジューリング装置の構成ブロック図を示す。当該プロセッサコアのスケジューリング装置は、ソフトウェア、ハードウェア、又は両者の組み合わせによって端末の全部又は一部を実現する。当該装置は、ターゲットアプリケーションプログラムモジュール1210とオペレーティングシステムモジュール1220とを含む。
ターゲットアプリケーションプログラムモジュール1210は、組み込みSDKによって提供される第1のAPIを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するために用いられ、前記ターゲット要求は、前記オペレーティングシステムを指示してプロセッサのコア情報をフィードバックするために用いられ、前記コア情報は、前記第1の性能コアと前記第2の性能コアの配置状況を含み、
オペレーティングシステムモジュール1220は、前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするために用いられ、
ターゲットアプリケーションプログラムモジュール1210は、前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行するために用いられる。
選択可能には、前記コア情報には、各コアに対応するコアタイプとコア番号とを含み、前記コアタイプは、前記第1の性能コアと前記第2の性能コアとを含み、
前記ターゲットアプリケーションプログラムモジュール1210は、
前記プロセスに対応する前記ターゲットコアを決定し、
前記ターゲットコアのコア番号と前記プロセスのプロセス識別子とに基づいて、システムコールの方式によって前記プロセスと各コアのバインダー度を設定するために用いられ、前記プロセスと前記ターゲットコアのバインダー度は、前記プロセスと他のコアのバインダー度より大きく、
前記オペレーティングシステムモジュール1220は、前記バインダー度に基づいて前記プロセスと前記ターゲットコアをバインドするために用いられ、バインドされた前記プロセスは、前記ターゲットコア上で実行する。
選択可能には、前記ターゲットアプリケーションプログラムモジュール1210は、さらに、
現在のアプリケーションシーンを取得し、
前記現在のアプリケーションシーンが第1の性能アプリケーションシーンに属している場合、前記第1の性能コアを前記ターゲットコアとして決定し、
前記現在のアプリケーションシーンが第2の性能アプリケーションシーンに属している場合、前記第2の性能コアを前記ターゲットコアとして決定するために用いられ、
前記第1のアプリケーションシーンのプロセッサに対する性能ニーズは、前記第2のアプリケーションシーンのプロセッサに対する性能ニーズより高い。
選択可能には、前記コア情報には、各コアの負荷情報をさらに含み、
前記ターゲットアプリケーションプログラムモジュール1210は、さらに、
現在のアプリケーションシーンを取得し、
前記負荷情報に基づいて各コアの負荷を決定し、
前記現在のアプリケーションシーンが第1の性能アプリケーションシーンに属している場合、負荷が負荷閾値より低い前記第1の性能コアを前記ターゲットコアとして決定し、
前記現在のアプリケーションシーンが第2の性能アプリケーションシーンに属している場合、負荷が負荷閾値より低い前記第2の性能コアを前記ターゲットコアとして決定するために用いられ、
前記第1のアプリケーションシーンのプロセッサに対する性能ニーズは、前記第2のアプリケーションシーンのプロセッサに対する性能ニーズより高い。
選択可能には、前記ターゲットアプリケーションプログラムモジュール1210は、さらに、前記組み込みSDKによって提供される第2のAPIを呼び出すことによって、前記オペレーティングシステムにスケジューリング要求を送信するために用いられ、前記スケジューリング要求は、前記オペレーティングシステムを指示して前記ターゲットアプリケーションプログラムを実行する難易度レベルをフィードバックするために用いられ、
前記オペレーティングシステムモジュール1220は、さらに、前記ターゲットアプリケーションプログラムに前記難易度レベルをフィードバックするために用いられ、
前記ターゲットアプリケーションプログラムモジュール1210は、さらに、前記難易度レベルが予め設定されたレベル閾値より高い場合、前記組み込みSDKによって提供される第1のAPIを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するステップを実行するために用いられ、
前記ターゲットアプリケーションプログラムモジュール1210は、さらに、前記難易度レベルが予め設定されたレベル閾値より低い場合、コアスケジューリングを行わないために用いられる。
選択可能には、前記オペレーティングシステムモジュール1220は、さらに、
前記ターゲットアプリケーションプログラムのアプリケーション識別子を取得し、
前記ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属している場合、前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするステップを実行し、
前記ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属していない場合、前記ターゲット要求に応答しないために用いられ、
前記予め設定されたアプリケーション識別子リストには、コアスケジューリングをサポートするアプリケーションプログラムのアプリケーション識別子が含まれる。
選択可能には、前記ターゲットアプリケーションプログラム1210は、さらに、フォアグラウンド実行からバックグラウンド実行に切り替える場合、システムコールの方式によって前記第2の性能コアをスケジューリングして前記プロセスを実行するために用いられる。
以上のように、本出願の実施例により提供されるプロセッサコアのスケジューリング装置では、ターゲットアプリケーションプログラムにSDKを組み込むことによって、ターゲットアプリケーションプログラムがSDKによって提供されるAPIインターフェースを呼び出すことができ、オペレーティングシステムから端末プロセッサのコア情報を取得し、コア情報に基づいて適切なプロセッサコアをスケジューリングして現在のプロセスを実行し、本出願の実施例では、ターゲットアプリケーションプログラムがコア情報に基づいて対応するプロセッサコアを適応的にスケジューリングしてプロセスを実行することができ、オペレーティングシステムのタイムリーなスケジューリングができないことによって引き起こされるアプリケーションプログラムのフリーズ問題を回避し、アプリケーションプログラムの実行品質を最適化する効果を達成する。
本実施例では、ターゲットアプリケーションプログラムターゲットコアのコア番号とプロセスのプロセス番号とに基づいて、プロセスと各コアのバインダー度を設定して、オペレーティングシステムがバインダー度に基づいてプロセスとターゲットコアをバインドし、プロセスがターゲットコアでの実行を確保し、プロセスの実行品質を向上させる。
また、ターゲットアプリケーションプログラムは、現在のアプリケーションシーンに基づいて、ターゲットコアを動的に決定し、性能アプリケーションシーンでの実行品質を確保するとともに、低性能アプリケーションシーンでのプロセッサ消費電力を低減する。
本実施例では、ターゲットアプリケーションプログラムは、コアの負荷状況に基づいて、負荷が軽いコアをターゲットコアとして選択することによって、コアをバインドする時に他のプロセスに与える影響を低減する。
本出願の実施例は、コンピュータ読み取り可能な媒体をさらに提供し、当該コンピュータ読み取り可能な媒体には、少なくとも一つの命令が記憶され、前記少なくとも一つの命令が前記プロセッサによってローディングして実行される場合、各実施例に記載のプロセッサコアのスケジューリング方法が実現される。
本出願の実施例は、コンピュータプログラム製品をさらに提供し、当該コンピュータプログラム製品には、少なくとも一つの命令が記憶され、前記少なくとも一つの命令が前記プロセッサによってローディングして実行される場合、各実施例に記載のプロセッサコアのスケジューリング方法が実現される。
当業者は、上記の一つ又は複数の例では、本出願の実施例によって説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせによって実現されることを認識すべきである。ソフトウェアを使用して実現する場合、これらの機能をコンピュータ読み取り可能な媒体に記憶したり、又はコンピュータ読み取り可能な媒体上の一つ又は複数の命令又はコードとして伝送することができる。コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体と通信媒体とを含み、その中、通信媒体は、一つの場所から別の場への転送を容易にするコンピュータプログラムの任意の媒体を含む。記憶媒体は、汎用又は専用コンピュータによってアクセスできる任意の利用可能な媒体であってもよい。
以上には、本発明の実施例における好ましい実施例が開示されているに過ぎない。本発明の実施例を限定することなく、本発明の実施例の真髄及び原則を逸脱しない範囲で、様々な修正、同等変換や改善を行うことは、いずれも本発明の実施例の保護範囲に属する。

Claims (16)

  1. 端末に適用されるプロセッサコアのスケジューリング方法であって、
    前記端末内のプロセッサは、少なくとも一つの第1の性能コアと少なくとも一つの第2の性能コアとを含み、前記第1の性能コアの性能は、前記第2の性能コアの性能より高く、前記端末は、オペレーティングシステムと少なくとも一つのアプリケーションプログラムとを実行し、前記方法は、
    ターゲットアプリケーションプログラムが、組み込みソフトウェア開発キットSDKによって提供される第1のアプリケーションプログラミングインターフェースAPIを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するステップであって、前記ターゲット要求は、前記オペレーティングシステム指示してプロセッサのコア情報をフィードバックさせるために用いられ、前記コア情報は、前記第1の性能コアと前記第2の性能コアの配置状況を含むステップと、
    前記オペレーティングシステムが前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするステップと、
    前記ターゲットアプリケーションプログラムが前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行するステップと、を含む、
    ことを特徴とするプロセッサコアのスケジューリング方法。
  2. 前記コア情報は、各コアに対応するコアタイプとコア番号とを含み、前記コアタイプは、前記第1の性能コアと前記第2の性能コアとを含み、
    前記ターゲットアプリケーションプログラムが前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行するステップは、
    前記ターゲットアプリケーションプログラムが前記プロセスに対応する前記ターゲットコアを決定するステップと、
    前記ターゲットアプリケーションプログラムが前記ターゲットコアのコア番号と前記プロセスのプロセス識別子とに基づいて、システムコールの方式によって前記プロセスと各コアのバインダー度を設定するステップであって、前記プロセスと前記ターゲットコアのバインダー度は、前記プロセスと他のコアのバインダー度より大きいステップと、
    前記オペレーティングシステムが前記バインダー度に基づいて前記プロセスと前記ターゲットコアをバインドするステップであって、バインドされた前記プロセスは、前記ターゲットコア上で実行するステップと、を含む、
    ことを特徴とする請求項1に記載のプロセッサコアのスケジューリング方法。
  3. 前記ターゲットアプリケーションプログラムが前記プロセスに対応する前記ターゲットコアを決定するステップは、
    前記ターゲットアプリケーションプログラムが現在のアプリケーションシーンを取得するステップと、
    前記現在のアプリケーションシーンが第1のアプリケーションシーンに属している場合、前記ターゲットアプリケーションプログラムが前記第1の性能コアを前記ターゲットコアとして決定するステップと、
    前記現在のアプリケーションシーンが第2のアプリケーションシーンに属している場合、前記ターゲットアプリケーションプログラム前記第2の性能コアを前記ターゲットコアとして決定するステップと、を含み、
    前記第1のアプリケーションシーンのプロセッサに対する性能ニーズは、前記第2のアプリケーションシーンのプロセッサに対する性能ニーズより高い、
    ことを特徴とする請求項2に記載のプロセッサコアのスケジューリング方法。
  4. 前記コア情報は、各コアの負荷情報をさらに含み、
    前記ターゲットアプリケーションプログラムが前記プロセスに対応する前記ターゲットコアを決定するステップは、
    前記ターゲットアプリケーションプログラムが現在のアプリケーションシーンを取得するステップと、
    前記ターゲットアプリケーションプログラムが前記負荷情報に基づいて各コアの負荷を決定するステップと、
    前記現在のアプリケーションシーンが第1の性能アプリケーションシーンに属している場合、前記ターゲットアプリケーションプログラムが、負荷が負荷閾値より低い前記第1の性能コアを前記ターゲットコアとして決定するステップと、
    前記現在のアプリケーションシーンが第2の性能アプリケーションシーンに属している場合、前記ターゲットアプリケーションプログラムが、負荷が負荷閾値より低い前記第2の性能コアを前記ターゲットコアとして決定するステップと、を含み、
    前記第1の性能アプリケーションシーンのプロセッサに対する性能ニーズは、前記第2の性能アプリケーションシーンのプロセッサに対する性能ニーズより高い、
    ことを特徴とする請求項2に記載のプロセッサコアのスケジューリング方法。
  5. 前記ターゲットアプリケーションプログラムが組み込みSDKによって提供される第1のAPIを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信する前に、前記方法は、
    前記ターゲットアプリケーションプログラムが前記組み込みSDKによって提供される第2のAPIを呼び出すことによって、前記オペレーティングシステムにスケジューリング要求を送信するステップであって、前記スケジューリング要求は、前記オペレーティングシステム指示して前記ターゲットアプリケーションプログラムを実行する難易度レベルをフィードバックさせるために用いられるステップと、
    前記オペレーティングシステムが前記ターゲットアプリケーションプログラムに前記難易度レベルをフィードバックするステップと、
    前記難易度レベルが予め設定されたレベル閾値より高い場合、前記ターゲットアプリケーションプログラムが前記組み込みSDKによって提供される第1のAPIを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するステップを実行するステップと、
    前記難易度レベルが予め設定されたレベル閾値より低い場合、前記ターゲットアプリケーションプログラムがコアスケジューリングを行わないステップと、をさらに含む、
    ことを特徴とする請求項1~4のいずれかに記載のプロセッサコアのスケジューリング方法。
  6. 前記ターゲットアプリケーションプログラムが組み込みSDKによって提供される第1のAPIを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信した後、前記方法は、
    前記オペレーティングシステムが前記ターゲットアプリケーションプログラムのアプリケーション識別子を取得するステップと、
    前記ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属している場合、前記オペレーティングシステムが前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするステップを実行するステップであって、前記予め設定されたアプリケーション識別子リストには、コアスケジューリングをサポートするアプリケーションプログラムのアプリケーション識別子が含まれるステップと、
    前記ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属していない場合、前記オペレーティングシステムが前記ターゲット要求に応答しないステップと、をさらに含む、
    ことを特徴とする請求項1~4のいずれかに記載のプロセッサコアのスケジューリング方法。
  7. 前記ターゲットアプリケーションプログラムが前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行した後、前記方法は、
    フォアグラウンド実行からバックグラウンド実行に切り替える場合、前記ターゲットアプリケーションプログラムがシステムコールの方式によって前記第2の性能コアをスケジューリングして前記プロセスを実行するステップをさらに含む、
    ことを特徴とする請求項1~4のいずれかに記載のプロセッサコアのスケジューリング方法。
  8. 端末に適用されるプロセッサコアのスケジューリング装置であって、
    前記端末内のプロセッサは、少なくとも一つの第1の性能コアと少なくとも一つの第2の性能コアとを含み、前記第1の性能コアの性能は、前記第2の性能コアの性能より高く、前記端末は、オペレーティングシステムと少なくとも一つのアプリケーションプログラムとを実行し、前記装置は、
    組み込みソフトウェア開発キットSDKによって提供される第1のアプリケーションプログラミングインターフェースAPIを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するためのターゲットアプリケーションプログラムにより実行される呼び出しモジュールであって、前記ターゲット要求は、前記オペレーティングシステム指示してプロセッサのコア情報をフィードバックさせるために用いられ、前記コア情報は、前記第1の性能コアと前記第2の性能コアの配置状況を含むターゲットアプリケーションプログラムにより実行される、呼び出しモジュールと、
    前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするためのオペレーティングシステムにより実行されるフィードバックモジュールと、
    前記コア情報に基づいて、システムコールの方式によってターゲットコアをスケジューリングして前記ターゲットアプリケーションプログラムのプロセスを実行するためのターゲットアプリケーションプログラムにより実行される実行モジュールと、を含む、
    ことを特徴とするプロセッサコアのスケジューリング装置。
  9. 前記コア情報は、各コアに対応するコアタイプとコア番号とを含み、前記コアタイプは、前記第1の性能コアと前記第2の性能コアとを含み、
    前記装置は、前記ターゲットアプリケーションプログラムにより実行される設定モジュールと、前記オペレーティングシステムにより実行されるバインドモジュールとを含み、
    前記設定モジュールは、
    前記プロセスに対応する前記ターゲットコアを決定し、
    前記ターゲットコアのコア番号と前記プロセスのプロセス識別子とに基づいて、システムコールの方式によって前記プロセスと各コアのバインダー度を設定するために用いられ、前記プロセスと前記ターゲットコアのバインダー度は、前記プロセスと他のコアのバインダー度より大きく、
    前記バインドモジュールは、前記バインダー度に基づいて前記プロセスと前記ターゲットコアをバインドするために用いられ、バインドされた前記プロセスは、前記ターゲットコア上で実行する、
    ことを特徴とする請求項8に記載のプロセッサコアのスケジューリング装置。
  10. 前記装置は、前記ターゲットアプリケーションプログラムにより実行される第1の決定モジュールをさらに含み、
    前記第1の決定モジュールは、
    現在のアプリケーションシーンを取得し、
    前記現在のアプリケーションシーンが第1のアプリケーションシーンに属している場合、前記第1の性能コアを前記ターゲットコアとして決定し、
    前記現在のアプリケーションシーンが第2のアプリケーションシーンに属している場合、前記第2の性能コアを前記ターゲットコアとして決定するために用いられ、
    前記第1のアプリケーションシーンのプロセッサに対する性能ニーズは、前記第2のアプリケーションシーンのプロセッサに対する性能ニーズより高い、
    ことを特徴とする請求項9に記載のプロセッサコアのスケジューリング装置。
  11. 前記コア情報は、各コアの負荷情報をさらに含み、
    前記装置は、前記ターゲットアプリケーションプログラムにより実行される第2の決定モジュールをさらに含み、
    前記第2の決定モジュールは、
    現在のアプリケーションシーンを取得し、
    前記負荷情報に基づいて各コアの負荷を決定し、
    前記現在のアプリケーションシーンが第1の性能アプリケーションシーンに属している場合、負荷が負荷閾値より低い前記第1の性能コアを前記ターゲットコアとして決定し、
    前記現在のアプリケーションシーンが第2の性能アプリケーションシーンに属している場合、負荷が負荷閾値より低い前記第2の性能コアを前記ターゲットコアとして決定するために用いられ、
    前記第1の性能アプリケーションシーンのプロセッサに対する性能ニーズは、前記第2の性能アプリケーションシーンのプロセッサに対する性能ニーズより高い、
    ことを特徴とする請求項9に記載のプロセッサコアのスケジューリング装置。
  12. 前記呼び出しモジュールは、さらに、前記組み込みSDKによって提供される第2のAPIを呼び出すことによって、前記オペレーティングシステムにスケジューリング要求を送信するために用いられ、前記スケジューリング要求は、前記オペレーティングシステム指示して前記ターゲットアプリケーションプログラムを実行する難易度レベルをフィードバックさせるために用いられ、フィードバックされた前記難易度レベルが予め設定されたレベル閾値より高い場合、前記組み込みSDKによって提供される第1のAPIを呼び出すことによって、前記オペレーティングシステムにターゲット要求を送信するステップを実行し、フィードバックされた前記難易度レベルが予め設定されたレベル閾値より低い場合、コアスケジューリングを行わないために用いられ、
    前記フィードバックモジュールは、さらに、前記ターゲットアプリケーションプログラムに前記難易度レベルをフィードバックするために用いられる、
    ことを特徴とする請求項8~11のいずれかに記載のプロセッサコアのスケジューリング装置。
  13. 前記装置は、前記オペレーティングシステムにより実行される応答モジュールさらに含み
    前記応答モジュールは、
    前記ターゲットアプリケーションプログラムのアプリケーション識別子を取得し、
    前記ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属している場合、前記ターゲットアプリケーションプログラムに前記コア情報をフィードバックするステップを実行し、
    前記ターゲットアプリケーションプログラムのアプリケーション識別子が予め設定されたアプリケーション識別子リストに属していない場合、前記ターゲット要求に応答しないために用いられ、
    前記予め設定されたアプリケーション識別子リストには、コアスケジューリングをサポートするアプリケーションプログラムのアプリケーション識別子が含まれる、
    ことを特徴とする請求項8~11のいずれかに記載のプロセッサコアのスケジューリング装置。
  14. 前記装置は、前記ターゲットアプリケーションプログラムにより実行されるバックグラウンド実行モジュールさらに含み
    前記バックグラウンド実行モジュールは、
    フォアグラウンド実行からバックグラウンド実行に切り替える場合、システムコールの方式によって前記第2の性能コアをスケジューリングして前記プロセスを実行するために用いられる、
    ことを特徴とする請求項8~11のいずれかに記載のプロセッサコアのスケジューリング装置。
  15. プロセッサとメモリとを含む端末であって、
    前記メモリには、少なくとも一つの命令が記憶され、前記少なくとも一つの命令が前記プロセッサによって実行される場合、請求項1~7のいずれかに記載のプロセッサコアのスケジューリング方法が実現される、
    ことを特徴とする端末。
  16. コンピュータ読み取り可能な記憶媒体であって、
    前記記憶媒体には、少なくとも一つの命令が記憶され、前記少なくとも一つの命令がプロセッサによって実行される場合、請求項1~7のいずれかに記載のプロセッサコアのスケジューリング方法が実現される、
    ことを特徴とするコンピュータ読み取り可能な記憶媒体。
JP2020558002A 2018-04-20 2019-04-19 プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体 Active JP7100154B6 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810362695.6 2018-04-20
CN201810362695.6A CN108536538A (zh) 2018-03-13 2018-04-20 处理器核心调度方法、装置、终端及存储介质
PCT/CN2019/083520 WO2019201340A1 (zh) 2018-04-20 2019-04-19 处理器核心调度方法、装置、终端及存储介质

Publications (3)

Publication Number Publication Date
JP2021518955A JP2021518955A (ja) 2021-08-05
JP7100154B2 true JP7100154B2 (ja) 2022-07-12
JP7100154B6 JP7100154B6 (ja) 2022-09-30

Family

ID=68240656

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020558002A Active JP7100154B6 (ja) 2018-04-20 2019-04-19 プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体

Country Status (6)

Country Link
US (1) US11782756B2 (ja)
EP (1) EP3779690A4 (ja)
JP (1) JP7100154B6 (ja)
KR (1) KR102466012B1 (ja)
AU (1) AU2019256257B2 (ja)
WO (1) WO2019201340A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11281508B2 (en) * 2019-03-22 2022-03-22 Verifone, Inc. Systems and methods for providing low memory killer protection to non-system applications
CN115016631B (zh) * 2021-11-22 2023-07-18 荣耀终端有限公司 进程调度方法和终端设备
CN114443256B (zh) * 2022-04-07 2022-08-30 荣耀终端有限公司 资源调度方法及电子设备
CN115981819B (zh) * 2022-12-30 2023-10-24 摩尔线程智能科技(北京)有限责任公司 用于多核系统的核心调度方法和装置
CN117170690B (zh) * 2023-11-02 2024-03-22 湖南三湘银行股份有限公司 一种分布式构件管理系统
CN117785231A (zh) * 2024-02-26 2024-03-29 深圳海星智驾科技有限公司 车载操作系统及车辆

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110258413A1 (en) 2010-04-19 2011-10-20 Samsung Electronics Co., Ltd. Apparatus and method for executing media processing applications
JP2013501298A (ja) 2009-09-11 2013-01-10 エンパイア テクノロジー ディベロップメント エルエルシー 異種のリソース上へのコンピュータスレッドのマッピング

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MXPA01012371A (es) 2001-11-30 2003-06-05 Fernando Mejias Butron Manuel Metodo para optimizar el desempe°o de una computadora y medio principal de almacenamiento no volatil optimizado con secciones de proposito especifico.
US20060171244A1 (en) 2005-02-03 2006-08-03 Yoshiyuki Ando Chip layout for multiple cpu core microprocessor
US7808554B2 (en) 2005-03-18 2010-10-05 Displaymate Technologies Corporation Automatic and interactive configuration and control of a video system
US20070198981A1 (en) * 2006-02-17 2007-08-23 Jacobs Paul E System and method for multi-processor application support
CN101196816B (zh) * 2007-12-29 2010-12-08 中国科学院计算技术研究所 一种操作系统及操作系统管理方法
US8615647B2 (en) * 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
US8010822B2 (en) * 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
CN101901207B (zh) 2010-07-23 2012-03-28 中国科学院计算技术研究所 异构共享存储多处理机系统的操作系统及其工作方法
CN102325255B (zh) 2011-09-09 2017-09-15 深圳融创新技术有限公司 一种多核心cpu视频转码调度方法及系统
KR101463533B1 (ko) * 2012-04-27 2014-11-19 성균관대학교산학협력단 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법 및 모바일 장치
JP6321325B2 (ja) 2013-04-03 2018-05-09 ルネサスエレクトロニクス株式会社 情報処理装置および情報処理方法
US20140344469A1 (en) 2013-05-17 2014-11-20 Evology, Llc Method of in-application encoding for decreased latency application streaming
CN103365718A (zh) 2013-06-28 2013-10-23 贵阳朗玛信息技术股份有限公司 一种线程调度方法、线程调度装置及多核处理器系统
US9684787B2 (en) 2014-04-08 2017-06-20 Qualcomm Incorporated Method and system for inferring application states by performing behavioral analysis operations in a mobile device
KR102237373B1 (ko) 2014-07-02 2021-04-07 삼성전자 주식회사 전자 장치의 태스크 스케줄링 방법 및 이를 사용하는 전자 장치
KR102197874B1 (ko) * 2014-09-01 2021-01-05 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 쓰레드 스케줄링 방법
CN105657520A (zh) 2014-11-18 2016-06-08 乐视网信息技术(北京)股份有限公司 一种视频清晰度切换方法和视频播放器
CN105607895B (zh) * 2014-11-21 2021-03-02 阿里巴巴集团控股有限公司 一种基于应用程序编程接口的应用程序的运行方法和装置
US9830187B1 (en) * 2015-06-05 2017-11-28 Apple Inc. Scheduler and CPU performance controller cooperation
US9645868B2 (en) * 2015-06-25 2017-05-09 Ca, Inc. Methods of running applications on mobile devices including notifications/blocking responsive to resource consumption
CN105045713B (zh) 2015-07-14 2018-02-13 腾讯科技(深圳)有限公司 数据处理方法及移动终端
CN105094283A (zh) 2015-07-23 2015-11-25 上海新储集成电路有限公司 一种超低功耗且高性能的微处理器及其运行方法
KR102438199B1 (ko) 2015-12-24 2022-08-30 삼성전자주식회사 디스플레이 장치 및 디스플레이 장치의 설정 값을 변경하는 방법
US10069869B2 (en) * 2016-05-17 2018-09-04 Amazon Technologies, Inc. Versatile autoscaling
CN107479894A (zh) 2017-08-21 2017-12-15 奇酷互联网络科技(深圳)有限公司 应用程序提速方法、系统、移动终端及可读存储介质
CN107515787A (zh) 2017-08-31 2017-12-26 广东欧珀移动通信有限公司 资源配置方法及相关产品
CN107613107A (zh) 2017-08-31 2018-01-19 广东欧珀移动通信有限公司 资源配置方法及相关产品
CN107577532B (zh) 2017-08-31 2019-10-29 Oppo广东移动通信有限公司 资源配置方法及相关产品
CN107577533B (zh) 2017-08-31 2020-12-15 Oppo广东移动通信有限公司 资源配置方法及相关产品
CN108681436B (zh) * 2018-03-13 2020-09-22 Oppo广东移动通信有限公司 画质参数调节方法、装置、终端及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013501298A (ja) 2009-09-11 2013-01-10 エンパイア テクノロジー ディベロップメント エルエルシー 異種のリソース上へのコンピュータスレッドのマッピング
US20110258413A1 (en) 2010-04-19 2011-10-20 Samsung Electronics Co., Ltd. Apparatus and method for executing media processing applications

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
「IBM DB2 ユニバーサル・データベース 管理の手引き:インプリメンテーション バージョン7」,第1刷, SC88-8511-01,日本,日本アイ・ビー・エム株式会社,2001年08月,第393~397頁.
「聖ビスタ学園 ソフトの処理に特定のコアを割り当てる」,週刊アスキー,日本,株式会社アスキー・メディアワークス,2009年02月24日,通巻724号(2009年2月24日号),第58頁.
Luca Lugini, et al.,"Online Thread Assignment for Heterogeneous Multicore Systems",Proceedings of the 41st International Conference on Parallel Processing Workshops,IEEE,2012年09月13日,Pages 538-544,ISBN: 978-1-4673-2509-7, <DOI: 10.1109/ICPPW.2012.73>.
中山 俊一,「制御系にこそ必要なソフト開発技術(後編) 着実に進むOS/ツールのマルチコア対応、新技術も続々」,日経エレクトロニクス,日本,日経BP社,2016年05月20日,2016年6月号(第1168号),第79~89頁,ISSN: 0385-1680.
原田 十嘉,「Windows CEにおけるシステム開発」,オートメーション,日本,日刊工業出版プロダクション,2000年06月01日,Vol.45, No.6,第81~87頁,ISSN: 0473-5587.
大野 有輝(外3名),「マルチコア環境でのプロセス動作予測によるリソース配分最適化」,情報処理学会研究報告,[CD-ROM],日本,社団法人 情報処理学会,2010年06月15日,Vol.2010-OS-114, No.5,第1~10頁,ISSN: 1884-0930.
石坂 一久(外2名),「階層型ヘテロメニコア向けコア割り当て方法」,電子情報通信学会2011年総合大会講演論文集,分冊:情報・システム1,日本,社団法人 電子情報通信学会,2011年02月28日,第40頁,ISSN: 1349-1369.

Also Published As

Publication number Publication date
WO2019201340A1 (zh) 2019-10-24
AU2019256257A1 (en) 2020-11-26
US20210026688A1 (en) 2021-01-28
EP3779690A4 (en) 2021-05-12
KR20200140380A (ko) 2020-12-15
US11782756B2 (en) 2023-10-10
KR102466012B1 (ko) 2022-11-09
JP7100154B6 (ja) 2022-09-30
EP3779690A1 (en) 2021-02-17
AU2019256257B2 (en) 2022-02-10
JP2021518955A (ja) 2021-08-05

Similar Documents

Publication Publication Date Title
JP7100154B2 (ja) プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体
CN108536524B (zh) 资源更新方法、装置、终端及存储介质
CN109542614B (zh) 资源配置方法、装置、终端及存储介质
CN110955499B (zh) 处理器核心配置方法、装置、终端及存储介质
US10698736B2 (en) Method for resource allocation and terminal device
WO2019228340A1 (zh) 程序优化方法、装置、终端及存储介质
WO2020063008A1 (zh) 资源配置方法、装置、终端及存储介质
CN112749022A (zh) 相机资源访问方法、操作系统、终端和虚拟相机
CN116244231A (zh) 一种数据传输方法、装置、系统、电子设备及存储介质
CN110120963B (zh) 一种数据处理方法、装置、设备和机器可读介质
WO2023035619A1 (zh) 一种场景渲染方法、装置、设备及系统
CN117724852A (zh) 一种云电脑计算资源分配方法及装置
KR20200044390A (ko) 특정영역에서의 vmi화면과 로컬화면 표시 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220304

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220610

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220630

R150 Certificate of patent or registration of utility model

Ref document number: 7100154

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150