MESAJ GEÇİŞİ(MESSAGE PASSING)

Preview:

DESCRIPTION

MESAJ GEÇİŞİ(MESSAGE PASSING). Süreçler için Mekanizma iletişim ve eylemlerini senkronize etmek. IPC iki işleme olanak sağlar : send ( mes aj ) – me saj göndermek receive ( mes aj ) -mesaj almak Eğer P ve Q iletişim kurmak isterse , gerekenler : - PowerPoint PPT Presentation

Citation preview

IPC(INTERPROCESS COMMUNICATION)

MESAJ GEÇİŞİ(MESSAGE PASSİNG)

Süreçler için Mekanizma iletişim ve eylemlerini senkronize etmek.

IPC iki işleme olanak sağlar:◦ send(mesaj) – mesaj göndermek ◦ receive(mesaj)-mesaj almak

Eğer P ve Q iletişim kurmak isterse, gerekenler:◦ Birbirleri arasında iletişim linki saptamalılar◦ send/receive aracılığı ile mesaj gönderip almalılar

İletişim linkinin uygulanması◦ fiziksel (ör., paylaşılan bellek, donanım yolu)◦ mantıksal (ör., mantıksal özellikler)

MESAJ GEÇİŞİ(MESSAGE PASSING)

MESAJ GEÇİŞİ

Doğrudan İletişim Proseslerin her birinin isimleri gönderici ve alıcı olarak

isimlendirilmelidir. send(A, message) – A prosesine mesaj gönder receive(Z, message) – Z prosesinden mesaj al

İletişim linkleri özellikleri :

Bağlantılar otomatik olarak kurulur. Her bir proses çifti arasında tam olarak bir bağlantı vardır. Bir link 2 proses ile ilişkilendirilebilir. Bağlantı tek yönlü olabilir, ancak genellikle iki yönlüdür.

Dolaylı İletişim Mesajlar port veya posta kutularından alınır veya buralara

gönderilir. Her posta kutusu tek bir tanımlayıcıya sahiptir Prosesler paylaşılmış bir posta kutusuna sahipse iletişim

kurabilirler.

İletişim bağlantısı özellikleri şunlardır :

Bir bağlantı ikiden fazla proses ile ilişkilendirilebilir. Her bir proses çifti birden fazla bağlantıya sahip olabilir. Bağlantı tek yönlü ya da çift yönlü olabilir.

Dolaylı İletişim

işlemler:

Yeni bir posta kutusu oluştur, Posta kutusu aracılığıyla mesaj gönder ve al. posta kutusunu yok et. İletişim basitçe şu şekilde gerçekleşir:

send(A, message) – A’nın posta kutusuna bir mesaj gönder

receive(A, message) – A’nın posta kutusundan bir mesaj al.

Dolaylı İletişim

Dolaylı İletişim Posta kutusu paylaşımı

◦ P1, P2, ve P3 A posta kutusunu paylaşır.

◦ P1, gönderir; P2 ve P3 alır.

◦ Kim mesajı alır? Çözüm

◦ En çok iki proses ile ilişkili linke izin verilir.◦ Mesaj alma işlemi için sadece bir prosese izin verilir◦ Sistem alıcıyı kendi isteğine bağlı olarak seçer .Gönderici

alıcı kim bildirir.

SenkronizasyonMesaj iletimi engelli ya da engelsiz olabilir.

Engelli, senkron iletim olarak düşünülebilir. Engelli gönderim, mesaj alınana kadar gönderici engellenir. Engelli alım, mesaj hazır olana kadar alıcı engellenir. Engelsiz, asenkron iletim olarak düşünülebilir. Engelsiz gönderim, mesaj yollanır ve devam edilir. Engelsiz alım, hazır mesaj varsa alır yoksa boş-null değer

alır.

Buffering(Tamponlama)

Link ile ilişkilendirilmiş mesaj sırası, 3 yolla belirtilir:

1. Sıfır kapasite – 0 mesaj

Gönderici, alıcıyı beklemelidir (Buluşma).

2. Sınırlı kapasite –n adet mesajın sonlu bir uzunluğa sahip olması

Gönderici, bağlantı dolu ise beklemelidir.

3. Sınırsız kapasite – sonsuz uzunluk.

Gönderici hiçbir zaman beklemez.

Exception Conditions

Eğer bir hata oluşursa, hatadan kurtulmak için özel

durum işleme (exception condition handling) mekanizması devreye

girer.

Muhtemel hatalar: Bir işlem sonlanabilir Kayıp mesajlar Değişmiş iletiler

Özel Koşullar – Sonlanmış Süreç

Bir ileti işlenmeden önce gönderici veya alıcı süreç sonlanabilir. Bu durumda ileti hiçbir zaman alınamayacak veya süreçler gönderilmeyen bir iletiyi beklemeye devam edecekler.

Alıcı süreç(P) Q sürecinden ileti bekler, fakat Q süreci sonlanmıştır

P sonsuza kadar tıkanır

Özel Koşullar – Sonlanmış Süreç P sonlanmış olan Q sürecine ileti gönderir Eğer P işleme devam etmek için Q’dan iletildi mesajını

beklerse sonsuza kadar bekler

Bu durumlarda işletim sistemi P yi sonlandırır veya P’ye Q nun sonlandığını iletir

• Bağlantı hatasından dolayı P nin gönderdiği ileti kaybolabilir.

Bu gibi durumlarda, İşletim sistemi iletiyi gönderen süreci bu konuda bilgilendirir Veya Gönderen süreç iletinin kaybolduğunu anlamakla

sorumludur ve kaybolan iletiyi tekrar gönderir

• Acknowledgement• Kayıp iletileri algılamak için en yaygın yöntem zaman

aşımları

kullanmaktır.

Örneğin, eğer bildirim sinyali belirtilen zaman

aralığında gönderen sürece ulaşmaz ise, ileti gönderilmedi diye

algılanır ve tekrar gönderilir.

Özel Koşullar – Kaybolmuş ileti

Özel Koşullar – Değişmiş iletiler

İletişim kanallarında bulunan gürültüden dolayı alınan ileti değişmiş olabilir.

Hata Kontrol kodları (Error checking codes) bu tip hataları bulmak için kullanılır.

Client-Server İletişimi

Soketler Soket, bir iletişimin bitiş noktası olarak tanımlanabilir. IP adresinin ve portun birleşimidir. 161.25.19.8:1625 soketi, 1625portu ve 161.25.19.8

sunucusu demektir. İletişim, bir çift soket arasında meydana gelir.

Tüneller- Pipes

İki proses arasında iletişime izin veren yapıdır.

2 bölümde inceleyebiliriz:

I. Sıradan Tüneller

II. Adlandırılmış tüneller(FIFO)

Sıradan Tüneller Sıradan tüneller, standart üretici-tüketici tipi iletişime izin

verir. Üretici bir uçtan yazar (tünelin yazma ucu) Tüketici diğer ucundan okur (tünelin okuma ucu) Sıradan tüneller bu nedenle tek yönlü iletişim sağlar. Haberleşen prosesler arasında ebeveyn-çocuk ilişkisi

gerekir.

Sıradan Tünellerint pipe_fds[2];

int read_fd;

int write_fd;

pipe(pipe_fds);

read_fd = pipe_fds[0];

write_fd = pipe_fds[1];

write_fd’ye yazılan veri, read_fd ucundan okunabilir

Adlandırılmış Tüneller(FIFO)

Adlandırılmış tüneller, sıradan olanlardan daha güçlüdür. İletişim çift yönlüdür. Haberleşen prosesler arasında ebeveyn-çocuk ilişkisi

gerekli değildir. Birden fazla proses, kullanabilir. UNIX ve Windows işletim sistemlerince desteklenir.

Adlandırılmış Tüneller(FIFO)

FIFO yaratmak için mkfifo çağrısı kullanılır. İki parametre alır. İlki, FIFO’nun belge sisteminde

yaratılacağı yoldur. Diğeri ise, FIFO’nun kullanıcı, grup ve diğer erişim izinlerini

belirler.

DİNLEDİĞİNİZ İÇİN TEŞEKKÜRLER…

SORU?

Recommended