CS5001 Th. Letschert Çeviri: Turgay Akbaş TH Mittelhessen Gießen University of Applied Sciences Giriş
İşleyiş Materyal Kullanılabilirlik: Master of Science (Informatik) Seçmeli-Ders (Theorie-Pool) Materyal Sunum: homepages.thm.de/hg51 Alıştırmalar: homepages.thm.de/hg51 [Moodle] Literatür Dersin işleniş biçimi 4 Saat/Hafta, Ders und Uygulama Lütfen derse bilgisayarınızla geliniz. Eğer dersle aktif ya da pasiv olarak ilgiliyseniz, lütfen derse zamanında geliniz. Değerlendirme Yılsonu Sınavı Sınava girebilmek için bir tane uygulama ödevi gereklidir. Uygulama Ödevi = Alıștırmaların çözümü + sunumu Seite 2
İşleyiş Ön şartlar Birikim ve Beceriler: Bilgisayar Mühendisliği Lisans derecesi Yeterli derecede yazılım geliştirim becerisi Eşzamanlılıkla ilgili birikim (Senkronizasyon, Mutex, Semaphor, vb.) Matematiksel temeller (Ayrık Yapılar) İçerik Dağıtık algoritmalar ağırlıklı. Literatür G. Tel: Introduction to Distributed Algorithms, Cambridge University Press A. D. Kshemkalyani, M. Singhal: Distributed Computing V. K. Garg : Concurrent and Distributed Computing in Java, John Wiley A. S.Tanenbaum, M. van Steen: Distributed Systems, Prentice Hall Nancy Lynch: Distributed Algorithms, Morgan Kaufmann Seite 3
Dağıtık Sistem Nedir? Bir dağıtık sistem Farklı yerlerde bulunan ve Ortak bir uygulamayı gerçekleştiren Birçok aktif bileşenden oluşur. Yani bir Gevşek bağlı, (Ortak bir kaynak yoktur, mesaj değisimleri vardır.) Eşzamanlı sistem. Aktif Bileşenler = özerk işlem yapanlar (Agentlar: İnsanlar, Bilgisayarlar, Süreçler,...) İş birliği yapmak Sadece mesajların değişimi Dağıtıklık Fiziksel (Bir oda içinde dağılım) ve Mantıksal (iletişim halinde bulunan süreçler) olabilir. Seite 4
Neden dağıtık Doğal Dağıtık Birimler Birçok sistem görev tanımından dolayı dağıtık olarak çalışmaktadır.(email, Web,..) Güç Artımı Yük Paylaşımı Paralel çalışma Artan Sağlamlık Fazlalık Yedekleme sistemi Ekonomi Birden fazla küçük sistemin çalışması, bir tane büyük sistemin çalışmasından daha az maliyetlidir. Seite 5
Özelleşmiş Sorunlar Kompleks ve çeşitli problemler Dağıtıklığın algoritmik problemleri Dağıtık = Yoğun şartlar altında eş zamanlı çalışım (Ortak bellek, ortak saat olmaksızın...) ardışık + Süreçler eş zamanlı Ortak kaynak => eş zamanlı => dağıtık Kompleks Altyapı / Heterojen Ortam (çeşitli) Ağlar, (çeşitli) İşletim Sistemleri (çeşitli) Verilerin sunumu (çeşitli) en yeni / en iyi / en çok tartışılan / değişen Altyapı konseptleri ve market stratejileri Seite 6
Hedef Dağıtım sistemlerin görevi özelleştirilmiş problemleri dağıtık olarak çözmek ve dağıtıklığı herhangi bir seviyede görünmez olarak gerçekleştirmektir. Kullanıcılar için görünmezlik Dağıtık uygulamalar dağıtık birimleri kullanıcılar için görünmez olarak gerçekleştirirler Uygulama programı için görünmezlik Dağıtık işletim sistemi/katman dağıtık birimleri uygulama için görünmez kılar Diğer sistem programlari için görünmezlik IP-Routing IP Ağlarını TCP/UDP için görünmez yapar Şeffaflık Ulaşılmasi zordur ve bundan dolayı kademeli olarak ulaşılmaya çalışılır. Farklı yönleri vardır(konumdan dolayı şeffaflık, çoğunluktan kaynaklı şeffaflık) Seite 7
Dağıtık Algoritmalar Dağıtık algoritmalar, dağıtık sistemlerin önemli konularından biri ve dersin odak noktasıdır. Dağıtık Algoritmaların Zorlukları Eş zamanlı / Deterministik Olmayan / Genel Görünümü olmayan Hiç bir katılımcı(agent(makine/süreç,...)) sistemin tümüyle alakalı bilgiye sahip değildir, Kararlar eksik bilgiler temel alınarak verilmelidir, Deterministik olmayan: Değişen mesaj zamanları, farklı işlemci hızları,... Bir katılımcının(agent(makine/süreç,..)) başarısız olması bütün sistemin durması demek değildir: Sistem devam edebilir etmelidir (Nasıl?) Seite 8
Dağıtık Algoritmalar Kullanım Dağıtık algoritmalar öncelikle altyapı yazılımlarında kullanılmaktadırlar. Ağ Protokollerı Yönlendirme Hata Kontrolleri Bağlanti Yönetimi İşlemsel Sistemler Rezervasyonlar Dağıtık DB Katmanlar Senkronizasyon İptal - / Kilitleme Keşfi Dağıtık (sanal) Kaynaklar: Bellek, Saat,... Mobil Uygulamalar Sensör Ağları Seite 9
Dağıtık Algoritmalar Dağıtık vs. Dağıtık Olmayan Dağıtık Olmayan Hesaplama: Fonksiyon Girdisi ~> çıktı Dağıtık Düğümlerden oluşan ağ Düğümler birbirlerine mesajlar gönderirler Her düğüm mesajı aldığında yerel bir algoritmayı tamamlar Gerçekte algoritma sayısı düğüm sayısına göre daha azdır Hesaplama: Bir Düğüm / Bütün Düğümlerin son(?)-durumu R Girdi R Fonksiyon Dağıtık olmayan: sıralı - fonksiyonel Dağıtık: durum odaklı, tepkili R Cıktı R I Seite 10
Dersin Hedefi Dağıtık algoritmalar merkezli dağıtık sistemlerde Temalar- ve Problemlere Düşünce tarzlarına Teorilere Sorulara aşinalık oluşturmaktır. Seite 11
Örnek Verilen: Düğümlerden oluşmuş bir ağ Her düğüm başlangıç değeri olarak pozitif bir tam sayı barındırmaktadır. Her düğüm kendi komşusuna herhangi bir içerikte mesajlar gönderebilir. Diğer etkileşimler engellenmiştir. Düğümler sadece kendilerine komşu olan düğümleri tanımaktadırlar ve genel ağ ile ilgili bir bilgiye sahip degillerdir. Aranan: bütün düğümleri gezen ve bütün düğümlerde bulunan sayıların EBOB'unu bulan Algoritma veya Algoritmalar. 60 72 114 18 102 84 Seite 12