2016-04-19 3 views
1

OSクラスのI/Oのポーリングと割り込みの違いについて教えていますが、先生が述べたことの1つは、I/Oデバイスは、どちらの方法がより優れているかを変えることができます。彼はそれにフォローアップしなかったが、私はそれについて私の脳を荒らしてきたと私は理由を把握することはできません。私はInterruptsを使うほうがずっといいと思うし、I/Oデバイスの速度がどういうものかは分からない。ポーリングと低速/高速I/Oデバイスの割り込み

答えて

1

一般に、ポーリングはCPUサイクルを浪費する可能性があるため、割り込みを使用することをお勧めします。しかし、イベントが頻繁に起こっている場合(同期がとれている場合など)、ポーリングは、ポーリングサイクルよりもオーバーヘッドが多くなるため、ポーリングが有効です。

あなたが詳細については、同様にこのスレッドを見てすることがあります:あなたが発生するすべての変更を気にしないとき Polling or Interrupt based method

+1

CPUサイクルだけではありません。それはメモリ帯域幅(他のコアに影響を与える)とエネルギーの無駄です(停止されたCPUは消費電力が大幅に減ります)。 –

2

ポーリングの唯一の利点が付属しています。

成形に使用される溶融プラスチックのバットの温度を測定するリアルタイムシステムがあるとします。また、あなたのデバイスが1/1000度の分解能で測定でき、1/10,000秒ごとに新しい温度をとることができるとしましょう。

しかし、毎秒の温度が必要なだけで、温度は1/10以内で知る必要があります。

このような環境では、デバイスをポーリングする方が望ましい場合があります。毎秒1つのポーリング要求を行います。割り込みを使用した場合、温度が+/- 1/1000程度になると、1秒間に10,000回の割り込みが発生します。

ポーリングは、ジョイスティックやポインティングデバイスなどの特定のI/Oデバイスで一般的に使用されていました。

しかし、ポーリングの必要性はほとんどなく、かなり離れています。

+0

はい。前回から鍵の状態が変化していないかどうかをチェックすることは非常に迅速であり、デバウンスには複数の読み取りが必要になることが多いため、タイマー割り込みのキーボード/キーパッドをポーリングすることは珍しいことではありません。それ以外にも、上記のようなシナリオもありますが、誰もCPU、メモリ帯域幅、エネルギーの無駄を理由に投票しません。 –

関連する問題