タグ

socketとioに関するyassのブックマーク (3)

  • Epoll - from the kernel side

    The document discusses the basics of I/O and event-driven I/O models in Linux like blocking I/O, non-blocking I/O, I/O multiplexing using select/poll and their internals. It then introduces epoll as a more efficient alternative to select/poll and describes its user-space API, kernel structures and how it works by adding file descriptors to an epoll instance and waking up blocked processes on I/O e

    Epoll - from the kernel side
  • 個人的epollめも - 愛と勇気と缶ビール

    仕事柄、「ああいうデカいサイズのファイルアップロードとか、preforkでやるべきじゃないよね。イベントモデルじゃないと厳しい」とかそんな話をすることがあって、「確かにpreforkだとあの場合すぐプロセスが埋まっちゃいますよね」とか自分も分かったようなことを言うのだけども、裏側のことは特にはっきりと理解しているわけでなく、イベントモデルだと1プロセスで大丈夫だとか、下手にブロックしちゃうと死んじゃうとか、聞きかじっただけの知識でそういうことを何となく語ってしまう自分に不意に背筋がゾッとする、そのようなことも秋の夜長にはございます。 そのような良心の問題とは特に関係なく、ネットを漂流してほどよいサンプルを見つけたのでふんわりとした自分用のメモ。 http://www.oreilly.co.jp/community/blog/2010/03/pthread-epoll-inet-server

    個人的epollめも - 愛と勇気と缶ビール
  • I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;

    サーバ周りの勉強していると、たまにselectとかepollとか言葉が出てきて、理解できてなかったので調べてみた。 I/Oの多重化 例えばサーバ周りの実装を、特に何も考えずにやると、I/Oでブロッキングが発生し、一つのクライアントとしか通信できないということが起こります。これを解決するために fork threads I/Oの多重化 非同期I/O といった方法があります。 この中のI/Oの多重化を実装するためのシステムコールとして、select, poll, epoll, kqueueなどは実装されているようです。 少し調べてみると、次のような記述のような機能をそれぞれが実装するようです。 プログラムで複数のファイルディスクリプタを監視し、 一つ以上のファイルディスクリプタがある種の I/O 操作の 「ready (準備ができた)」状態 (例えば、読み込み可能になった状態) になるまで待つ

    I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;
  • 1