web-dev-qa-db-fra.com

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

Question:

  • Comment un tick de CPU est-il calculé et que représente-t-il?
  • Est-ce qu'une seule tick équivaut à 10 miliseconds ainsi si un thread rapporté n'a pas appelé (5 * 10 ticks = 500 ticks) cela signifie-t-il que le processeur était peut-être trop occupé pour planifier le thread susmentionné pour travailler ?
34
Aaron

Un tick est une unité arbitraire pour mesurer le 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 que représente une coche 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'il n'est pas appelé: cela dépendra du blocage du thread (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é.

Éditer:

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

29
sleske

Modifier: extrait de le matériel informatique en un coup d’œil :

"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 minute. La vitesse de l’horloge détermine la rapidité avec laquelle les instructions s’exécutent. Certaines instructions requièrent un tick, d’autres plusieurs, et certains processeurs exécutent plusieurs instructions au cours d’une seule. "


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 nécessite 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é.

3
invert