Что такое настенное время, пользовательское и системное время в UNIX? - PullRequest
124 голосов
/ 07 сентября 2011

Я могу предположить, основываясь на именах, но что конкретно представляют собой настенные часы, пользовательское процессорное время и системное время в UNIX?

Является ли пользовательское процессорное времяколичество времени, потраченное на выполнение пользовательского кода, в то время как время ядра процессора количество времени, потраченного на ядро ​​из-за необходимости привилегированных операций (например, ввода-вывода на диск)?

В какой единице времени это измерение.

И действительно ли время настенных часов - это количество секунд, которое процесс потратил на процессор, или это имя просто вводит в заблуждение?

Ответы [ 4 ]

121 голосов
/ 07 сентября 2011

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

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

Единицами являются секунды (и подсекунды, которые могут быть микросекундами или наносекундами).

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

33 голосов
/ 07 сентября 2011

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

Время процессора пользователя и системное время: именно то, что вы думаете.Системные вызовы, которые включают вызовы ввода / вывода, такие как read, write и т. Д., Выполняются путем перехода к коду ядра и его выполнения.

Если время настенных часов <время ЦП, то вывыполнение программы параллельно.Если время настенных часов> время ЦП, вы ожидаете диска, сети или других устройств.

Все измеряются в секундах, согласно SI .

6 голосов
/ 14 марта 2018
time [WHAT-EVER-COMMAND]

real    7m2.444s
user    76m14.607s
sys 2m29.432s

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                24

реальные или настенные часы

реальные 7м2,444 с

В системе с 24основной процессор, этот cmd / process занял 7+ минут, чтобы закончить.Это при использовании максимально возможного параллелизма со всеми данными ядрами.

пользователь

пользователь 76m14.607s

cmd /Процесс использовал столько времени процессора.Другими словами, на машине с одноядерным ЦП реальное и пользовательское будут почти равны, поэтому выполнение одной и той же команды займет ~ 76 минут.

sys

sys 2m29.432s

Это время, которое требуется ядру для выполнения всех операций базового / системного уровня для запуска этого cmd, включая переключение контекста, распределение ресурсов и т. Д.

Примечание. В этом примере предполагается, что ваша команда использует параллелизм / потоки.

Подробная справочная страница: https://linux.die.net/man/1/time

6 голосов
/ 07 сентября 2011

Время настенных часов - это именно то, что написано, время, измеренное часами на вашей стене (или наручными часами)

Время процессора пользователя - это время, проведенное в «пользовательской среде», то есть время, потраченное на неядерные процессы

Время системного процессора - это время, проведенное в ядре, обычно это время, затрачиваемое на обслуживание системных вызовов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...