2.4 同期方式と非同期方式

通信管理がライブラリ関数を処理する方法には,同期方式非同期方式があります。非同期方式を使用したい場合は,ライブラリ関数d_open( )発行時に指定します。

特に何も指定しなければ,すべてのライブラリ関数が同期方式で処理されます。

<この節の構成>
(1) 同期方式
(2) 非同期方式

(1) 同期方式

同期方式とは,ライブラリ関数を呼び出したあと,通信管理側の処理がすべて完了した時点でアプリケーションプログラムに制御が戻る方式です。

(2) 非同期方式

非同期方式とは,ライブラリ関数を呼び出したあと,通信管理側の処理が完了してもしなくても,すぐにアプリケーションプログラムに制御が戻る方式です。非同期方式で動作するライブラリ関数は,d_connect( ),d_rcv( ),d_rcvconnect( ),およびd_snd( )の4種類です。d_snd( )を非同期方式で実行すると,システムでビジー状態になった場合にデータの送信を抑止するフロー制御機能が動作します。

アプリケーションプログラムは,selectシステムコールを使用して,処理の完了およびビジー状態の解除を監視できます。処理の完了を監視する場合は*readfdsを,ビジー状態の解除を監視する場合は*writefdsを,それぞれ引数として指定します。selectシステムコールの使用方法については,AIXマニュアルを参照してください。