Это только опрашивает общие количества о столь же в секунду. Вы смотрите на то, сколько из прошлой секунды это использовало.
Если Вы видите, что CPU находится в 50% на некоторое время, что, вероятно, продолжается, то, что он использует 100% одного CPU в двойной системе CPU.
Технически Вы корректны. В любой момент времени ЦП или используется или не используется. Но отображаясь это в графике не было бы очень полезно, таким образом, график составляет в среднем загрузку ЦП за некоторый промежуток времени, вероятно, каждую секунду.
ОС планирует процесс в течение определенного периода времени. Таким образом, если процесс планируется для (говорят), что 1 мс из 10 мс, то он будет использовать 10% ЦП.
Это немного парадоксально, с тех пор (в однопоточной, системе единственного ЦП), процесс или работает или не работает. т.е. это использует 100% или 0%. Процент, который Вы видите, измеряется по окну времени и является мерой ОС, выделяющей временные интервалы Вашему процессу для выполнения.
Обратите внимание, что Ваш процесс не будет способствовать этому при доступе к вводу-выводу. Таким образом, при выполнении огромного вычисления Вы зарегистрируете 100% (предположение, что ничто иное не работает). Если Вы затем будете ожидать сетевого пакета / доступ к диску и т.д., то Ваша фигура ЦП спустится, несмотря на то, что Ваш процесс все еще работает.
Это на основе среднего времени. Несмотря на все потоки может иметь тот же пакет процессорного времени (на основе приоритета), потоки могут просто сказать "спасибо, но я неактивен", и передача, это - поворот к следующему потоку. Вот почему программы не всегда используют то же время %, и большинство программ использует 0% ЦП, и программы, для которых действительно нужен ЦП, могут взять близкие 100% времени для себя.
Почему это ограничивает в 50%? У Вас, вероятно, есть два ядра процессора и его использование только один.
Или, как предложено, это использует гиперпоточность, но я не знаю, как этот ведет себя точно.
На очень низком уровне Вы в основном правы. В любой данный момент процессор или выполняет инструкцию для данного процесса, или это не.
Но Ваша ОС находится промежуточная Ваши процессы и процессор, заставляя их совместно использовать время. Процент, который Вы видите, является процентом последнего времени обработки, которое ОС предоставила тому процессу.
Системное использование выбрано и усреднено, который является единственной разумной вещью сделать.
Например, ведут учет того, сколько времени процесс/поток провело выполнение в течение 1 секунды. Если это провело 1 секунду на ЦП, это составляет 100% ЦП (или 50%, если у Вас есть 2 центральных процессора и так далее), если это потратило 100 мс, это - 10%-я загрузка ЦП.