Komunikasi antarproses (IPC) adalah sekelompok teknik yang digunakan dalam pemrograman komputer yang memungkinkan perangkat lunak yang berbeda untuk berinteraksi. IPC sering difasilitasi oleh sistem operasi komputer, meskipun metode alternatif memang ada. Bentuk yang tepat dari komunikasi antar perangkat lunak ini dapat bervariasi, mulai dari pesan langsung hingga penyimpanan pusat tempat informasi disimpan dan diambil. Komunikasi antarproses dapat memberikan manfaat seperti kinerja yang lebih besar, lebih sedikit sumber daya komputer yang dikonsumsi, dan keamanan yang ditingkatkan.
Dalam dunia pemrograman, perangkat lunak dibicarakan dalam istilah proses, atau satu bagian kode, yang dapat dijalankan atau dieksekusi pada Central Processing Unit (CPU) komputer. Banyak aplikasi sebenarnya menggunakan lebih dari satu proses, yang dapat meningkatkan kinerja dan stabilitas. Peramban web dengan beberapa halaman terbuka mungkin menggunakan proses terpisah untuk memuat setiap halaman; ini mengisolasi setiap halaman dari yang lain dan mencegah halaman web yang berperilaku buruk dari crash seluruh browser. Dalam contoh ini, setiap proses yang bertanggung jawab untuk merender halaman web berkomunikasi dengan satu atau lebih proses yang menangani aspek lain dari browser seperti komponen antarmuka pengguna.
Sebagian besar sistem operasi komputer menyediakan beberapa mekanisme berbeda untuk terjadinya komunikasi antarproses. Beberapa teknologi perangkat lunak lain juga menawarkan dukungan untuk IPC. Selain itu, IPC dapat digunakan baik di satu komputer atau di seluruh jaringan. Mekanisme ini mungkin berbeda dalam cara implementasinya, tetapi sebagian besar dapat dikelompokkan ke dalam beberapa kategori berdasarkan bagaimana komunikasi berlangsung.
Dalam beberapa kasus, pesan dipertukarkan secara langsung antar proses, seringkali dengan cara satu arah atau asinkron. Beberapa metode IPC yang bekerja dengan cara ini termasuk sinyal, pipa, dan soket. Komunikasi antarproses juga dapat terjadi melalui penggunaan lokasi tertentu di mana data dapat diakses oleh lebih dari satu proses. Salah satu contohnya adalah memori bersama, sebuah teknik di mana beberapa proses mengakses bagian yang sama dari memori komputer untuk bertukar informasi. Metode yang dapat dipilih oleh seorang programmer tergantung pada kecepatan dan volume pertukaran data yang dibutuhkan serta pertimbangan lainnya.
Ada banyak alasan seorang programmer mungkin ingin memanfaatkan komunikasi antarproses dalam pembuatan perangkat lunak mereka. Memisahkan aplikasi besar menjadi banyak proses yang lebih kecil yang berkomunikasi melalui IPC dapat meningkatkan kinerja serta keamanan. Sebuah program dapat memulai dan mengakhiri proses sesuai kebutuhan alih-alih semua komponen berjalan sekaligus dan menghabiskan sumber daya perangkat keras. Jika bagian dari program memerlukan akses khusus ke perangkat keras komputer atau perangkat lunak lain yang sedang berjalan, satu atau lebih proses dapat beroperasi di bawah akun administrator atau “root” sementara program lainnya berjalan sebagai pengguna biasa.