Linuxのデバイスドライバは、の下半分を中断します

制限事項割り込みハンドラ

1.割り込みハンドラ非同期に実行され、それが他の重要なコードを中断する可能性があり、そのため、長すぎるコードのセクションを再生が停止されるのを避けるために、割り込みハンドラは、できるだけ迅速に実行する必要があります。

2.実行中の現在の割り込みハンドラがある場合は、最良の場合(IRQF_DISABLEDを設定していない)で、割り込み他の割り込みと同じレベルで、最悪の場合には(IRQF_DISABLEDを設定)、現在の処理がブロックされます他のすべての割り込みは遮蔽さにあり、割り込みを無効にした後、ハードウェアとオペレーティングシステムが通信できないので、従って、割り込みハンドラが可能な限り迅速に実行されます。

割り込みハンドラは、多くの場合、動作するハードウェアを必要とするので、彼らは通常、高い時間要件を持っているので、3。

4.割り込みハンドラが実行するプロセスコンテキストではありませんので、彼らは、彼らがやっていることを制限する、ブロックすることはできません。

下半

タスクの下半分は密接に割り込み処理の実装に関連しているが、割り込みハンドラ自体は実行され動作しません。私たちが中断したいので、理想的な場合には、それは、割り込みハンドラは、すべての作業が実行の下半分になりますが最適ですより良い行わハンドラーの仕事は、私たちは、割り込みハンドラをできるだけ早く返すことができます期待します。

割り込みハンドラと下半分を参照の間で分割されます。

タスクが事件に非常に敏感である場合は1を、それが割り込みハンドラ内に配置されています。

2.その後、ハードウェア関連のタスクとは、割り込みハンドラでそれを置く場合は、

3.タスクは、その後、他の割り込み(中断特に兄弟)が中断されていないことを確認する割り込みハンドラでそれを置くのであれば、

4.他のすべてのタスクは、実行の下半分に配置することを検討します。

道と選択の下半分

非常に近いタスクレットベースのソフト割り込みを達成、その2;ソフト割り込み、タスクレットと作業キュー彼らはキュー機構は、それがカーネルスレッドによって全く異なる達成されて動作します。:下半分の3つの方法を提供します

ソフトは、ソフトウェア割り込みの同じタイプの2つ以上の異なるプロセッサ上で可能で、ソフト割り込みハンドラは、共有データのセキュリティを確保するためにいくつかのステップを取ることに注意しなければならない必要が実行シーケンスの最低保証、と身体を中断します一方、実行、彼らのマルチスレッド・コードの点検作業は、それが完全に変数であり、単一のプロセッサを使用して、ネットワークサブシステムとして、非常によく行われている場合は、ソフト割り込みは非常に良い選択であり、タイムクリティカルと高周波実行のためのアプリケーション、それはまた、最速の実行でした。

コードは、マルチスレッドを検討するのに十分でない場合には、より大きなタスクレットの意味を選択し、同じタイプのタスクレットの二つが同時に行うことができないので、それは、インターフェースは非常に簡単ですだ、そして、それを実装することも簡単です。タスクレットが有効ですソフト割り込みが、同時に実行することはできません。ドライバの開発者は、可能ではなく、ソフト割り込みとしてタスクレット選択する必要があり、当然のことながら、各プロセッサはその実行を確実にするために変数を使用する準備ができている場合は、同時に複数のプロセッサ上でソフトを安全に中断し、その後、またはソフト割り込みを選択してください。

あなたが完了しているプロセスのコンテキストに戻ってタスクを配置する必要がある場合は、これが唯一の3つの作業キューの間で選択することができ、およびプロセス条件は、(あなたが寝ていない場合には、ある)、その後、ソフト割り込みタスクレットがより適切かもしれない場合、コンテキストは必要ありません;これは、作業キューの効率が低いと言っているわけではない、第二の割り込みあたり何千回がある場合は、他のメカニズムがより適切かもしれない。それも、カーネルスレッドコンテキストの切り替えが関与する必要があるため、最も高価に起因する作業キュー。

簡単に言えば、一般的なドライバの作成者は、二つの選択肢を実行する必要があります。まず、必要が作業の完了をプッシュする必要があります後に実行するためのスケジューリングエンティティではありません - 基本的に、あなたは睡眠する必要がありますか?そこでは、作業キューが唯一の選択肢であり、それ以外の場合は、最高のタスクレット;あなたは、パフォーマンスの向上に注力しなければならない場合は、ソフト割り込みを検討します。

 

おすすめ

転載: www.cnblogs.com/wanpengcoder/p/11761763.html