2017-05-15 7 views
0

私のプロセスのバックグラウンドタスクスケジューラを作成しようとしていますが、UIの応答性を維持しながら並列にタスクをスケジュールする必要があります。 現在、スケジューラが新しいタスクを開始するためのしきい値(〜50%)に対してCPU使用率(パーセンテージ)を使用しています。 このプログラムは、さまざまなハードウェア構成(プロセッサ速度、コア数など)で実行できるため、特定の構成では50%の制限が厳しくまたはソフトになります。異なるマシンでのCPU負荷の検出

CPU構成のさまざまなパラメータ(コア、スピードなど)を含める良い方法はありますか。ハードウェア構成に基づいて動的にスレッシュホールド数を算出できますか?

答えて

0

私の提案:

  1. を実行し、システム内のCPUのように多くのスレッドとして。この場合、スレッドの数が制御されていない、すなわちはusleep、可能な最小の睡眠を行うスレッドメインループ(1)
+0

をアイドルに各スレッドの優先順位(最も低い)

  • を設定したが、
  • 実行中のタスクによって決定されます。問題は、リソース使用率を最大限に高め、同時にアプリケーションを応答可能に保つために、最適な数のタスクをスケジューリングすることです。 私が探しているのは、プロセッサの能力に応じてスレッショルドが上下にスケールされるように処理パワー数を正規化する方法です。 – scanty

  • +0

    その理由は、これらのスレッドを常に実行している方が優先度が低く、スリープしている方が基本的にスケジューラがこれを実行するのが良い理由です。 –

    +0

    もちろん、それはあなた次第です;) –

    関連する問題