非同期IO
非同期I/Oはほぼ必ず非ブロッキングI/O (non-blocking I/O) であるため、非常にしばしば混同されるが、同期 or 非同期と、ブロッキング or 非ブロッキングという分類は、必ずしも一致しない。POSIX環境において、O_NONBLOCKが設定されたファイル記述子に対して通常のreadやwriteを行うと非ブロッキングになるが、それは「ブロックされるようであればエラーにする」という動作になるのであって、非同期になるのではない(たいていのI/O操作はOS内のバッファなどによって、同期型のAPIでもブロックすることなく完了できることも多い)。ディスクに実際に書き込まれるまでを待つかどうか、という観点での同期・非同期もあるが、それはここで扱っているものとは別の話である(詳細は文献等の、フラグ O_DSYNC, O_DIRECT についての記述や英語版記事 en:Raw device などを参照のこと)。
非同期I/Oとは、