Процессорное время

редактировать
CPU Time в многозадачной системе с одним процессором время цвета ЦП для программы P1

время ЦП (или время процесса ) - это количество времени, для которого центральный процессор (CPU) использовался для обработки инструкций компьютерной программы или операционной системы, в отличие от прошедшего времени, которое включает в себя Например, ожидание операций ввода / вывода (I / O) или переход в режим пониженного энергопотребления (ожидания). Время ЦП измеряется в тактах часов или секундах. Часто бывает полезно измерить время ЦП в процентах от мощности ЦП, что называется Использование ЦП .

Время ЦП и использование ЦП имеют два основных применения. Первое использование - это количественная оценка общей загруженности системы. Когда загрузка ЦП высока, пользователь может испытывать отставание. Такая высокая загрузка ЦП указывает на недостаточную вычислительную мощность. Либо необходимо обновить ЦП, либо уменьшить удобство работы пользователя, например, переключившись на графику с более низким разрешением или уменьшив анимацию.

Второе использование, с появлением многозадачности, - это количественная оценка того, как процессор распределяется между компьютерными программами. Высокая загрузка ЦП одной программой может указывать на то, что она очень требовательна к вычислительной мощности или что она может работать неправильно; например, он вошел в бесконечный цикл . Процессорное время позволяет измерять вычислительную мощность, необходимую для одной программы, устраняя помехи, такие как время ожидания ввода или приостановки для запуска других программ.

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

Содержание
  • 1 Подраздел
  • 2 команды Unix для времени процессора
    • 2.1 Верхняя часть команды Unix
    • 2.2 Время выполнения команды Unix
  • 3 POSIX-функции clock () и getrusage ()
  • 4 Всего Время ЦП
  • 5 Время ЦП и прошедшее реальное время
  • 6 Время ЦП и прошедшее реальное время для технологии параллельной обработки
  • 7 См. Также
  • 8 Ссылки
  • 9 Внешние ссылки
Подраздел

Время ЦП или использование ЦП можно сообщать либо для каждого потока, для каждого процесса, либо для всей системы. Более того, в зависимости от того, что именно делал ЦП, сообщаемые значения можно разделить на:

  • Пользовательское время - это количество времени, в течение которого ЦП был занят выполнением кода в пользовательском пространстве.
  • Системное время - это количество времени, в течение которого ЦП был занят выполнением кода в пространстве ядра. Если это значение сообщается для потока или процесса, то оно представляет количество времени, в течение которого ядро ​​выполняло работу от имени выполняющегося context, например, после того, как поток отправил системный вызов .
  • Время простоя (только для всей системы) - это время, в течение которого ЦП не был занят, или, в противном случае, время, в течение которого он выполнял процесс простоя системы. Время простоя фактически измеряет неиспользуемую мощность ЦП.
  • Время кражи (только для всей системы) на виртуализированном оборудовании - это количество времени, которое операционная система хотела выполнить, но не было разрешено гипервизором . Это может произойти, если на физическом оборудовании работают несколько гостевых операционных систем, а гипервизор решил выделить один слот времени ЦП другому.
Команды Unix для времени ЦП
top Отображение времени ЦП различных процессы в Unix-подобной (GNU / Linux ) системе

Unix command top

The Unix команда top предоставляет процессорное время, приоритет, прошедшее реальное время и другую информацию для всех процессов и обновляет ее в реальном времени.

Unix command time

Команда Unix command time печатает время ЦП и прошедшее реальное время для процесса Unix.

% gcc nextPrimeNumber.c -o nextPrimeNumber% time./nextPrimeNumber 30000007 Простое число больше 30000007 равно 30000023 0,327u 0,010s 0: 01.15 28,6% 0 + 0k 0 + 0io 0pf + 0w

Этот процесс занял всего 0,337 секунды процессорного времени, из которых 0,327 секунды было потрачено в пользовательском пространстве, а последние 0,010 секунды в режиме ядра от имени процесса. Истекшее реальное время составило 1,15 секунды.

Ниже приведен исходный код приложения nextPrimeNumber, которое использовалось в приведенном выше примере.

// nextPrimeNumber.c #include #include int isPrimeNumber (unsigned long int n) {for (int i = 2; i <= (n>>1); ++ i) if (n% i == 0) return 0; возврат 1; } int main (int argc, char * argv) {беззнаковый длинный аргумент int = strtoul (argv [1], NULL, 10), n = аргумент; пока (! isPrimeNumber (++ n)); printf ("Простое число больше% lu равно% lu \ n", аргумент, n); возврат 0; }
Функции POSIX clock ()и getrusage ()

Функции POSIX clock ()и getrusage ()можно использовать для определения использования процессорного времени любым процессом в среде POSIX. Если процесс многопоточный, процессорное время - это сумма для всех потоков. В Linux, начиная с ядра 2.6.26, есть параметр RUSAGE_THREAD, который ведет к статистике использования ресурсов только для вызывающего потока.

Общее время ЦП

На многопроцессорных машинах компьютерная программа может использовать два или более ЦП для обработки с использованием параллельной обработки планирование. В таких ситуациях используется понятие общего времени ЦП, которое представляет собой сумму времени ЦП, потребляемого всеми ЦП, используемыми компьютерной программой.

Время ЦП и прошедшее реальное время

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

Процессорное время и прошедшее реальное время для технологии параллельной обработки

Если в программе используется параллельная обработка, общее время CPU для этой программы будет больше, чем затраченное реальное время. (Общее время ЦП) / (Количество ЦП) будет таким же, как затраченное в реальном времени, если рабочая нагрузка равномерно распределена по каждому ЦП и не требуется ожидания ввода-вывода или других ресурсов.

Пример: программное приложение, выполняемое на шестиядерном процессоре, создает три процесса Unix для выполнения требований пользователя. Каждый из этих трех процессов создает два потока, в общей сложности перечисляя 6 рабочих потоков. Вычисления равномерно распределяются по 6 независимым потокам. Если ожидание ресурсов не задействовано, общее время ЦП, как ожидается, будет в шесть раз больше, чем истекшее реальное время.

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-13 12:03:16
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте