İş parçacığı nedir ve işlemcide neler yaparlar?


27

Intel Pentium e5700 CPU'nun istatistiklerine bakıyordum .

İki çekirdeği ve iki dişi vardır. İş parçacığı işlemci için ne yapar? Çekirdek sayısı ile iplik sayısı arasında bir ilişki var mı? Sistem için hangi iş parçacıkları genel olarak kullanılır?


İşlemcinin aynı anda kullanabileceği konu sayısı ya da Intel'in icat ettiği sahte stat.
digitxp

3
IMO'yu kapatmak için oy kullandı, bu çok genel - her zaman "sadece Google" demek için tereddüt etmemize rağmen, Süper Kullanıcının (ve benzeri sitelerin) amacı teknik terimler için bir sözlük olmak değil, gerçek soruları cevaplamaktır. daha uygun kaynaklarda kolayca aranır.
Shinrai,

3
@Shinrai Bunu daha az genel yapmak için düzenledim
Simon Sheehan

Yanıtlar:


21

Çekirdek sayısı, CPU üzerindeki kalıbın fiziksel sayısının kendisidir; oysa, iş parçacığı sayısı, CPU üzerinde eşzamanlı olarak yürütülebilen bireysel iş parçacıklarının sayısıdır. Herhangi bir ek veya özel donanım olmadan, bu çekirdek sayısına eşittir. Bununla birlikte, bazı işlemciler, çekirdeklerinden daha fazla dişe sahip olacaktır.

Bazı Intel işlemcilerinde , bir işletim sisteminin fiziksel çekirdek başına mantıksal çekirdek miktarının iki katını görmesini sağlayan, hiper iş parçacığı adı verilen bir özelliği vardır . Bu, işletim sisteminin aynı anda iki iş parçacığı miktarını zamanlamasına ve çalıştırmasına olanak tanır, böylece yukarıdan bağladığım CPU durumunda, dört fiziksel çekirdek vardır, ancak sekiz mantıksal olan vardır (böylece aynı anda sekiz iş parçacığını çalıştırabilirsiniz).

İşletim sisteminde çalışan her bir uygulama ya tek iş parçacıklı ya da çok iş parçacıklıdır (her iş parçacığını "alt uygulama" olarak düşünün). Tek iş parçacıklı uygulamalar CPU üzerinde çalışmak için sadece bir iş parçacığı gerektirir, oysa çok iş parçacıklı uygulamalar aynı anda çalışan birçok alt iş parçacığına sahiptir. Ek çekirdekler veya aşırı iş parçacığı eşzamanlı olarak aynı anda birden fazla uygulama iş parçacığı çalışmasına izin verir.

Bu, çok iş parçacıklı ( tek iş parçacıklı değil ) uygulamaların çok daha hızlı çalışmasını sağlar, çünkü birden fazla iş parçacığı CPU üzerinde aynı anda çalışabilir.


Sadece son bir not, hiper iş performansını artırır bazı (mantıksal olarak orada hala fiziksel çekirdek yalnızca yarısı sayıda olduğu için), özellikle bunun için optimize edilmiş parçacıklı uygulamalar. Bazı çeşitli durumlarda uygulamalar daha hızlı HyperThreading çalışabilir devre dışı (birçok uygulama her ne kadar do ondan yarar). Hyperthreading'den bağımsız olarak, fiziksel çekirdek sayısındaki bir artış her zaman çok iş parçacıklı uygulamalara fayda sağlayacaktır.


1
İşlemci için ne iş parçacıkları açıklayabilir misiniz? Şimdilik en yaygın haliyle, hiper-tehditten bahsettiği için +1 (tüm i3'lerde görünüyor)
Simon Sheehan 15

Her işlem en az bir dişe sahiptir. İşlem CPU'yu açtıktan sonra ana iş parçacığı CPU dönüşü gerçekleşene kadar çalışır. Bir işlem başka bir iş parçacığı doğurabilir ve şimdi aynı işlemin iki kısmı çalışacak ve CPU dönüşleri isteyecektir. Tüm işlemler programdır ve bu mekanizma ile aynı programdaki iki şey aynı anda çalışabilir. Yeni bir işlem yapmaktan daha hızlı (yani yeni bir program kurmak veya yüklemek) ancak daha az güvenlidir. İşlemler birbirlerinden izole edilmiştir, işlemin dişleri değildir.
LawrenceC

50 eşzamanlı iş parçacığı ile çok iş parçacıklı bir java programı oluşturduysam ve 4 çekirdekli ve 8 iş parçacığı olan Intel i7-4790K üzerinde çalıştırıyorum. Bu, java uygulamasındaki 50 ipliğin sadece 8'inin aslında aynı anda yürütüldüğü ve geri kalanının kuyrukta olduğu anlamına mı geliyor? Bu nasıl çalışır
Donato

@Donato işletim sistemi, diğerlerinin çalışmalarını tamamlamaları için izin vermek üzere çalışan tüm iplikleri keser. Herhangi bir anda CPU üzerinde sadece 8 iş parçacığı çalışıyor ve her bir çekirdek sürekli farklı iş parçacıkları arasında geçiş yapıyor; onları “meslekler” olarak düşünmek faydalı olacaktır (akılda tutulması işlere öncelik verilebilir). Her bir çekirdek belirli bir iş parçacığı için bazı işler yapacak ve daha sonra farklı bir işe ilerlemek , bu iş üzerinde biraz iş yapmak , vb. İş tamamlanana kadar işletim sisteminin görev zamanlayıcısı tarafından kesiliyor .
Atılım

@Breakth, Re " böylece aynı anda sekiz iş parçacığını çalıştırabilirsin ", bireysel çekirdeğin sunduğu gerçek eşzamanlılıkla karşılaştırıldığında bu eşzamanlılığın sınırlamaları nelerdir ? Ayrıca, " uygulamalar Hyperthreading devre dışı bırakıldığında daha hızlı çalışabilir " nasıl mümkün olabilir ?
Pacerier

9

Bir "çekirdek", işlemeyi kendi başına yapabilen bir işlemcinin gerçek bir fiziksel alt kümesini temsil ederken, bir "iş parçacığı" işlemcinin bir kerede işleyebileceği gerçek işlemlerin bir kısmıdır. Intel, "hiper iş parçacığı" olarak adlandırdıkları bir teknoloji geliştirdi; bu teknik, aynı anda iki dişi aynı anda idare edebilecek bir fiziksel çekirdeğin (normalde bir seferde sadece bir dişi tutabildiği) izin veriyor.

Bir iş parçacığı işlemcinin taşıması gereken bir görevdir, basit bir açıklama için açtığınız her uygulamanın (boya, not defteri, medya oynatıcı gibi) kendi iş parçacığına sahip olduğunu varsayabilirsiniz ... şimdi bu sadece açabileceğiniz anlamına gelmez Aynı anda 2 uygulama, çünkü işlemci ve işletim sistemi açtığınız her uygulamanın ihtiyaçlarını karşılamak için 'anahtarlama dişlerinde' çok hızlı çalışmaktadır. Daha fazla çekirdekle daha iyi performans elde edersiniz, çünkü artık tüm işi daha fazla çekirdek işlemciye aktarabilirsiniz.

Örneğin, çalışma bilgisayarımda bir i7 var. İ7, 4 fiziksel çekirdeğe sahiptir, ancak her bir çekirdek, bu işlemcinin aynı anda 8 iş parçacığı kullanmasına izin veren 'hiper iş parçacığı' yapabilir. Böylece görev yöneticisini açarsam, işlemci performans ölçeği için 8 kutu göreceğim.

Genel bir kural, daha fazla fiziksel çekirdeğin daha fazla iş parçacığından daha iyi olmasıdır. Yani, 4 çekirdekli ve 4 iş parçacığı olan bir işlemciyi karşılaştırıyorsanız, 2 çekirdekten 4 iş parçacığından daha iyi olurdu. Ancak, işlemcinizin işleyebildiği iş parçacıkları ne kadar çok işlem görürse, çok görevliyken ve çok yoğun uygulamalar için (video düzenleme, CAD, CAM, Sıkıştırma, Şifreleme, vb.) Bir anda birden fazla çekirdek kullanacaktır.


"Kutu" derken ne demek istiyorsun?
Pacerier


-1

IE veya chrome'daki bir makaledeki linklere tıklayarak, her tıkladığınızda bir iş parçacığı oluşturabilirsiniz. Ne kadar çok tıklarsanız o kadar çok iş parçacığı olur. 4 çekirdekli bir işlemciye sahipseniz 8 iş parçacığı varsa bir problem yaşamadan önce 8 bağlantı açabilirsiniz. İnternet bağlantınızı dikkate almayın. bu yüzden her bir çekirdek, açmış olduğunuz bu iki bağlantıyı (ipliği) kaplıyor. IMO fikri budur. eğer bu herhangi birine mantıklı geliyorsa.


Hayır, bu CPU'ların bağlamında ne olduğu veya sorulan soru değildir.
music2myear
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.