Ana səhifə

Mesaj aktarim mimariSİ


Yüklə 396 Kb.
tarix27.06.2016
ölçüsü396 Kb.
MESAJ AKTARIM MİMARİSİ
Mesaj aktarım sistemleri, çoklu işlemciler arasında iletişim ve veri taşımak için farklı yöntemler sağlar. (paylaşımlı bellek kullanan çok işlemcili sistemlere kıyasla). Bir mesaj aktarım sistemi tipik olarak yerel bellek ve işlemciyi birbirine bağlı ağdaki her düğümde bir araya getirir. Genel bir bellek yoktur bu yüzden mesaj aktarımı ile veriyi bir yerel hafızadan diğerine aktarmak gerekir. Bu genel olarak bir programcı tarafından uygulama yazılımında yazılmış alma/gönderme komut çiftleriyle yapılır. Figür 5.1 bir mesaj aktarım sisteminin yüksek seviyeli tanımını göstermektedir. Her işlemci kendi yerel belleğine erişime sahiptir ve diğer işlemcilerle bağlantı ağında iletişim kurabilir. 7. ünitede inceleceği gibi, bu sistemler, işlemci/bellek düğümlerinin küme düğümleri, sunucu, istemci veya daha büyük şebekeler olduğu internet bağlantılı sistemlere yol vermektedir. Bu bölümde mesaj aktarım sistemlerinin, programlama modeli, mesaj yönlendirmesi, ağ anahtarlama, mesaj aktarımı için işlemci desteği gibi, farklı açılarını inceleyeceğiz.
5.1 MESAJ AKTARIMINA GİRİŞ

Bir mesaj aktarım mimarisi, genel bir belleğe ihtiyaç duymadan bir grup işlemci arasında veri iletişimi sağlamak için kullanılır. Tasarının temeli, her işlemcinin kendine ait yerel bir belleğinin olması ve mesajlar kullanarak diğer işlemcilerle iletişim kurmasıdır.



Figür 5.1 bir çok işlemcili mesaj aktarım mimarisinin temel bileşenlerini göstermektedir. Figürde N1 den Nn e kadar numaralandırılmış n tane düğüm vardır. Bir Ni düğümü Pi işlemcisini ve Mi belleğini barındırır. Her işlemci kendi adres uzayına sahiptir. Düğümler birbirleriyle bağlantılar (links – harici kanallar) ve genelde statik tip olan birbirine bağlı ağlar üzerinden haberleşir.

2. bölümde gösterildiği gibi, mesaj aktarım ağı kurarken dikkat edilmesi gereken iki önemli faktör vardır; bağlantının bant genişliği ve ağ gecikme süresi. Bağlantının bant genişliği, birim zamanda iletilebilen bit sayısı (bit/s) olarak tanımlanır. Ağ gecikmesi ise ağ üzerinde bir mesaj aktarımının tamamlanması için gereken süre olarak tanımlanır.


Verilen bir uygulama yazılımını çalıştırmada, yazılım eşzamanlı işlemlere bölünür, her biri ayrı işlemcide çalıştırılır. Eğer işlemlerin sayısı işlemcilerin sayısından fazla ise o zaman birden fazla işlem zaman paylaşımlı şekilde bir işlemci üzerinde çalıştırılmak zorundadır. Bir işlemcide çalışan işlemler birbirleri arasında mesaj alışverişi için, dahili kanalları kullanırlar. Farklı işlemcilerde çalışan işlemler ise harici kanalları kullanırlar. İşlemciler arası veri alışverişi paylaşılamaz; daha çok alma/gönderme mesajlarıyla kopyalanır. Bu biçimdeki veri alışverişinin önemli bir avantajı, semafor gibi eşzamanlama yapılarına gereksinimin ortadan kalkması ve sonuç olarak da verimin (performans) artmasıdır. İlaveten,bir mesaj aktarım tasarımı, çok sayıda işlemcinin uyuşmasında esneklik sağlar.
Figür 5.2, 4 işlemden meydana gelen örnek bir mesaj aktarma sistemini göstermektedir. Bu figürde yatay çizgi her bir işlemin çalıştırılmasını ve işlemler arasında uzanan çizgiler de bu işlemlerin mesaj aşılverişlerini temsil eder. Bir mesaj, düğümler arası iletişimde mantıksal bir birim olarak tanımlanır; birbirleriyle alakalı varlık halinde beraber dolaşan bilginin toplanması olarak düşünülür. Mesaj bir komut, veri, eşzamanlama veya bir kesme sinyali olabilir. Bir mesaj iletim sistemi dış dünyayla giriş ve çıkış mesajlarıyla etkileşir. Dış dünyanın, verilen bir mesaj iletim sisteminin tutarlı bir davranışını algılaması gereklidir.

İşlem taneselliği: bir mesaj iletim sistemindeki bir işlemin büyüklüğü işlem taneselliği adı verilen bir değişkenle tanımlanabilir. Bu aşağıdaki gibi gösterilir :


İşlem taneselliği = hesaplama zamanı / iletişim zamanı
Tanesellik üç tipe ayrılır. Bunlar:


  1. ham tanesellik : her işlem büyük sayıda ardışık komutlar tutar ve çalıştırmak önemli miktarda zaman alır.

  2. orta tanesellik : tanesellik azaldıkça işlem iletişimi yükü artar. Orta tanesellik iletişim yükünün azaldığı ara bir katmandır.

  3. iyi tanesellik : her işlem sadece birkaç ardışık komut bulundurur. (bir tane olacak kadar az)

mesaj ileten çokluişlemciler genellikle orta ya da ham tanesellik kullanır.

5.2 MESAJ İLETİM AĞLARINDA YÖNLENDİRME
Yönlendirme, bir mesajın ağ kanalları üzerinde izleyeceği yolu seçme tekniğinin belirlenmesidir. Genel konuşursak yönlendirme, mesajın hedefe ulaşmasında kullanılabilecek makul yolların bir tanım kümesine ve de bu kümeden bir yol seçecek bir n fonksiyonuna ihtiyaç duyar.
Bir yönlendirme tekniği, belirle bir kaynak ve hedef ikilisi için, mesajın izleyeceği yol, ağ tıkanıklığı gibi ağın yoğunluğuna bağlıysa, bu yönlendirme tekniği için uyarlanabilir denir. Uyarlanabilir yönlendirme tekniğine karşıt olarak, kararlı bir yönlendirme tekniği(ihmalkar olarak da adlandırılır)ağın durumundan bağımsız olarak sadece hedef ve kaynağa dayanarak yol seçer. Basit olmasına karşın, ihmalkar bir yönlendirme tekniği, kaynak ve hedef arasındaki müsait bant genişliğini verimsiz kullanır.
Yönlendirme teknikleri, merkezi veya dağıtık yönlendirme gibi yönlendirme tercih metodlarına dayanarak da sınıflandırılabilir. Merkezi yönlendirmede, tüm yol ile ilgili yönlendirme kararı mesaj gönderilmeden önce verilir. Dağıtık yönlendirmede her düğüm gelen mesajı hangi kanaldan ileteceğine kendi karar verir. Merkezi yönlendirme, ağdaki geri kalan tüm düğümlerin durumlarının tam bir bilgisine ihtiyaç duyar. Dağıtık yönlendirme sadece komşu düğümlerin durumlarının bilgisine ihtiyaç duyar.
Kararlı yönlendirme algoritmalarının örnekleri, ağ gözü ve halka tipi çoklu bilgisayar ağlarında kullanılan e-küp veya boyut sırası ve hiperküpteki XOR yönlendirmesini barındırır. Aşağıdaki örnek, bir hiperküp ağdaki kararlı yönlendirme tekniğini gösterir.
Örnek 1 Farzedelim ki 6 boyutlu hiperküp mesaj iletim sisteminde S = S5 S4..S1 S0 kaynak düğüm adresi ve D = D5 D4 .. D1 D0 hedef düğüm adresi olsun. R = S + D işlemi yol üzerindeki her düğümde çalıştırılan, bit düzeyinde XOR “ayrıcalıklı veya” işlemi olsun. XOR işleminin sonucu, mesajın hedefe ulaşması için hangi boyutta gönderilmesi gerektiğini gösterir. S = 10(001010) and D = 39(100111) olan durumu ele alalım. R = (101101) bu durumda mesajın hedefe ulaşması için 0, 2, 3, ve 5 boyutlarından gönderilmesi gerekir. Bu boyutların hangi sırayla üzerlerinden geçildiği önemli değildir. Varsayalım ki mesajın izlediği rota 5, 3, 2 ve 0 boyutlarından geçiyor. Bu durumda yönlendirme tamamen şu şekilde kararlaştırılır;

10(001010) -> 42(101010) -> 34(100010) -> 38(100110) -> 39(100111).


5.2.1 YAYINLAMA VE ÇOĞA GÖNDERİM İÇİN YÖNLENDİRME
Mesaj iletim sistemlerinde iki tip iletişim işlemi vardır, bunlar birebir (uç uca veya tekyöne) ve kollektif iletişimlerdir. Tekyöne tipinde bir düğüm bir mesajı sadece bir hedefe gönderebilir. Kolektif iletişimde birkaç yönlendirme işlemi tanımlıdır. Bunların içinde en çok yayınlama ve çoğa gönderim kullanılır. Yayınlamada, (birden hepsine) bir düğüm aynı mesajı diğer hepsine gönderir. Çoğa gönderimde (birden çoğa) bir düğüm mesajlarını k adet birbirinden farklı hedefe gönderir.
Yayınlama genel olarak, dağıtık bellekli bir programın hesaplanmasında veriyi bir düğümden diğerlerine dağıtır. Çoğa gönderim, geniş ölçekli çokluişlemcilerde, paralel arama algoritması ve tek program çok data (SPMD) hesaplaması gibi farklı kullanımlara sahiptir. Pratik yayınlama ve çoğa gönderim yönlendirme algoritmaları kördüğümden muaf olmalı ve mesajı her adrese mümkün olduğu kadar kısa zamanda ve kısa yoldan iletebilmelidir. Bunu başarmanın bir yolu mesajı genel bir yoldan olabildiğince çok hedefe iletmek ve mesajı kopyalayarak her kopyayı farklı kanal bantlarında benzersiz hedef kümelerine iletmektir. Her kopya tarafından izlenen yollar, mesaj her hedefe ulaşana kadar dallanır. Bu tip ağaç temelli iletişim modelinde hedef kümesi kaynakta parçalara ayrılır ve ayrı kopyalar bir veya daha fazla bağlantıdan gönderilir. Bir mesaj orta düğümlerde kopyalanıp çoklu çıkış bağlantılarından ayrık alt küme hedeflerine gönderilebilir. Çoğa gönderim işleminin bir diğer uygulama yöntemi de ayrık adresler kullanmaktır. Bu durumda mesajın ayrı bir kopyası kaynaktan hedefe direk gönderilir. Açıkçası bu verimsiz bir tekniktir. Bir hiperküp ağaç temelli hiperküp yayın iletişimi Figür 5.3 te gösterilmiştir.


5.2.2 Yönlendirmede Potansiyel Problemler
Mesaj iletim sistemlerinde belli yönlendirme mekanizmalarının kullanımı bir takip problemlerle sonuçlanabilir. Bunlar aşağıda açıklanan deadlock, livelock ve açlık (starvation) gibi durumlardır.

Deadlock (kördüğüm) : İki mesaj birbirlerinin devam etmek için ihtiyaç duydukları kaynakları tutmaktadır ve iki mesajda bloklanır. Bu kördüğüm (deadlock) olarak adlandırılır. Bu, kaynaklara döngüsel bir bağımlılık durumu olduğu zamanlarda oluşan bir fenomendir. Bir ağda kaynakların yönetimi kullanılan akış kontrol mekanizmasının sorumluluğundadır. Kördüğümlerden kurtulmak için kaynaklar bir şekilde tahsis edilmelidir. Kördüğümleri çözmenin basit ama verimsiz bir yolu, kördüğüm durumunda mesajları tekrar yönlendirmek veya çıkartmaktır. Tekrar yönlendirme asgari olmayan yönlendirmede artışa, mesajları çıkartmak da mesajların kaynaktan tekrar alınması gereksinimine sebep olur. Bu önleyici teknik uzun gecikme süresine sebep olur ve bu yüzden birçok mesaj iletim sisteminde kullanılmaz.

Daha genel bir teknik, kördüğüm oluşumundan kaçınmaktır. Bu da ağ kaynaklarını ve talep eden mesajları monoton bir şekilde sıralamakla sağlanır. Ağ kaynaklarının kullanımındaki bu sınırlı yöntem, döngüsel beklemeyi engeller ve böylece kördüğüm oluşumunu engeller. Kanal bağımlılık çizelgesi (CDG), kördüğümden muaf bir yönlendirme algoritması üretmekte kullanılır. Kanal bağımlılık çizelgesi CDG, D = G(C, E) şeklinde, yönlendirme algoritması tarafından, köşeler kümesi C nin ağdaki tüm tek yönlü kanalların barındırdığı, kenarlar kümesi E nin bağlanmış kanal çiftlerini barındırdığı yönlendirilmiş bir çizelgedir. Başka bir deyişle eğer (ci, cj) Є E ise bu durumda ci ve cj göreceli olarak bir düğümün giriş ve çıkış kanallarıdır ve yönlendirme algoritması sadece ci den cj ye mesaj yönlendirebilir. Bir yönlendirme algoritması eğer CDG içerisinde bir döngüsellik yoksa kördüğüm(deadlock) dan muaftır. Örnek olarak Figür 5.4a da gösterilen 4 düğümlü ağı alalım. Bu ağın CDG’si Figür 5.4b de gösterilmiştir. CDG içerisinde iki adet döngüsellik bulunmaktadır bu durumda bu ağ kördüğüme maruzdur. Figür 5.4c, c1 den c2 ye ve c7 den c8 e mesaj gönderimine izin vermeyerek, kördüğümü engellemenin olası bir yolunu göstermektedir.


Livelock : Livelock mesajın ağda dolanıp durduğu ve asla hedefe ulaşamadığı durumu tarif eder. Bu, mesajların hedeflerine ulaşmak için atlamalarda tekrar yönlendirildiği uyarlanabilir yönlendirme algoritmalarının kullanımından ortaya çıkan bir fenomendir. Düğümler haberleşmek istediğinde, mesajlarını ağa enjekte ederler. Mesaj bulunmayan bir ağa tüm düğümler aynı anda mesajlarını enjekte ettiğinde statik bir enjeksiyon modeli oluşur. Bu düğümlerin rastgele zamanlarda mesajlarını enjekte ettiği dinamik enjeksiyon ile kıyaslama içindir. Dinamik enjeksiyon kullanıldığında livelock durumu oluşabilir. Fakat statik enjeksiyon kullanıldığında oluşamaz. Livelock oluşumunu engellemek için birtakım yönlendirme politikaları kullanılabilir. Bunlar aşağıda işlenmiştir. S kümesi, tamamen sıralanmış öncelikler olsun. Ağa bir mesaj enjekte edildiğinde, ona bazı öncelikler verilmiştir. Livelock oluşumundan kaçınmak için, aşağıdaki gibi olmalıdır:


  1. Mesajlar önceliklerine göre yönlendirilmelidir.

  2. Mesaj bir kere enjekte edildiğinde, sadece sınırlı sayıda, eşit veya daha yüksek öncelikli mesaj enjekte edilmelidir.

Starvation (beslenme yetersizliği) : Bir düğümün ağa enjekte edecek bir mesajı var ve asla bunu yapmasına izin verilmiyorsa o düğüm için starvationdan bahsedilir. Eğer statik enjeksiyon kullanılıyorsa beslenme yetersizliği ortaya çıkamaz. Beslenme yetersizliğininden kurtulmak için bir takım yönlendirme politikaları kullanılabilir. Bunların arasında en basiti, her düğümün ağa enjekte etmek istediği mesajları bulundurduğu kendi enjeksiyon kuyruğunun olmasıdır. Adil bir kuyru yönetim politikası kullanıldığı sürece bu yöntem beslenme yetersizliği (starvation) oluşumuna engel olur. Ana dezavantaj, mesaj enjeksiyon derecesi yüksek olan bir düğüm ağdaki diğer düğümleri yavaşlatır.

5.3 MESAJ İLETİMİNDE ANAHTARLAMA MEKANİZMALARI
Anahtarlama mekanizmaları giriş kanalından veriyi alıp çıkış kanalına yerleştiren mekanizmalarını kasteder. Ağın gecikme süresi kullanılan anahtarlama mekanizmasına büyük ölçüde bağlıdır. Kullanılan birkaç anahtarlama mekanizması vardır. Bunlar, sakla-ilet, devre anahtarlama, sanal yol açma, solucan deliği ve ardışık düzenli(boru hattı) devre anahtarlamadır. Bu bölümde bu tekniklerden birkaçına değineceğiz.
Devre anahtarlamalı ağlarda, ilk önce kaynak ve hedef arasındaki yol kararlaştırılır, yol üzerindeki tüm bağlantılar reserve edilir ve düğümlerde tamponlara(buffer) ihtiyaç kalmaz. Veri aktarıldıktan sonra, reserve edilen bağlantılar başka mesajların kullanması için serbest bırakılır. Devre anahtarlama tekniğinin önemli bir karakteristiği kaynak ve hedef arasında bağlantı kurulduğunda belli bir bant genişliği ve maksimum gecikme süresi garanti edilmiştir. Esas kullanımından bağımsız olan bu statik bant genişliği tahsisi, devre anagtarlama yaklaşımının temel eksikliğidir. Yine de statik bant genişliği tahsisi basit bir tamponlama (buffer) stratejisine yol açar. Ek olarak devre anahtarlamalı ağlar en az gecikmeye sahip olarak nitelendirilirler. Bu da mesaj yönlendirme maliyetinin sadece devre oluşturulurken var olması, alt mesajların ek gecikmesinin olmaması veya minimal olmasıdır. Bu yüzden aktarılacak mesaj sayısının çok olduğu durumlarda devre anahtarlamalı ağlar avantajlıdır.
Sakla-ilet anahtarlama mekanizması alternatif bir veri transfer tasarısı sağlar. Ana fikir, mesajlara ağda aktarılırken dinamik bant genişliği tahsisi sunması, bu nedenle devre anahtarlama mekanizmasının temel eksikliğinin ortadan kalkmasıdır. Genel olarak iki tip sakla-ilet ağı kullanılır. Bunlar paket anahtarlamalı ve sanal yol açmalı ağlardır. Paket anahtarlamalı ağlarda her mesaj, gönderilmeden önce, paket adı verilen sabit büyüklükte parçalara bölünür. Her düğüm gelen paketleri göndermeden önce tutacak yeterli miktarda tampon bulundurmalıdır. İletimin başlangıcında kaynaktan hedefe tam bir yol müsait olmayabilir. Bağlantılar müsait oldukça, paketler hedef düğüme ulaşıncaya kadar düğümden düğüme ilerlemeye devam ederler. Paketler ağda ayrı ayrı yönlendirildiğinden ötürü, hedef düğüme giderken farklı yollar izleyebilirler. Bu da paketlerin hedefe sırasız şekilde ulaşmasına yol açar. Bu durumda, ek maliyete maruz kalınarak, uç uca mesaj bağlama şemasına ihtiyaç duyulur. Paket anahtarlamalı ağlar, mesajdan ziyade, ağa gönderilen her paket için yönlendirme yüküne ihtiyaç duymaya da katlanmak durumdadır. Bant genişiliğinin dinamik tahsisine ek olarak, paket anahtarlamalı ağlar, düğümler için düşük tampon ihtiyacı avantajına sahiptir.

Sanal yol açmada, bir sonraki gerekli kanal meşgulse, paket aradaki düğümlerde saklanır. Sanal yol açma, paket anahtarlama tekniğine benzer. Farkı şudur; paket anahtarlama ile karşılaştırıldığında, paket ara bir düğüme ulaştığında eğer çıkış kanalı serbestse paket tamamen alınmadan hedefe doğru diğer düğümlere gönderilir. Bu durumda boş bir kanaldaki gereksiz tamponlamadan dolayı ortaya çıkacak gecikmeden kaçınılır.


Gereken tampon boyutunu küçültmek ve sebep olduğu ağ gecikmesini azaltmak için, solucan deliği adı verilen bir teknik sunulur. Burada, paketler flit(flow control bits – akış kontrol bitleri) adı verilen daha küçük parçalara bölünür. Bu flitler hedefe yolu gösteren bir başlık fliti ile beraber ardışık düzen biçiminde hareket ederler. Ağ tıkanıklığı dolayısıyla başlık fliti bloklanırsa, geri kalan flitler de bloklanır. Başarılı bir solucan deliği yönlendirme algoritması işlemi için sadece, flitleri saklayabilen bir tampon gereklidir. Teknik, yoldan uzunluğundan bağımsız bir gecikme üretmesi ile bilinir ve sakla-ilet paket anahtarlama tekniğine göre düğümlerde daha az depoya ihtiyaç duyar.
Figür 5.5 ve 5.6 sakla-ilet ve solucan deliği yönlendirmesinde, iletişim gecikmesi koşullarındaki performans farkını tarif etmektedir.

Bu figürlerde, L bit bazında paket uzunluğunu, W bit/döngü olarak kanal bant genişliğini, D kanalların sayısını ve Tc ‘ de döngü zamanını temsil etmektedir. Figürlerde görülebileceği gibi, sakla-ilet (SF) ve solucan deliği (WH) nin gecikmeleri göreceli olarak şöyle verilmiştir;



Tablo 5.1 bir grup anahtarlama mekanizmaları arasında tüm olarak kıyaslama vermiştir.



5.3.1 ÖRGÜSEL AĞLARDA KURTDELİĞİ YÖNLENDİRMESİ
N-boyutlu bir ağ gözü, K0 x K1 x … x Kn_1 düğüme sahip olan bir ara bağlantı ağ yapısı olarak tanımlanır. ‘n’ ağdaki boyut sayısını, ‘Ki‘ ise ‘i’ boyutunu tanımlar. Her düğüm n-koordinatlı bir vektör ile tanımlanır (x0, x1, . . . , xn_1, 0 ≤ xi ≤ Ki – 1). Örgüsel ağlar için birkaç iletim tekniği kullanılmıştır. Bunlar arasında; boyut-sıralı, boyut geri çevirme, dönme modeli, mesaj akma modeli bulunur.
Boyut-Sıralı (X-Y) İletim
n-boyutlu örgülerde sıklıkla kullanılan kanal numaralandırma şeması kanalların boyutlarına dayanır. Boyut-sıralı iletimlerde, her paket, bi sonrakine geçmeden önce her boyutta uygun koordinata ulaşıcak şekilde belli bir anda belli bir boyutta iletilir. Üzerinden geçilen boyutlarda, kati bir monoton sıra uygulanarak, iletimlerde tıkanma durumu ortadan kaldırılır. 2 boyutlu bir örgüde, her düğüm posizyonu (x,y) ile temsil edilir; paketler önce x-boyutunda daha sonra y-boyutunda iletilir. Bu X-Y iletim ismini açıklar.
X-Y iletiminde, mesajlar önce x-boyutunda daha sonra y-boyutunda iletilir. Başka bir deyişle, x-boyutundan y-boyutuna olmak üzere en fazla bir dönüşe müsaade edilir. Örneğin, (sx, sy) ve (dx, dy), sırasıyla kaynak ve hedef düğümleri ifade etsin. Ayrıca (gx, gy) = (dx - sx, dy - sy) olduğunu varsayalım. Mesajın ilk iki geçişine gx ve gy ‘yi yerleştirerek X-Y iletimi uygulanır. İlk geçiş, ilk düğüme geldiğinde, 0’dan büyük yada küçük olmasına göre azaltılır veya artırılır. Sonucun ‘0’a eşit olmaması halinde, mesaj geldiği ile aynı yönde iletilir. Sonucun ‘0’a eşit olması ve mesajın Y-boyutunda ulaşmış olması halinde, mesaj yerel bi düğüme iletilir. Sonucun ‘0’a eşit olması ve mesajın X-boyutunda ulaşmış olması halinde, geçiş iptal edilir ve bir sonraki geçiş incelenir. Eğer o geçiş 0 ise, paket yerel düğüme bırakılır; değilse, paket Y-boyutunda iletilir. Şekil 5.7, 8x8 bir örgüde, bir kaynak ve bir hedef nod arasında uygulanan bir X-Y iletimini gösterir.

5.3.2 SANAL KANALLAR
Sanal kanal prensibi, tıkanmasız iletim algoritmalarının tasarımı için çıkarılmıştır. Sanal kanallar, daha fazla bağ eklemeden mantıksal kanalların sayısını artırmak için ucuz bir metod sağlarlar. Birkaç uyumlu iletim algoritması bu sanal kanallarun kullanımına dayanırlar.
Sanal kanalsız bir ağ, tek şeritli bir yoldan oluşur. Bir ara bağlantı ağına sanal kanallar eklemek, bir yollar ağına ek şeritler eklemeye benzer. Böylece bloklanmış mesajların iletilmesi sağlanır. İletim verimliliğinin artırılmasının yanı sıra, sanal kanallar ağdaki mesajlara kaynak sağlama açısından daha fazla özgürlük sağlarlar. Şekil 5.8’deki örnek basit ağı inceleyin.

Bu örnekte, X-A-B-Z ve Y-A-B-W rotaları ortak olan AB hattını kullanırlar. Dolayısıyla bu iki rota arasında AB hattının çoklanması gerekir. Ayrıca, ilk rotada verinin X’den yanlışlıkla W’ye ve aynı şekilde ikinci rotada Y’den yanlışlıkla Z’ye iletilmesini engellemek için bir öngörü gerekir. Bu, eğer her fiziksel kanal gerçekte belli bir sayıda tekyönlü sanal kanala bölünürse sağlanabilir. Her kanal bir sanal rota için veri taşıyabilir. Bir düğümden diğerine olan bir yol, bu rota üzerindeki hatlar üstünde bulunan bir seri kanaldan oluşur. A düğümünden B düğümüne bir veri yollandığında, B düğümü, verinin Z düğümüne mi W düğümüne mi iletileceğine karar verebilmek için, verinin gitmesi gereken yolu bilmelidir. Bu bilgiyi sağlamak için kullanılabilecek bir yöntem, AB hattını belli bir sayıda zaman dilimine bölmek ve her zaman dilimini bir kanala eşleştirmektir. Böylece, verinin geldiği zaman dilimine göre veriyi ileten kanal belirlenebilir ve doğru hedef düğüme iletilebilir.


Sanal kanal uygulamasının avantajlarından biri tıkanmayı ortadan kaldırmasıdır. Tampon düğümlerine birkaç geçiş imkanı sağlanarak bu gerçekleştirilir. Bir paket bir sanal kanala geldiğinde, tampona konur ve uygun zaman diliminde yollanır.

5.4 MESAJ İLETİMİ PROGRAMLAMA MODELLERİ


Bir mesaj iletim mimarisi işlemlerin birbirleriyle iletişim kurmasını sağlamak için bir küme temel ilkeyi kullanır. Bunların arasında gönder, al, yayınla, bariyer ilkeleri bulunur. Gönder ilkesi bir hafıza tamponunu alır ve hedef düğüme gönderir. Al ilkesi kaynak düğümden gelen bir mesajı kabul eder ve bunu belirlenmiş bir hafıza tamponunda tutar. Mesaj iletim mimarisinde kullanılan temel programlama modeli, bir işlemcideki bir gönder talebini, diğer bir işlemcideki al talebi ile eşleştirme mantığına dayanır. Böyle bir şemada, gönder ve al bloklanır, şöyleki; gönder talebi, ona karşı gelen al talebi veri iletilmeden çalıştırılana kadar bloklanır.
İşlemler arası gönder/al ‘ın uygulanması, şekil 5.9’da gösterildiği gibi 3-yönlü bir protokol gerektirir. Bu durumda, gönderen işlem alan işleme gönderme isteği mesajı iletir. Alıcı bu isteği tutar ve bir cevap mesajı gönderir. Göndere karşı gelen bir al oluşturulduğunda, gönderen işlem cevabı alır ve sonunda veriyi transfere başlar. Blok kullanan gönder/al basittir; ne kaynakta ne de hedefte tampona gerektirmez. Ancak, gönder/al bloklamada kullanılan 3-yönlü el sıkışma, hem gönderen hem de alanın bir tam tur zamanı kadar bloklanmasını gerektirir. Bu süre esnasında işlemciler boş kalır, bu da ağ iletişiminde gecikmeye sebep olur. Ayrıca, bloklu gönder/al ile, ‘iletişim’ ile ‘işleme’ üst üste bindirilemediği için ağ bant genişliğinden tam olarak yararlanılamıyor.
Üç fazlı protokolün eksikliklerinden kaçınmak için, birçok mesaj iletme uygulaması bloklamama işleminin kullanımından yararlanır. Bu durumda ‘gönder’ kullanıcı programa ivedi olarak gözükür. Ancak mesaj, ağ kapısı müsait olana kadar, mesaj katmanı tarafından katmanlanır. Ancak bundan sonra mesaj alıcılara iletilebilir. Orada bir alım karşılaştırılması çalıştırılana kadar mesaj tekrar tamponlanır.

Tablo 5.2, birkaç mesaj iletim makinesındaki gönder/al performansı gösterilmiştir. Bu tabloda Ts mesajın başlangıç maliyetini, Tb bit başına düşen maliyeti ve Tfp de kesirli bir işlemin ortalama maliyetini temsil etmektedir. CM-5 in blokladığı ve üç fazlı protokol kullandığı not edilmelidir.


iPSC nin uzun mesajları da, alan düğümde yeterli tampon boşluğu olduğunu garanti etmek için, üç fazlı protokol kullanmaktadır.


Örnek 2 : y = (a+b)*(c+d) işlemini tekil işlemcide ve iki işlemciden oluşan bir mesaj mimarisinde hesaplamayı deneyelim.




  1. tek işlemci ile hesaplama





  1. P1 ve P2 İşlemcileri ile Mesaj İletim

İşlenenlerin iki işlemci arasında aşağıda gösterildiği gibi dağıtıldığını varsayalım.




Örnek 3 : n tane bileşene sahip bir vektörün, p işlemcileri kullanılarak, tüm bileşenlerinin toplamı alınacaktır. (n, 2’nin bir kuvvetidir) vektör bileşenleri p işlemcileri arasında dağıtılmıştır.


  • Başlangıç adımı : Her işlemci kendi sahip olduğu vektör bileşenlerin toplamını icra eder.

  • 2’nin kuvvetlerinden k = 1 den n/2 ‘ye kadar indeks kullanılarak tekrarlanır.

  • j ve j+k işlemcileri ikili gruplar halinde veri alışverişi yapar ve toplamı icra eder.

Figür 5.10 işlemin log (2) n adımda nasıl gerçekleştiğini göstermektedir.



5.5 MESAJ İLETİMİ İÇİN İŞLEMCİ DESTEĞİ
Mesaj iletimini destekleyen işlemciler, süreçler arası mesaj iletişimini desteklemek için gerekli özel komutlar barındıran işlemcilerdir. Süreçler arası iletişimi desketlemek için bir takım özellikler gereklidir. Bunların arasında şu özelliklere ihtiyaç duyulur:


  1. Port iletişim kanalıdır. Görevler ve iş parçacıkları için bir referans nesnesidir. Portlar üzerinde iki temel işlem gerçekleşebilir: gönder ve al

  2. Mesajlar, nesneler arasında iletişim olarak kullanılır. Bir mesaj bir başlık ve bir gövde olarak ayrılır. Başlığın boyutu sabitken, gövdenin boyutu değişkendir. Bir mesaj işlemler arasında takas edilen bilgileri barındırır.

  3. Port kümeleri : Bir görev portlar üzerinde gönder ve al gibi birden fazla erişim hakkı barındırabilir. Birden fazla görev tek bir porta gönder erişimine sahip olabilir. Diğer yandan bir görev verilen bir zamanda al erişimine sahip olabilir. Port kümesinde, bir görev, bir port grubunun erişim haklarının tümüne ya da hiçbirine sahip olabilir. Portlar birbirinden bağımsız olmak zorundadır yani bir port verilen bir zamanda iki farklı kümede bulunamaz.

Intel iPAX 432 mesaj aktarım iletişimi kullanır ve direk destekler. Mesaj yoluna rakip olarak çalışan port nesneleri de kullanır. İşlemci bir mesaj kuyruğu bulundurur. Bir mesaj iletişimi aşağıdakilere bağlı olarak düzenlenebilir.




  1. Varış süresi (ilk-giren-ilk-çıkar gibi “FIFO”);

  2. Üstünlük hakkı

  3. Üstünlük hakkı için mühlet

iPAX 432, koşullu GÖNDER ve AL işlemleri bulunan özel işlem kullanarak, engelleyici olmayan bir mesaj iletimi üretir. Bu koşullu işlemlerin işleneni, özel bir Boolean (etiket)bayraktır. Bu yüzden eğer koşullu işleme tekabül eden koşulsuz işlem engelleniyorsa, koşullu işlem sonucu yanlış (0) , eğer engellenmiyorsa koşullu işlem sonucu doğru(1) olur. Koşullu işlemlerin bu durumunda, mesaj iletimini desteklemek için, her işlem içinde ve işlemler arasında doğru bir iletişim ve etkileşim sağlanmalıdır. Bu olmalıdır çünkü, işlemci iletişim işlemini tamamlayamazsa spesifik bir işlemi çalıştırmaya devam edecektir. Bu nedenle, iyi bir program dönen bayrağı test ederek işlemin tekrar denenip denenmeyeceğine karar vermelidir. Vekil-Gönder ve Vekil-Al gibi engellemeyen mesaj geçiş işlem çeşitleri vardır. Bu işlemler işlemi bekleme sırasında tutar ve yüksek-düzeyli-dil iletişimi ile kullanım için yeterlidir. Bu işlemlerin işleneni DONE adı verilen bir olay(event) tir. Bu işlemler, gönder ve al işlemlerini yapar ve mesajı portun kuyruğuna koyar. Vekil istenilen servisi aldığında bu işlemler biter veya tamamlanır ve DONE olayı olur. DONE olayını araştırarak işlemin bitişini kontrol etmekten asıl işlem sorumludur.


IBM AS/400, mesaj geçişini, mesajın içeriğini üstlenen bir alan barındıran event (olay) nesne tipi ile sağlar. Bu alan, olay bilgi alanı olarak adlandırılır. AS/400 işlemci operasyonları gönder ve al ’dır. Gönder operasyonu, SIGNALEVENT(PROC, EV, DATA) olarak adlandırılmış bir işlemci operasyonu ile süreçler arası mesaj göndermekte kullanılır. Bu işlemci operasyonu üç parametreye sahiptir. İlk ikisi PROC işlemcisi içerisinde sinyallenmek üzere EV olayının(event) var olması için gereklidir. Üçüncü parametre bu olay için gerekli değildir. Süreçler arası mesajı almak için, WAIT-ON-EVENT, TEST-EVENT, MONITOREVENT ve RETRIEVE-EVENT-DATA kullanılır.

5.6 ÖRNEK MESAJ GEÇİŞ MİMARİLERİ


Caltech Hypercube, Inmos Transputer sistemleri, Meiko CS-2, Cosmic Cube, nCUBE/2, iPSC/2, iPSC/860, CM-5, mesaj geçiş mimarilerine örneklerdir.

Caltech Hypercube (Cosmic Cube), global kontrol için Intermediate Host (IH) olarak bilinen tek sunucusu olan n boyutlu bir hiperküp sistemidir. Orijinal sistem, basit sakla-gönder yönlendirme mekanizması üzerine temel alınmıştır. Sistem, C ve FORTRAN destekleyen ve kristal işletim sistemi (CrOS) olarak bilinen rutin kütüphaneler kümesi ile başlar. Sistem sadece IH’ye/IH’den kolektif operasyonları destekler. İki sene sonra Caltech proje takımı, solucan deliği yönlendirme çipi donanımı takdim etti. Cosmic Cube, Cosmic çevre (CE) adı verilen sunucu yürütüm süresi (runtime) sistemi kullanılarak yönetilir. Verilen bir hesaplamanın işlemleri, işlem grubu olarak tanımlanır. Sistem birden çok kullanıcı tarafından kullanılabilir. Kullanıcılar, bir CE rutini kullanmak için gerekli küp boyutunu tanımlamak zorundadır. Bölüştürme, müsait hiperküp düğümleri temel alınarak sağlanır. Bu sistemde, aktif işlem düzenlemesi ile dinamik işlem yapısı yardımıyla C programlama desteklenir.



Cosmic Cube, çalışan ilk hiperküp çok bilgisayarlı mesaj geçiş sistemi olarak kabul edilir. Cosmic cube sistemi Intel iPSC için 64 düğüm kullanılarak oluşturulmuştur. Her düğüm eşitlik(parite) kontrolü ile hata taraması yapan fakat düzeltme yapmayan 128 KB dinamik RAM e sahiptir. Ek olarak her düğüm, başlangıç ve önyükleme programlarını saklamak üzere 8 KB ROM bulundurur. Temel paket boyutu, her düğümde kuyrukla birlikte 64 bittir. Bir mesaj isteği yapıldığında çağrılar geri döner. Mesaj isteği bitmediyse, çağrılar geri dönmez ve program devam eder. Bu sistemde her düğüm 9 KB kod ve 4 KB tabloya ihtiyaç duyan bir çekirdeğe sahiptir. Bu çekirdek, duyarlı çekirdek olarak adlandırılır, ikiye ayrılır : iç çekirdek mesajları icra eder. Örnek olarak, gönderme, alma, kuyruğa sokma vs. dış çekirdek de yaratma, kopyalama gibi işlemleri barındırır.
Mekio Computing Surface CS-1, ilk Inmos Transputer T800 temelli sistemdir. Transputer, donanım haberleşmesinde hızlı görev anahtarlama özelliğine sahip 32-bit mikroişlemcidir. Sistem Occam adı verilen bir dille programlanmıştır. Dil, kanal olarak bilinen soyut bağlantılar kullanılır.


Intel iPSC, Cosmic Cube’dan sonra geliştirilmiş en yaygın mesaj geçiş sistemidir. iPSC/1’de Intel 286 işlemci ile Intel 287 yardımcı işlemci kullanılmıştır. Her düğüm üzerinde bir adet işlem, bir adet de Girdi/Çıktı veri yolu olmak üzere 2 adet veri yolu bulunan tek kartlı bilgisayarlardan ibarettir. Düğümler “küp yöneticisi” tarafından yönetilmektedir. Her düğüm, diğer düğümlerle ve küp yöneticisi ile farklı kanallardan haberleşmesine olanak tanıyan yedi adet iletişim kanalından oluşmaktadır. Fortran ın mesaj akratım rutinleri desteklenmektedir.


Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©atelim.com 2016
rəhbərliyinə müraciət