728x90
반응형
대략적인 개요
Idle Task : Idle 태스크는 언제나 OS의 최하위 우선순위를 가지며 하는일은 단순한 32비트 정수를
증가시키는 일을 한다.
이제 이 Idle 태스크를 이용해서 매초간 현재 CPU의 사용량을 알아보고자 한다.
구현방법
1) Idle 태스크가 아무런 간섭없이 1초간 할수 있는 최대 작업량을 측정한다.
2) 매초마다 Idle 태스크의 작업량을 측정하고 초기화 한다.
3) 최초 측정한 최대 작업량과 매초마다 측정하는 태스크의 작업량을 이용해 100분율로 표시한다.
예) 1초간 Idle 태스크의 최대 작업량이 MAX이라고 생각하면
매초간 CPU 사용율 = 100 - ((매초Idle태스크 작업량 / MAX)*100)
이라고 보통 생각되지만 정수의 나눗셈이므로 언제나 결과값은 100으로 고정될 것이다.
그래서 최대작업량 / 100 을 더 해주자
결론적으로 CPU사용율 = 100 - (매초Idle태스크 작업량 / (MAX/100)) 이 될것이다.
고려해야 할 사항
- 현재 시스템에서 관리하는 태스크(TOP, STAT, IDLE) 외에 다른 태스크들이 준비상태에 있다.
- 1초간의 정확한 측정을 위한 방법
해결방안
- TOP, STAT, IDLE 태스크를 제외한 나머지 태스크를 래디테이블에서 삭제
- 통계태스크 초기화 후 제외한 태스크를 다시 등록
728x90