Question:
- Comment un tick de CPU est-il calculé et que représente-t-il?
- Est -ce que d' un seul
tick
équivalent à10 miliseconds
ce 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 ?
Réponses:
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.
sysconf(_SC_CLK_TCK);
. Voir par exemple http://linux.die.net/man/2/timesQuant à 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.
la source
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é.
la source
ticks
sur 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.tick
comme synonyme deprocessor cycle
. Pourtant, je vois surtouttick
utilisé comme expliqué dans ma réponse ci-dessus. Mais je suppose que la terminologie varie, comme d'habitude :-(. J'ai modifié ma réponse.