MESAJ GEÇİŞİ(MESSAGE PASSING)

22
IPC(INTERPROCESS COMMUNICATION) MESAJ GEÇİŞİ(MESSAGE PASSİNG)

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

Transcript of MESAJ GEÇİŞİ(MESSAGE PASSING)

Page 1: MESAJ GEÇİŞİ(MESSAGE PASSING)

IPC(INTERPROCESS COMMUNICATION)

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

Page 2: MESAJ GEÇİŞİ(MESSAGE PASSING)

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)

Page 3: MESAJ GEÇİŞİ(MESSAGE PASSING)

MESAJ GEÇİŞİ

Page 4: MESAJ GEÇİŞİ(MESSAGE PASSING)

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.

Page 5: MESAJ GEÇİŞİ(MESSAGE PASSING)

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.

Page 6: MESAJ GEÇİŞİ(MESSAGE PASSING)

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.

Page 7: MESAJ GEÇİŞİ(MESSAGE PASSING)

Dolaylı İletişim

Page 8: MESAJ GEÇİŞİ(MESSAGE PASSING)

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.

Page 9: MESAJ GEÇİŞİ(MESSAGE PASSING)

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.

Page 10: MESAJ GEÇİŞİ(MESSAGE PASSING)

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.

Page 11: MESAJ GEÇİŞİ(MESSAGE PASSING)

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

Page 12: MESAJ GEÇİŞİ(MESSAGE PASSING)

Ö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

Page 13: MESAJ GEÇİŞİ(MESSAGE PASSING)

Ö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

Page 14: MESAJ GEÇİŞİ(MESSAGE PASSING)

• 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

Page 15: MESAJ GEÇİŞİ(MESSAGE PASSING)

Ö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.

Page 16: MESAJ GEÇİŞİ(MESSAGE PASSING)

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.

Page 17: MESAJ GEÇİŞİ(MESSAGE PASSING)

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)

Page 18: MESAJ GEÇİŞİ(MESSAGE PASSING)

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.

Page 19: MESAJ GEÇİŞİ(MESSAGE PASSING)

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

Page 20: MESAJ GEÇİŞİ(MESSAGE PASSING)

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.

Page 21: MESAJ GEÇİŞİ(MESSAGE PASSING)

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.

Page 22: MESAJ GEÇİŞİ(MESSAGE PASSING)

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

SORU?