사용자 CPU 시간 대 시스템 CPU 시간?


답변:


62

차이점은 시간이 사용자 공간 또는 커널 공간에서 소비되는지 여부입니다. 사용자 CPU 시간은 프로그램의 코드 (또는 라이브러리의 코드)를 실행하는 프로세서에 소요 된 시간입니다. 시스템 CPU 시간은 프로그램을 대신하여 운영 체제 커널에서 코드를 실행하는 데 소요 된 시간입니다.


1
"* .dll"파일을 실행하는 데 사용되는 것은 무엇입니까?
user472221 2010

4
@ user472221 dll은 Win 개념입니다. 귀하의 질문은 OS 경계하지 않습니다
박사 벨리 사리우스

1
@ user472221 내 대답은 UNIX / Linux를 기반으로합니다. Windows에서도 동일한 개념이 적용되어야합니다. Windows가 선을 그리는 위치는 확실하지 않지만 대부분의 DLL은 사용자 공간이라고 생각합니다. 프로그램이 CPU 시간을 사용하는 곳을 정말로 알고 싶다면 프로파일 러를 사용하십시오.
Michael Ekstrand 2010

1
"사용자 공간"과 "커널 공간"이 "사용자 / 커널 모드"와 같습니까? 커널이 실행 중이지만 사용자 모드 인 경우이 계정이 사용자 시간 또는 시스템 시간으로 간주됩니까? 아니면 마이크로 커널에서만 실질적인 차이가 있습니까?
Antonis Christofides

사용자 또는 커널을 구분하는 이유는 무엇입니까? 예를 들어, 커널이 단일 스레드이므로 내 프로세스가 커널과 시스템 호출을 묶으면 다른 사람들이 기다려야합니까?
JohnMudd

27

사용자 CPU 시간 : 프로세서가 특정 프로그램에서 작업 한 시간입니다.

시스템 CPU 시간 : 프로세서가 특정 프로그램에 연결된 운영 체제의 기능에 대해 작업 한 시간입니다.


7
이 텍스트의 출처는 무엇입니까?
keypress

11
컴퓨터 구성 및 설계 : 하드웨어 / 소프트웨어 인터페이스-David A. Patterson, John L. Hennessy-페이지 30
N Randhawa

1
그래서 내가 잘 이해한다면 커널이 특정 스레드에서 실행되지 않으면 일부 프로세스에 대해 0 시스템 시간을 가질 수 있습니다
HoCo_

22

'사용자 CPU 시간'이라는 용어는 처음에는 약간 오해의 소지가 있습니다. 명확하게 말하면, 총 시간 (실제 CPU 시간)은 CPU가 프로그램에 대해 일부 작업을 수행하는 데 소비하는 시간과 CPU가 프로그램을 대신하여 커널에 대한 시스템 호출을 수행하는 데 소비하는 시간의 조합입니다. 프로그램이 배열을 반복 할 때 사용자 CPU 시간이 누적됩니다. 반대로 프로그램이 exec 또는 fork와 같은 시스템 호출을 실행하면 시스템 CPU 시간이 누적됩니다.


4

위키 백과를 기반으로 :

  • 사용자 시간 은 CPU가 사용자 공간에서 코드를 실행 하느라 바빴던 시간입니다.
  • 시스템 시간 은 CPU가 커널 공간에서 코드를 실행 하느라 바빴던 시간입니다. 이 값이 스레드 또는 프로세스에 대해보고되는 경우, 예를 들어 스레드가 시스템 호출을 발행 한 후 커널이 실행 컨텍스트를 대신하여 작업을 수행 한 시간을 나타냅니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.