Řešení 1:
Čas CPU je přidělen diskrétně časové řezy (tikety). Po určitý počet časových úseků je CPU zaneprázdněno, jindy ne (což je reprezentováno nečinným procesem). Na obrázku níže je CPU zaneprázdněno 6 z 10 CPU řezů. 6/10 =0,60 =60 % zaneprázdněného času (a bylo by tedy 40 % doby nečinnosti).
procento je definován jako „počet nebo sazba, která je vyjádřena jako určitý počet částí něčeho rozděleného na 100 částí“. Takže v tomto případě jsou tyto části diskrétními úseky času a něco je zaneprázdněno časové úseky vs. úseky času nečinnosti – míra zaneprázdnění k úsekům času nečinnosti.
Protože CPU pracují v GHz (miliardy cyklů za sekundu). Operační systém rozděluje tento čas na menší jednotky nazývané ticks. Ve skutečnosti nejsou 1/10 sekundy. Rychlost tikání ve Windows je 10 milionů tiků za sekundu a v Linuxu je to sysconf(_SC_CLK_TCK)
(obvykle 100 tiků za sekundu).
Něco jako top
, zaneprázdněné cykly CPU jsou pak dále rozděleny na procenta věcí, jako je uživatelský čas a systémový čas. V top
na Linuxu a perfmon ve Windows často získáte zobrazení, které překročí 100 %, protože celkový počet je 100 % * the_number_of_cpu_cores.
V operačním systému je to plánovač úkol přidělit tyto vzácné řezy procesům, takže to hlásí plánovač.
Řešení 2:
Čas CPU je čas, kdy proces využívá CPU – převod na procenta se provádí vydělením množstvím reálného času, který uplynul.
Takže pokud mám proces, který využívá 1 sekundu CPU během období 2 sekund, využívá 50 % CPU.
V případě vašeho procesu MATLAB 217 % znamená, že je využito 2,17 sekund CPU času za sekundu během posledního vzorkovacího intervalu – efektivně monopolizuje 2 CPU jádra a zabírá část třetiny.