Qu'est-ce qu'un tick en CPU?

37

Question:

  • Comment un tick de CPU est-il calculé et que représente-t-il?
  • Est -ce que d' un seul tickéquivalent à 10 milisecondsce si un fil déclaré ne pas demandé ( 5 * 10 ticks = 500 ticks) cela signifie la CPU était peut - être trop occupé pour programmer le fil mentionné ci - dessus pour le travail ?
Aaron
la source
1
Pourriez-vous mettre "CPU tick" dans son contexte - peut-être couper et coller le paragraphe de la source de la phrase. Je crains qu'il ne puisse y avoir de confusion entre l'une des réponses possibles.
Mick

Réponses:

31

Un tick est une unité arbitraire de mesure du temps système interne. Il existe généralement un compteur interne au système d'exploitation pour les ticks; l'heure et la date actuelles utilisées par diverses fonctions du système d'exploitation sont dérivées de ce compteur.

Le nombre de millisecondes qu'un tick représente dépend du système d'exploitation et peut même varier d'une installation à l'autre. Utilisez les mécanismes du système d'exploitation pour convertir les ticks en secondes.

Quant à savoir pourquoi un thread signale qu’on ne l’appelle pas: Cela dépend si le thread bloque quelque part (attente, E / S, etc.). S'il ne bloque pas, alors oui, le planificateur du système d'exploitation décidera quand il sera exécuté, ce qui peut être long si le système est occupé.

Modifier:

Notez que, malheureusement, certains auteurs utilisent aussi tick comme synonyme de cycle d'horloge du processeur (par exemple, ce texte ). Je crois que cet usage est moins répandu, mais néanmoins, il vaut mieux savoir d’abord de quoi les gens parlent.

sleske
la source
Donc, le processeur nécessite un nombre fixe de tics d'horloge pour exécuter chaque instruction?
Aaron
1
@ aaron: non, le temps d'exécution des instructions est lié à un certain nombre de cycles du processeur. étant donné qu’un système d’exploitation donné fonctionnant à une fréquence donnée sur un processeur donné, vous pouvez calculer le nombre de ticks nécessaires à l’exécution d’une instruction spécifique, mais ce calcul n’est pas nécessairement valable pour toute autre combinaison système d’exploitation / processeur / fréquence / instruction.
Quack Quichotte
1
@Aaron: Non, les ticks et les cycles de processeur sont deux concepts différents. La durée du cycle du processeur est déterminée par le matériel (fréquence du processeur); Les ticks sont produits par le système d'exploitation et utilisent la longueur que le système d'exploitation (ou ses concepteurs) juge appropriée.
Sleske
N'utilisez pas datetime.ticks () comme jauge, elle est délibérément constante par définition, pour représenter la date et l'heure de cette occurrence d'objet. Cela dépend du temps, alors que les ticks matériels sont indépendants du temps. C'est une mauvaise désignation de la part du framework.
inverser le
1
@sleske Hmmm je vois la différence. "ticks" était autrefois synonyme de cycles du processeur, ainsi que "durée constante, indépendante de la vitesse d'horloge du processeur". Même terme avec deux significations. Est-ce correct?
inverser le
3

Edit: Tiré de PC Hardware en quelques mots :

"L'horloge du processeur coordonne toutes les opérations du processeur et de la mémoire en générant périodiquement un signal de référence temporelle appelé cycle ou tick . La fréquence d'horloge est spécifiée en gigahertz (GHz), qui spécifie des milliards de ticks par seconde. La vitesse d'horloge détermine la rapidité d'exécution des instructions. Certaines instructions requièrent un tick, d'autres plusieurs, et certains processeurs exécutent plusieurs instructions au cours d'un tick. "


Le temps entre les ticks est déterminé par votre vitesse d'horloge, et cela prend un à plusieurs ticks en fonction du PO exécuté. Par exemple, un processeur de classe 286 a besoin de 20 ticks pour multiplier deux nombres.

Si vous avez besoin de minuteries hautes performances, alors je ne pense pas que vous puissiez compter sur les ticks qui sont constants sur tous les systèmes.

Le planificateur de la CPU aurait pu retarder le thread, en particulier s'il y avait un autre thread avec une priorité plus élevée. Alors oui, le processeur aurait pu être trop occupé.

inverser
la source
4
-1 Vous confondez les ticks et les cycles de processeur. tickssur un système Unix se produisent généralement 60 ou 100 fois par seconde, et ne sont pas liés à la vitesse de proc.
Sleske
1
Je parle de tiques matérielles. Un processeur de 1hz traite 1 tick (cycle) par seconde, 200Hz peut traiter 200 cycles par seconde, 2 GHz deux milliards de cycles / s. Plus votre CPU est rapide, plus vous obtenez de cycles / s.
inverser le
2
Ah, je vois, certains auteurs utilisent tickcomme synonyme de processor cycle. Pourtant, je vois surtout tickutilisé comme expliqué dans ma réponse ci-dessus. Mais je suppose que la terminologie varie, comme d'habitude :-(. J'ai modifié ma réponse.
sleske le