MacBook Pro'da Snow Leopard'da işlemci benzeşimini nasıl ayarlarsınız? Windows'da Görev Yöneticisi'nde değiştirebileceğinizi biliyorum.
MacBook Pro'da Snow Leopard'da işlemci benzeşimini nasıl ayarlarsınız? Windows'da Görev Yöneticisi'nde değiştirebileceğinizi biliyorum.
Yanıtlar:
OS X, sürüm 10.5'ten bu yana bir iş parçacığı benzeşimi API'sını destekledi . Bağlantı verdiğim web sayfasından alakalı bazı materyaller.
Yakın ilgi alanı kümesi, bellek kaynaklarını paylaşan ve L2 önbelleğini paylaşmak isteyen bir iş parçacığı koleksiyonudur. Farklı benzeşim kümeleri ayrı benzeşimleri temsil eder, yani farklı bir kümeye ait iş parçacıkları ayrı bir L2 önbelleği kullanmalı ve bu nedenle farklı bir mantıksal işlemcilerde çalıştırılmalıdır.
Bir yakınlık kümesi bir "etiket" ile tanımlanır. İş parçacıkları, belirli bir yakınlık kümesine, bu kümesi tanımlayan etiket atanarak atanır. Bir iş parçacığı en fazla bir yakınlık kümesine ait olabilir; yani, bir yakınlık etiketi vardır.
Örneğin, ayrı L2 önbelleklerinde 2 iş parçacığı çalıştırmak isteyen bir uygulama, iş parçacıklarını farklı yakınlık etiketlerine ayarlayacaktır. Çift çekirdekli bir makinede, bu yakınlık etkili bir şekilde göz ardı edilecektir. Ancak, 4 çekirdekli bir MacPro'da, zamanlayıcı iş parçacıklarını ayrı paketler üzerinde çalıştırmayı dener. Benzer şekilde, 8 çekirdekli bir MacPro'da, zamanlayıcı bu dişleri ayrı kalıplarda (aynı fiziksel CPU paketinde olabilir veya olmayabilir) çalıştırmaya çalışır.
Kullanılabilir her işlemciye bir iş parçacığı yerleştirmek isteyen bir uygulama aşağıdakileri yapar:
- Sistemdeki işlemci sayısını sysctl (3) kullanarak edinin.
- Bu sayıda iş parçacığı oluşturun.
- Her bir iş parçacığını farklı bir yakınlık etiketi ile ayarlayın.
- Tüm konuları başlat.
Varsayılan yakınlık ilkesine sahip konular, herhangi bir işlemcide daha serbest bir şekilde planlanır. Bu iş parçacıkları, tercihen boş bir işlemcide çalışacak şekilde geçirilir. Yakın ilgi alanı etiketli konular yerinde kalma eğilimindedir.
Kod listeleri için kaynağa ve üst ve alt işlemler arasında yakınlık etiketlerinin paylaşılması, CPU önbellek yapılandırmasının alınması ve daha fazlası hakkında bilgi alın.
http://developer.apple.com/mac/library/releasenotes/Performance/RN-AffinityAPI/
Mac OS X, işlemcileri tanımlayan veya iş parçacığı yerleşimini denetleyen arabirimleri dışa aktarmaz; işlemci bağlamaya açık iş parçacığı desteklenmez . Bunun yerine, çekirdek tüm iş parçacığı yerleşimini yönetir. Uygulamalar, zamanlayıcının çoğu durumda iş parçacıklarını önbellek yakınlığına göre iyi bir işlemci yerleşimi kullanarak çalıştırmasını bekler.
Http://images.apple.com/macosx/docs/OSX_for_UNIX_Users_TB_July2011.pdf adresinden
• Etkili çekirdek dişleri. Her POSIX iş parçacığı, belirli bir CPU üzerinde kuyruğa alınır ve kilit çekişmesini azaltırken işlemci benzeşimini ve ölçeklenebilirliğini artırır. İplikler, iptal desteği ve paylaşılan muteksler de dahil olmak üzere POSIX (1c) ile uyumludur.
Bana reklam gibi gözüküyor, iMac ile çalışan Lion'um çoğu zaman buna saygı duyuyor gibi görünse de bir çekirdeğe işlem yapmıyor.
Yine de darwin için süreç benzeşimini kontrol etmek için herhangi bir API bulamadım.