Concurrency, Multiprocessing, Parallelism

Kategori: Parallel Programming , 18 Ekim 2019 , JanFranco


Eşzamanlılık ve paralelizm yakın şeyler olsa da aynı şeyler değillerdir. Eşzamanlılık tek çekirdekli işlemcilerde de yapılabilir anca parallelizm için çoklu işlemci gerekir. Aşağıda daha açıklayı bir örnek mevcuttur:

****Task1****|**Task2**|****Task1**** (Eş zamanlılık)

* sayısı işlemleri temsil eder. Task1'in hepsi yazılmasa da toplam 16 işlemi mevcuttur. Task1 başlangıçtan sona kadar devam ederken Task2 tam ortada başlamış ve bitmiştir. Task2 başlamışken arkada aynı zamanda Task1 de çalışmaktadır.

********Task1********     (Paralelizm)
   \**Task2**/        

Buradaki işlemlerde ise Task1 baştan sona başlayıp devam ederken, aynı anda başka bir işlemcide Task2 çalışıp sona ermiştir. Böylece performans tasarrufur sağlanmıştır. Aşağıdaki örnek ise eşzamanlılık ve paralelizm barındırmaz.

********Task1********|**Task2**

Örnek vermek gerekirse, ilk örnek 18-20 dakikada, ikinci örnek 16 dakikada, üçüncü örnek ise 22 dakikada tamamlanır.

Eşzamanlılık içinde multiprocessing ve multithreading yaklaşımlarını içerir. Non-blocking I/O da bir yaklaşımdır. Non-blocking I/O için paralelizm içermeyen eşzamanlılık da denebilir.

Blocking IO denen kavram şöyle açıklanabilir, bir yazılım çalışmaya başladı ve I/O işlemlerini bekledi. Başka bir işleme geçmedi. Non-blocking I/O ise yazılım I/O işlemlerini bekler ancak arkada diğer işlerini de yapmaya devam eder.


Sonraki Yazı: fork, pid, Zombie Process
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın