JP2022515255A - スケジューリング方法及び装置、電子デバイス並びに記録媒体 - Google Patents
スケジューリング方法及び装置、電子デバイス並びに記録媒体 Download PDFInfo
- Publication number
- JP2022515255A JP2022515255A JP2021536726A JP2021536726A JP2022515255A JP 2022515255 A JP2022515255 A JP 2022515255A JP 2021536726 A JP2021536726 A JP 2021536726A JP 2021536726 A JP2021536726 A JP 2021536726A JP 2022515255 A JP2022515255 A JP 2022515255A
- Authority
- JP
- Japan
- Prior art keywords
- task
- time
- scheduling cycle
- scheduling
- length
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
- G06F9/4837—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Processing Or Creating Images (AREA)
Abstract
本発明は、スケジューリング方法及び装置、電子デバイス並びに記録媒体に関し、前記方法は、現在スケジューリング周期内の第1タスクのタスク処理時間を取得することと、前記タスク処理時間と、前記現在スケジューリング周期内の前記第1タスクに割り当てられた第1タイムスライスとに基づいての長さ、前記第1タスクがタイムアウトするか否かを決定することと、決定した結果に基づいて、目標スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することと、を含み、前記目標スケジューリング周期は、前記現在スケジューリング周期または前記現在スケジューリング周期の次の1つのスケジューリング周期を含む。【選択図】図1
Description
本発明は、コンピュータ技術分野に関し、特にスケジューリング方法及び装置、電子デバイス並びに記録媒体に関する。
人工知能技術の急速な発展に伴い、多数の人工知能企業が設立され、人工知能で使用されるニューラルネットワークは、グラフィックスプロセッシングユニット(Graphics Processing Unit、GPU)の計算能力に依存している。GPUのコンピューティングタスクは、小規模から大規模かつ高速なネットワーク相互接続へと徐々に発展している。様々なタスクのGPUに対する様々な要求を満たすために、学界と産業界は、GPU仮想化技術の検討を始めた。
本発明は、スケジューリング解決策を提案する。
本発明の1態様によると、スケジューリング方法を提供し、当該方法は、現在スケジューリング周期内の第1タスクのタスク処理時間を取得することと、前記タスク処理時間と、前記現在スケジューリング周期内の前記第1タスクに割り当てられた第1タイムスライスとに基づいて、前記第1タスクがタイムアウトするか否かを決定することと、決定した結果に基づいて、目標スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することと、を含み、前記目標スケジューリング周期は、前記現在スケジューリング周期または前記現在スケジューリング周期の次の1つのスケジューリング周期を含む。
1つまたは複数のオプションの実施例において、前記タスク処理時間と、前記現在スケジューリング周期内の前記第1タスクに割り当てられた第1タイムスライスとに基づいて、前記第1タスクがタイムアウトするか否かを決定することは、前記タスク処理時間の終了時点と前記第1タイムスライスの終了時点との間の第1時間差値を決定することと、前記第1時間差値が第1時間閾値よりも大きい場合、前記第1タスクがタイムアウトしたと決定することと、を含む。
1つまたは複数のオプションの実施例において、前記第1時間閾値は、前記第1タイムスライスの長さに基づいて得られたものである。
1つまたは複数のオプションの実施例において、前記決定した結果に基づいて、目標スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することは、前記第1タスクがタイムアウトしたと決定した場合、前記現在スケジューリング周期の長さを調整することと、前記現在スケジューリング周期の調整後の長さに基づいて、前記現在スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することを含む。
1つまたは複数のオプションの実施例において、前記現在スケジューリング周期の調整後の長さに基づいて、前記現在スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することは、前記現在スケジューリング周期の調整後の長さおよび各前記第2タスクに対応するサービス品質パラメータに基づいて、前記現在スケジューリング周期内の各前記第2タスクに割り当てられたタイムスライスの長さを調整することによって、各前記第2タスクのサービス品質パラメータが対応するプリセット値に維持されるようにするか、および/または、各前記第2タスクのタイムスライスの、前記現在スケジューリング周期に占める比率が対応するプリセット値に維持されるようにすることを含む。
1つまたは複数のオプションの実施例において、前記第1タスクがタイムアウトしたと決定した場合、前記現在スケジューリング周期の長さを調整することは、前記現在スケジューリング周期内の第3タスクのタイムアウト回数を取得することと、前記タイムアウト回数に基づいて、前記現在スケジューリング周期の長さを延長するための延長係数を決定することと、前記延長係数に基づいて、前記現在スケジューリング周期の長さを延長して、前記現在スケジューリング周期の調整後の長さを得ることと、を含み、前記第3タスクは、現在スケジューリング周期内の実行済みのタスクであり、前記延長係数は、前記タイムアウト回数と正の相関を有する。
1つまたは複数のオプションの実施例において、前記延長係数は、前記タイムアウト回数を変数とする指数関数に基づいて得られたものである。
1つまたは複数のオプションの実施例において、前記方法は、前記現在スケジューリング周期内の第3タスクのタスク処理時間を取得することと、前記第3タスクのタスク処理時間が前記第3タスクの調整後のタイムスライスの長さよりも小さいことに応答して、前記現在スケジューリング周期内の前記第3タスクに対して時間補償を実行することと、をさらに含み、前記少なくとも1つの第2タスクは、前記第3タスクを含む。
1つまたは複数のオプションの実施例において、前記第3タスクのタスク処理時間が前記第3タスクの調整後のタイムスライスの長さよりも小さいことに応答して、前記現在スケジューリング周期内の前記第3タスクに対して時間補償を実行することは、前記第3タスクのタスク処理時間および前記第3タスクの調整後のタイムスライスの長さに基づいて、前記第3タスクの補償時間を決定することと、前記補償時間に基づいて、前記第3タスクの補償タスクを前記現在スケジューリング周期のスケジューリングキューに追加することと、を含む。
1つまたは複数のオプションの実施例において、前記補償時間に基づいて、前記第3タスクの前記補償タスクを前記現在スケジューリング周期のスケジューリングキューに追加することは、前記補償時間に基づいて、前記第3タスクの前記補償タスクを前記現在スケジューリング周期のスケジューリングキューの最後に追加することを含む。
1つまたは複数のオプションの実施例において、決定した結果に基づいて、目標スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することは、前記現在スケジューリング周期内の各タスクがいずれもタイムアウトしなかったと決定した場合、前記現在スケジューリング周期の次の1つのスケジューリング周期の長さを調整することと、前記次の1つのスケジューリング周期の調整後の長さに基づいて、前記次の1つのスケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを決定することと、を含む。
1つまたは複数のオプションの実施例において、前記現在スケジューリング周期の次の1つのスケジューリング周期の長さを調整することは、予め設定された短縮係数を利用して前記次の1つのスケジューリング周期の長さを短縮することを含む。
1つまたは複数のオプションの実施例において、前記次の1つのスケジューリング周期の調整後の長さに基づいて、前記次の1つのスケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを決定することは、前記次の1つのスケジューリング周期の調整後の長さおよび各前記第2タスクに対応するサービス品質パラメータに基づいて、前記次の1つのスケジューリング周期内の各前記第2タスクに割り当てられたタイムスライスの長さを決定することによって、各前記第2タスクのサービス品質パラメータが対応するプリセット値に維持されるようにするか、および/または、各前記第2タスクのタイムスライスの、前記次の1つのスケジューリング周期に占める比率が対応するプリセット値に維持されるようにすることを含む。
1つまたは複数のオプションの実施例において、前記方法は、予め設定された時間帯内の複数のタスクの履歴タスクを実行した履歴タスク処理時間を取得することと、前記履歴タスク処理時間の統計情報に基づいて、前記現在スケジューリング周期の初期長さを決定することと、をさらに含む。
本発明の1態様によると、スケジューリング装置を提供し、当該装置は、現在スケジューリング周期内の第1タスクのタスク処理時間を取得するための取得モジュールと、前記タスク処理時間と、前記現在スケジューリング周期内の前記第1タスクに割り当てられた第1タイムスライスとに基づいて、前記第1タスクがタイムアウトするか否かを決定するための決定モジュールと、決定した結果に基づいて、目標スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整するための調整モジュールと、を備え、前記目標スケジューリング周期は、前記現在スケジューリング周期または前記現在スケジューリング周期の次の1つのスケジューリング周期を含む。
本発明のもう1態様によると、電子デバイスを提供し、当該電子デバイスは、プロセッサと、コンピュータ可読命令を記憶するためのメモリと、を備え、前記プロセッサは、前記メモリに記憶されている前記コンピュータ可読命令を呼び出して、上述したスケジューリング方法を実行する。
本発明のもう1態様によると、コンピュータプログラム命令が記憶されているコンピュータ可読記録媒体を提供し、前記コンピュータプログラム命令がコンピュータによって実行されるときに、上述したスケジューリング方法が実施される。
本発明のもう1態様によると、コンピュータ可読命令を含むコンピュータプログラムを提供し、前記コンピュータ可読命令がコンピュータによって実行されるときに、上述したスケジューリング方法が実施される。
本発明の実施例において、現在スケジューリング周期内の第1タスクのタスク処理時間を取得した後に、タスク処理時間と、現在スケジューリング周期内の第1タスクに割り当てられた第1タイムスライスとに基づいて、第1タスクがタイムアウトするか否かを決定し、さらに、決定した結果に基づいて目標スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することができ、目標スケジューリング周期は、現在スケジューリング周期または現在スケジューリング周期の次の1つのスケジューリング周期を含む。このようにして、目標スケジューリング周期内の第2タスクに割り当てられたタイムスライスを自動的に調整することによって、目標スケジューリング周期内の各第2タスクに割り当てられたタイムスライスがサービス品質の要求を満たすようにして、ユーザ体験を改善した。
上述した一般的な記述と後文の詳細記述が単に例示的なものと解釈的なものであり、本発明を制限するためのものではないことは、理解されるべきである。
以下では、図面を参照しながら例示的な実施例を詳細に説明するとともに、本発明の他の特徴及び態様は、明瞭になる。
ここでの図面は、明細書に組み込まれて明細書の一部を構成し、本発明に合致する実施例を示しつつ、明細書の記載とともに本発明の技術案を説明するために用いられる。
本発明の実施例に係るスケジューリング方法を示すフローチャートである。
本発明の実施例に係るタスクに割り当てられたタイムスライスを延長する例を示すフローチャートである。
本発明の実施例に係るタスクに割り当てられたタイムスライスを短縮する例を示すフローチャートである。
本発明の実施例に係る履歴タスク処理時間と累積頻度の曲線を示す。
本発明の実施例に係るスケジューリング装置を示すブロック図である。
本発明の実施例に係る電子デバイスの例を示すブロック図である。
以下では、図面を参照して本発明の各種の例示的な実施例、特徴及び態様を詳細に説明する。図面における同じ符号は、機能が同じ又は類似する素子を示す。図面に実施例の各種の態様が示されたが、専ら示さない限り、縮尺通りに図面を描く必要がない。
ここでの用語「例示的な」は、「例示、実施例としてのもの、又は説明的なもの」を意味する。ここで「例示的な」で説明される如何なる実施例も、他の実施例よりも優れるや良くなるとして解釈されるとは限らない。
本明細書における用語「及び/又は」は、単に関連対象の関連関係を記述するものであり、3種の関係が存在可能であることを示す。例えば、A及び/又はBは、Aが単独に存在することと、A及びBが同時に存在することと、Bが単独に存在することという3種の場合を表せる。また、本明細書における用語「少なくとも1種」は、複数種のうちの何れか1種又は複数種のうちの少なくとも2種の任意の組み合わせを示す。例えば、A、B、Cのうちの少なくとも1種を含むことは、A、B及びCによって構成された集合から、何れか1つ又は複数の要素を選択することを示してもよい。
また、本発明がより良く説明されるように、下文の具体的な実施形態において大量の具体的詳細が与えられている。当業者であれば理解できるように、幾つかの具体的詳細がなくても、本発明は同様に実施可能である。幾つかの実施例では、本発明の要旨がより目立つように、当業者でよく知られる方法、手段、素子及び回路について詳細に記述されていない。
本発明の実施例によって提供されるスケジューリング解決策によると、現在スケジューリング周期内の仮想画像処理ユニット(virtual Graphics Processing Unit、vGPU)の各タスクのタスク処理時間を取得した後に、第1タスクのタスク処理時間と、現在スケジューリング周期内の第1タスクに割り当てられた第1タイムスライスとに基づいて、第1タスクがタイムアウトするか否かを決定することによって、決定した結果に基づいて、目標スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することができる。このようにして、第1タスクに割り当てられた第1タイムスライスが長すぎるかまたは短すぎる場合、第2タスクに割り当てられたタイムスライスを自動的に調整し、目標スケジューリング周期内の第2タスクのタイムスライスを合理的に構成することができ、GPUがより高い性能を有する同時に、割り当てられたタイムスライスを柔軟に設定することができるため、GPUのリソースを効果的に利用して、ユーザ体験を改善できる。
ここで、GPU、つまり物理GPUは、より小さな粒度のユニットに分割でき、各ユニットは、仮想画像処理ユニットと呼ばれ得る。仮想画像処理ユニットは、GPUの時分割多重方式でタスク処理を実行することができ、各タスクには複数のタスクユニットが含まれ得る。仮想画像処理ユニットはタスクを実行するときに、実行中のタスクユニットを一時停止することができないため、仮想画像処理ユニットが或るタスクユニットを実行する処理時間がより長い場合、当該タスクのタスク処理時間が当該タスクに割り当てられたタイムスライスを超えてしまうため、他のタスクのサービス品質(QoS)が低下する。当該サービス品質は、サービスを提供する能力を評価する1つの指標であり得、本発明の実施例によって提供されるスケジューリング解決策は、タスクのタスク処理時間と当該タスクに割り当てられたタイムスライスとをマッチングさせるように、スケジューリングシステムによって提供されるサービス品質が保証されるようにすることができる。ここでのタスクユニットは、タスク処理の基礎ユニットとして理解され得、通常、さらに小さなユニットに分割できなく、また実行過程で一時停止できない。複数のタスクユニットは、時分割多重で仮想画像処理ユニットを利用できる。たとえば、1つのタスクユニットは、1つのカーネル(kernel)関数に対応する。カーネル関数は、1組の命令を含み得、各カーネル関数の長さは、同じでも異なっていてもよく、カーネル関数を実行するときに、当該カーネル関数のすべての命令が全部実行された後にのみ停止する必要がある。
1つのデバイスには、1つまたは複数のGPUが含まれ得、1つのGPUには、1つまたは複数の仮想画像処理ユニットが含まれ得る。本発明によって提供されるスケジューリング方法は、単一の仮想画像処理ユニットにも適用され得、複数の仮想画像処理ユニットにも適用され得る。複数の仮想画像処理ユニットの中の各仮想画像処理ユニットのスケジューリング方法は、単一の仮想画像処理ユニットのスケジューリング方法と類似している。簡素化のために、後続で単一の仮想画像処理ユニットを例として説明する。当業者は、本発明は仮想画像処理ユニットの数を限定しないことを理解すべきである。同様に、当業者は、本発明はGPUの数を限定しないことを理解すべきである。
本発明の実施例によって提供される技術的解決策は、GPUのタスク処理、仮想画像処理ユニットのスケジューリング、タイムスライスの自己適応の拡張などに適用され得、本発明の実施例はこれらに対して限定しない。
図1は、本発明の実施例に係るスケジューリング方法を示すフローチャートである。当該スケジューリング方法は、端末デバイス、サーバ、または他のタイプの電子デバイスによって実行され得、端末デバイスは、ユーザデバイス(User Equipment、UE)、モバイルデバイス、ユーザ端末、端末、セルラーフォン、コードレス電話、パーソナルデジタルアシスタント(Personal Digital Assistant、PDA)、ハンドヘルドデバイス、コンピューティングデバイス、車載デバイス、ウェアラブルデバイスなどであり得る。いくつかの可能の実現形態において、当該スケジューリング方法は、プロセッサがメモリに記憶されているコンピュータ可読命令を呼び出す方法によって実施され得る。当該スケジューリング方法は、同一の仮想画像処理ユニット上で複数のタスクをスケジューリングするために適用され得、各タスクに1つまたは複数のタイムスライスを割り当てることができ、タイムスライスで当該タスクの少なくとも1つのタスクユニットを実行することによってタスクを実行することができる。以下、電子デバイスを実行主体とする例を挙げて、本発明の実施例のスケジューリング方法を説明する。
S11において、現在スケジューリング周期内の第1タスクのタスク処理時間を取得する。
本発明の実施例において、電子デバイスは、現在スケジューリング周期内の複数のタスクの中の各タスクのタスク処理時間を検出することができ、第1タスクは現在処理しているタスクであり得る。現在スケジューリング周期は、現在処理しているタスクが所在するスケジューリング周期であり得る。仮想画像処理ユニットでは、タスクキューには複数のスケジューリング周期が含まれ得る。
いくつかの例において、仮想画像処理ユニットでは、1つのスケジューリング周期は、より短く、たとえば数秒であったり、数百ミリ秒であったりする。一方、1つのタスクキューの周期は、相対的により長く、たとえば数時間、さらには数日であり得る。タスクキュー中の1つのタスクは、複数のスケジューリング周期で実行されて完了される可能性があり、これに応じて、本発明に記載のスケジューリング周期内の或るタスクは、当該タスクの当該スケジューリング周期内に割り当てられて実行される部分を指し、当該タスクのすべてのタスクユニットであってもよいし、当該タスクの一部のタスクユニットであってもよい。2つのタスクスケジューリング周期で時分割によって処理される複数のタスクは、同じでも異なっていてもよい。
各タスクは、時分割多重で仮想画像処理ユニットを利用することができる。これに応じて、複数のタスクは、スケジューリングキューを形成することができる。タスクは、画像処理タスクでもあり得、ニューラルネットワークトレーニングタスクでもあり得る。本発明は、タスクの具体的な処理されるタスクに対して限定しない。タスクのタスク処理時間は、1つのスケジューリング周期内の当該タスクを実行するために費やされた合計時間であり得、当該タスクを実行することは、当該タスクの1つまたは複数のタスクユニットを実行することを含み得る。
S12において、前記タスク処理時間と、前記現在スケジューリング周期内の前記第1タスクに割り当てられた第1タイムスライスとに基づいて、前記第1タスクがタイムアウトするか否かを決定する。
本発明の実施例において、第1タスクのタスク処理時間と第1タスクに割り当てられた第1タイムスライスとを比較し、比較結果を得て、当該比較結果に基づいて第1タスクがタイムアウトするか否かを決定することができる。ここで、第1タイムスライスは、第1タスクに割り当てられた、仮想画像処理ユニットを占用する時間であり得る。各タスクに割り当てられたタイムスライスの長さは、同じでも異なっていてもよい。
たとえば、第1タスクには、複数のタスクユニットが含まれており、現在スケジューリング周期内で、当該第1タスクに第1タイムスライスを割り当てて、第1タスクの少なくとも2つのタスクユニットを実行するために使用する。現在スケジューリング周期の第1タイムスライスを利用して前記第1タスクの少なくとも2つのタスクユニットを実行する過程において、n番目のタスクユニットから実行し始め、m番目のタスクユニットを実行するときに、第1タイムスライスが期限切れになったと仮定すれば、タスクユニットは一時停止できないため、m番目のタスクユニットの実行が完了されるまで待ってから次の1つのタスクに切り替える必要がある。このような場合、第1タスクのタスク処理時間、すなわちn番目のタスクユニットの実行開始からm番目のタスクの実行完了までの時間は、それに割り当てられた第1タイムスライスの長さを超えることになり、つまり、第1タスクがタイムアウトした。m、nは、いずれも正の整数であり、m≧nである。
たとえば、第1タスクのタスク処理時間の長さと第1タイムスライスの長さとを比較して、第1タスクのタスク処理時間の長さが第1タイムスライスの長さよりも大きいか否かを判断し、第1タスクのタスク処理時間の長さが第1タイムスライスの長さよりも大きいと、第1タスクがタイムアウトすると決定できる。第1タスクのタスク処理時間の長さが第1タイムスライスの長さ以下であると、第1タスクがタイムアウトしていないと決定できる。
さらに、たとえば、第1タスクのタスク処理時間の終了時点と第1タイムスライスの終了時点とを比較し、第1タスクのタスク処理時間の終了時点が第1タイムスライスの終了時点よりも大きいと、第1タスクがタイムアウトすると決定できる。第1タスクのタスク処理時間の終了時点が第1タイムスライスの終了時点以下であると、第1タスクがタイムアウトしていないと決定できる。
1つの可能の実現形態において、第1タスクのタスク処理時間の終了時点と第1タイムスライスの終了時点との間の第1時間差値を決定した後に、第1時間差値が第1時間閾値よりも大きい場合、第1タスクがタイムアウトすると決定できる。
当該実現形態において、まず第1タスクのタスク処理時間の終了時点と第1タイムスライスの終了時点との間の第1時間差値を計算してから、計算した第1時間差値と予め設定された第1時間閾値とを比較し、第1時間差値が第1時間閾値よりも大きいと、第1タスクがタイムアウトすると決定できる。第1時間差値が第1時間閾値以下であると、第1タスクがタイムアウトしていないと決定できる。
依然として上述した例で説明すると、m番目のタスクユニットを実行するときに、当該タイムスライスがすでに期限切れになったが、タスクユニットが一時停止できないため、m番目のタスクユニットの実行が完了されるまで待ってから次の1つのタスクに切り替える必要があり、このような場合、第1タスクがタイムアウトしたと直接判断するのではなく、第1タスクのタスク処理時間の終了時点を判断し、すなわち、m番目のタスクユニットの終了時点と、第1タイムスライスの終了時点との間の第1時間差値を判断する。第1時間差値が第1時間閾値よりも大きいと、第1タスクがタイムアウトすると決定する。
いくつかの例において、第1時間閾値は、予め設定された固定値であり得、たとえば、第1時間閾値を0.2s、0.5sなどに設定することができる。
いくつかの例において、第1時間閾値は、予め設定された比率値であり得る。たとえば、上述した第1時間閾値は、第1タイムスライスの長さに基づいて得られることができる。たとえば、第1時間閾値を第1タイムスライスの長さの1%に設定することができ、このようにして、第1タイムスライスの長さに基づいて第1時間閾値を設定することで、第1時間閾値をより柔軟にすることができる。第1タイムスライスがより短い場合、第1時間閾値もより小さく、つまり、タイムアウトの判定条件が相対的に厳しくなる。第1タイムスライスがより長い場合、第1時間閾値もより大きく、つまり、タイムアウトの判定条件が相対的に緩くなる。さらに、たとえば、現在スケジューリング周期の長さに基づいて第1時間閾値を得ることができ、たとえば、第1時間閾値を現在スケジューリング周期の長さの1%に設定することができる。
第1時間閾値を利用して、第1タスクのタスク処理時間と第1タイムスライスとの第1時間差値が合理的な範囲内に収めることによって、第2タスクに割り当てられたタイムスライスを頻繁に調整する代わりに、第2タスクに割り当てられたタイムスライスを調整する過程を収束させることができる。たとえば、比率で第1時間閾値を調整するときに、たとえば、第1タイムスライスが長いほど、第1時間閾値が大きくなり、このようにして第1タスクがタイムアウトする可能性を減らすことができる。したがって、第2タスクを調整する過程を収束することができる。
S13において、決定した結果に基づいて、目標スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整し、前記目標スケジューリング周期は、前記現在スケジューリング周期または前記現在スケジューリング周期の次の1つのスケジューリング周期を含む。
本発明の実施例において、第1タスクがタイムアウトするか否かを決定した結果に基づいて、少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することができる。第2タスクは、現在スケジューリング周期内のタスクであってもよいし、または、現在スケジューリング周期の次の1つのスケジューリング周期内のタスクであってもよい。
第2タスクが現在スケジューリング周期内のタスクである場合、第2タスクは、現在スケジューリング周期内の実行済みのタスク、現在スケジューリング周期内の実行されていないタスク、および、第1タスクを含み得る。第2タスクが現在スケジューリング周期の次の1つのスケジューリング周期内のタスクである場合、第2タスクは、次の1つのスケジューリング周期内のすべてのタスクを含み得る。
例を挙げて説明すると、現在スケジューリング周期内の第1タスクがタイムアウトすると、第2タスクに割り当てられたタイムスライスの長さを延長して、延長後の第2タスクのタイムスライスを得ることができる。現在スケジューリング周期内のすべてのタスクがいずれもタイムアウトしていないと、次の1つのスケジューリング周期内の第2タスクに割り当てられたタイムスライスを短縮して、短縮後の第2タスクのタイムスライスを得ることができる。現在スケジューリング周期内にタイムアウトしたタスクがあると、本スケジューリング周期の長さを調整した上で、次の1つのスケジューリング周期が本スケジューリング周期の調整後の長さを継承する。本発明によって提供されるスケジューリング方法によると、継続的にスケジューリング周期を調整することによって、タイムアウトした場合には、本スケジューリング周期を延長し(次の1つのスケジューリング周期の長さが本スケジューリング周期の延長後の長さと等しい)、タイムアウトしていない場合には、次の1つのスケジューリング周期を短縮することによって、スケジューリング周期の相対的な「定常状態」を実現する同時に、タスクに割り当てられたタイムスライスを合理的な範囲に調整することができる。
上述したスケジューリング解決策によれば、第2タスクに割り当てられたタイムスライスを自動的に調整することによって、目標スケジューリング周期内の第2タスクに割り当てられたタイムスライスがサービス品質の要求を満たすようにすることができる。
1つの可能の実現形態において、第1タスクがタイムアウトすると決定した場合、現在スケジューリング周期の長さを調整し、その後に現在スケジューリング周期の調整後の長さに基づいて、現在スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することができる。
当該実現形態において、第1タスクがタイムアウトすることが決定されると、まず、現在スケジューリング周期の長さを調整し、たとえば、現在スケジューリング周期の長さに対して1つの固定時間長を延長するか、または、現在スケジューリング周期の長さを元の数倍に延長する。その後に、現在スケジューリング周期の調整後の長さに基づいて、現在スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスの長さを調整することができる。たとえば、各第2タスクに割り当てられたタイムスライスのそれぞれに対して1つの固定時間長を延長するか、または、一定の比率に従って各第2タスクに割り当てられたタイムスライスを延長することができる。このような方式によって、第1タスクがタイムアウトすることが決定された場合、現在スケジューリング周期の長さを調整し、現在スケジューリング周期の調整後の長さに基づいて、第2タスクのタイムスライスの調整を実行することができる。
1つの例において、現在スケジューリング周期の調整後の長さおよび各前記第2タスクのサービス品質パラメータに基づいて、現在スケジューリング周期内の各前記第2タスクに割り当てられたタイムスライスの長さを調整することによって、各第2タスクのサービス品質パラメータが対応するプリセット値に維持されるようにするか、および/または、各第2タスクのタイムスライスの、現在スケジューリング周期に占める比率が対応するプリセット値に維持されるようにする。
たとえば、現在スケジューリング周期に3つの第2タスクA、B、および、Cがあり、調整する前に、第2タスクA、B、および、Cの現在スケジューリング周期に占める比率が3:3:4である、つまり、プリセット値が3:3:4であると仮定する。調整を通じて、第2タスクA、B、および、Cの現在スケジューリング周期に占める比率は依然として3:3:4である。
当該例において、サービス品質パラメータは、サービス品質の1つのパラメータを示し、サービス品質パラメータは、1つのスケジューリング周期内の任意の1つのタスクに対応するタイムスライスの、当該スケジューリング周期に占めるタイムスライスのシェアであり得る。1つのタスクのサービス品質が高いほど、スケジューリング周期内で占用するタイムスライスシェアが多くなる。たとえば、1つのタスクのサービス品質は、1つの重みに対応し、サービス品質が高いほど、重みが高くなる。タイムスライスシェアを計算するときに、まず当該スケジューリング周期内の各タスクの重みの合計を計算し、その後、1つのタスクの重みで各タスクの重みの合計を除算して得られた数値が、当該タスクに対応するタイムスライスが当該スケジューリング周期に占めるタイムスライスシェアであり得る。異なるタスクに対して異なるサービス品質を割り当てることによって、サービス品質が高いタスクが優先に処理されるように確保することができる。1つのスケジューリング周期内には複数のタスクが含まれ得、各タスクは1つのサービス品質パラメータに対応され得る。現在スケジューリング周期の長さを調整した後に、現在スケジューリング周期内の各第2タスクのサービス品質パラメータおよび現在スケジューリング周期の調整後の長さに基づいて、各第2タスクに割り当てられたタイムスライスの長さを調整することができる。このような方式によって、各第2タスクのサービス品質パラメータは変更されないままであるようにするか、および/または、各第2タスクのタイムスライスの、現在スケジューリング周期に占める比率は変更されないままであるようにする。したがって、サービス品質に応じて第2タスクのタイムスライスの長さを調整することによって、各タスクのサービス品質の要求を満たすことができる。
1つの例において、スケジューリング周期内の各タスクのサービス品質パラメータが調整された後に変わらないように保証するためには、第1タスクの持続時間に対しても処理を実行する必要がある。他の第2タスクと同じ方式に従って第1タスクの時間に対して処理を実行することができ、たとえば、第1タスクに既に割り当てられたタイムスライスのそれぞれに対して1つの固定時間長を延長する、または、一定の比率ししたがって第1タスクに割り当てられたタイムスライスを延長することができる。
1つの例において、現在スケジューリング周期内の実行済みのタスクのタイムアウト回数を取得することができ、当該実行済みのタスクを第3タスクと呼ばれ得る。その後、タイムアウト回数に基づいて、現在スケジューリング周期の長さに対して延長を実行するための延長係数を決定し、さらに、延長係数に基づいて、現在スケジューリング周期の長さに対して延長を実行して、現在スケジューリング周期の調整後の長さを得る。ここで、延長係数は、タイムアウト回数と正の相関を有する。
当該例において、現在スケジューリング周期内の第3タスクのタイムアウト回数を統計することができる。1つの第3タスクの実行が完了されるたびに、当該第3タスクがタイムアウトすると、タイムアウト回数を1増加することができる。当該タイムアウト回数に基づいて現在スケジューリング周期の長さに対して延長を実行するための延長係数を決定することができ、当該延長係数は、タイムアウト回数と正の相関を有する。たとえば、タイムアウト回数が大きいほど、延長係数が大きくなる。その後、決定された延長係数を利用して現在スケジューリング周期の長さに対して延長を実行することができる。たとえば、延長係数と現在スケジューリング周期の長さとを乗算して、現在スケジューリング周期の延長後の長さを得ることができる。延長係数は、1よりも大きい。このようにして、タイムアウト回数を利用して、現在スケジューリング周期の長さに対して合理的な延長を実行することができて、得られた現在スケジューリング周期が合理的な時間長さを有するようにする。
1つの例において、上述した延長係数は、タイムアウト回数を変数とする指数関数に基づいて得られたものである。
当該例において、当該延長係数は、タイムアウト回数を変数とする指数関数に基づいて得ることができるため、延長係数を利用して現在スケジューリング周期の長さに対して倍数になる延長を実行することによって、現在スケジューリング周期の延長後の長さを得ることができる。ここで、現在スケジューリング周期の延長後の長さは、以下の数(1)によって計算することができる。
(数1)
Tnewtimeslice=Toldtimeslice*2count
Tnewtimesliceは、現在スケジューリング周期の延長後の長さ、Toldtimesliceは、現在スケジューリング周期の長さ、countは、統計したタイムアウト回数、2countは、延長係数であり得る。
(数1)
Tnewtimeslice=Toldtimeslice*2count
Tnewtimesliceは、現在スケジューリング周期の延長後の長さ、Toldtimesliceは、現在スケジューリング周期の長さ、countは、統計したタイムアウト回数、2countは、延長係数であり得る。
ここで、延長係数にバイナリ指数関数を採用することによって、前期でスケジューリング周期の延長後の長さは急激に増加すること、さらに、現在スケジューリング周期の延長後の長さは後期で遅い増加のために収束しないことを避けることができる。
例を挙げて説明すると、現在スケジューリング周期が10個のタスクを含み、2番目、3番目、および、5番目のタスクがタイムアウトしたと仮定する。2番目のタスクがタイムアウトするときに、1番目のタスクがタイムアウトしていないので、countが1であり、数(1)に従って、TnewtimesliceはToldtimesliceの2倍であり、すなわち、現在スケジューリング周期の実行が開始されていないときの長さと比較すると、今回の調整は長さを2倍延長することである。3番目のタスクがタイムアウトするときに、countが2であり、数(1)に従って、TnewtimesliceはToldtimesliceの4倍であり、このときToldtimesliceはすでに1回延長した長さであり、すなわち、現在スケジューリング周期の実行が開始されなかったときの長さと比較すると、今回の調整は、すでに2倍延長した後に、長さをさらに4倍延長することであることに注意する必要がある。同様に、5番目のタスクがタイムアウトするときに、現在スケジューリング周期の実行が開始されていないときの長さと比較すると、今回の調整はすでに2*4倍延長したあとに、長さをさらに8倍延長することである。
可能な1実現形態において、現在スケジューリング周期内の実行済みの第3タスクのタスク処理時間を取得した後に、第3タスクのタスク処理時間が第3タスクの調整後のタイムスライスの長さよりも小さいことに応答して、現在スケジューリング周期内で前記第3タスクに対して時間補償を実行することができる。第2タスクは、前記第3タスクを含む。
当該実現形態において、現在スケジューリング周期内の少なくとも1つの第2タスクのタイムスライスに対して調整を実行した後に、少なくとも1つの第2タスクに含まれている任意の1つの第3タスクのタスク処理時間が当該第3タスクの調整後のタイムスライスの長さよりも小さいと、現在スケジューリング周期内で当該第3タスクに対して補償を実行することができる。
ここで、実行済みの第3タスクのタイムスライスを直接延長することができないため、第3タスクに対して時間補償を実行する方法によって、現在スケジューリング周期内の各第2タスクのサービス品質パラメータが変更されないままであるようにすることができる。第3タスクに対して時間補償を実行することは、第3タスクに対して該当するタイムスライスを割り当てることであると理解することができる。
当該実現形態の1つの例において、第3タスクのタスク処理時間および第3タスクの調整後のタイムスライスの長さに基づいて、前記第3タスクの補償時間を決定し、その後に補償時間に基づいて、第3タスクの補償タスクを現在スケジューリング周期のスケジューリングキューに追加することができる。
当該例は、第3タスクに対して時間補償を実行する方法を提供した。当該例において、第3タスクのタスク処理時間および第3タスクの調整後のタイムスライスの長さに基づいて、当該第3タスクの補償時間を決定することができ、たとえば、第3タスクの調整後のタイムスライスの長さと当該第3タスクのタスク処理時間との間の第2時間差値を計算し、当該第2時間差値を第3タスクの補償時間として使用することができる。その後に、当該第3タスクを補償するタスクを現在スケジューリング周期のスケジューリングキューに追加し、当該補償タスクを実行するときに当該第3タスクに計算の補償時間を割り当てることができる。このようにして実行済みの第3タスクに対する時間補償を実現して、実行済みの第3タスクのサービス品質パラメータが変更されないままであるようにすることができる。
1つの例において、補償時間に基づいて、第3タスクの補償タスクを現在スケジューリング周期のスケジューリングキューの最後に追加することができる。
当該例において、第3タスクの補償時間に基づいて、第3タスクの補償タスクを現在スケジューリング周期のスケジューリングキューの最後に追加し、当該補償タスクに決定した補償時間を割り当てて、当該第3タスクに対する時間補償を実現することができる。当該補償タスクを現在スケジューリング周期のスケジューリングキューの最後に追加することによって、現在スケジューリング周期のスケジューリングキュー中のタスクの順序を乱さないことができて、スケジューリングキュー中のタスクが元の順序でスケジューリングされるようにする。
1つの例において、実行済みの第3タスクのサービス品質パラメータおよび現在スケジューリング周期の調整前後の長さに基づいて、第3タスクの補償時間を決定することができる。
当該例において、現在スケジューリング周期の調整後の長さと調整前の長さとの間の第3時間差値を決定することができる。その後に、第3時間差値および当該第3タスクのサービス品質パラメータに基づいて、当該第3タスクの補償時間を決定することができる。たとえば、第3時間差値と当該第3タスクのサービス品質パラメータとを乘算して、当該第3タスクの補償時間を得ることができ、さらに、当該第3タスクに対する時間補償を実現することができる。ここで、補償時間は、以下の数(2)に従って計算することができる。
(数2)
tcompensation =(Tnewtimeslice ― Toldtimeslice)*SharevGPU
tcompensationは、補償時間を示し、Tnewtimesliceは、現在スケジューリング周期の調整後の長さ、Toldtimesliceは、現在スケジューリング周期の調整前の長さであり得、SharevGPUは、第3タスクのサービス品質パラメータであり得る。数(2)に従って各第3タスクの補償時間を得ることができる。
(数2)
tcompensation =(Tnewtimeslice ― Toldtimeslice)*SharevGPU
tcompensationは、補償時間を示し、Tnewtimesliceは、現在スケジューリング周期の調整後の長さ、Toldtimesliceは、現在スケジューリング周期の調整前の長さであり得、SharevGPUは、第3タスクのサービス品質パラメータであり得る。数(2)に従って各第3タスクの補償時間を得ることができる。
図2は、本発明の実施例に係るタスクを割り当てたタイムスライスに対して延長を実行する例を示すフローチャートであり、以下のステップを含み得る。
S201において、現在実行中のタスクがタイムアウトするか否かを判断する。
現在タスクがタイムアウトした場合、S202および後続のステップを実行することができる。現在タスクがタイムアウトしていない場合、S205および後続のステップを実行することができる。
S202において、現在スケジューリング周期内の実行済みのタスクのタイムアウト回数に基づいて、現在スケジューリング周期の長さに対して延長を実行する。
オプションとして、現在スケジューリング周期の現在累積タイムアウト回数に基づいて、すなわち現在スケジューリング周期内の実行済みのタスクの累積タイムアウト回数に基づいて、現在スケジューリング周期の長さを調整することができる。
S203において、現在スケジューリング周期の延長後の長さに基づいて、現在スケジューリング周期内の各タスクに割り当てられたタイムスライスを調整する。
S204において、実行済みのタスクの補償タスクをスケジューリングキューの最後に挿入し、補償タスクに該当の補償時間を割り当てる。
タスクのタイムスライスに対して延長を実行することによって、現在実行中のタスクがタイムアウトした場合、現在スケジューリング周期内の各タスクに割り当てられたタイムスライスを延長することによって、延長後のタイムスライスが該当のサービス品質に適合するようにする。
S205において、現在スケジューリング周期が終了するか否かを判断する。
現在スケジューリング周期が終了していない場合、ステップS207を実行する。現在スケジューリング周期が終了した場合、ステップS206を実行する。
S206において、現在のプロセスを終了する。現在スケジューリング周期の長さを次の1つのスケジューリング周期に継承する。
S207において、次の1つのタスクをスケジューリングしてタスクを実行し、次の1つのタスクを現在実行中のタスクとして更新して、ステップS201に戻る。
1つの可能の実現形態において、現在スケジューリング周期内の各タスクがいずれもタイムアウトしていないことが決定された場合、現在スケジューリング周期の次の1つのスケジューリング周期の長さに対して調整を実行した後に、次の1つのスケジューリング周期の調整後の長さに基づいて、次の1つのスケジューリング周期内の第2タスクに割り当てられたタイムスライスを決定することができる。
当該例において、現在スケジューリング周期内の各タスクいずれもタイムアウトしていない場合、現在スケジューリング周期の次の1つのスケジューリング周期の長さを短縮して、次の1つのスケジューリング周期の短縮後の長さを得ることができる。たとえば、次の1つのスケジューリング周期の長さに基づいて一定の時間長を短縮するか、または、次の1つのスケジューリング周期の長さに一定の係数を乘算して、次の1つのスケジューリング周期の短縮後の長さを得ることができる。その後に、次の1つのスケジューリング周期の調整後の長さに基づいて、次の1つのスケジューリング周期内の各第2タスクに割り当てられたタイムスライスの長さを決定することができる。たとえば、次の1つのスケジューリング周期内の各第2タスクに割り当てられたタイムスライスの長さを短縮して、短縮後のタイムスライスの長さの合計が次の1つのスケジューリング周期の調整後の長さと等しくなるようにする。各第2タスクの短縮後のタイムスライスの長さに基づいて、さらに、各第2タスクに割り当てられたタイムスライスを決定することによって、現在スケジューリング周期内のタスクに割り当てられたタイムスライスが長すぎるときに、次の1つのスケジューリング周期内の第2タスクのタイムスライスを自動的に短縮して、仮想画像処理ユニットリソースを効果的に利用することができる。
1つの例において、予め設定された短縮係数を利用して次の1つのスケジューリング周期の長さを短縮することができる。
当該例において、短縮係数は、実際の適用場面に応じて設定することができ、1未満の実数に設定することができ、たとえば、短縮係数を1/2に設定することができる。短縮係数を利用して次の1つのスケジューリング周期の長さを短縮するときに、次の1つのスケジューリング周期の長さに短縮係数を乘算して、次の1つのスケジューリング周期の短縮後の長さを得ることができる。適当な短縮係数を利用して次の1つのスケジューリング周期の長さを短縮することによって、次の1つのスケジューリング周期の長さの過度な短縮による次の1つのスケジューリング周期の短縮後の長さが小さすぎになることを避けることができる。
1つの例において、次の1つのスケジューリング周期の調整後の長さおよび各第2タスクに対応するサービス品質パラメータに基づいて、次の1つのスケジューリング周期内の各第2タスクに割り当てられたタイムスライスの長さを決定することによって、各第2タスクのサービス品質パラメータが対応するプリセット値に維持されるようにするか、および/または、各前記第2タスクのタイムスライスの、次の1つのスケジューリング周期に占める比率が対応するプリセット値に維持されるようにすることができる。
当該例において、次の1つのスケジューリング周期の長さを調整した後に、次の1つのスケジューリング周期内の各第2タスクに対応するサービス品質パラメータおよび次の1つのスケジューリング周期の調整後の長さに基づいて、各第2タスクに割り当てられたタイムスライスの長さを決定することができ、たとえば、各第2タスクに対応するサービス品質パラメータと次の1つのスケジューリング周期の調整後の長さとを乘算して、当該第2タスクに割り当てるタイムスライスの長さを得ることができ、さらに、各第2タスクに割り当てるタイムスライスを決定することができる。このようにして、各第2タスクのサービス品質パラメータが変更されないままであるようにし、および/または、各第2タスクのタイムスライスの、現在スケジューリング周期に占める比率が変更されないままであるようにして、サービス品質の要求を満たす。
図3は、本発明の実施例に係るタスクに割り当てられたタイムスライスを短縮する例を示すフローチャートであり、以下のステップを含み得る。
S301において、現在スケジューリング周期内の各タスクがタイムアウトするか否かを判断する。
S302において、現在スケジューリング周期内の各タスクがいずれもタイムアウトしていない場合、短縮係数を利用して次の1つのスケジューリング周期の長さを短縮して、次の1つのスケジューリング周期の短縮後の長さを得る。
S303において、次の1つのスケジューリング周期の短縮後の長さに基づいて、次の1つのスケジューリング周期の各タスクに割り当てられたタイムスライスを短縮する。
S304において、次の1つのスケジューリング周期のタスクのスケジューリングを実行する。
タスクのタイムスライスを短縮することによって、現在スケジューリング周期内のタスクがいずれもタイムアウトしていない場合、次の1つのスケジューリング周期内の各タスクに割り当てられたタイムスライスを自動的に短縮することによって、短縮後のタイムスライスが該当するサービス品質に適合されるようにする。
1つの可能の実現形態において、予め設定された時間帯内の複数のタスクユニットに対して履歴タスクを実行するときの履歴タスク処理時間を取得し、その後に、履歴タスク処理時間の統計情報に基づいて、現在スケジューリング周期の初期長さを決定することができる。
当該実現形態において、予め設定された時間帯内の履歴タスク処理時間に基づいて、現在スケジューリング周期の初期長さを決定することができる。予め設定された時間帯は、実際の適用場面に応じて設定することができ、たとえば、最近の24時間内の複数のタスクの履歴タスクを実行するときの履歴タスク処理時間を取得することができる。履歴タスク処理時間の統計情報は、履歴タスクの情報、履歴タスクの累積頻度などを含み得、その後、履歴タスク処理時間の統計情報に基づいて、現在スケジューリング周期の初期長さを決定することができる。たとえば、複数のタスクが履歴タスクを実行する時間に基づいて、1つの履歴タスク処理時間と履歴タスクの累積頻度との間の曲線を決定し、その後に、当該曲線に基づいて1つの適当の履歴タスク処理時間を現在スケジューリング周期の初期長さとして選択することができる。
図4は、本発明の実施例に係る履歴タスク処理時間と累積頻度の曲線であり、図面において、横軸は、対応する履歴タスク処理時間であり、横軸の単位はmsであり、縦軸は、対応する累積頻度である。図4に示すように、累積頻度が、70%であり、約100msに対応することは、予め設定された時間帯内で、70%のタスクユニットのタスク処理時間が100ms以内であることとして理解することができる。たとえば、累積頻度が70%に対応する履歴タスク処理時間を現在スケジューリング周期の初期長さとして決定することができる。または、累積頻度が70%に対応する履歴タスク処理時間に1つの倍数を乘算し、たとえば、累積頻度が70%に対応する履歴タスク処理時間に10を乘算して、現在スケジューリング周期の初期長さを得ることができる。
当該実現形態の1つの例において、現在スケジューリング周期の初期長さおよび現在スケジューリング周期内の各タスクに対応するサービス品質パラメータに基づいて、各タスクに割り当てる初期タイムスライスの時間を決定することができる。
当該例において、現在スケジューリング周期内の各タスクに対応するサービス品質パラメータおよび現在スケジューリング周期の初期長さに基づいて、各タスクに割り当てる初期持続時間を計算することができる。たとえば、現在スケジューリング周期がタスクA、タスクB、および、タスクCのような3つのタスクを含み、タスクAに対応するタイムスライスシェアが3であり、タスクBに対応するタイムスライスシェアが3であり、タスクCに対応するタイムスライスシェアが4であると、タスクAの初期タイムスライスは0.3個の初期持続時間、タスクBの初期タイムスライスは0.3個の初期持続時間、タスクCの初期タイムスライスは0.4個の初期持続時間であり得る。このようにして、1つのスケジューリング周期内の各タスクの初期タイムスライスは、該当するサービス品質パラメータに基づいて割り当てることによって、サービス品質要求を満たすことができる。
1つの可能の実現形態において、現在スケジューリング周期の初期長さは、実際の適用場面に応じて設定することができ、たとえば、初期長さを100msに設定することができる。その後に、現在スケジューリング周期の初期長さおよび現在スケジューリング周期内の各タスクに対応するサービス品質パラメータに基づいて、現在スケジューリング周期内の各タスクに割り当てる初期タイムスライスを決定することができる。
本発明の実施例によって提供されるスケジューリング解決策によると、タスクに割り当てられたタイムスライスの長さが長すぎるかまたは短すぎる場合、タスクに割り当てられたタイムスライスを自動的に調整することができ、タスクのタイムスライスを合理的に構成する効果を達する。
本発明に言及された上記の各方法の実施例は、原理と論理を違反することなく、いずれも互いに組み合わせて組み合わせた後の実施例を形成することができ、スペースの制限により、本発明は繰り返して説明しないことを理解できる。
なお、本発明は、装置、電子デバイス、コンピュータ可読記録媒体、および、プログラムをさらに提供し、上述したものは、いずれも本発明によって提供される任意のスケジューリング方法を実装することができ、該当する技術的解決策と説明は、方法の部分の該当する記載を参照でき、ここで繰り返して説明しない。
当業者は、具体的な実施形態の上述した方法において、各ステップの書き込み順序は厳密な実行順序を意味するのではなく、実施過程に対していかなる限定も構成しないし、各ステップの具体的な実行順序はその機能と可能の内部ロジックによって決定されるべきであることを理解できる。
図5は、本発明の実施例に係るスケジューリング装置を示すブロック図であり、図5に示すように、前記装置は、取得モジュール51と、決定モジュール52と、調整モジュール53と、を備える。
取得モジュール51は、現在スケジューリング周期内の第1タスクのタスク処理時間を取得する。
決定モジュール52は、前記タスク処理時間と、前記現在スケジューリング周期内の前記第1タスクに割り当てられた第1タイムスライスとに基づいて、前記第1タスクがタイムアウトするか否かを決定する。
調整モジュール53は、決定した結果に基づいて、目標スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整し、ここで、前記目標スケジューリング周期は、前記現在スケジューリング周期または前記現在スケジューリング周期の次の1つのスケジューリング周期を含む。
1つまたは複数のオプションの実施例において、前記決定モジュール52は、具体的に、前記タスク処理時間の終了時点と前記第1タイムスライスの終了時点との間の第1時間差値を決定し、前記第1時間差値が第1時間閾値よりも大きい場合、前記第1タスクがタイムアウトしたと決定する。
1つまたは複数のオプションの実施例において、前記第1時間閾値は、前記第1タイムスライスの長さに基づいて得られたものである。
1つまたは複数のオプションの実施例において、前記調整モジュール53は、具体的に、前記第1タスクがタイムアウトしたと決定した場合、前記現在スケジューリング周期の長さを調整し、前記現在スケジューリング周期の調整後の長さに基づいて、前記現在スケジューリング周期内の前記少なくとも1つの第2タスクに割り当てられたタイムスライスを調整する。
1つまたは複数のオプションの実施例において、前記調整モジュール53は、具体的に、前記現在スケジューリング周期の調整後の長さおよび各前記第2タスクのサービス品質パラメータに基づいて、前記現在スケジューリング周期内の各前記第2タスクに割り当てられたタイムスライスの長さを調整することによって、各前記第2タスクのサービス品質パラメータが対応するプリセット値に維持されるようにするか、および/または、各前記第2タスクのタイムスライスの、前記現在スケジューリング周期内に占める比率が対応するプリセット値に維持されるようにする。
1つまたは複数のオプションの実施例において、前記調整モジュール53は、具体的に、前記現在スケジューリング周期内の第3タスクのタイムアウト回数を取得し、前記タイムアウト回数に基づいて、前記現在スケジューリング周期の長さを延長するための延長係数を決定し、前記延長係数に基づいて、前記現在スケジューリング周期の長さを延長して、前記現在スケジューリング周期の調整後の長さを得、前記第3タスクは、現在スケジューリング周期内の実行済みのタスクであり、前記延長係数は、前記タイムアウト回数と正の相関を有する。
1つまたは複数のオプションの実施例において、前記延長係数は、前記タイムアウト回数を変数とする指数関数に基づいて得られたものである。
1つまたは複数のオプションの実施例において、前記調整モジュール53は、さらに、前記現在スケジューリング周期内の第3タスクのタスク処理時間を取得し、前記第3タスクのタスク処理時間が前記第3タスクの調整後のタイムスライスの長さよりも小さいことに応答して、前記現在スケジューリング周期内の前記第3タスクに対して時間補償を実行し、前記少なくとも1つの第2タスクは、前記第3タスクを含む。
1つまたは複数のオプションの実施例において、前記調整モジュール53は、具体的に、前記第3タスクのタスク処理時間および前記第3タスクの調整後のタイムスライスの長さに基づいて、前記第3タスクの補償時間を決定し、前記補償時間に基づいて、前記第3タスクの補償タスクを前記現在スケジューリング周期のスケジューリングキューに追加する。
1つまたは複数のオプションの実施例において、前記調整モジュール53は、具体的に、前記補償時間に基づいて、前記第3タスクの前記補償タスクを前記現在スケジューリング周期のスケジューリングキューの最後に追加する。
1つまたは複数のオプションの実施例において、前記調整モジュール53は、具体的に、前記現在スケジューリング周期内の各タスクがいずれもタイムアウトしなかったと決定した場合、前記現在スケジューリング周期の次の1つのスケジューリング周期の長さを調整し、前記次の1つのスケジューリング周期の調整後の長さに基づいて、前記次の1つのスケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを決定する。
1つまたは複数のオプションの実施例において、前記調整モジュール53は、具体的に、予め設定された短縮係数を利用して前記次の1つのスケジューリング周期の長さを短縮する。
1つまたは複数のオプションの実施例において、前記調整モジュール53は、具体的に、前記次の1つのスケジューリング周期の調整後の長さおよび各前記第2タスクのサービス品質パラメータに基づいて、前記次の1つのスケジューリング周期内の各前記第2タスクに割り当てられたタイムスライスの長さを決定することによって、各前記第2タスクのサービス品質パラメータが対応するプリセット値に維持されるようにするか、および/または、各前記第2タスクのタイムスライスの、前記次の1つのスケジューリング周期に占める比率が対応するプリセット値に維持されるようにする。
1つまたは複数のオプションの実施例において、前記装置は、予め設定された時間帯内で複数の仮想画像処理ユニットが履歴タスクを実行した履歴タスク処理時間を取得し、前記履歴タスク処理時間の統計情報に基づいて、前記現在スケジューリング周期の初期長さを決定するための初期周期決定モジュールをさらに備える。
いくつかの実施例において、本発明の実施例によって提供される装置に含まれる機能またはモジュールは、上記の方法の実施例に記載の方法を実行することができ、その具体的な実施については上記の方法の実施例の説明を参照することができ、簡素化のためにここでは繰り返して説明しない。
本発明の実施例は、電子デバイスをさらに提案し、当該電子デバイスは、プロセッサと、プロセッサによって実行可能な命令を記憶するためのメモリと、を備え、前記プロセッサは、前記メモリに記憶されている命令を呼び出して、上述したスケジューリング方法を実行する。
電子デバイスは、端末、サーバ、または他のタイプのデバイスとして提供され得る。
図6は、本発明の実施例に係る電子デバイス600のブロック図である。例えば、電子デバイス600は、サーバとして提供され得る。図7を参照すると、電子デバイス600は、処理コンポーネント622を含み、更に、当該処理コンポーネント622は、1つ又は複数のプロセッサ、及びメモリ632に代表されるメモリリソースとを備え、メモリ632は、処理コンポーネント622によって実行され得る命令、例えば、アプリケーションプログラムを記憶する。メモリ632に記憶されるアプリケーションプログラムは、それぞれが1セットの命令に対応する1つ又は1つ以上のモジュールを備えてもよい。また、処理コンポーネント622は、命令を実行することで上記のリソーススケジューリング方法を実施するように構成される。
電子デバイス600は、電子デバイス600の電源管理を実行するように構成される電源コンポーネント626と、電子デバイス600をネットワークに接続するように構成される有線又は無線ネットワークインターフェース650と、入力/出力(I/O)インターフェース658とを更に備えてもよい。電子デバイス600は、メモリ632に記憶されたオペレーティングシステム、例えばWindows ServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTM又はその他を操作してもよい。
例示的な実施例は、不揮発性コンピュータ可読記憶媒体、例えば、コンピュータプログラム命令を含むメモリ632を更に提供する。上記コンピュータプログラム命令が電子デバイス600の処理コンポーネント622によって実行されることで、上記方法は、実施され得る。
本発明は、システム、方法及び/又はコンピュータプログラム製品を提供する。コンピュータプログラム製品は、コンピュータ可読記憶媒体を含んでもよい。コンピュータ可読記憶媒体には、プロセッサに本発明の各態様を実施させるためのコンピュータ可読プログラム命令が載せている。
コンピュータ可読記憶媒体は、命令実行機器で使用される命令を維持及び記憶する有形機器であってもよい。コンピュータ可読記憶媒体は、例えば、電気記憶機器、磁気記憶機器、光記憶機器、電磁的記憶機器、半導体記憶機器又は上記任意の適切な組み合わせであってもよいが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例(非網羅のリスト)は、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型圧縮ディスク読み出し専用メモリ(CD-ROM)、デジタル多機能ディスク(DVD)、メモリスティック、フロッピーディスク、機械的な符号化機器、例えば、命令が記憶されるパンチカード又は溝内突起構造、及び上記の任意の適切な組合を含む。ここで使用されるコンピュータ可読記憶媒体は、瞬時信号自身、例えば、無線電波又は他の自由に伝搬される電磁波、導波路又は他の伝送媒体を介して伝搬される電磁波(例えば、光ファイバー・ケーブルを介した光パルス)、又は電線を介して伝送された電気信号として解釈されない。
ここで記述されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各演算/処理機器にダウンロードし、又は、ネットワーク、例えばインターネット、ローカルエリアネットワーク、広域ネットワーク及び/又は無線ネットワークを介して外部コンピュータ或いは外部記憶機器へダウンロードしてもよい。ネットワークは、銅伝送ケーブル、光ファイバー伝送、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含んでもよい。各演算/処理機器におけるネットワークアダプタ又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信して当該コンピュータ可読プログラム命令を転送することにより、各演算/処理機器におけるコンピュータ可読記憶媒体に記憶させる。
本発明の操作を実行するためのコンピュータプログラム命令は、アセンブリ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン関連命令、マイクロコード、ファームウェア命令、状態設定データ、又は、1種若しくは複数種のプログラミング言語の任意の組み合わせで作成されたソースコード又はターゲットコードであってもよい。前記プログラミング言語は、オブジェクト指向プログラミング言語(例えば、Smalltalk、C++等)、及び、通常のプロセスプログラミング言語(例えば、「C」語言)又は類似するプログラミング言語を含む。コンピュータ可読プログラム命令は、完全にユーザコンピュータ上で実行されてもよく、部分的にユーザコンピュータ上で実行されてもよく、1つの独立するソフトウェアパッケージとして実行されてもよく、一部がユーザコンピュータ上でもう一部がリモートコンピュータ上で実行されてもよく、又は完全にリモートコンピュータ又はサーバ上で実行されてもよい。リモートコンピュータの場合に、リモートコンピュータは、任意の種類のネットワーク(ローカルエリアネットワーク(LAN)又は広域ネットワーク(WAN)を含む)を介してユーザコンピュータに接続され、又は、外部コンピュータに接続されてもよい(例えば、インターネットサービスプロバイダを利用してインターネットで接続される)。幾つかの実施例では、コンピュータ可読プログラム命令の状態情報を用いて電子回路、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)又はプログラマブル論理アレイ(PLA)を個性化でカストマイズする。当該電子回路は、コンピュータ可読プログラム命令を実行することにより、本発明の各態様を実施可能である。
ここで、本発明の実施例に係る方法、装置(システム)及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して、本発明の各態様を記述した。理解できるように、フローチャート及び/又はブロック図の各ブロック並びにフローチャート及び/又はブロック図における各ブロックの組み合わせは、何れもコンピュータ可読プログラム命令にて実現され得る。
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ又は他のプログラマブルデータ処理装置のプロセッサへ供給されて、1種のマシンを生み出すことができる。このように、これらの命令がコンピュータ又は他のプログラマブルデータ処理装置のプロセッサによって実行されたときに、フローチャート及び/又はブロック図における1つ又は複数のブロックで規定された機能/動作を実現する装置は、生成される。これらのコンピュータ可読プログラム命令をコンピュータ可読記憶媒体に記憶してもよい。これらの命令により、コンピュータ、プログラマブルデータ処理装置及び/又は他の機器は、特定の方式で稼働する。このように、命令が記憶されたコンピュータ可読媒体は、1つの製造品を含み、それは、フローチャート及び/又はブロック図における1つ又は複数のブロックで規定された機能/動作を実現する各態様の命令を含む。
コンピュータ可読プログラム命令をコンピュータ、他のプログラマブルデータ処理装置、又は他の機器にロードしてもよい。このように、コンピュータ、他のプログラマブルデータ処理装置又は他の機器上で一連の操作ステップが実行され、コンピュータによる実現の過程は、生み出される。これにより、コンピュータ、他のプログラマブルデータ処理装置、又は他の機器上で実行された命令は、フローチャート及び/又はブロック図における1つ又は複数のブロックで規定された機能/動作を実現する。
図面におけるフローチャート及びブロック図は、本発明の複数の実施例に係るシステム、方法及びコンピュータプログラム製品の実施可能な体系アーキテクチャ、機能及び操作を示す。この点では、フローチャート又はブロック図における各ブロックは、1つのモジュール、プログラムセグメント又は命令の一部を代表してもよい。前記モジュール、プログラムセグメント又は命令の一部は、規定された論理機能を実施するための1つ又は複数の実行可能命令を含む。幾つかの代替としての実施形態において、ブロック中にマークされた機能は、図面に示された順番と異なる順番で発生してもよい。例えば、2つの連続するブロックは、実に、基本的に並行に実行されてもよく、そして、逆の順番で実行されるときもあり、これは、かかる機能に応じて定められる。注意すべきことは、ブロック図及び/又はフローチャートにおける各ブロック、並びに、ブロック図及び/又はフローチャートにおけるブロックの組み合わせは、規定の機能又は動作を実行する専用のハードウェアに基づくシステムにて実現されてもよく、専用ハードウェアとコンピュータ命令との組み合わせで実現されてもよい。
以上では、本発明の各実施例を記述した。上記説明は、例示であり、網羅的ではなく、開示された各実施例にも限定されない。説明された各実施例の範囲及び精神から逸脱しない場合に、多くの修正及び変更は、当業者にとって明らかである。本明細書での用語は、各実施例の原理、実際の応用又は、マーケットにおける技術に対する技術的改善を最良に解釈し、又は当業者に本明細書に開示された各実施例を理解させえるために選択される。
Claims (30)
- スケジューリング方法であって、
現在スケジューリング周期内の第1タスクのタスク処理時間を取得することと、
前記タスク処理時間と、前記現在スケジューリング周期内の前記第1タスクに割り当てられた第1タイムスライスとに基づいて、前記第1タスクがタイムアウトするか否かを決定することと、
決定した結果に基づいて、目標スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することと、を含み、
前記目標スケジューリング周期は、前記現在スケジューリング周期または前記現在スケジューリング周期の次の1つのスケジューリング周期を含む
ことを特徴とするスケジューリング方法。 - 前記タスク処理時間と、前記現在スケジューリング周期内の前記第1タスクに割り当てられた第1タイムスライスとに基づいて、前記第1タスクがタイムアウトするか否かを決定することは、
前記タスク処理時間の終了時点と前記第1タイムスライスの終了時点との間の第1時間差値を決定することと、
前記第1時間差値が第1時間閾値よりも大きい場合、前記第1タスクがタイムアウトしたと決定することと、を含む
ことを特徴とする請求項1に記載のスケジューリング方法。 - 前記第1時間閾値は、前記第1タイムスライスの長さに基づいて得られたものである
ことを特徴とする請求項2に記載のスケジューリング方法。 - 前記決定した結果に基づいて、目標スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することは、
前記第1タスクがタイムアウトしたと決定した場合、前記現在スケジューリング周期の長さを調整することと、
前記現在スケジューリング周期の調整後の長さに基づいて、前記現在スケジューリング周期内の前記少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することと、を含む
ことを特徴とする請求項1~3のいずれか1項に記載のスケジューリング方法。 - 前記現在スケジューリング周期の調整後の長さに基づいて、前記現在スケジューリング周期内の前記少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することは、
前記現在スケジューリング周期の調整後の長さおよび各前記第2タスクのサービス品質パラメータに基づいて、前記現在スケジューリング周期内の各前記第2タスクに割り当てられたタイムスライスの長さを調整することによって、各前記第2タスクのサービス品質パラメータが、対応するプリセット値に維持されるようにするか、および/または、各前記第2タスクのタイムスライスの、前記現在スケジューリング周期に占める比率が、対応するプリセット値に維持されるようにすることを含む
ことを特徴とする請求項4に記載のスケジューリング方法。 - 前記第1タスクがタイムアウトしたと決定した場合、前記現在スケジューリング周期の長さを調整することは、
前記現在スケジューリング周期内の第3タスクのタイムアウト回数を取得することと、
前記タイムアウト回数に基づいて、前記現在スケジューリング周期の長さを延長するための延長係数を決定することと、
前記延長係数に基づいて、前記現在スケジューリング周期の長さを延長して、前記現在スケジューリング周期の調整後の長さを得ることと、を含み、
前記第3タスクは、現在スケジューリング周期内の実行済みのタスクであり、前記延長係数は、前記タイムアウト回数と正の相関を有する
ことを特徴とする請求項4または5に記載のスケジューリング方法。 - 前記延長係数は、前記タイムアウト回数を変数とする指数関数に基づいて得られたものである
ことを特徴とする請求項6に記載のスケジューリング方法。 - 前記現在スケジューリング周期内の第3タスクのタスク処理時間を取得することと、
前記第3タスクのタスク処理時間が前記第3タスクの調整後のタイムスライスの長さよりも小さいことに応答して、前記現在スケジューリング周期内の前記第3タスクに対して時間補償を実行することと、をさらに含み、
前記少なくとも1つの第2タスクは、前記第3タスクを含む
ことを特徴とする請求項4~7のいずれか1項に記載のスケジューリング方法。 - 前記第3タスクのタスク処理時間が前記第3タスクの調整後のタイムスライスの長さよりも小さいことに応答して、前記現在スケジューリング周期内の前記第3タスクに対して時間補償を実行することは、
前記第3タスクのタスク処理時間および前記第3タスクの調整後のタイムスライスの長さに基づいて、前記第3タスクの補償時間を決定することと、
前記補償時間に基づいて、前記第3タスクの補償タスクを前記現在スケジューリング周期のスケジューリングキューに追加することと、を含む
ことを特徴とする請求項8に記載のスケジューリング方法。 - 前記補償時間に基づいて、前記第3タスクの補償タスクを前記現在スケジューリング周期のスケジューリングキューに追加することは、
前記補償時間に基づいて、前記第3タスクの前記補償タスクを前記現在スケジューリング周期のスケジューリングキューの最後に追加することを含む
ことを特徴とする請求項9に記載のスケジューリング方法。 - 決定した結果に基づいて、目標スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整することは、
前記現在スケジューリング周期内の各タスクがいずれもタイムアウトしなかったと決定した場合、前記現在スケジューリング周期の次の1つのスケジューリング周期の長さを調整することと、
前記次の1つのスケジューリング周期の調整後の長さに基づいて、前記次の1つのスケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを決定することと、を含む
ことを特徴とする請求項1~3のいずれか1項に記載のスケジューリング方法。 - 前記現在スケジューリング周期の次の1つのスケジューリング周期の長さを調整することは、
予め設定された短縮係数を利用して前記次の1つのスケジューリング周期の長さを短縮することを含む
ことを特徴とする請求項11に記載のスケジューリング方法。 - 前記次の1つのスケジューリング周期の調整後の長さに基づいて、前記次の1つのスケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを決定することは、
前記次の1つのスケジューリング周期の調整後の長さおよび各前記第2タスクのサービス品質パラメータに基づいて、前記次の1つのスケジューリング周期内の各前記第2タスクに割り当てられたタイムスライスの長さを決定することによって、各前記第2タスクのサービス品質パラメータが、対応するプリセット値に維持されるようにするか、および/または、各前記第2タスクのタイムスライスの、前記次の1つのスケジューリング周期に占める比率が、対応するプリセット値に維持されるようにすることを含む
ことを特徴とする請求項11または12に記載のスケジューリング方法。 - 予め設定された時間帯内の複数のタスクの履歴タスクを実行した履歴タスク処理時間を取得することと、
前記履歴タスク処理時間の統計情報に基づいて、前記現在スケジューリング周期の初期長さを決定することと、をさらに含む
ことを特徴とする請求項1~13のいずれか1項に記載のスケジューリング方法。 - スケジューリング装置であって、
現在スケジューリング周期内の第1タスクのタスク処理時間を取得するための取得モジュールと、
前記タスク処理時間と、前記現在スケジューリング周期内の前記第1タスクに割り当てられた第1タイムスライスとに基づいて、前記第1タスクがタイムアウトするか否かを決定するための決定モジュールと、
決定した結果に基づいて、目標スケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを調整するための調整モジュールと、を備え、
前記目標スケジューリング周期は、前記現在スケジューリング周期または前記現在スケジューリング周期の次の1つのスケジューリング周期を含む
ことを特徴とするスケジューリング装置。 - 前記決定モジュールは、具体的に、
前記タスク処理時間の終了時点と前記第1タイムスライスの終了時点との間の第1時間差値を決定し、
前記第1時間差値が第1時間閾値よりも大きい場合、前記第1タスクがタイムアウトしたと決定する
ことを特徴とする請求項15に記載のスケジューリング装置。 - 前記第1時間閾値は、前記第1タイムスライスの長さに基づいて得られたものである
ことを特徴とする請求項16に記載のスケジューリング装置。 - 前記調整モジュールは、具体的に、
前記第1タスクがタイムアウトしたと決定した場合、前記現在スケジューリング周期の長さを調整し、
前記現在スケジューリング周期の調整後の長さに基づいて、前記現在スケジューリング周期内の前記少なくとも1つの第2タスクに割り当てられたタイムスライスを調整する
ことを特徴とする請求項15~17のいずれか1項に記載のスケジューリング装置。 - 前記調整モジュールは、具体的に、
前記現在スケジューリング周期の調整後の長さおよび各前記第2タスクのサービス品質パラメータに基づいて、前記現在スケジューリング周期内の各前記第2タスクに割り当てられたタイムスライスの長さを調整することによって、各前記第2タスクのサービス品質パラメータが対応するプリセット値に維持されるようにするか、および/または、各前記第2タスクのタイムスライスの、前記現在スケジューリング周期に占める比率が対応するプリセット値に維持されるようにする
ことを特徴とする請求項18に記載のスケジューリング装置。 - 前記調整モジュールは、具体的に、
前記現在スケジューリング周期内の第3タスクのタイムアウト回数を取得し、
前記タイムアウト回数に基づいて、前記現在スケジューリング周期の長さを延長するための延長係数を決定し、
前記延長係数に基づいて、前記現在スケジューリング周期の長さを延長して、前記現在スケジューリング周期の調整後の長さを得、
前記第3タスクは、現在スケジューリング周期内の実行済みのタスクであり、前記延長係数は、前記タイムアウト回数と正の相関を有する
ことを特徴とする請求項18または19に記載のスケジューリング装置。 - 前記延長係数は、前記タイムアウト回数を変数とする指数関数に基づいて得られたものである
ことを特徴とする請求項20に記載のスケジューリング装置。 - 前記調整モジュールは、さらに、
前記現在スケジューリング周期内の第3タスクのタスク処理時間を取得し、
前記第3タスクのタスク処理時間が前記第3タスクの調整後のタイムスライスの長さよりも小さいことに応答して、前記現在スケジューリング周期内の前記第3タスクに対して時間補償を実行し、
前記少なくとも1つの第2タスクは、前記第3タスクを含む
ことを特徴とする請求項18~21のいずれか1項に記載のスケジューリング装置。 - 前記調整モジュールは、具体的に、
前記第3タスクのタスク処理時間および前記第3タスクの調整後のタイムスライスの長さに基づいて、前記第3タスクの補償時間を決定し、
前記補償時間に基づいて、前記第3タスクの補償タスクを前記現在スケジューリング周期のスケジューリングキューに追加する
ことを特徴とする請求項22に記載のスケジューリング装置。 - 前記調整モジュールは、具体的に、
前記補償時間に基づいて、前記第3タスクの前記補償タスクを前記現在スケジューリング周期のスケジューリングキューの最後に追加する
ことを特徴とする請求項23に記載のスケジューリング装置。 - 前記調整モジュールは、具体的に、
前記現在スケジューリング周期内の各タスクがいずれもタイムアウトしなかったと決定した場合、前記現在スケジューリング周期の次の1つのスケジューリング周期の長さを調整し、
前記次の1つのスケジューリング周期の調整後の長さに基づいて、前記次の1つのスケジューリング周期内の少なくとも1つの第2タスクに割り当てられたタイムスライスを決定する
ことを特徴とする請求項15~17のいずれか1項に記載のスケジューリング装置。 - 前記調整モジュールは、具体的に、
予め設定された短縮係数を利用して前記次の1つのスケジューリング周期の長さを短縮する
ことを特徴とする請求項25に記載のスケジューリング装置。 - 前記調整モジュールは、具体的に、
前記次の1つのスケジューリング周期の調整後の長さおよび各前記第2タスクのサービス品質パラメータに基づいて、前記次の1つのスケジューリング周期内の各前記第2タスクに割り当てられたタイムスライスの長さを決定することによって、各前記第2タスクのサービス品質パラメータが対応するプリセット値に維持されるようにするか、および/または、各前記第2タスクのタイムスライスの、前記次の1つのスケジューリング周期に占める比率が対応するプリセット値に維持されるようにする
ことを特徴とする請求項25または26に記載のスケジューリング装置。 - 複数の仮想画像処理ユニットが予め設定された時間帯に履歴タスクを実行した履歴タスク処理時間を取得し、前記履歴タスク処理時間の統計情報に基づいて、前記現在スケジューリング周期の初期長さを決定するための初期周期決定モジュールをさらに備える
ことを特徴とする請求項15~27のいずれか1項に記載のスケジューリング装置。 - 電子デバイスであって、
プロセッサと、
前記プロセッサによって実行可能な命令を記憶するためのメモリと、を備え、
前記プロセッサは、前記メモリに記憶されている命令を呼び出して、請求項1~14のいずれか1項に記載の方法を実行する
ことを特徴とする電子デバイス。 - コンピュータプログラム命令が記憶されているコンピュータ可読記録媒体であって、
前記コンピュータプログラム命令がコンピュータによって実行されるときに、請求項1~14のいずれか1項に記載の方法が実施される
ことを特徴とするコンピュータ可読記録媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911108865.9 | 2019-11-13 | ||
CN201911108865.9A CN112799793B (zh) | 2019-11-13 | 2019-11-13 | 调度方法及装置、电子设备和存储介质 |
PCT/CN2020/081199 WO2021093248A1 (zh) | 2019-11-13 | 2020-03-25 | 调度方法及装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022515255A true JP2022515255A (ja) | 2022-02-17 |
Family
ID=75803534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021536726A Pending JP2022515255A (ja) | 2019-11-13 | 2020-03-25 | スケジューリング方法及び装置、電子デバイス並びに記録媒体 |
Country Status (6)
Country | Link |
---|---|
JP (1) | JP2022515255A (ja) |
KR (1) | KR20210095687A (ja) |
CN (1) | CN112799793B (ja) |
SG (1) | SG11202107163PA (ja) |
TW (1) | TW202119207A (ja) |
WO (1) | WO2021093248A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116700135B (zh) * | 2023-08-09 | 2023-10-20 | 长江三峡集团实业发展(北京)有限公司 | 可编程逻辑控制器任务调度方式的测试方法及装置 |
CN117290113B (zh) * | 2023-11-22 | 2024-02-13 | 太平金融科技服务(上海)有限公司 | 一种任务处理方法、装置、系统和存储介质 |
CN117421106B (zh) * | 2023-12-11 | 2024-03-08 | 湖南行必达网联科技有限公司 | 一种嵌入式软件的任务调度方法、系统及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885825A (zh) * | 2014-03-05 | 2014-06-25 | 南京邮电大学 | 基于动态时间片的速率单调实时调度方法 |
CN110109745A (zh) * | 2019-05-15 | 2019-08-09 | 华南理工大学 | 一种针对边缘计算环境的任务协同在线调度方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4025260B2 (ja) * | 2003-08-14 | 2007-12-19 | 株式会社東芝 | スケジューリング方法および情報処理システム |
WO2012093496A1 (ja) * | 2011-01-07 | 2012-07-12 | 富士通株式会社 | マルチタスクスケジューリング方法、およびマルチコアプロセッサシステム |
US9378139B2 (en) * | 2013-05-08 | 2016-06-28 | Nvidia Corporation | System, method, and computer program product for low latency scheduling and launch of memory defined tasks |
US9632844B2 (en) * | 2013-12-12 | 2017-04-25 | International Business Machines Corporation | Non-preemption of a group of interchangeable tasks in a computing device |
CN103841208B (zh) * | 2014-03-18 | 2017-09-01 | 北京工业大学 | 基于响应时间最优化的云计算任务调度方法 |
CN108984264B (zh) * | 2017-06-02 | 2022-11-15 | 阿里巴巴集团控股有限公司 | 虚拟gpu的实现方法、装置及系统 |
-
2019
- 2019-11-13 CN CN201911108865.9A patent/CN112799793B/zh active Active
-
2020
- 2020-03-25 KR KR1020217020219A patent/KR20210095687A/ko not_active Application Discontinuation
- 2020-03-25 JP JP2021536726A patent/JP2022515255A/ja active Pending
- 2020-03-25 WO PCT/CN2020/081199 patent/WO2021093248A1/zh active Application Filing
- 2020-03-25 SG SG11202107163PA patent/SG11202107163PA/en unknown
- 2020-05-08 TW TW109115358A patent/TW202119207A/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885825A (zh) * | 2014-03-05 | 2014-06-25 | 南京邮电大学 | 基于动态时间片的速率单调实时调度方法 |
CN110109745A (zh) * | 2019-05-15 | 2019-08-09 | 华南理工大学 | 一种针对边缘计算环境的任务协同在线调度方法 |
Also Published As
Publication number | Publication date |
---|---|
SG11202107163PA (en) | 2021-07-29 |
CN112799793B (zh) | 2022-03-15 |
KR20210095687A (ko) | 2021-08-02 |
WO2021093248A1 (zh) | 2021-05-20 |
TW202119207A (zh) | 2021-05-16 |
CN112799793A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022515255A (ja) | スケジューリング方法及び装置、電子デバイス並びに記録媒体 | |
US20220365779A1 (en) | Automatic scaling of microservices applications | |
US8756609B2 (en) | Dynamically scaling multi-tier applications vertically and horizontally in a cloud environment | |
CN110058966B (zh) | 用于数据备份的方法、设备和计算机程序产品 | |
JP6754734B2 (ja) | Ranスライスにおけるリソース管理装置及びranスライスにおけるリソース管理方法 | |
WO2019042294A1 (zh) | 资源配置方法及相关产品 | |
CN107645407B (zh) | 一种适配QoS的方法和装置 | |
US20210117280A1 (en) | Method, device, and computer program product for scheduling backup jobs | |
KR102612312B1 (ko) | 전자 장치 및 이의 제어방법 | |
CN109697121B (zh) | 用于向应用分配处理资源的方法、设备和计算机可读介质 | |
CN108536527B (zh) | 一种嵌入式软件的任务调度方法及装置 | |
CN111078404A (zh) | 一种计算资源确定方法、装置、电子设备及介质 | |
US20180196695A1 (en) | Self-adjusting system for prioritizing computer applications | |
CN111190719A (zh) | 优化集群资源分配的方法、装置、介质及电子设备 | |
CN111158907B (zh) | 数据处理方法及装置、电子设备和存储介质 | |
EP3460660A1 (en) | Sleep management method and device, and computer storage medium | |
US20220343209A1 (en) | Method, device, and computer program product for managing machine learning model | |
CN117440045A (zh) | 针对边缘服务器的缓存方法、设备和计算机程序产品 | |
CN114116220A (zh) | 一种gpu共享控制方法、gpu共享控制装置及存储介质 | |
CN112230964A (zh) | 应用程序开发、应用程序运行方法、装置、设备及介质 | |
CN114610331A (zh) | 软件安装方法和系统 | |
CN114546631A (zh) | 任务调度方法、控制方法、核心、电子设备、可读介质 | |
CN117687804B (zh) | 资源管理方法、装置、系统及存储介质 | |
CN112379986B (zh) | 任务处理方法、装置和电子设备 | |
CN117251035B (zh) | 散热控制方法、装置、电子设备和计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210622 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210622 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220825 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20230323 |