Gönderen Konu: Eski bilgisayarların yenilerinden daha hızlı olması...  (Okunma sayısı 1278 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı matahari

  • RAAT
  • Retroman
  • *
  • İleti: 94
    • The Blog of Mert Börü
Ynt: Eski bilgisayarların yenilerinden daha hızlı olması...
« Yanıtla #15 : 17 Mart 2018, 10:58:35 »
Windows, normalde 'thread'leri bu 12 donanımsal izlek'e kendisi otomatik olarak dağıtıyor mu yoksa uygulamanın aktif olarak buna uygun olarak programlanmış olması mı gerekiyor?

Normal koşullarda, hangi Thread’in hangi Logical Processor üzerinde çalışacağına Windows karar verir. Tıpkı kurumsal firma yöneticisi gibi, o an yapılan tüm işleri sürekli olarak takip eder, hangi işin kime tahsis edileceğine dair kararları "senkronize" eder.

Yukarıda senkronize kelimesini özellikle tırnak içine aldım, çünkü Windows’un çoklu thread yönetimi (multiple thread management) için;

- Thread çalışma (execution) sürelerinin ayarlanması,
- Thread’ler arası geçişin (transition) sağlanması,
- Thread önceliklerinin (priority) sıralanması,
- Thread’lerin ortak bellek/kaynak kullanımı izinlerinin takibi,

amacıyla yapılan işlerin tümüne "Synchronization" adı verilir.

Eğer arzu edilirse, hangi Thread’in hangi Logical Processor üzerinde çalışacağına kullanıcı da karar verebilir. Elbette Windows’un kontrolü altında... Bu işlem "Thread Affinity" belirlemek olarak bilinir.

- Eğer yazılımcıysanız; meslek jargonunda SetThreadAffinityMask (veya benzeri isimlerle bilinen) fonksiyon kümeleri yardımıyla, "ID’si xxxxx olan Thread’in 4 numaralı Logical Processor üzerinde çalışmasını istiyorum" diyebilirsiniz.

- Eğer son kullanıcıysanız; Administrator olmanız (ya da Admin yetkilerine sahip olmanız) koşuluyla, Windows 10 Task Manager’a girip, Thread yönetimini kontrol etmek istediğiniz Process’in üzerine sağ click yapıp, Go To Details > Set Affinity seçeneği ile Logical Processor seçimini el yordamıyla ayarlayabilirsiniz.

Farklı uygulamalarının 'thread'leri, paralel olarak bu donanımsal 'thread'lerde çalışmaya devam ediyor mu?

Evet... Sürekli oyuncu değiştiren teknik direktör misali, Windows düzenli aralıklarla "Şimdi şu Thread oyundan çıksın, hemen bu Thread oyuna girsin" şeklinde işleri organize eder. Bu şekilde, tamamen birbirinden bağımsız Application, Service ve Device Driver Thread’leri aynı Logical Processor üzerinde sorunsuzca çalışabilir. Elbette bu kodlar kitabına uygun şekilde yazıldığı sürece. ;)