読み方 : ひどうきアイオー

非同期I/O【asynchronous I/O】ノンブロッキングI/O

別名  :non-blocking I/O/非ブロッキングI/O

非同期I/Oとは?

コンピュータ内部のCPU周辺装置データ入出力(I/O)において、データの送受信の完了を待たずに他の処理を開始する方式。処理の流れとI/Oが並行する並列処理の一種である。
非同期I/Oのイメージ画像

コンピュータの入出力処理には、ストレージへのアクセスやネットワーク通信など、CPUの演算速度と比べて著しく時間のかかる操作が多い。同期I/Oでは、入出力処理を開始するとその完了まで実行が止まり、待機中はCPUが遊休状態になる。

一方、非同期I/Oでは、処理の開始を指示した直後に制御が呼び出し元へ戻り、CPUは別の処理を並行して進めながらI/O処理の完了を待つことができる。入出力の完了は、通知機構やコールバック関数、イベントといった仕組みを通じて後から受け取る仕組みである。

この方式が効果を発揮するのは、多数の接続を同時に扱うWebサーバなどの用途である。同期I/Oで各接続の完了を逐一待つ構成では、接続数の増加とともに待ち時間が積み重なり、応答性能が低下するが、非同期I/Oならば少ないリソースで膨大な数の通信を処理できる。また、ファイル保存中に画面が固まるといった事象を防ぐため、操作性が求められるアプリケーションにも採用されている。

なお、「非同期I/O」と「ノンブロッキングI/O」はほぼ同義に扱われることが多いが、システムによっては異なる場合がある。ノンブロッキングI/Oは、要求をすぐに処理できない場合にブロックせずエラーを返す仕組みを指すことがあり、この場合は処理の完了を後から通知する非同期I/Oとは区別される。

他の辞典等による「非同期I/O」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。