Komunikasi Proses Antar - Tinjauan

Inter Process Communication (IPC) merupakan mekanisme yang melibatkan komunikasi dari satu proses dengan proses lainnya. Ini biasanya hanya terjadi dalam satu sistem.

Komunikasi dapat terdiri dari dua jenis -

  • Antara proses terkait yang dimulai hanya dari satu proses, seperti proses induk dan anak.

  • Antara proses yang tidak terkait, atau dua atau lebih proses yang berbeda.

Berikut adalah beberapa istilah penting yang perlu kita ketahui sebelum melanjutkan lebih jauh tentang topik ini.

Pipes- Komunikasi antara dua proses terkait. Mekanismenya setengah dupleks artinya proses pertama berkomunikasi dengan proses kedua. Untuk mencapai dupleks penuh yaitu, agar proses kedua berkomunikasi dengan proses pertama, diperlukan pipa lain.

FIFO- Komunikasi antara dua proses yang tidak terkait. FIFO adalah dupleks penuh, artinya proses pertama dapat berkomunikasi dengan proses kedua dan sebaliknya pada waktu yang sama.

Message Queues- Komunikasi antara dua atau lebih proses dengan kapasitas dupleks penuh. Proses akan berkomunikasi satu sama lain dengan memposting pesan dan mengambilnya dari antrian. Setelah diambil, pesan tersebut tidak lagi tersedia dalam antrian.

Shared Memory- Komunikasi antara dua atau lebih proses dicapai melalui bagian memori bersama di antara semua proses. Memori bersama perlu dilindungi satu sama lain dengan menyinkronkan akses ke semua proses.

Semaphores- Semaphore dimaksudkan untuk menyinkronkan akses ke banyak proses. Ketika satu proses ingin mengakses memori (untuk membaca atau menulis), itu perlu dikunci (atau dilindungi) dan dilepaskan ketika akses tersebut dihapus. Ini perlu diulangi oleh semua proses untuk mengamankan data.

Signals- Sinyal adalah mekanisme komunikasi antara berbagai proses dengan cara pensinyalan. Ini berarti proses sumber akan mengirim sinyal (dikenali oleh nomor) dan proses tujuan akan menanganinya.

Note - Hampir semua program dalam tutorial ini didasarkan pada panggilan sistem di bawah Sistem Operasi Linux (dijalankan di Ubuntu).