Mesajlaşma ve Paylaşımlı Bellek
Mesajlaşma ve paylaşımlı bellek, eşzamanlı süreçlerin etkileşim kurduğu iki temel soyutlamadır ve dağıtık bilişimin büyük bir kısmı, birini diğeriyle nasıl simüle edeceğini inceler.
Tanım
Mesajlaşma modelinde süreçler yalnızca kanallar üzerinden mesaj gönderip alarak iletişim kurar; paylaşımlı bellek modelinde ise yazmaçlar (register) gibi paylaşımlı nesneleri okuyup yazarak iletişim kurarlar. Her biri, kendi doğruluk koşullarına sahip hassas bir hesaplama modelidir.
Kapsam
Bu konu, noktadan noktaya ve yayın (broadcast) mesajlaşma modellerini, teslimat ve sıralama semantiğiyle birlikte; okuma/yazma yazmaçlarından (register) ve daha güçlü senkronizasyon nesnelerinden oluşturulan paylaşımlı bellek modellerini; ve paylaşımlı belleğin çeşitli hata varsayımları altında mesajlaşma üzerine nasıl taklit edilebileceğini (veya tam tersini) gösteren klasik sonuçları kapsar. Ayrıca, paylaşımlı nesnelerin gücünü sıralayan yazmaç hiyerarşisini ve konsensüs hiyerarşisini de içerir.
Temel sorular
- Bir kanal hangi teslimat ve sıralama garantilerini sağlar ve bunlar algoritma tasarımını nasıl etkiler?
- Güvenilmez bir mesajlaşma ağı üzerinde güvenilir bir paylaşımlı bellek soyutlaması oluşturulabilir mi?
- Senkronizasyon nesneleri, konsensüsü çözme güçleri açısından nasıl farklılık gösterir?
Temel kuramlar
- Yazmaç ve konsensüs hiyerarşisi
- Paylaşımlı nesneler, konsensüs numaralarına göre sıralanır—beklemesiz konsensüsü çözebilecekleri maksimum süreç sayısı—basit okuma/yazma yazmaçlarını en alta, karşılaştır-ve-değiştir (compare-and-swap) gibi evrensel nesneleri ise en üste yerleştirir.
- Yazmaç yapıları
- Lamport'un güvenli, düzenli ve atomik yazmaçlar hiyerarşisi ile daha zayıf yazmaçlardan daha güçlülerini oluşturan yapılar, eşzamanlı okuma ve yazmaların doğru davranmasının tam olarak ne anlama geldiğini resmileştirir.
- Mesajlaşma üzerinden paylaşımlı belleği simüle etme
- Atomik tek yazıcılı ve çok yazıcılı yazmaçlar, asenkron bir mesajlaşma ağı üzerinde, az sayıda çökme hatasına (crash failures) tolerans göstererek, oybirliği (quorum) teknikleri kullanılarak taklit edilebilir ve böylece iki iletişim modelini birleştirir.
Klinik önem
Mesajlaşma/paylaşımlı bellek ayrımı, doğrudan gerçek platformlara karşılık gelmektedir: kümeler (clusters) ve bulut (cloud) mesajlaşma sistemleridir, çok çekirdekli sunucular (multicore servers) paylaşımlı belleği açığa çıkarır ve dağıtık anahtar-değer depoları (distributed key-value stores) mesajlaşma ağı üzerinde etkili bir paylaşımlı yazmaç (register) soyutlaması sunar.
Tarihçe
Lamport'un 1986 tarihli makaleleri eşzamanlı yazmaçları (concurrent registers) resmileştirmiştir; Herlihy'nin 1991'deki beklemesiz hiyerarşisi (wait-free hierarchy) senkronizasyon ilkellerini (synchronization primitives) konsensüs numarasına göre sıralamıştır; ve Attiya ile Welch'in metni, mesajlaşma ve paylaşımlı belleği ilişkilendiren simülasyonları birleştirerek, alanın merkezindeki ikiliği (duality) kurmuştur.
Öne çıkan isimler
- Leslie Lamport
- Maurice Herlihy
- Nir Shavit
- Hagit Attiya
- Jennifer Welch
İlgili konular
Temel eserler
- herlihy2008
- attiya2004
- lamport1986
Sıkça sorulan sorular
- Mesajlaşma ve paylaşımlı bellek eşdeğer midir?
- Uygun hata varsayımları altında hesaplama gücü açısından eşdeğerdirler—her biri diğerini simüle edebilir—ancak programlama kolaylığı ve performans açısından belirgin farklılıklar gösterirler, bu nedenle sistemler birini kendi doğal modeli olarak seçer.