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


80

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



Ответы:


62

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


1
какой из них используется для запуска файлов "* .dll"?
— user472221

4
@ user472221 dll - это концепция Win. Ваш вопрос не
— связан с

1
@ user472221 Мой ответ основан на UNIX / Linux; та же концепция должна применяться в Windows. Я бы предположил, что большинство DLL находятся в пользовательском пространстве, хотя я не уверен, где Windows проводит черту. Если вы действительно хотите узнать, где ваша программа использует процессорное время, используйте профилировщик.
— Майкл Экстранд

1
"Пространство пользователя" и "пространство ядра" - это то же самое, что и "режим пользователя / ядра"? Если ядро ​​работает, но в пользовательском режиме, используется ли эта учетная запись как пользовательское или системное время? Или это практическая разница только на микроядре?
— Антонис Христофидес

Почему нужно различать пользователя или ядро? Например, является ли ядро ​​однопоточным, поэтому, если мой процесс связывает ядро ​​системным вызовом, другие должны ждать?
— JohnMudd

27

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

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


7
Из какого источника этот текст?
— нажатие клавиши

11
Организация и дизайн компьютера: аппаратно-программный интерфейс - Дэвид А. Паттерсон, Джон Л. Хеннесси - Стр. 30
— Н Рандхава

1
Таким образом, можно иметь нулевое системное время для некоторого процесса, если ядро ​​не выполняет никаких операций в конкретном потоке, если я хорошо понимаю
— HoCo_

22

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


4

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

  • Пользовательское время - это количество времени, в течение которого ЦП был занят выполнением кода в пользовательском пространстве.
  • Системное время - это время, в течение которого ЦП был занят выполнением кода в пространстве ядра. Если это значение сообщается для потока или процесса, то оно представляет количество времени, в течение которого ядро ​​выполняло работу от имени исполняющего контекста, например, после того, как поток отправил системный вызов.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.