CPU kene nedir?


37

Soru:

  • CPU kene nasıl hesaplanır ve neyi temsil eder?
  • Bir tek tick, 10 milisecondsbu nedenle ( 5 * 10 ticks = 500 ticks) için çağrılmayan bir iş parçacığının ( ) çağrılmaması halinde , CPU'nun yukarıda belirtilen iş parçacığını çalışmak için programlamak için çok meşgul olduğu anlamına mı geliyor?

1
"İşlemci kene" yi içeriğe koyabilir misiniz - belki ifadenin kaynağının paragrafını kesip yapıştırabilirsiniz. Birkaç olası cevaptan biri arasında karışıklık olabileceğinden endişe duyuyorum.
Mick

Yanıtlar:


31

Bir kene , iç sistem zamanını ölçmek için kullanılan keyfi bir birimdir. Keneler için genellikle bir OS-iç sayacı vardır; OS'nin çeşitli işlevleri tarafından kullanılan geçerli saat ve tarih bu sayaçtan türetilir.

Bir kenenin kaç milisaniyeyi temsil ettiği işletim sistemine bağlıdır ve hatta kurulumlar arasında değişebilir. Keneleri saniyelere dönüştürmek için işletim sisteminin mekanizmalarını kullanın.

Bir iş parçacığının neden çağrılmadığını bildirdiğine gelince: Bu, iş parçacığının bir yerde engellenip engellenmediğine (bekleme, G / Ç vb.) Bağlıdır. Eğer engellemiyorsa, evet, işletim sisteminin zamanlayıcısı ne zaman çalışmaya başlayacağına karar verecektir, bu durum sistem meşgulse uzun sürebilir.

Düzenle:

, Unutmayın belki maalesef bazı yazarlar da kullanmak kene ile eşanlamlı olarak işlemci saat döngüsünde (örneğin bu metin ). Bu kullanımın daha az yaygın olduğuna inanıyorum, ancak yine de, ilk önce insanların neden bahsettiğini öğrenmek için en iyisi.


Öyleyse CPU her bir talimatı yerine getirmek için sabit sayıda saat işareti gerektiriyor?
Aaron

1
@aaron: hayır, komut yürütme süresi belirli sayıda işlemci döngüsüne bağlıdır. Belirli bir frekansta çalışan belirli bir CPU üzerinde belirli bir işletim sistemi verildiğinde, belirli bir komutun yürütmek için kaç onay aldığını hesaplayabilirsiniz, ancak bu hesaplama, OS / CPU / frekans / talimatın başka bir kombinasyonu için mutlaka geçerli değildir.
quack quixote

1
@Aaron: Hayır, keneler ve işlemci döngüleri iki farklı kavramdır. İşlemci döngüsü uzunluğu donanım tarafından belirlenir (CPU frekansı); keneler, işletim sistemi tarafından üretilir ve işletim sisteminin (veya tasarımcılarının) uygun gördüğü uzunlukta kullanılır.
sleske,

Datetime.ticks () öğesini bir gösterge olarak kullanmayın, bu nesne örneğinin tarihini ve saatini temsil etmek için tasarım gereği kasıtlı olarak sabittir. Zamana bağlıdır, donanım keneleri zamandan bağımsızdır. Çerçevenin adına kötü adlandırma.
çevir

1
@sleske Hmmm Farkı görüyorum. 'keneler', CPU döngüleri ile eş anlamlı bir terim olduğu gibi "CPU saat hızından bağımsız sabit bir süre" terimiydi. İki anlamla aynı terim. Bu doğru mu?
çevir

3

Düzenleme: Özetle PC Donanımı Alınan :

"İşlemci saati, belirli aralıklarla saat döngüsü veya onay adı verilen bir zaman referans sinyali oluşturarak tüm CPU ve bellek işlemlerini koordine eder . Saat frekansı, saniye başına milyarlarca onay işareti belirten gigahertz (GHz) cinsinden belirtilir. Saat hızı, talimatların ne kadar hızlı uygulanacağını belirler. Bazı talimatlar bir onay, bazı birden fazla onay gerektirir ve bazı işlemciler bir onay sırasında birden fazla komut yürütür. "


Keneler arasındaki süre saat hızınıza göre belirlenir ve gerçekleştirilen OP'ye bağlı olarak bir ila birçok keneler alır. Örneğin, 286 sınıfı bir işlemciye iki sayıyı çarpmak için 20 tik gerekir .

Yüksek performans zamanlayıcılarına ihtiyacınız varsa, tüm sistemlerde sürekli olarak keneler kullanabileceğinizi sanmıyorum.

CPU zamanlayıcı, özellikle daha yüksek önceliğe sahip başka bir konu olsaydı ipliği geciktirebilirdi. Yani evet, CPU çok meşgul olabilirdi.


4
-1 Keneleri ve işlemci döngülerini karıştırıyorsunuz. ticksBir Unix sisteminde genellikle saniyede 60 veya 100 kez meydana gelir ve ilerleme hızına bağlı değildir.
Ocak'ta sleske

1
Donanım kenelerinden bahsediyorum. 1hz CPU saniyede 1 kene (döngü) işler, 200Hz saniyede 200 devir, 2GHz iki milyar devir / sn işleyebilir. CPU'nuz ne kadar hızlı olursa, o kadar fazla döngü / saniye elde edersiniz.
çevir

2
Ah, anlıyorum, bazı yazarlar tickeş anlamlı olarak kullanıyor processor cycle. Yine de, çoğunlukla tickyukarıdaki cevabımda açıklandığı gibi kullanıldığını görüyorum . Ama terminolojinin her zamanki gibi
değişebileceğini düşünüyorum
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.