特定のユーザースレッドがカーネルによってプリエンプションされてはならないアプリケーションを実行しています。セットアップについて説明します。OS:Linux2.6.32カーネル
カーネルレベル:1。カーネルに組み込まれているモジュールはたくさんあります。2.Work_queuesも一部のモジュールで初期化されます(work_queues用に個別のスレッドが作成されると思います)3。ハードウェア割り込みが発生した場合、isr中にこれらの初期化されたwork_queueのいずれかにこの作業をキューに入れます。
アプリケーションレベル:複数のスレッドが並行して実行されており、そのうちのいくつかは、処理中の他のスレッドよりも優先度が高くなっています。(カーネルでも)
目的:1。ハードウェア割り込みが発生すると、isrが自動的に呼び出され、work_queueのキューに入れられます。ただし、その間に優先度の高いユーザーレベルのスレッドが実行されている場合は、これらのwork_queuesをスケジュールする必要はありません。特定のユーザーレベルのスレッドは、kernelでのwork_queue処理によってプリエンプトされるべきではありません。今、カーネルが他のどのユーザースレッドよりも優先されることを確認しました。2.カーネルに複数のwork_queuesがあります。異なるワークキューに異なる優先度を与えるにはどうすればよいですか。カーネルにwork_queuesの優先度を設定するAPIを見たことがありません。