2011-04-29 7 views
0

CPU 사용량이 특정 시점에 도달했을 때 알림을 받기 위해 시스템 호출이 있는지 확인하는 데 어려움이 있습니까? 나는 리눅스/BSD 변종에 대한 전화를 찾고 있는데, Windows 버전도 알고 있다면 나중에 참조 할 수있을 것입니다.C/C++에서 CPU 사용률 이벤트 알림?

kqueue와 비슷한 점.

분명히/proc/cpuinfo 또는 개별 utimes를 주기적으로 체크 아웃 할 수는 있지만보다 효율적인 방법으로 나를 위해 시스템 콜을 할 수 있기를 바랬습니다.

"마지막 순간의 평균 총 CPU 사용량이 50 %를 넘는 시점을 알려주십시오"

답변

0

찾고있는 API는 GetProcessTimes 및 GetSystemTimes입니다. This link에는 두 가지 사용 예가 있습니다. 추가 질문이 있으시면, 제가 직접 CPU 사용량을 결정하기 위해 사용 했으므로 언제든지 물어보십시오.

+0

내가 전에 이것을 사용했지만, 그때까지 (또는 경우) 루프에서이 폴링 지속적으로 한 것 이벤트가 트리거 될 때까지 돌아 오지 않습니다. 임계 값이 지나갈 때마다 계속해서 통보해야합니다. – Jay

+0

스레드로 작업합니까? – wegginho

+0

이전에 가지고 있지만 스레드 마스터가 아닙니다. – Jay

1

당신은 getrusage()에서 CPU 사용 정보를 얻을 수 있습니다 당신이 (당신이 다음 신호 처리기 증가 할 수 있습니다) 미리 설정된 임계 값을 초과 할 때 SIGXCPU를 얻을 수 setrlimit()소프트 한계를 사용할 수 있습니다.

더 많은 정보 : kqueue 커널과 마찬가지로 추적하는 처리 어디에 사용이 임계 값을 통과 http://linux.about.com/library/cmd/blcmdl2_getrusage.htm

+0

필자는 이전에이 방법을 사용해 왔지만, 사용량이 임계 값을 넘을 때까지 계속 루프를 통해 폴링했습니다. 커널이 큐를 처리 할 때까지 커널이 처리 할 때까지 리턴하지 않습니다. 이벤트가 트리거됩니다. 임계 값이 지나갈 때마다 계속해서 통보해야합니다. – Jay