1

Linux Device Driver 3rd を読んでいます。第 6 章: ポーリングと選択で、著者は次のように述べています。

"*unsigned int (*poll) (struct file *filp, poll_table wait); ドライバー メソッドは、ユーザー空間プログラムが、ドライバーに関連付けられたファイル記述子を含むポーリング、選択、または epoll システム コールを実行するたびに呼び出されます。 "

epoll 呼び出しに何百もの fd がある場合、epoll() に到達するたびに、ドライバーのこのポーリングが何百回も呼び出されるのでしょうか?

ありがとう。

4

1 に答える 1

1

はい、カーネルはすべてのファイル記述子をループして poll() メソッドを呼び出します。ユーザー空間で呼び出し元に報告するために、すべてのファイル記述子の現在の状態をサンプリングする必要があります。

これはselectとpollに当てはまることに注意してください。私はepollに精通していませんが、同じファイル操作を使用する場合は、ここにも適用する必要があります。

于 2013-01-10T15:42:11.913 に答える