특정 프로세스의 CPU 점유율을 구하고 있는데

/proc/(특정 프로세스의 PID)/stat에서 1초 간격으로
예전 시간의 user mode jiffies(A)와 kernel mode jiffies(B)의 값과 (A+B) => (old_jiffy)
현재 시간의 user mode jiffies(C)와 kernel mode jiffies(D)의 값을 각각 구하고 (C+D) => (cur_jiffy)

/proc/stat의
예전 시간의 시스템 전체에서 사용하는 user mode jiffies(a)와 idle jiffies(b)의 값과 (a+b) => (old_tot_jiffy)
현재 시간의 시스템 전체에서 사용하는 user mode jiffies(c)와 idle jiffies(d)의 값을 각각 구하여 (c+d) => (cur_tot_jiffy)

(cur_jiffy - old_jiffy) / (cur_tot_jiffy - old_tot_jiffy) * 100 로 계산을 하였는데

ps나 top으로 나온 값과 달라서 질문을 드립니다. 혹시 다른 방법이 있나요..?
내가 놓치고 있는 인자라도..... ㅠ.ㅠ