定期的にいくつかのデータレジスタをチェックするプロセッサの質問に記載されている方法が使用され、ポーリングと呼ばれます。ポーリングは実装が簡単なためシンプルなシステムでよく使用されますが、そこにあるかもしれないデータをチェックするCPUサイクルの無駄があります。
実際には、最新のオペレーティングシステムではというCPUハードウェア機能を使用する予定ですが、をOSのスケジューラと一緒に割り込みます。ネットワークからデータを取得する例では、プログラムはネットワークからデータを受信するのを待つブロッキング読み取り呼び出しを使用します。読み込み呼び出しが行われると、呼び出し元プログラムは完全に実行を停止し、OSのスケジューラはデータが受信されるまでプログラムを中断状態に保ちます。
何かが起こるまで(パケットが受信されるまで)実行を停止したいと思うプログラム信号は、しばしばセマフォ(または同様の相互排除メカニズム)と呼ばれるソフトウェア構成である。しかし、ネットワーキングコードの場合、セマフォはプログラマによって直接アクセスされない。
ネットワークカードによってパケットが受信されると、ネットワークカードはそのパケットをどこかのRAMに格納します。これが完了すると、ネットワークカードはCPUへの割り込みをトリガします。割り込み(一般的に)は、現在実行されているプログラムの実行をCPUに停止させ、CPUはネットワーク活動の処理に関連するカーネルコードを実行します。この場合、受信したパケットをデータの受信を待っていたプログラムに送信します。
最後に、カーネルはセマフォを使用してパケットが受信されたことを通知します。カーネルは、スケジューラがネットワークからのデータを待っていたプログラムを「起床」させるようにします。プログラムはデータを処理し、ネットワークからの次のデータセットを待つことができます。
もっと知りたいのであれば、割り込み、スケジューリング、セマフォを読むことをお勧めします。これらの手法はネットワーキング以上の用途に使用されます。同様のアプローチで多くの他のIOデバイスがアクセスされます。
割り込みまたはポーリング特にリストするのは簡単にアクセスできない文書があります。話題はあまりにも広すぎて、情報はすぐに入手できます。 –
また、[Wikipedia:Polling](https://en.wikipedia.org/wiki/Polling_(computer_science))と[Wikipedia:Interrupt](https://en.wikipedia.org/wiki/Interrupt)も参照してください。 – xmojmr