Время ЦП пользователя против времени ЦП системы?

80

Не могли бы вы подробнее рассказать о «времени процессора пользователя» и «времени процессора системы»? Я много читал, но плохо понимал.

user472221
источник

Ответы:

62

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

Майкл Экстранд
источник
1
какой из них используется для запуска файлов "* .dll"?
user472221
4
@ user472221 dll - это концепция Win. Ваш вопрос не
связан с
1
@ user472221 Мой ответ основан на UNIX / Linux; та же концепция должна применяться в Windows. Я бы предположил, что большинство DLL находятся в пользовательском пространстве, хотя я не уверен, где Windows проводит черту. Если вы действительно хотите узнать, где ваша программа использует процессорное время, используйте профилировщик.
Майкл Экстранд
1
"Пространство пользователя" и "пространство ядра" - это то же самое, что и "режим пользователя / ядра"? Если ядро ​​работает, но в пользовательском режиме, используется ли эта учетная запись как пользовательское или системное время? Или это практическая разница только на микроядре?
Антонис Христофидес
Почему нужно различать пользователя или ядро? Например, является ли ядро ​​однопоточным, поэтому, если мой процесс связывает ядро ​​системным вызовом, другие должны ждать?
JohnMudd
27

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

Системное время ЦП : время, в течение которого процессор работал над функциями операционной системы, связанными с этой конкретной программой.

N Randhawa
источник
7
Из какого источника этот текст?
нажатие клавиши
11
Организация и дизайн компьютера: аппаратно-программный интерфейс - Дэвид А. Паттерсон, Джон Л. Хеннесси - Стр. 30
Н Рандхава
1
Таким образом, можно иметь нулевое системное время для некоторого процесса, если ядро ​​не выполняет никаких операций в конкретном потоке, если я хорошо понимаю
HoCo_
22

Термин «процессорное время пользователя» может сначала ввести в заблуждение. Для ясности, общее время (реальное время ЦП) представляет собой комбинацию количества времени, которое ЦП тратит на выполнение некоторых действий для программы, и количества времени, которое ЦП тратит на выполнение системных вызовов ядра от имени программы. Когда программа проходит через массив, она накапливает время ЦП пользователя. И наоборот, когда программа выполняет системный вызов, такой как exec или fork, она накапливает время центрального процессора системы.

user3407861
источник
4

На основе википедии :

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