Что такое «системное время» при использовании «времени» в командной строке

Я time от времени использую скрипт Perl на стандартном терминале в Ubuntu 14.04.

Я читал, что в real time секундомера; время, когда я, как пользователь, тратит время на просмотр программы, начиная с запуска программы до ее окончания. Но я не понимаю, что такое user или время sys . Разумеется, справочная страница time является неопределенной.

Хотя несколько ясно, что real время разделено между user и sys неясно, что они представляют.

В моем сценарии я сравниваю [1] C ++ и Perl друг с другом, чтобы увидеть разницу, и я хотел бы знать, какие данные я на самом деле получаю. Пример вывода:

 real 0m24.198s user 0m23.120s sys 0m1.030s 

Может ли кто-то продумать, какой формат времени по умолчанию говорит пользователю? Я новичок в Linux, поэтому, пожалуйста, не думайте слишком много.

[1] Интересно, что в то время как C ++ – это путь, который быстрее, чем Perl, в моем тесте в отношении real времени, времена sys не сильно отличаются от того, что C ++ на самом деле использует больше времени sys чем Perl. Вот почему я хочу знать, что они означают

Из Википедии :

  • Время пользователя и время системы

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

  • Время реального времени и процессорное время

Термин «реальное время» в этом контексте относится к истекшему времени «настенных часов», например, к использованию секундомера. Общее время CPU (время пользователя + время sys) может быть больше или меньше этого значения. Поскольку программа может потратить некоторое время на ожидание и вообще не выполнять (в режиме пользователя или в системном режиме), реальное время может быть больше общего времени процессора. Поскольку программа может развить детей, чьи процессорные времена (как пользователя, так и sys) добавляются к значениям, указанным командой времени, общее время CPU может быть больше, чем в реальном времени.