2

私のアプリケーションではありません。のデバイス(カメラ、A / D、D / Aなど)がサーバーと通信しています。すべてのデバイスが常に機能する必要はないため、デバイスの電力消費を節約するための2つのオプションがあります。

1-ポーリングを実行します。つまり、各デバイスは、ウェイクまたはスリープの値を取得するファイルのコンテンツを定期的に確認し続けます。それが目覚めを見つけた場合、それは目覚め、その仕事をします。

この場合、実際にはデバイスはスリープ状態になりますが、ドライバーはアクティブでポーリングします。

2-割り込みを使用して、必要なときにデバイスをスリープ解除できます。

どちらに行くのか、そしてその理由を決めることができません。誰かがこの点で私を教えてくれますか?

プラットフォーム:Windows 7、32ビット、IntelCore2Duoで実行

4

3 に答える 3

6

ポーリングはその性質上不正確です。ターゲットの精度が高くなるほど、ポーリングは無駄になります。理想的には、割り込みで何かを実行できない場合にのみポーリングを検討する必要があります。それ以外の場合は、割り込みを使用することをお勧めします。

このルールの1つの例外は、たとえば、1秒間に複数のイベントを取得する可能性があるが、1分間に1つのイベントのみに反応したい場合など、意図的に何かを「スロットル」したい場合です。このような場合、ポーリングと割り込みを組み合わせて使用​​することがよくあります。割り込みによってフラグが設定され、ポーリングによって実際のジョブが実行されますが、フラグが設定されている場合に限ります。

于 2012-06-07T10:26:40.327 に答える
2

デバイスを定期的にウェイクアップする場合は、適切な頻度でポーリングを実行します(少し見ているだけなので、セットアップは常に簡単です)。ウェイクアップイベントが非同期である場合、コードと電子的なオーバーヘッドにもかかわらず、割り込み駆動型のアーキテクチャを採用したいと思います。

于 2012-06-07T12:02:16.227 に答える
0

それは、ハードウェアとソフトウェアの構造とソフトウェアの複雑さに依存します。ポーリングよりも割り込みメカニズムを選択することをお勧めします。

ポーリングの場合と同様に、コントローラーはハードウェアを継続的にポーリングして、必要な値が使用可能かどうかを確認するためにビジー状態になります。

割り込みメカニズムを使用している間、コントローラは他のタスクを実行するために解放され、割り込みが発生すると、ISRは特定のニーズに合わせてタスクを実行できます。

于 2012-06-13T06:22:28.183 に答える