Concurrency ile parallelism arasındaki fark nedir?

Cevap

  • Concurrency (eşzamanlılık): birden fazla işin aynı zaman aralığında ilerlemesidir. İşler sırayla, birbirinin arasına girerek yürütülebilir; tek çekirdekte bile mümkündür. Bir yapı/tasarım meselesidir.
  • Parallelism (paralellik): birden fazla işin aynı anda fiziksel olarak çalışmasıdır. Birden fazla çekirdek veya işlemci gerektirir. Bir yürütme meselesidir.

Benzetme: tek bir aşçı çorba kaynarken salata doğrar (concurrency); iki aşçı aynı anda farklı yemekleri yapar (parallelism).

ConcurrencyParallelism
AmaçBekleme sürelerini değerlendirmek, yanıt verebilirlikHesaplamayı hızlandırmak
Tipik işI/O yoğun (ağ, disk, veritabanı)CPU yoğun (görüntü işleme, hesaplama)
DonanımTek çekirdek yeterliÇok çekirdek
Örnek araçlarasync/await, event loop, goroutineÇoklu process, thread havuzu, GPU, SIMD
import asyncio
# Concurrency: 3 HTTP isteği beklerken birbirini bloklamaz
async def main():
    results = await asyncio.gather(fetch(u1), fetch(u2), fetch(u3))

from concurrent.futures import ProcessPoolExecutor
# Parallelism: CPU yoğun iş çekirdeklere dağıtılır
with ProcessPoolExecutor() as ex:
    results = list(ex.map(resize_image, images))

Bir sistem hem eşzamanlı hem paralel olabilir: çok çekirdekli bir sunucuda çalışan Go programı goroutine'leri birden fazla çekirdeğe dağıtır.

Rob Pike'ın özeti: "Concurrency, birçok şeyle aynı anda ilgilenmek; parallelism, birçok şeyi aynı anda yapmaktır."

  1. Race condition nedir? Bir örnekle nasıl önleneceğini gösterin.Ortaİşletim SistemleriYazılım Müh.
  2. Context switch nedir? Neden maliyetlidir?Ortaİşletim SistemleriYazılım Müh.
  3. Virtual memory ve paging nasıl çalışır? Page fault nedir?Zorİşletim SistemleriYazılım Müh.
  4. Mutex ile semaphore arasındaki fark nedir?Ortaİşletim SistemleriYazılım Müh.
  5. Deadlock nedir? Oluşması için gereken dört koşul nelerdir ve nasıl önlenir?Zorİşletim SistemleriYazılım Müh.
  6. Process ile thread arasındaki fark nedir?Kolayİşletim SistemleriYazılım Müh.

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle