直接対間接通信と同期対非同期通信?
直接通信では、send (送信先プロセス、メッセージ) や receive (送信元プロセス、メッセージ) など、通信しているプロセスの名前を指定します。リンクには、通信プロセスのペアが 1 つだけあります。各ペアの間には、単方向のリンクが 1 つだけ存在しますが、通常は双方向です。
間接通信には一意の ID があり、プロセスはポートとも呼ばれるメールボックスを共有している場合にのみ通信できます。通信中、プロセスが共通のメールボックスを共有している場合にのみ、リンクが確立されます。リンクは多くのプロセスに関連付けられている場合があり、プロセスの各ペアは、双方向または単方向の通信リンクをいくつか共有している場合があります。
同期はブロッキングと見なされます。ブロッキング受信では、メッセージが利用可能になるまで受信者がブロックされ、ブロッキング送信では、メッセージが受信されるまで送信者がブロックされます。ブロッキング送受信のことをランデブーと呼びます。
非同期はノンブロッキングとも呼ばれます。非同期/ノンブロッキング送信の場合、送信者はメッセージを送信して続行します。ノンブロッキング受信の場合、受信者に有効なメッセージを受信させるか、null になります。