Dersin Ayrıntıları Yarıyıl Kodu Adı T+U+L Kredi AKTS 8 05080002 Dağıtık Sistemler 3+0+0 3 5 Dersin Detayları Dili : Türkçe Düzeyi : Lisans Bölümü / Programı : Bilgisayar Mühendisliği Öğrenim Türü : Örgün Öğretim Türü : Zorunlu Amacı : Dağıtılmış işletim sistemlerine ve dağıtılmış algoritmalara vurgu yaparak dağıtılmış sistemlerin teori ve uygulamasını tanıtmak İçeriği : Süreç Senkronizasyonu ve Kilitlenmeler, İş Parçacığı Senkronizasyonu, Dağıtık Sistemlerde Senkronizasyon, Zaman Yönetimi, Merkezi Algoritmalar, Lamport'un Dağıtılmış Algoritması, Token Tabanlı ve Sezgisel Algoritmalar, Dağıtılmış Kilitlenme Algılama: Merkezileştirilmiş ve Dağıtılmış Algoritmalar, Seçim Algoritmaları, Anlaşma Protokolleri: Bizans Anlaşması, Dağıtık Sistemlerde Dinamik Çizelgeleme, Dağıtık Dosya Sistemleri, Dağıtık Sistemlerde Hata Toleransı, Dağıtılmış Gerçek Zamanlı Sistemler, Dağıtık Sistemler ve Blokzincir Teknolojisi Yöntem ve Teknikleri : Ön Koşulları : Yok Koordinatörü : Dr. Öğr. Üyesi Ali Osman Çıbıkdiken Dersi Verenler : Yok Yardımcıları : Yok Staj Durumu : Yok Dersin Kaynakları Kaynaklar : Andrew S. Tanenbaum, Maarten van Steen, 2008, Distributed Systems: Principles and Paradigms, 2/E, Prentice-Hall Ders Yapısı Mühendislik Bilimleri %40 Mühendislik Tasarımı %40 Alan Bilgisi %20 Yarıyıl Çalışma Bilgileri Yarıyıl Çalışmaları Sayısı Katkı Ara Sınav 1 %40 Yarıyıl Sonu Sınavı 1 %60 Toplam 2 %100 Etkinlik Bilgileri Etkinlik Sayısı Süre Toplam İş Yükü (Saat) Ders Süresi 14 3 42 Sınıf Dışı Ç. Süresi 14 3 42 Ödevler 2 5 10 Ara Sınavlar 1 3 3 Proje 1 20 20 Yarıyıl Sonu Sınavı 1 3 3 Toplam İş Yükü AKTS: 5 120 Öğrenme Çıktıları Bu dersin başarılı bir şekilde tamamlanmasıyla öğrenciler şunları yapabileceklerdir: Sıra Açıklama 1 Dağıtık sistemin ne olduğunu, bir bilgisayar sisteminin neden dağıtık sistem olarak tasarlanması gerektiğini ve bu tür sistemlerde aranan özelliklerin (şeffaflık, ölçeklenebilirlik, açıklık) neler olduğunun açıklanması. 2 Dağıtık sistemlerin işleyişinin altında yatan ilkeleri incelemek, bu ilkelerle ilgili sorunları ve zorlukları belirlemek 3 Hem temel işletim sistemi mekanizmalarını (örneğin, iletişim için temeller, çoklu iş parçacığı, eşzamanlılık vb.) ve/veya daha yüksek seviyeli ara katman hizmetlerini (örneğin, RPC, RMI, mesaj geçişi, kuyruk sistemleri vb.) kullanarak dağıtılmış sistem yazılımı tasarlamak ve oluşturmak 4 Tutarlılık ve çoğaltmanın dağıtılmış sistem tasarımını nasıl etkilediğini açıklamak, ortaya çıkan olası sorunları ve karşılık gelen çözümleri belirlemek Ders Konuları Hafta Konu 1 Giriş, ara bağlantılar, dağıtılmış sistem sınıflandırması, hizmet modelleri istemci-sunucu hesaplama, ağ protokolleri 2 Uzaktan Yordam Çağrıları, Üst düzey iletişim ve yayınlama-üye olma 3 Dağıtılmış Sistemlerde Senkronizasyon 4 Tutarlılık Modelleri: Sıralı Tutarlılık, Nedensel Tutarlılık modelleri, CAP Teoremi, Nihai Tutarlılık 5 Dağıtılmış Karşılıklı Dışlama: Merkezi Algoritmalar, Lamport`un Dağıtılmış Algoritması, Token Tabanlı ve Sezgisel Algoritmalar 6 Dağıtılmış Kilitlenme Algılama: Merkezi ve Dağıtılmış Algoritmalar 7 Seçim Algoritmaları 8 Anlaşma Protokolleri: Bizans Anlaşması 9 Dağıtılmış Sistemlerde Dinamik Çizelgeleme 10 Dağıtılmış Sistemlerde Statik Çizelgeleme 11 Dağıtılmış Dosya Sistemleri 12 Dağıtılmış Sistemlerde Hata Toleransı 13 Dağıtık sistemler ve blokzincir teknolojisi 14 Blokzincir teknolojisinde dağıtık uygulama geliştirme