Dağıtık Sistemler CS5001 Th. Letschert Çeviri: Turgay Akbaş TH Mittelhessen Gießen University of Applied Sciences Modeller ve Gösterimler
Sistemler, Uygulamalar, Algoritmalar Dağıtık Sistem Bir dağıtık sistem bir iletişim ağıyla birbirlerine bağlanmış süreçlerden oluşur. Dağıtık sistemler genel olarak modülarizedir (genellikle katmanlarda) ve düzenleme için hizmet(örn. İletişim hizmetleri) sunarlar. Dağıtık Uygulama Bir dağıtık uygulama, dağıtık bir programın işlemcilerinin alt kümesi üzerinde çalışır. Uygulamada etkileşim sadece mesajlar üzerinden yapılır. Bir dağıtık uygulama her zaman Dağıtılmış bir altyapı'ya dayanır mesaj değişimi vb. ve kendisi bir dağıtık sistemi temsil eder. Dağıtık Program Dağıtık bir program birbirleriyle sadece mesajlar aracılığıyla iletişim kuran n tane süreçten oluşur. Her sürecin kendine ait işlemci üzerinde çalıştığını kabul ederiz. Dağıtık Algoritma Bir dağıtık algoritma bir veya daha fazla işlemci üzerinde ardışık süreçler olarak çalışabilen yerel algoritmalardan oluşur. Dağıtık algoritmalar her zaman Dağıtık Birimler Modeli kullanılarak tanımlanır. Seite 2
Model Şekilde görünen durumla hangi algoritmalar kullanılarak hangi hesaplamaları yapmak mümkündür? İletişim Ortamı Bu iletişim ortamının gerçekleştirimine ve düğümlere bağlıdır. Kayıpsız/kayıplı iletişim Mesajların süresi, iletim güvenilirliği Broadcast mümkün/ mümkün değil Bir düğümün kaybı mümkün / mümkün değil vb. Dağıtık olmayan sistemlerde model açıktır Bundan dolayı dağıtık algoritmalar işlem yaptıkları bağlam verilerekve açıkça tanımlanması tanımlanırlar. gerekmez. Yapı(Framework) ~ Model Seite 3
Model Sistemler ve Sistem Modelleri Sistem Ortamların ve bileşenlerin özel durumları... Herhangi bir sayıda davranış sayısı ve yetenek mümkündür. Model Normalize edilmiş özellikler Sistem sınıflarının karakterize edilmesi Anlamlı ve genel ifadelerin yapımı mümkündür Örn: X Algoritması kayıpsız iletişim ve hatasız çalışan bileşenler durumunda sona erer. Temeller/Yönetilebilirlik üzerine odaklanmaya izin verilir Bileşenlerin başarısız olacaklarını kabul edelim, bundan sonra bileşenler mesaj gönderemezler... Modülarizasyon ile problem çözümünün kolaylaştırılması Yanlış mesajlar ile problemin başka bir yerde incelenmesi... Seite 4
Model Modeller Neden Modeller Modelleme esnasında gerçekliği anlama Planlama/Tahminleme Simülasyonlar Model Türlerı Analitik Modeller = Biçimsel Modeller Birşeyi olduğu gibi tanımlamak, gerçeğin kolaylaştırılmış tanımı Öncelikle doğa bilimlerinde: örn: Fizikteki matematiksel formüller Analog Modeller Modeldeki benzer özelliklerle yinelemeler örn. Planlanmış bir arabanın ağaç modeli açıkça yapma / belli özelliklerin araştırılması Seite 5
Model Modeller Analitik / Biçimsel Modellerin Türleri Ayrık Olaylar Modeli Dış olaylara verilen tepkilere göre model tanımlama Genel olarak Geçiş Sistemleri Sürekli Modeller Bir problemi matematiksel olarak ifade etmektir. Genellikle diferensiyal denklemler halinde edilirler. Seite 6
Model Bilgisayar Bilimlerindeki Modeller Bir bulunmuş gerçeklik modeli Model istenen bir gerçeğin simülasyonunu yapar. Örnekler: Sanal bellek Büyük bir Ana Belleği simule eder / modeller temelde: küçük boyutlu Ana Bellek + diskler Katman-4'e bağlantı (Güç Odaklı) İletişimi modeller / simule eder. temelde: bozulmuş paket değişimi + hata protokolü +... Süreç, model dünyasında faaliyet gösterir Uygulama, model dünyasında faaliyet gösterir Model: 4 GB Adres Alanı gerçekleştirim Model: kayıpsız uçtan-uca iletişim BS' de Bellek yönetimi gerçekleştirim Seite 7 1-4 Katman Protokolleri
Modeller ve Dağıtık Sistemler Modeller ve Dağıtık Mümkün Gerçekler tanımı olarak model Normalize(izin verilmiş / istenen) Ortamların Tanımı Temel Özellikler İlginç Özellikler ilginç çünkü önemli... çünkü anlaşılabilir / idare edilebilir... henüz çözülmemiş (Modelleme) Problem sınıflarının modelleme dünyasında araştırılması (=normalize edilmiş ortamlar) İstenen ya da inşa edilmiş gerçeklerin tanımı olarak model Arzulanan Gerçeklik: Bileşen Modellerı: Ayrılmış Prosedürler, ayrılmış Nesneler, mobil nesneler, ayrılmış hizmetler,... Tamamen / çoğunlukla şeffaf dağıtım Uygulama Model Seite 8 Normalize edilmiş modellerde sistem ayrılıklarını gizle
Modeller ve Dağıtık Sistemler Dağıtık Sistemler Modelleri İçin Önemli Yönler Ne Modellenmeli: Kendileri işlem gerçekleştirebilen ve birbirlerine mesaj gönderebilen, gönderdikleri mesajlarla birbirlerinin durumlarını ve gelecek mesajlara tepkilerini degiştirebilen elemanlar modellenmelidir. Böyle bir model hangi yönlere sahiptir: Etkinlik Kim daha etkin,aktif elemanlar nelerdir Topoloji aktif elemanlar arasında hangi ilişkiler oluşmuştur İletişim aktif elemanlar arası iletişim nasıl sağlanmaktadır Senkronizasyon Elemanların yerel etkinlikleri ve iletişimleri hangi geçici davranışlara sahip: etkinlikler senkron (eş zamanlı) olarak gerçekleştirilebilinecek mi? Hatalar iletişimde veya etkin elemanlarda hangi hatalar ortaya çıkabilir Seite 9
Model ve Dağıtık Sistemler Model Yönü Etkin Elemanlar Kim etkin, etkin elemanlar nelerdir(düğümler, Süreçler) Ardışık Süreçler etkin veya reaktif süreç / Thread Eyleyici (Actuators) reaktif: çağrılabilen fonksiyon + durum Seite 10
Model ve Dağıtık Sistemler Model Yönü Topoloji Etkin elemanlar arasında hangi tür iletişim var Sabit komşuluk ilişkisi ile sabit süreç yapısı Sistem = Düğüm ve Kenarlardan oluşan graf Dinamik komşuluk ilişkisi Sistem = Değişen kenarlara sahip ağ Dinamik süreç yapısı Sistem = Düğümler eklenebilir veya yok olabilir, Kenarlar kesilebilir veya yeni eklenebilir. Seite 11
Model ve Dağıtık Sistemler Model Yönü İletişim İletişim nasıl sağlanır senkron iletişim Mesaj gönderme ve alma Eş zamanlı asenkron iletişim Gönderme ve alma bağlı değil (Buffer, Kanallar, vb.) Mesajlar sınırlı bir zamanla iletilirler ya da maksimum bir zaman yoktur. Mesajlar mutlaka bir zamanda iletilirler ya da kayıp vardır. FIFO ya da not FIFO Bir kanaldan önce gönderilen mesajın önce alınıp alınamayacağının kararı Noktadan-noktaya veya Yayın(Broadcast) Bir mesaj bir anda sadece bir sürece veya daha fazlasına iletilebilir. Ne gönderilebilir Sadece değerler, referanslar ve aktif elemanlar(süreçler) gönderilebilir. Seite 12
Asenkron Model Asenkron Standart Model Asenkron mesajlaşma ve statik topoloji: Dağıtık algoritmalar için standart modeldir ve aktiviteler(süreçler) ve mesajlaşmalar için kabullenme yoktur. Biçimsel olmayan tanımlama: Asenkron modele sahip dağıtık bir sistem: Sabit sayıda ve sabit komşuluk ilişkilerine sahip süreçten: P1, P2,... Pn Süreçler ortak bir kaynağa sahip değillerdir:bellek, Saat... Kendi saatlerini ayarlayabilecekleri yerel bir saatten(izne göre) Süreçler mesaj değişimi aracılığıyla haberleşirler Mesajlar değerlerdir (Referans veya Süreç olamazlar) Herhangi ama sonlu bir çalışma zamanı Pi 'den Pj 'ye giderken birbirlerini geçemezler (FIFO-Kanalları) Seite 13
Asenkron Model Asenkron modellenmiş dağıtık bir sistemin tanımı Bu modelde bir dağıtık sistem sabit sayıda aşağıda sayılan özelliklere sahip süreçlerden oluşur: Kendi içinde işlem yap ancak diğer süreçlerle tamamen ardışık(dahili veya harici atomik işlemlerin sonucu olarak) Mesaj gönderip alabilen (harici olay) Kendi içinde işlem yapabilen (dahili olay) Gönderim ve alım işlemleri bağlı olmayan süreçlerdir. Seite 14
Senkron Model Senkron Modellenmiş dağıtık bir sistemin tanımı Bu modelde bir dağıtık sistem sabit sayıda aşağıda sayılan özelliklere sahip süreçten oluşur: Kendi içinde işlem yap ancak diğer süreçlerle tamamen ardışık(dahili veya harici atomik işlemlerin sonucu olarak) Mesaj değişimi yapabilen: aynı anda gönderim ve alım yapabilen (harici olay) Kendi içinde işlem yapabilen (dahili olay) Gönderim ve alım işlemleri bağlantılıdır. Senkron modeller low-level (donanım-seviyesil) alanlarda tercih edilirler. Donanım bileşenleri birbirleriyle sadece direkt olarak iletişime geçebilirler. Asenkron modeller senkron modeller ile gösterilebilirler. Asenkron modeller uygulamalar seviyesinde tercih edilirler. Seite 15
Asenkron Model Dağıtık bir sistemin tanımı için notasyonlar Notasyonlar Bir dağıtık sistemin ifade edilmesinde hangi ifade araçlarının kullanımı mümkündür / hangilerine izin verilmiştir. Süreçlerin tanımı için notasyonlar: Olaya dayalı ya da kontrole dayalı Topoloji tanımlanması için notasyonlar: Sistem nasıl süreçlerden oluşan bir koleksiyon olarak tanımlanabilir Süreçlerin komşuluk ilişkileri nasıl tanımlanacak kim kime mesaj gönderebilir / kimden mesaj alabilir (diğer süreçlere refere edilebilir,mesaj gönderme/alma işlemi) Seite 16
Notasyonlar / Süreç Tanımları Süreçler Kontrole dayalı notasyon Etkin elemanlar ardışık süreçler olarak tanımlanırlar Örnek: channel input( char ), output( char[ 0..MAXLINE ] ); process CharToLine: char[] line; int i=0; do true : receive input( line[i] ) -> { do line[i]!= CR && i < MAXLINE-1 -> { i++; receive input( line[i] ); } od send output(line); i = 0; } od CharToLine süreci karakterleri birbirlerine ekler. Karakterler girdi CharToLine Çıktı Satır Seite 17
Notasyonlar / Süreç Tanımlama Süreçler Olaya Dayalı Notasyon Etkin elemanlar Atama İşlemi~> Action şeklinde tanımlanmışlardır. Örnek: CharToLine süreci harfleri birleştirir. channel input( char ), output( char[ 0..MAXLINE ] ); process CharToLine: char[] line; int i=0; Karakterler // Ereignis: Empfang von CR receive input( CR ) -> { send output(line); } // Ereignis: Empfang eines beliebigen anderen Zeichens receive input( c ) -> { line[i] = c ; if i < MAXLINE -> i++; else send output(line); i = 0; } Seite 18 girdi CharToLine çıktı Satır
Notasyonlar / Süreç Tanımlama Süreçler (Non-) Determinizm Olaya Dayalı Notasyon Örtük Nondeterminizm Süreç herhangi bir olayın gelmesini ve uygun işlemi başlatmasını bekler. Birden fazla olaz aynı anda: hangi olayın önce işlem yapacağına karar verilmesi tanımlanmamıştır. Bazen aynı anda gelen olaylar sonuç olarak özel olaylara yönlendirebilirler. Kontrole Dayalı Notasyon Nondeterminizm açıkça modellenmiş olmalıdır Süreç herzaman belirli bir durumdan sonuç çıkarır. Hangi mesajın geleceği açıkça belirlenmemişse bu problem çıkarır. Bazen gerektiğinden fazla bir tanımlama vardır. Özelleştirilmiş nondeterministik dil yapıları kullanılır: örn. Dijkstras Guarded Commands Seite 19
Notasyonlar / Süreç Tanımlama Süreçler - (Non-) Determinizm if Deterministik olmayan if-komutu if Alternatifler fi Alternatifler ::= guard -> İşlem guard'a uyan alternatif işleme alınır, çalıştırılır. Birden fazla alternatifler seçilebilir: Deterministik olmayan seçim Guarded-Command do Alternatifler od Alternatif ::= guard ->İşlem Hiç bir guard yoksa sona erer Birden fazla alternatifler seçilebilir: Deterministik olmayan seçim sonrasında yeniden çalıştırma Guarded Communication Alternatif ::= guard : iletişim -> İşlem Eğer uygun bir guard yoksa işlem sona erer. Birden fazla alternatif seçilebilir: 1. Birden fazla iletişim komutu gerçekleştirilebilir: => Nondeterministik Seçin 2. Hiçbir iletişim komutu gerçekleştirilemez: => Bekleme Seite 20 fi do od do od guard1 -> Aktion1 guard2 -> Aktion2... guard1 -> Aktion1 guard2 -> Aktion2... guard1 : Comm1 -> Aktion1 guard2 : Comm2 -> Aktion2...
Notasyonlar / Süreç Bağlama(Binding) İşlemi Süreç Komşulukları CSP-Gösterimi (T. Hoare) Statik Tanınma statik süreç komşulukları Süreçler sabit isimlere sahiptirler. Mesaj gönderme ve alma işlemleri belirlenmiş bir iletişim partneriyle gerçekleştirilir. Dağıtık sistem bir program olarak tanımlanması gerektiğinde ya da tanımlanabildiğinde anlamlı ve kolaydır. Süreçlerin komşuluk ilişkileri bağlamı statiktir. v'yi P sürecine gönder v!p v değerini P sürecinden al v?p Port-Konsepti Süreçler portları tanımlar. Gönderme ve alma işlemleri portlar ile gerçekleştirilir. Çalışma zamanından önce portlar kanallarla bağlanır. Eğer sistemler süreç tanımları örneklerinin bağlanmasıyla yaratılıyorlarsa gerekli ve anlamlıdır. Süreçlerin komşuluk ilişkileri bağlamı yarı dinamiktir. Süreç Referansları Süreçler referanslar yoluyla adreslenebilirler. Süreç referansları iletişebilirler. Gönderme ve alma işlemleri süreç referanslarıyla yapılır. Eğer süreçler çalışma zamanında gösterilecekse uygun ve gereklidir. Süreçlerin komşuluk ilişkileri bağlamı dinamiktir. Seite 21
Notasyonlar / Süreç Bağlama(Binding) İşlemi Örnek yarı dinamik komşuluk ilişkilerinin tanımlanması Faz 1 + Ağ topolojisinin tanımı Süreç tanımları: 3 Süreç-tipi Faz 2 Ağ: 7 Süreç Örneği, 6 Kanal Faz 3 Sistemin Çalışması Seite 22