İşlemler arası iletişim (IPC), bilgisayar programlamasında kullanılan ve farklı yazılım parçalarının etkileşime girmesini sağlayan bir teknikler grubudur. Alternatif yöntemler olsa da, IPC genellikle bir bilgisayar işletim sistemi tarafından kolaylaştırılır. Yazılım arasındaki bu iletişimin şekli, doğrudan mesajlardan bilginin depolandığı ve alındığı merkezi bir depoya kadar değişebilir. Süreçler arası iletişim, daha yüksek performans, daha az bilgisayar kaynağı tüketimi ve daha fazla güvenlik gibi avantajlar sağlayabilir.
Programlama dünyasında, bir bilgisayarın Merkezi İşlem Birimi'nde (CPU) çalıştırılabilen veya çalıştırılabilen bir işlem veya tek bir kod parçası hakkında yazılım hakkında konuşulur. Pek çok uygulama aslında performansı ve kararlılığı artırabilen birden fazla işlem kullanıyor. Birden fazla açık sayfalı bir web tarayıcısı, her sayfayı yüklemek için ayrı bir işlem kullanabilir; bu, her sayfayı diğerlerinden ayırır ve kötü niyetli bir web sayfasının tüm tarayıcıyı kilitlemesini önler. Bu örnekte, bir web sayfasını oluşturmaktan sorumlu olan her işlem, kullanıcı arayüzü bileşenleri gibi tarayıcının diğer yönleriyle ilgilenen bir veya daha fazla işlemle iletişim kurar.
Bilgisayar işletim sistemlerinin çoğu, süreçler arası iletişimin gerçekleşmesi için birkaç farklı mekanizma sağlar. Diğer bazı yazılım teknolojileri de IPC için destek sunar. Ayrıca, IPC tek bir bilgisayarda veya bir ağ üzerinde kullanılabilir. Bu mekanizmalar nasıl uygulandıklarına göre değişebilir, ancak çoğu iletişimin nasıl gerçekleştiğine bağlı olarak birkaç kategoride gruplandırılabilir.
Bazı durumlarda, mesajlar doğrudan işlemler arasında, genellikle tek yönlü ya da eşzamansız şekilde değiş tokuş edilir. Bu şekilde çalışan birkaç IPC yöntemi sinyalleri, boruları ve soketleri içerir. İşlemler arası iletişim, verilere birden fazla işlem tarafından erişilebilen belirli bir konumun kullanılmasıyla da gerçekleştirilebilir. Buna bir örnek, bilgi alışverişi için bir bilgisayarın hafızasının aynı kısmına erişen çoklu işlemlerin yapıldığı bir tekniktir. Bir programcının seçebileceği yöntem, diğer hususların yanı sıra ihtiyaç duyulan veri değişiminin hızına ve hacmine bağlıdır.
Bir programcının yazılım oluşturma işlemlerinde süreçler arası iletişimi kullanmak isteyebilmesi için birçok neden vardır. Büyük bir uygulamayı IPC üzerinden iletişim kuran birçok küçük işleme bölmek, güvenliği olduğu gibi performansı da artırabilir. Bir program, bir kerede çalışan ve donanım kaynaklarını tüketen tüm bileşenler yerine gereken işlemleri başlatabilir ve sonlandırabilir. Bir programın parçası bir bilgisayarın donanımına veya diğer çalışan yazılımlarına özel erişime ihtiyaç duyuyorsa, programın geri kalanı düzenli bir kullanıcı olarak çalışırken bir veya daha fazla işlem bir yönetici veya "kök" hesabı altında çalışabilir.


