Frage:
- Wie wird ein CPU-Tick berechnet und was repräsentiert er?
- Ist ein einzelner
tick
Equate zu10 miliseconds
so , wenn einige Thread berichtet nicht für (genannt5 * 10 ticks = 500 ticks
) bedeutet das die CPU war vielleicht zu beschäftigt , um die oben genannten Thread zu planen Arbeit ?
Antworten:
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.
sysconf(_SC_CLK_TCK);
. Siehe zB http://linux.die.net/man/2/timesWarum 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.
quelle
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.
quelle
ticks
Auf einem Unix-System treten normalerweise 60- oder 100-mal pro Sekunde auf und sind nicht an die Verarbeitungsgeschwindigkeit gebunden.tick
als Synonym fürprocessor cycle
. Trotzdem sehe ich meistenstick
gebraucht wie in meiner Antwort oben erklärt. Aber ich denke, Terminologie variiert, wie üblich :-(. Ich habe meine Antwort bearbeitet.