Как процессорное время и использование ЦП являются тем же?

На странице Wikipedia в течение процессорного времени говорит это

Процессорное время измеряется в тактах системных часов или секунды. Часто, полезно измерить процессорное время как процент способности ЦП, которую называют использованием ЦП.

Я не понимаю, как продолжительность времени может быть заменена процентом. Когда я смотрю на top, не делает %CPU скажите мне это MATLAB использует 2.17 из моих ядер?

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
18118 jasl      20   0 9248400 261528  78676 S 217.2  0.1   8:14.75 MATLAB      

Вопрос

Для лучше понимания, каково использование ЦП, как я вычисляю использование ЦП сам?

23
задан 9 December 2014 в 12:53
2 ответа

Процессорное время распределяется в дискретных временных интервалах (тиках). В течение определенного количества временных интервалов ЦП занят, в других случаях - нет (что представлено незанятым процессом). На рисунке ниже ЦП занят для 6 из 10 секторов ЦП. 6/10 = 0,60 = 60% времени занятости (и, следовательно, будет 40% времени простоя).

enter image description here

процент определяется как «число или скорость, которая выражается как определенное количество частей чего-либо, разделенных на 100 частей». Таким образом, в данном случае эти части представляют собой дискретные срезы времени, а временные срезы «что-то занято» по сравнению с временными срезами простоя - соотношение занятых и незанятых временных срезов.

Поскольку процессоры работают в ГГц (миллиарды циклов в секунду). Операционная система делит это время на более мелкие единицы, называемые тиками. На самом деле это не 1/10 секунды. Скорость тиков в Windows составляет 10 миллионов тиков в секунду , а в Linux - sysconf (_SC_CLK_TCK) (обычно 100 тиков в секунду).

Что-то вроде вверху загруженные циклы ЦП затем разбиваются на процентные доли таких вещей, как время пользователя и системное время. В top в Linux и perfmon в Windows вы часто получаете отображение, которое превышает 100%, то есть потому, что общее количество составляет 100% * the_number_of_cpu_cores.

В операционной системе задача планировщика распределять эти драгоценные фрагменты процессам, поэтому планировщик сообщает об этом.

32
ответ дан 28 November 2019 в 20:19

Процессорное время - это время, в течение которого процесс использует ЦП. Его преобразование в процентное соотношение выполняется делением на количество прошедшего реального времени.

Итак, если у меня есть процесс, который использует 1 секунду процессорного времени в течение 2 секунд, он использует 50% ЦП.

В случае вашего процесса MATLAB, 217% означает, что он использовал 2,17 секунды процессорного времени в секунду в течение последний интервал выборки - эффективно, монополизируя 2 ядра ЦП и забирая часть третьего.

14
ответ дан 28 November 2019 в 20:19

Теги

Похожие вопросы