Час процесора користувача проти системного часу процесора?


80

Не могли б ви пояснити більше про "час процесора користувача" та "системний час процесора"? Я багато читав, але не міг це добре зрозуміти.



Відповіді:


62

Різниця полягає в тому, чи витрачається час у просторі користувача чи просторі ядра. Час процесора користувача - це час, витрачений на процесор, на якому запущений код вашої програми (або код у бібліотеках); Час системного процесора - це час, витрачений на виконання коду в ядрі операційної системи від імені вашої програми.


1
який використовується для запуску файлів "* .dll"?
user472221

4
@ user472221 dll - це концепція Win. Ваше питання не обмежене ОС
доктор Белісаріус,

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

1
Чи "користувальницький простір" та "простір ядра" однакові з "режимом користувача / ядра"? Якщо ядро ​​працює, але в користувацькому режимі, чи враховується це як час користувача чи системний час? Або це практична різниця лише в мікроядрі?
Антоніс Крістофідес,

Навіщо робити різницю між користувачем або ядром? Наприклад, чи є ядро ​​однопотоковим, тому, якщо мій процес пов’язує ядро ​​системним викликом, тоді інші повинні чекати?
JohnMudd

27

Час процесора користувача : кількість часу, протягом якого процесор працював над конкретною програмою.

Системний час процесора : кількість часу, протягом якого процесор працював над функціями операційної системи, підключеними до цієї конкретної програми.


7
Яке джерело цього тексту?
натискання клавіші

11
Організація та дизайн комп’ютерів: апаратно-програмний інтерфейс - Девід А. Паттерсон, Джон Л. Хеннессі - Сторінка 30
N Randhawa

1
Тож можна мати 0 системного часу для якогось процесу, якщо ядро ​​не виконує жодного конкретного потоку, якщо я добре розумію
HoCo_

22

Термін "час процесора користувача" спочатку може трохи ввести в оману. Щоб бути зрозумілим, загальний час (реальний час процесора) - це поєднання кількості часу, витраченого процесором, виконуючи певну дію для програми, і кількості часу, витраченого процесором, виконуючи системні дзвінки для ядра від імені програми. Коли програма переглядає масив, вона накопичує час процесора користувача. І навпаки, коли програма виконує системний виклик, такий як exec або fork, вона накопичує системний час процесора.


4

На основі wikipedia :

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