Solution 1 :
Le temps CPU est alloué en discret tranches de temps (ticks). Pendant un certain nombre de tranches de temps, le CPU est occupé, d'autres fois il ne l'est pas (ce qui est représenté par le processus inactif). Dans l'image ci-dessous, le processeur est occupé pour 6 des 10 tranches de processeur. 6/10 = 0,60 =60 % de temps occupé (et il y aurait donc 40 % d'inactivité).
Un pourcentage est défini comme "un nombre ou un taux exprimé en un certain nombre de parties de quelque chose divisé en 100 parties". Donc, dans ce cas, ces parties sont des tranches de temps discrètes et quelque chose est des tranches de temps occupées par rapport à des tranches de temps inactives - le taux de tranches de temps occupées à inactives.
Puisque les processeurs fonctionnent en GHz (milliards de cycles par seconde). Le système d'exploitation découpe ce temps en unités plus petites appelées ticks. Ils ne sont pas vraiment 1/10 de seconde. Le taux de ticks dans Windows est de 10 millions de ticks par seconde et sous Linux, il est de sysconf(_SC_CLK_TCK)
(habituellement 100 ticks par seconde).
Dans quelque chose comme top
, les cycles CPU occupés sont ensuite décomposés en pourcentages, tels que le temps utilisateur et le temps système. En top
sous Linux et perfmon sous Windows, vous obtiendrez souvent un affichage supérieur à 100%, c'est parce que le total est de 100% * the_number_of_cpu_cores.
Dans un système d'exploitation, c'est le planificateur tâche d'allouer ces précieuses tranches aux processus, c'est donc le planificateur qui signale cela.
Solution 2 :
Le temps CPU est le temps pendant lequel le processus utilise le CPU - sa conversion en pourcentage se fait en divisant par le temps réel qui s'est écoulé.
Donc, si j'ai un processus qui utilise 1 seconde de temps CPU sur une période de 2 secondes, il utilise 50 % d'un CPU.
Dans le cas de votre processus MATLAB, 217 % indique qu'il a utilisé 2,17 secondes de temps CPU par seconde au cours du dernier intervalle d'échantillonnage, ce qui monopolise 2 cœurs de processeur et en prend un tiers.