2012-02-27 37 views
0

組み込みプロジェクトでは、どのスケジューリングポリシーを使用するかを決めるのが難しいです。特定のテストケースが合格するには、SCHED_OTHERを使用する必要があります。 SCHED_RRしかし、我々はSCHED_RRをいくつかのタスクに設定し、SCHED_OTHERとすると、すべてのテストケースが合格となります。合法で、同じプロジェクトで2つのポリシーを使用するための追加の副作用がありますか?同じプロジェクトで2つの異なるスケジューリングポリシーを使用する

+0

私のクエリをより明確にするために、サービスタスク、インタープリタタスクなどがあります。彼らは、FrontPanelを介してユーザからの入力を取得し、提供されたステップを必要なだけ実行するという仕事をします。ポリシーをSCHED_OTHERに設定した場合、フロントパネルからすべての入力を自動的に取得し、5時間以上連続してタスクを実行するような自動実行のケースは失敗します。しかし、そのポリシーをSCHED_RRに設定すると、それはパスしています。ラウンドロビンは優先度の高いタスクを重視しているため、これが実行される可能性があります。しかし、この政策では、私が手動で提供した入力は受け入れられません。助けて – Gughan

答えて

0

あなたはLinuxについて話していると思いますか?それでは、SCHED_RRで実行中のタスクやSCHED_OTHERで実行中のタスクを実行することは、まったく受け入れられます。

SCHED_RRタスクは常にSCHED_OTHERタスクより先に実行されることに注意してください。したがって、タスクをSCHED_RRに設定すると、テストがよりうまく実行されることは驚くことではありません。注意すべき点は、SCHED_RRタスクがCPUの100%を使用し、SCHED_OTHERタスクが不足している可能性があることです。たぶん、これは、入力が低下していると言うときに起きているのかもしれません。

マイケル

関連する問題