Dağıtık Sistemler CS5001 Th. Letschert Çeviri: Turgay Akbaş TH Mittelhessen Gießen University of Applied Sciences
Biçimsel model nedir Biçimsel model matematiksel olarak tanımlanmış olan bir modeldir. Biçimsel bir model ne işe yarar Modeller bir algoritmanın ya da dağıtık bir sistemin çalışma şartlarının tanımlanması için gereklidir. Algoritmanın özelliklerini tartışabilmek için modelin doğru ve formal olması gerekmektedir.) Biçimsel modeller nasıl kullanılır Biçimsel modeller kolaydır ve önemli noktalar üzerine yoğunlaşırlar bundan dolayı direkt olarak gerçekçi,kompleks sistemlerin tanımlanması için uygun değillerdir. İlginç algoritmaların tanımı için kolaylaştırılmış notasyonlar(genellikle Pseudocode) kullanılır. Sahte Kod(Pseudocode) ve biçimsel modeller Algoritmaların tanımlanması için kolay rahat gösterim Belirli bir model ile ilgilenir Sahte kod ile tanımlanmış herşey istenildiğinde biçimsel modellerle ifade edilebilir. Programlar ve Sahte Kod Programlar, programlanabilen algoritmaların sistemde çalıştırılabilen halleridir. Yürütme sistemi belirli modellere uygun olabilir. Program bir sahte kod tanımının gerçekleştirimi olarak hayata geçirilebilir. Seite 2
Dağıtık Sistemler İçin Biçimsel(Analitik) Modeller Dağıtık Sistem Bir dağıtık sistem aşağıda verilen bileşenlerden oluşur: süreçlerden oluşan bir koleksiyon bir iletişim sistemi Dağıtık Sistemler için Standard Model Geçiş sistemi(transitionsystem) form Ayrık Olay(Discrete Event) modeli Geçiş sistemi içerde ve dışarda gerçekleşen olayları(event) bir durumdan(state) diğer duruma aktaran bir 'makine'dir. Süreçler kendi başlarına geçiş sistemi olarak adlandırılırlar, bütün süreçler toplam(total) geçiş sistemini oluştururlar. Seite 3
Asenkron İletişim Kuran Sistemler Süreçler Her süreç bir geçiş sistemidir. Geçiş Sistemi Bir geçiş sistemi aşağıdaki öğelerden oluşur: mümkün sayıda Durum(State) Başlangıç Durumları(Startstates) Geçişler(Transitions) (Bir durumdan diğerine geçiş için belirlenmiş kurallar) bir durumdan diğerine gönderen işlemler. Lokal Süreçlerden Bütün Sisteme Lokal Süreçler iletişim sistemi aracılığıyla etkileşime geçerler (gönderebilir ve alabilirler,) bu şekilde global bir geçiş sistemi oluşur: Dağıtık Sistem Yorum Bu şekilde modellenmiş dağıtık sistemler sabit sayıda süreçten oluşurlar. Yeni süreçlerin yaratılması mümkün değildir. Seite 4
Geçiş Sistemleri Tanım Geçiş Sistemi S S = (C, ~>, I) C durumlar (Yapılandırmalar dahil) ~> C üzerinde bulunan ikili bir ilişki(durum Geçişleri) I başlangıç durumları (Yapılandırmalar (Konfigürasyonlar)) Geçiş ilişkisi ~> C x C' nin bir alt kümesidir ~> genellikle Infix-Notasyonunda kullanılır. Tanım Terminal Yapılandırılması Eğer γ γ' koşulunu sağlayan bir y yapılandırması yoksa y bir geçiş sisteminde terminaldir. Tanım Geçiş Dizisi Bir geçiş dizisi yapılandırmalardan oluşan bir dizidir y1, y2, y3, y4, geçişler: y1 y2, y2 y3, y3 y4,... Tanım Maksimum Dizi Bir geçiş dizisi sonsuz ya da terminal bir yapılandırmada sona eriyorsa maksimumdur. Seite 5
Geçiş Sistemleri Tanım ulaşılabilir Eğer bir geçiş dizisi (y,...,z) y ile başlayıp z ile sona eriyorsa, bir konfigürasyon(durum) z diğer bir durum y'den ulaşılabilirdir. Tanım Uygulama (Execution) S = (C,, I) bir geçiş sistemi olsun. S'in çalıştırılması bir maximum dizi E = (γ0, γ1, γ2, ) yapılandırma(konfigürasyon) γ0 I'nın bir elemanı ve tüm i 0 için γi ~> γi+1 geçerlidir. Yorum Bir geçiş sistemı, sistemin mümkün durumları, durum geçişleri ve başlangıç durumlarından oluşmaktadır. Bir çalıştırım durumlar arası mümkün bir yoldur. Bir sistemde birden çok aynı zamanda aynı çıkış durumuna sahip sayıda uygulama/çalıştırma olabilir. Seite 6
Lokal Algoritma Tanım Lokal Algoritma (asenkron modelde) Bir sürecin lokal algoritması değişkenler dizisidir(tuple) (Z, I, i, s, r) Bu durumda Z durumlar kümesi I Z'nin bir altkümesi: Başlangıç durumları ~>i ZxZ, (bir iç olaya durum geçişi) ~>s ZxMxZ (M'den gelen bir mesajla, mesaj gönderim olayına geçiş) ~>r ZxMxZ (Mesaj alım olayına geçiş) İlişki ~>, ~>i, ~>s ve ~>r organize edilmeleriyle tanımlanmıştır. Yorumlar İçerde gerçekleşen bir olayda(internal event) süreç yeni bir duruma geçiş yapar. Gönderme olayında süreç yeni bir duruma geçer ve bir mesaj m M üretir. Mesaj yakalama olayında süreç yeni bir duruma geçer ve bu esnada bir mesaj m M kullanır/tüketir(consume). İletişim kuran süreçler alınan ve gönderilen mesajlar'ın iletimi global iletişim sistemi üzerinden yapılır. Seite 7
Dağıtık Algoritma Tanım Dağıtık Algoritma (asenkron modelde) Dağıtık bir algoritma süreçlerden oluşan bir kümede P = (P1, P2, PN) bulunan her süreç için lokal algoritmalardan oluşan bir kümedir. Yorum Dağıtık bir algoritma lokal algoritmalardan türetilmiştir. Genellikle birçok sürecin lokal algoritmaları aynıdır. Seite 8
Dağıtık Algoritma Tanım Dağıtık Sistem (asenkron modelde) Bir dağıtık sistem lokal algoritmalardan meydana gelen bir geçiş sistemidir. Yorum Dağıtık sistem lokal algoritmalar tarafından tanımlanmış geçiş sistemlerinden(ve iletişim sisteminden) oluşan bir geçiş sistemidir. Seite 9
Dağıtık Sistem ~ Oluşturulmuş Geçiş İlişkisi Tanım: (dağıtık bir algoritma tarafından) oluşturulmuş geçiş sistemi (1) Dağıtık algoritma bir geçiş sistemi oluşturur: P = (P1, P2, PN) süreçler kümesi yerel algoritmalar A = (A1, A2, AN) özellikleriyle Ai = (Zi, Ii, ~>ii, ~>si, ~>ri) olsun. S = (C,, I) P aşağıdaki özelliklere sahip geçiş sistemidir: C = Z x ZP2 x x ZPn x M* Ai = (Zi, Ii, ~>i, ~>s, ~>r) P1 I = { (i1, i2, in, {}): ii Il } Durum geçişleri ~> sıradaki slayt Durumlar (Yapılandırmalar) Başlangıç durumları Yorum Tüm geçiş sistemindeki bir durum - her bir sürecin o anda bulunduğu durum, - ''henüz gelmemiş'' olan mesajların çoklu kümesidir. (gönderilmiş ancak henüz ulaşmamış mesajlar) - Biçimsel modelde herhangi bir kanal, port veya organize edilmiş bir süreç komşuluğunu yoktur.mesajlar gönderilir, her süreç mesajı alabilir. Seite 10
Oluşturulmuş Geçiş İlişkisi Tanım: (dağıtık bir algoritma tarafından) oluşturulmuş geçiş sistemi (2) ~>p bir lokal süreç p' nin geçiş ilişkisi olsun (ci ~> ci') ~>p içinde bir dahili geçiş ise (c1, c2, ci, cn, M) ~> (c1, c2, ci', cn, M) (ci,m ~> ci') ~>p içinde m mesajı ile bir gönderme-geçişi ise (c1, c2, ci, cn, M) ~> (c1, c2, ci', cn, M {m}) (ci ~> m, ci') ~>p içinde m mesajı ile bir mesaj alma-geçişi ise (c1, c2, ci, cn, M {m}) ~> (c1, c2, ci', cn, M) Yorum Tüm sistemdeki bir durum geçişi - lokal dahili bir durum geçişi - mesaj oluşturulan lokal bir gönderme-geçişi - mesajın alındığı ve kullanıldığı lokal bir alma geçişidir. Mesaj aynı zamanda global bir mesaj bufferına yazılarak gerektiğinde süreçler tarafından silinebilir. İletişimle ilgili diğer talepler(belirli kanallar, FIFO özelliği) algoritmanın içinde ayrı olarak kodlanmalıdırlar.örn: İşaretlenmiş mesajlar Seite 11
Yorum Hiç kimse dağıtık sistemleri bir geçiş sistemi olarak tanımlamayacaktır. Uygun Pseudo-Notasyonları kullanılır, çünkü - geçiş sistemlerinin harita gösterimi(ilkel ama kesin) için uygundurlar, - biçimsel(formal) bir tartışma temeli olarak hizmet verebilirler, - modelleme / doğrulama araçları için bir temel olarak hizmet verebilirler, - program tanımlamaları olarak kullanılabilirler. Seite 12
Sahte Kod(Pseudocode) Sahte Kod Anlamlı Biçimsel bir modeli refere ederek dağıtık sistemler için okunabilir ve uygun bir gösterim. Kolaylık Gereken/Tercih edilen kontrol ya da olay tabanlı gösterim Komşuluk ilişkilerinin gereken/tercih edilen gösterimleri İletişim kanallarının kullanımı mümkün ancak olmasada olur (işaretlenmiş mesajlar olarak formülize edilebilir) Iletişimde FIFO özelliği mümkündür ancak olmasada olur (numaralandırılmış mesajlar için formülize edilebilir) Özel alıcıya mesaj mümkün ancak zorlama yoktur(alıcı markası olarak tanımlanabilir) vb. Seite 13
Kaynak-Referansları Sunulan notasyonlar ve terimler: G. Tel: Introduction to Distributed Algorithms Cambridge University Press, 2001 Kapitel 2.1 Seite 14