Bize Ulaşın
 Süre 28 Saat

Eğitim İçeriği

Eşzamanlılık Zorlukları ve Sorunlar

  • Platform donanım sınırlamaları - donanım iş parçacıkları, kanallar, önbellek hafızası bağlantıları
  • Çoklu iş parçacıklı programlama ile ilgili temel kavramlar (programın doğruluğu, canlılık, kıstırma, sıkışma, yarışımlar, atomiklik, uyum modelleri, Flynn taksonomisi)
  • C++'da mevcut çoklu iş parçacıklı ve çoklu süreç uygulama mekanizmaları
  • Standard kütüphane uygulaması - C++14'den bugüne (C++2a) kadar olan unsurlar
  • Boost'taki mevcut uygulama - standard kütüphaneye göre farklılıklar

Süreçler ve İş Parçacıkları

  • Birden çok süreçli uygulamalar ve birden çok iş parçacıklı uygulamalar
  • İşletim sistemi ve iş parçacıkları (kullanılabilir uygulamaların kısa bir özeti)
  • Süreçlerin ve iş parçacıklarının eşzamanlı hale getirilme mekanizmaları
  • Eşzamanlılık yapısal olarak nasıl uygulanır
  • Nesne yönelimli yaklaşımın çoklu iş parçacıklı uygulama (RAII modelinin rolü) konusundaki belirgin özellikleri

C++ Dili Hafıza Modeli

  • Nesneler ve hafızadaki yerler
  • İşlemlerin sıralanması ve zorlanması
  • Eşzamanlılık, önceliklendirme, işlemler arasında atomik işlevleri ve serbest bırakma dizilimleri arasındaki ilişkiler
  • Hafıza bariyerleri
  • Atomik işlemler

C++14 ve Daha Yeni Standartlarda İş Parçacığı Yönetimi

  • std::thread sınıfı ve iş parçacıklarının başlatılması
  • İş parçacığının kimliği
  • İş parçacığını bağlama ve bağlamadan çıkarma
  • İş parçacığı ve standard konteyneler
  • C++14 iş parçacıklarında hata yönetimi

Mutually Exclusive (MUTEX) ve Kritik Bölümler

  • Basit mutlak eşzamanlılık kuralları
  • Erişime izin veren mevcut nesnelerin türleri (sınıfları)
  • C++14'te zaman yönetimi (chrono kütüphanesi) hızlı bir giriş
  • std::mutex, std::timed_mutex, std::shared_mutex ve türetilmiş sınıflar
  • Blokajın yönetimi konusundaki RAII modeli (std::lock_guard, std::unique_lock)
  • Eşzamanlı ve erteleyici kilitler (std::lock)
  • Kilit ve iş parçacığı sahipliği
  • Okuyucu-yazar sorunu
  • Tek seferlik başlatma
  • İş parçacığı yerel (özel) hafıza (std::thread_local)

Kilitler ve İş Parçacıkları Eşzamanlılığı

  • Semafor işlemleri
  • Tekrarlayıcı kilitler
  • Blokaj düzeyi tanımlanmış kilitler
  • Decisive değişkenler ve blokajla işbirliği
  • Etkin ve pasif barilerin uygulanması (Idle Waits, Busy Waits)
  • İş parçacıklarının yeniden başlatılması
  • İş parçacıkları arasında iletişim (Aktör modeli ve CSP)

Aşamalı Görevler

  • Asenkron olaylar ve yönetimi
  • Gelecekler (future)
  • Vaatler (promise)
  • Hazır görevler (packaged_task)

Atomik Türler

  • Standart atomik türler
  • Universel atomik bayrak (std::atomic_flag)
  • "std::atomic<T>" sınıf şablonu ve özel durumları
  • std::atomic türleri için araç fonksiyonları (serbest)

Çoklu İş Parçacıklı API Tasarımı Konuları

  • Blokajlarla yapı tasarlama - genel ve ayrıntılı blokajlar
  • Eşzamanlı kodun performansı - tahmin ve ölçüm teknikleri
  • Veri bölüştürme
  • Çözümlerin ölçeklenebilirliği
  • Uygulama mimarisinde hata ve olağanüstü durum yönetimi

Çoklu İş Parçacıklı Uygulamaların Testi ve Hata Ayıklaması

  • Çoklu iş parçacıklı işlemler açısından kod incelemeleri
  • Çoklu iş parçacıklı uygulamaların testine özgü yönleri
  • Birim testleri
  • Hata durumlarının olasılığını artırma
  • Formal test yöntemleri
  • Çoklu iş parçacıklı uygulama mimarisindeki desenler ve test/hata ayıklama (genel bakış)

Gelişmiş İş Parçacığı Yönetimi

  • Eşzamanlı iş parçacıkları (Sagi modeli)
  • Veri erişimine olan rekabetin önlenmesi
  • İş parçacığının denetimli durdurulması ve kesilmesi
  • Blokaj yapan çağrıların kesilmesi
  • Kesme yönetimi
  • Görev çalmak (stealing)
  • Uygulama sona erme sırasında görevleri kesmek

Çoklu İş Parçacıklı Tasarım Desenleri

  • Çoklu iş parçacıklı desenlerin türleri ve amacları
  • Desenlerin uygulanma alanları
  • İş parçacığı havuzu (Thread Pool)
  • Etkin Nesne Deseni (Active Object)
  • Güvenli Çoklu İş Parçacıklı Kuyruk (Thread Safe Queue)
  • Üretici-Tüketici Deseni (Producer Consumer)
  • Monitor Deseni (Monitor)
  • GoF desenlerinin çoklu iş parçacıklı güvenliği

Kurs İçin Gerekli Önbilgiler

  • GNU/Linux ve/veya MS Windows ortamında C++ yazılımının oluşturulması için araçları kullanma becerisi
  • Yordayıcı (prosedürsel) ve nesne yönelimli programlama konularını bilme (orta seviye ve üst düzey)
  • Genelleştirilmiş kod oluşturma (şablonlar) konusunu bilmek

Katılımcı Sayısı


Katılımcı başına fiyat

Danışanlarımızın Yorumları (1)

Yaklaşan Etkinlikler

İlgili Kategoriler