Inter Process Communication - Genel Bakış
Süreçler Arası İletişim (IPC), bir sürecin başka bir süreçle iletişimini içeren bir mekanizmadır. Bu genellikle yalnızca bir sistemde gerçekleşir.
İletişim iki tür olabilir -
Üst ve alt süreçler gibi tek bir süreçten başlayan ilgili süreçler arasında.
İlişkisiz süreçler veya iki veya daha fazla farklı süreç arasında.
Bu konuya devam etmeden önce bilmemiz gereken bazı önemli terimler aşağıdadır.
Pipes- İki ilişkili süreç arasındaki iletişim. Mekanizma yarı çift yönlüdür, yani ilk işlem ikinci işlemle iletişim kurar. Tam bir dubleks elde etmek için, yani ikinci işlemin birinci işlemle iletişim kurması için başka bir boru gereklidir.
FIFO- İki ilgisiz süreç arasındaki iletişim. FIFO tam bir dublekstir, yani ilk işlem ikinci işlemle iletişim kurabilir ve bunun tersi de aynı anda olabilir.
Message Queues- Tam çift yönlü kapasiteye sahip iki veya daha fazla işlem arasında iletişim. İşlemler, bir mesaj göndererek ve onu kuyruktan alarak birbirleriyle iletişim kuracak. Mesaj alındıktan sonra artık kuyrukta mevcut değildir.
Shared Memory- İki veya daha fazla süreç arasındaki iletişim, tüm süreçler arasında paylaşılan bir bellek parçasıyla sağlanır. Paylaşılan hafızanın, tüm işlemlere erişimi senkronize ederek birbirinden korunması gerekir.
Semaphores- Semaforlar, birden çok işleme erişimi senkronize etmek içindir. Bir işlem belleğe erişmek istediğinde (okuma veya yazma için), erişim kaldırıldığında kilitlenmesi (veya korunması) ve serbest bırakılması gerekir. Verilerin güvenliğini sağlamak için bunun tüm süreçler tarafından tekrarlanması gerekir.
Signals- Sinyal, sinyal yoluyla çoklu süreçler arasında iletişim sağlayan bir mekanizmadır. Bu, bir kaynak işlemin (numara ile tanınan) bir sinyal göndereceği ve hedef işlemin buna göre işleyeceği anlamına gelir.
Note - Bu eğitimdeki hemen hemen tüm programlar Linux İşletim Sistemi altındaki sistem çağrılarına dayanmaktadır (Ubuntu'da yürütülmüştür).