Время процессора - CPU time

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

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

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

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

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

Подразделение

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

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

Команды Unix для процессорного времени

верх отображение процессорного времени различных процессов на Unix-подобный (GNU /Linux ) система

Команда Unix верх

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

Команда Unix время

В Unix команда время печатает процессорное время и прошедшее реальное время для процесса Unix.

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

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

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

// nextPrimeNumber.c#включают <stdio.h>#включают <stdlib.h>int isPrimeNumber(беззнаковый длинная int п) {  за (int я = 2; я <= (п >> 1); ++я)    если (п % я == 0) вернуть 0;  вернуть 1;}int основной(int argc, char *argv[]) {  беззнаковый длинная int аргумент = Стртул(argv[1], НОЛЬ, 10), п = аргумент;  пока (!isPrimeNumber(++п));  printf("Простое число больше% lu равно% lu", аргумент, п);  вернуть 0;}

POSIX функции Часы() и getrusage ()

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

Общее время процессора

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

Процессорное время и прошедшее реальное время

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

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

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

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

Смотрите также

Рекомендации

  1. ^ Эрхард, Кристиан (июль 2010 г.). «Учет процессорного времени». IBM. Получено 2014-08-05.

внешняя ссылка