Arkadaşlar, bir önceki ders videosunda, somut bir şekilde uygulamaya çalıştıklarında,
kendi dünyalarını tamamlamak için maksimum süreyi alma eğiliminde olduklarını gördük.
O halde sorulması gereken soru, neden hala eşzamanlılığa
sahip olduğumuzdur? Konu performans olduğunda eşzamanlılık bu kadar
zayıfken modern bilgisayar sistemleri neden hala eşzamanlılıkla çalışıyor?
Bu noktayı anlamak için bir senaryo ele alalım.
Diyelim ki sisteminizde herhangi bir anda 100 iş parçacığı çalışıyor.
Değil mi? Bu yüzlerce konu bizim kullanıcı
konularımız ve bazı sistem konuları olabilir.
Kullanıcı tipleri kullanıcı alanında çalışan herhangi bir uygulama iken, sistem iş
parçacıkları işletim sistemimizin bir parçası olarak çalışan herhangi bir hizmettir.
Örneğin, işletim sistemi zamanlayıcınız, bellek yöneticiniz ve çeşitli aygıt sürücüleriniz vb.
Doğru.
Ama her neyse, günün sonunda bunlar iş parçacıklarıdır ve
diyelim ki sistemde çalışan 100 iş parçacığı var.
Şimdi, sistemden en iyi performansı almak için, tüm bu tehditleri
paralel olarak yürütmeniz gerekir, değil mi? Ve tüm bu
tehditleri paralel olarak yürütmek için 100 CPU'ya ihtiyacınız olacak,
değil mi? Bu da mümkün olmayan bir şey, değil
mi? Teknik olarak mümkün ama ekonomik olarak mümkün değil.
CPU pahalı bir donanım parçası, değil mi? Dizüstü bilgisayarınız
veya bilgisayarınız olan tipik bir bilgisayar sistemi, bugünlerde
tipik olarak CPU'sunun iki adet 16 CPU'suna sahiptir.
Doğru.
Sistemin 16'dan fazla CPU'ya sahip olduğunu nadiren gördüm.
Aslında, genel amaçlı bilgisayar sistemleri 16'dan fazla CPU'ya sahip değildir.
Dolayısıyla, iş parçacıkları gibi tüm canlı iş parçacıkları, sistemde canlı olan 100
iş parçacığının tamamının, yürütülmeleri için kullanılan CPU'yu paylaşması gerektiği anlamına gelir.
Doğru.
Diyelim ki bilgisayar sistemimizde 16 CPU var.
Bu, tüm iş parçacıklarının herhangi bir zamanda bu 16 CPU'yu paylaşması gerektiği anlamına gelir.
Bu yüz tehditten 16 iş parçacığı bu 16 CPU üzerinde paralel
çalışıyor, değil mi? Yani 16 CPU üzerinde bir paralellik mevcut, değil
mi? Ancak geri kalan 84 iş parçacığı aslında boşta durmuyor.
Bu 84 iş parçacığı da eşzamanlı bir şekilde bu 16 Sep kullanımı arasında CPU'lardan birine tahsis edilir.
Doğru.
Yani basitçe, tipik bir bilgisayar sisteminde paralellik ve eşzamanlılığın bir arada var olduğu anlamına gelir.
Bu diyagramda görebileceğiniz gibi, sistemde üç iş parçacığı olduğunu varsayalım ve bu
üç tehdidi her biri on iş parçacığından oluşan bir kovaya bölelim.
Yani G1, G2 ve G3 olmak üzere üç kova var, değil mi?
Aynı kovada bulunan tüm iş parçacıkları aynı CPU'yu paylaşıyor ve belirli
bir CPU üzerinde çalışıyorlar ve CPU'ları üzerinde eşzamanlı bir şekilde çalışıyorlar.
Doğru.
Yani tüm bu 10 iş parçacığı doğası gereği eşzamanlıdır
çünkü aynı donanım kaynağı olan CPU üzerinde çalışmak zorundadırlar.
Aynı durum G2 kovasındaki tüm iplikler için de geçerlidir.
Aynı durum G3 kovasındaki tüm iplikler için de geçerlidir.
Aynı gruba ait doğru bitkiler eş zamanlı olarak çalışırken,
farklı gruplara ait iş parçacıkları paralel olarak çalışır.
Dolayısıyla, G1 grubuna ait bir T1 iş parçacığı varsa, CPU'da yürütülür.
Doğru.
Ve G2 grubuna ait bir p11 iş parçacığı kümesi varsa, CPU üzerinde de çalışacaktır.
Doğru.
Yani 31 ve T11 paralel olarak çalışır.
Ancak 31'in CPU'yu 382 A. 3 ile paylaşması gerekiyor.
Bu nedenle, Steve 182 ve T3 tehdidi arasında bir bağlam geçişi vardır
çünkü aynı gruba ait tüm bu tehditler aynı CPU'yu paylaşmak zorundadır.
Yani bilgisayar sistemimiz eşzamanlılık ve paralelliğin bir karışımıdır.
Sadece paralellik uygulasaydık ve eşzamanlılık olmasaydı çok kötü bir fikir olurdu,
eğer sadece paralellik olsaydı, bu 30 iş parçacığından üç iş parçacığı
üç farklı CPU'da çalışırken diğer 27 iş parçacığı boşta dururdu.
Tam orada, iş parçacığı CPU üzerindeki işini tamamlayana ve CPU'yu serbest bırakana kadar beklemek zorunda kalacaktır.
Değil mi? Yani tek başına terörizm kötü bir
fikirdir, tek başına eşzamanlılık da kötü bir fikirdir.
Bugün modern bilgisayarlarda tipik bir bilgisayar sisteminde eşzamanlılık ve paralelliğin bir karışımına sahip
olmak mükemmel bir fikirdir, bu bize çoklu iş parçacığından en iyi performansı verir.