220 likes | 560 Views
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 :
E N D
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 Pve Qiletiş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)
Doğrudan İletişim • Proseslerin her birinin isimleri gönderici ve alıcı olarak isimlendirilmelidir. • send(A, message) – Aprosesine 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 • Posta kutusu paylaşımı • P1, P2,ve P3 A posta kutusunu paylaşır. • P1, gönderir; P2ve P3alı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.
Senkronizasyon Mesaj 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, asenkroniletim 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.
ExceptionConditions Eğer bir hata oluşursa, hatadan kurtulmak için özel durum işleme (exceptionconditionhandling) 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
Özel Koşullar – Kaybolmuş ileti • 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 – Değişmiş iletiler • İletişim kanallarında bulunan gürültüden dolayı alınan ileti değişmiş olabilir. • Hata Kontrol kodları (Errorcheckingcodes) 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: • Sıradan Tüneller • 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üneller intpipe_fds[2]; intread_fd; intwrite_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.