タグ

非同期IOとsocketに関するokhraのブックマーク (2)

  • Manpage of EPOLL

    Section: Linux Programmer's Manual (7) Updated: 2008-02-28 Index JM Home Page roff page 名前 epoll - I/O イベント通知機能 書式 #include <sys/epoll.h> 説明 epoll は poll(2) の一種であり、エッジトリガインタフェースと レベルトリガインタフェースのどちらとしても使用することができ、 監視するファイルディスクリプタの数が多い場合にも使用できる。 epoll 集合を設定したり制御したりするために、 次の 3 つのシステムコールが提供されている: epoll_create(2), epoll_ctl(2), epoll_wait(2). epoll 集合は epoll_create(2) で作成されるファイルディスクリプタに接続される。 ファイルディスクリプタ

  • *BSD で kqueue・kevent を使ってみよう

    *BSD で kqueue・kevent を使ってみよう select() の欠点 select() は複数のディスクリプタをポーリングできる便利なシステムコールです。 しかしパフォーマンスはよくありません。理由は以下の通りです。 ユーザプロセスは、監視対象のディスクリプタ一覧をユーザ領域からカーネル領域にコピーする必要がある。 カーネルがポーリング結果をユーザ領域に返す際もコピーしなければならない。 カーネルは、ポーリング対象のディスクリプタを知るために、配列の全要素を調べなければならない。 ユーザプロセスも、入出力可能なディスクリプタを知るために、配列の全要素を調べなければならない。 上記の作業は、select() を発行するたびに毎回行わなければならない。 select() のパフォーマンスが悪いことは広く知られていたので、 各 OS でいろいろな取り組みが行われてきました。 Sol

  • 1