Thursday 3 January 2008

LINUX Çekirdeğini Anlamak – Süreçler Arası İletişim 1

Ali Rıza SARAL(1)


(1) Daniel P. Bovet, Marco Cesati, Understanding the Linux Kernel ‘den faydalanarak derlenmiştir.


Bölüm 18. Süreç İletişimi

Kullanıcı üslubu süreçleri kendilerini eşzamanlı kılmak ve veri değiş-tokuşu için çekirdeğe dayanmak zorundadırlar

Kulllanıcı üslubu süreçleri arasında kaba bir eşzamanlılık boş bir dosya yaratıp uygun VFS sistem çağrıları kullanarak onu kilitlemek(lock) ve açmak (unlock) şeklinde sağlanabilir.
Benzer şekilde, süreçler arasında veri paylaşımı veriyi kilitlerle korunmuş geçici dosyalara koyarak elde edilebilir. Bu yaklaşım disk dosya sistemine erişim gerektirdiğinden pahalıdır. Bu yüzden, bütün Unix çekirdekleri dosya sistemi ile etkileşmeyen ama süreç iletişimini destekleyen bir sistem çağrısı kümesi içerir. Dahası, süreçlerin eşzamanlılık isteklerini çekirdeğe nasıl göndereceklerini yönlendirmek için çok sayıda paketleyici (wrapper) fonksiyon geliştirilmiş ve uygun kütüphanelere eklenmiştir.

Unix sistemlerinin ve özellikle Linux’un süreçler arası iletişim için sunduğu imkanlar aşağıdadır.

BORU ve İLKGELENİLKÇIKAR(İsimli Borular) (Pipes and FIFOs (named pipes))
Süreçler arası üretici/tüketici etkileşiminin gerçekleştirilişine en uygun olanı. Bazı süreçler boruyu veri ile doldururken diğerleri borudan veri çıkartır. Best suited to implement producer/consumer interactions among processes. Some processes fill the pipe with data while others extract data from the pipe.

Semaforlar (Semaphores)
Çekirdek semaforlarının Kullanıcı Üslubu sürümü. Represents, as the name implies, the User Mode version of the kernel semaphores.

Mesajlar (Messages)
Süreçlerin mesajların eşzamanlı olmayan şekilde (kısa veri blokları) değiştirimine izin verir.

Ortak Bellek Bölgeleri (Shared memory regions)
Süreçlerin büyük miktarlarda veriyi verimli bir şekilde paylaşmalarının gerektiği etkileşim modellerine en uygunudur.

Soketler başlangıçta uygulama programları ile ağ arayüzü arasında veri iletişimine imkan sağlamak için sunulmuşlardı. Aynı evsahibi (host) bilgisayar üzerinde yer alan süreçler arasında iletişim aracı olarak ta kullanılabilirler; X Pencereler Sisteminin grafik arayüzü, örneğin, müşteri (client) programlarının X sunucusu (server) ile veri değişimine imkan sağlamak için bir soket kullanır.