Eşzamanlılık: Tanım, Nasıl Çalışır ve Anahtar Kavramlar

Eşzamanlılık, farklı program parçalarının sırası dışında veya paralel olarak yürütülerek bağımsız olarak ilerleme kaydetme yeteneğidir.

Bilgisayarda eşzamanlılık, bir sistemin birden fazla görevi veya işlemi eşzamanlıymış gibi görünmesini sağlayarak işlemesine olanak tanır. Görevler, her birinin bağımsız olarak ilerlemesine izin vererek, kesinlikle sıralı olmak yerine, geçmeli bir şekilde yürütülebilir. Bu, sistemin yanıt verme hızını ve kaynak kullanımını iyileştirir. Bir işlemcinin görevler arasında hızla geçiş yaptığı zaman paylaşımı gibi teknikler, eşzamanlı yürütme yanılsaması yaratır. Birden fazla işlemci gerektiren gerçek paralellik, görevleri gerçekten aynı anda yürütür. Eşzamanlılık, işletim sistemleri, sunucular ve GUI'ler için hayati öneme sahiptir ve tüm sistemin engellenmesi olmadan sayısız işlemi yönetir.

        graph LR
  Center["Eşzamanlılık: Tanım, Nasıl Çalışır ve Anahtar Kavramlar"]:::main
  Pre_thread["thread"]:::pre --> Center
  click Pre_thread "/terms/thread"
  Pre_process["process"]:::pre --> Center
  click Pre_process "/terms/process"
  Rel_parallelism["parallelism"]:::related -.-> Center
  click Rel_parallelism "/terms/parallelism"
  Rel_identity_and_access_management_iam["identity-and-access-management-iam"]:::related -.-> Center
  click Rel_identity_and_access_management_iam "/terms/identity-and-access-management-iam"
  Rel_pipelining["pipelining"]:::related -.-> Center
  click Rel_pipelining "/terms/pipelining"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5 yaşındaki gibi açıkla

Birden fazla siparişi idare eden bir şefi düşünün. Bir yemek için sebzeleri doğrarken diğer yemek için çorba pişirir, sonra üçüncü yemek için ekmek pişirir. Şef her şeyi tam olarak aynı saniyede yapmaz (bu paralelliktir), ancak bir siparişin diğer her şeyi durdurmasını önleyerek tüm yemeklerin hazırlanmasını sağlamak için görevler arasında verimli bir şekilde geçiş yapar. Bu, mutfağın sorunsuz çalışmasını ve yemeğin daha hızlı servis edilmesini sağlar.

🤓 Expert Deep Dive

Eşzamanlılık, birden fazla hesaplamanın zaman içinde örtüşmesine izin veren bir tasarım ilkesidir ve şu yollarla yönetilir:

Görev Zamanlama: İşletim sistemi zamanlayıcıları, CPU süresini süreçlere/iş parçacıklarına tahsis ederek eşzamanlı yürütme yanılsaması yaratır.
Asenkron Programlama: İşlemler, ana akıştan bağımsız olarak ilerler ve engelleme yapmadan sonuçları yönetmek için geri çağırmalar veya async/await gibi kalıplar kullanır.
Çoklu İş Parçacığı: Bir süreç içindeki birden fazla iş parçacığı eşzamanlı olarak yürütülür ve belleği paylaşır. Senkronizasyon ilkelleri (mutex'ler, semaforlar) yarış durumlarını önler ve veri bütünlüğünü sağlar.
Mesajlaşma: Dağıtılmış sistemlerde/aktör modellerinde eşzamanlılık, ayrılmış süreçler veya aktörler arasındaki mesaj alışverişi yoluyla yönetilir.

Temel zorluklar arasında paylaşılan kaynakların yönetimi, kilitlenmelerin/yaşam kilitlenmelerinin önlenmesi ve atomikliğin sağlanması yer alır. Eşzamanlılık (aynı anda birden fazla şeyle başa çıkmak), paralellikten (aynı anda birden fazla şey yapmak) farklıdır; eşzamanlılık paralellik olmadan var olabilir.

🔗 İlgili terimler

Ön koşullar:

📚 Kaynaklar