사용자 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.