Czas procesora użytkownika a czas procesora systemu?

80

Czy mógłbyś wyjaśnić więcej na temat „czasu procesora użytkownika” i „czasu procesora systemu”? Dużo czytałem, ale nie mogłem tego dobrze zrozumieć.

user472221
źródło

Odpowiedzi:

62

Różnica polega na tym, czy czas jest spędzany w przestrzeni użytkownika, czy w przestrzeni jądra. Czas procesora użytkownika to czas spędzony na procesorze, który uruchamia kod programu (lub kod w bibliotekach); czas procesora systemu to czas spędzony na uruchamianiu kodu w jądrze systemu operacyjnego w imieniu programu.

Michael Ekstrand
źródło
1
który z nich jest używany do uruchamiania plików „* .dll”?
user472221
4
@ user472221 dll to koncepcja Win. Twoje pytanie nie jest związane z systemem operacyjnym
dr belisarius
1
@ user472221 Moja odpowiedź jest oparta na systemie UNIX / Linux; ta sama koncepcja powinna mieć zastosowanie w systemie Windows. Domyślam się, że większość bibliotek DLL jest przestrzenią użytkownika, chociaż nie jestem pewien, gdzie Windows rysuje linię. Jeśli naprawdę chcesz dowiedzieć się, gdzie Twój program wykorzystuje czas procesora, użyj profilera.
Michael Ekstrand
1
Czy „przestrzeń użytkownika” i „przestrzeń jądra” to to samo, co „tryb użytkownika / jądra”? Jeśli jądro działa, ale w trybie użytkownika, czy to konto jest czasem użytkownika, czy czasem systemowym? Czy jest to praktyczna różnica tylko w przypadku mikrojądra?
Antonis Christofides
Po co rozróżniać użytkownika lub jądro? Na przykład, czy jądro jest jednowątkowe, więc jeśli mój proces wiąże jądro z wywołaniem systemowym, to inni muszą czekać?
JohnMudd
27

Czas procesora użytkownika : ilość czasu, przez jaki procesor pracował nad określonym programem.

Czas procesora systemu : czas, przez jaki procesor pracował nad funkcjami systemu operacyjnego połączonymi z tym konkretnym programem.

N Randhawa
źródło
7
Jakie jest źródło tego tekstu?
keypress
11
Organizacja i projekt komputera: interfejs sprzętowy / programowy - David A. Patterson, John L. Hennessy - Strona 30
N Randhawa
1
Możliwe jest więc
zerowanie
22

Termin „czas procesora użytkownika” może na początku wprowadzać w błąd. Aby było jasne, całkowity czas (rzeczywisty czas procesora) jest połączeniem ilości czasu, jaki procesor poświęca na wykonanie jakiejś czynności dla programu i ilości czasu, jaki procesor spędza na wykonywaniu wywołań systemowych dla jądra w imieniu programu. Gdy program przechodzi w pętlę przez tablicę, gromadzi czas procesora użytkownika. I odwrotnie, gdy program wykonuje wywołanie systemowe, takie jak exec lub fork, gromadzi czas procesora systemu.

user3407861
źródło
4

Na podstawie Wikipedii :

  • Czas użytkownika to czas, przez jaki procesor był zajęty wykonywaniem kodu w przestrzeni użytkownika.
  • Czas systemowy to czas, przez jaki procesor był zajęty wykonywaniem kodu w przestrzeni jądra. Jeśli ta wartość jest zgłaszana dla wątku lub procesu, to reprezentuje ilość czasu, przez jaki jądro wykonywało pracę w imieniu wykonywanego kontekstu, na przykład po tym, jak wątek wykonał wywołanie systemowe.
keypress
źródło