Was ist ein CPU-Tick?

37

Frage:

  • Wie wird ein CPU-Tick berechnet und was repräsentiert er?
  • Ist ein einzelner tickEquate zu 10 milisecondsso , wenn einige Thread berichtet nicht für (genannt 5 * 10 ticks = 500 ticks) bedeutet das die CPU war vielleicht zu beschäftigt , um die oben genannten Thread zu planen Arbeit ?
Aaron
quelle
1
könnten Sie "CPU tick" in den Kontext setzen - vielleicht den Absatz der Quelle der Phrase ausschneiden und einfügen. Ich befürchte, dass eine von mehreren möglichen Antworten verwechselt werden könnte.
Mick

Antworten:

31

Ein Häkchen ist eine beliebige Einheit zur Messung der internen Systemzeit. Normalerweise gibt es einen betriebssysteminternen Zähler für Zecken. Die aktuelle Uhrzeit und das Datum, die von verschiedenen Funktionen des Betriebssystems verwendet werden, werden von diesem Zähler abgeleitet.

Wie viele Millisekunden ein Häkchen darstellt, hängt vom Betriebssystem ab und kann sogar von Installation zu Installation variieren. Verwenden Sie die Mechanismen des Betriebssystems, um Ticks in Sekunden umzuwandeln.

Warum ein Thread meldet, dass er nicht aufgerufen wird: Das hängt davon ab, ob der Thread irgendwo blockiert (Warten, E / A usw.). Wenn es nicht blockiert, entscheidet der Scheduler des Betriebssystems, wann es ausgeführt wird. Dies kann eine lange Zeit dauern, wenn das System ausgelastet ist.

Bearbeiten:

Beachten Sie, dass einige Autoren möglicherweise auch ein Häkchen als Synonym für den Prozessortakt verwenden (z . B. dieser Text ). Ich glaube, diese Verwendung ist weniger verbreitet, aber am besten zuerst herausfinden, wovon die Leute sprechen.

sleske
quelle
Die CPU benötigt also eine feste Anzahl von Takten, um jeden Befehl auszuführen?
Aaron
1
@aaron: nein, die Befehlsausführungszeit ist an eine bestimmte Anzahl von Prozessorzyklen gebunden. Wenn ein bestimmtes Betriebssystem auf einer bestimmten CPU mit einer bestimmten Frequenz ausgeführt wird, können Sie berechnen, wie viele Ticks eine bestimmte Anweisung zur Ausführung benötigt. Diese Berechnung gilt jedoch nicht unbedingt für eine andere Kombination aus Betriebssystem, CPU, Frequenz und Anweisung.
Quack Quijote
1
@Aaron: Nein, Ticks und Prozessorzyklen sind zwei unterschiedliche Konzepte. Die Prozessorzykluslänge wird von der Hardware bestimmt (CPU-Frequenz); Zecken werden vom Betriebssystem erzeugt und verwenden die Länge, die das Betriebssystem (oder seine Designer) für angemessen hält.
sleske
Verwenden Sie datetime.ticks () nicht als Messwert, da dies beabsichtigt eine Konstante ist, um das Datum und die Uhrzeit dieser Objektinstanz darzustellen. Es ist zeitabhängig, während Hardware-Ticks zeitunabhängig sind. Es ist eine schlechte Benennung seitens des Frameworks.
28.01.10
1
@sleske Hmmm ich sehe den Unterschied. 'ticks' war früher ein Synonym für CPU-Zyklen sowie ein Begriff für "eine konstante Zeitdauer, unabhängig von der CPU-Taktrate". Gleicher Begriff mit zwei Bedeutungen. Ist das richtig?
28.01.10
3

Bearbeiten: Auf den Punkt gebracht von PC-Hardware :

Der Prozessortakt koordiniert alle CPU und Speicheroperationen durch periodisches Erzeugen eines Zeitreferenzsignals, das als Taktzyklus oder Tick bezeichnet wird . Die Taktfrequenz wird in Gigahertz (GHz) angegeben, was Milliarden von Ticks pro Sekunde angibt. Die Taktgeschwindigkeit bestimmt, wie schnell Befehle ausgeführt werden. Einige Befehle erfordern ein Häkchen, andere mehrere Häkchen, und einige Prozessoren führen mehrere Befehle während eines Häkchens aus. "


Die Zeit zwischen den Ticks wird durch Ihre Taktrate bestimmt und es dauert ein bis viele Ticks, abhängig von der durchgeführten OP. Beispielsweise benötigt eine 286-Klasse-CPU 20 Ticks, um zwei Zahlen zu multiplizieren .

Wenn Sie Hochleistungstimer benötigen, können Sie sich meines Erachtens nicht darauf verlassen, dass die Ticks auf allen Systemen konstant sind.

Der CPU-Scheduler könnte den Thread verzögert haben, insbesondere wenn es einen anderen Thread mit einer höheren Priorität gab. Also ja, die CPU hätte zu beschäftigt sein können.

umkehren
quelle
4
-1 Sie verwechseln Ticks und Prozessorzyklen. ticksAuf einem Unix-System treten normalerweise 60- oder 100-mal pro Sekunde auf und sind nicht an die Verarbeitungsgeschwindigkeit gebunden.
sleske
1
Ich spreche von Hardware-Ticks. Eine 1-Hz-CPU verarbeitet 1 Tick (Zyklus) pro Sekunde, 200 Hz können 200 Zyklen pro Sekunde verarbeiten, 2 GHz zwei Milliarden Zyklen pro Sekunde. Je schneller Ihre CPU, desto mehr Zyklen pro Sekunde erhalten Sie.
28.01.10
2
Ah, ich verstehe, verwenden einige Autoren tickals Synonym für processor cycle. Trotzdem sehe ich meistens tickgebraucht wie in meiner Antwort oben erklärt. Aber ich denke, Terminologie variiert, wie üblich :-(. Ich habe meine Antwort bearbeitet.
sleske