IPC nedir?

IPC, Inter Process Communication anlamına gelmektedir. Processler arası iletişim kurmaya yararlar. Bir bilgisayarda çalışan birden fazla işlemin (process) bir biri ile haberleşmesini hedefleyen teknolojidir. Hız açısından düşünüldüğünde en hızlı iletişim yöntemi hafıza (RAM) üzerinde veri paylaşımıdır.

Dolayısıyla bir işlemin hafızaya yazdığı bilgi başka bir işlem tarafından okunarak bu iletişim sağlanmış olur. İşletim sistemi üzerindeki process'ler arasında mesajlaşmak için bir çok yöntem vardır. Günümüz işletim sistemlerinde bu paylaşım işlemi aşağıdaki 4 işlemden birisi ile yapılmaktadır:

• Mesajlaşma (message passing)
• Senkronizasyon (synchronization)
• Paylaşılmış hafıza (shared memory)
• Uzak prosedür çağırımı (remote procedure calls)

IPC işleyişi nasıldır?

Bir süreç veri gönderiyor diğeri bu veriyi yazdırıyorsa, ilk süreç veri gönderdiğinde ikincinin beklemesi ya da ikinci yazdırırken birincinin beklemesi gereklidir. İletişimde kullanılacak sıra önemlidir.

İki ya da daha fazla süreç iletişim kurarken ortak bellek bölgelerini (shared memory), ortak dosyaları,tüm süreçlerin erişebileceği kuyruk yapılarını, özel iletişim dosyalarını ve buna benzer sistemler kullanabilir. Tüm iletişim yöntemlerinde süreçlerin iletişim için kullandıkları mekanizmanın elemanları, süreçlerce ortaklaşa kullanılır.

Paylaşımlı Bellek (Shared Memory)

Süreçler arası haberleşmedeki en basit teknik paylaşımlı bellek kullanımıdır. Bu yöntem aynı anda birden çok sürecin paylaşımlı bir bellek ortamına erişimini sağlar. Bütün süreçlerin malloc çağrısı ile geri dönen gösterici değerlerinin aynı olması, aynı bellek bölgesini erişimlerini sağlar.

Süreçlerden biri bellek bölgesini değiştirdiğinde, diğer süreçlerde bu değişikliği göreceklerdir.

Hızlı yerel haberleşme (Fast Local Communication)

Süreçlerin hepsi aynı bellek bölgesini paylaştığı için, paylaşımlı bellek kavramı en hızlı IPC tekniğidir. Paylaşımlı bellek bölgesine erişim, sürecin kendine ait bellek bölgesine erişimi kadar hızlı gerçekleşir. Herhangi bir sistem çağrısını kullanmaya gerek yoktur.

Aynı zamanda veriyi gereksizce kopyalamanın da önüne bu yöntemin kullanımıyla geçilir. Ancak kernel, paylaşımlı belleğe olan erişimler esnasında herhangi bir senkronizasyon yapmayacağı için, süreçler kendi aralarında senkronizasyonu gerçekleştirmek zorundadır.

Yorumlar

Bu sayfa ait yorum bulunamadı. İlk yorum yapan siz olun.

Yorum ekle

Vazgeç