I/Oとは?
状態:-
閲覧数:1,890
投稿日:2009-07-10
更新日:2017-07-30
Input/Output
・「入出力」の略
入力(input)
・「機器」や「システム」などに、外部から「データ」や「信号」を入力すること
出力(output)
・「機器」や「システム」などから、外部へ「データ」や「信号」を出力すること
・「入出力」の略
入力(input)
・「機器」や「システム」などに、外部から「データ」や「信号」を入力すること
出力(output)
・「機器」や「システム」などから、外部へ「データ」や「信号」を出力すること
ノンブロッキングI/O
ノンブロッキングI/Oとは?
データ処理の完了を待たずに他の処理を行う
処理がすぐできない時
・エラーを返し、ブロック状態にさせない
同期I/O(Syncronous I/O)
同期I/Oとは?
データ処理の入出力が可能になった時点で通知
1台のクライアントからのアクセスだけでプロセスが専有されてしまう
・複数のクライアントへのレスポンスを返すことができない
非同期I/O(Asyncronous I/O)
非同期I/Oとは?
I/O処理が完了したタイミングで通知するI/Oモデル
処理がすぐできない時
・処理が完了するまでバックグラウンドで待機
・終了したタイミングで通知を返す方式
通知
・シグナルもしくはコールバックによって行われる
通知があるまでは
・アプリケーション側で他の処理を進めることができる
ネットワークI/Oの多重化(I/O Multiplexing)
ネットワークI/Oの多重化とは?
1プロセス1スレッドで複数のネットワーク接続を同時に捌 く
・poll()、select()、epollシステムコールを利用して、複数のファイルディスクリプタを1つのプロセスで管理する
I/Oでブロッキングが発生すると
・一つのクライアントとしか通信できない
・これを解決するための手段の一つ