Sinkronisasi

Komunikasi antara proses membutuhkan subroutine untuk mengirim dan menerima data primitif. Terdapat desain yang berbeda-beda dalam implementasi setiap primitif. Pengiriman pesan mungkin dapat diblok (blocking) atau tidak dapat dibloking (nonblocking) - juga dikenal dengan nama sinkron atau asinkron.

Ketika dalam keadaan sinkron, terjadi dua kejadian:

  1. Blocking sendPemblokiran pengirim sampai pesan sebelumnya diterima.

  2. Blocking receivePemblokiran penerima sampai terdapat pesan yang akan dikirim.

Sedangkan untuk keadaan asinkron, yang terjadi adalah:

  1. Non-blocking sendPengirim dapat terus mengirim pesan tanpa memperdulikan apakah pesan sebelumnya sampai atau tidak.

  2. Non-blocking receivePenerima menerima semua pesan baik berupa pesan yang valid atau pesan yang salah (null).