2013-04-13 146 views
2

我正在瀏覽GNU/Linux程序的源代碼top。我想了解它是如何計算每個進程的CPU使用率的,但我沒有太多的運氣。「top」如何計算CPU使用率?

有問題的源代碼在GitHub

+0

我們不是來「指針」或「提示」。這是問答,而不是聊天或論壇。請問一個具體的,題目上的問題。 –

+0

也許你應該在論壇上詢問你有興趣的Linux發行版或類似的東西。 – Dzyann

回答

0

就像一切都在procps的工具包,該數據來自/proc虛擬文件系統,操作系統和Linux內核管理的人。根本沒有「計算」。

+0

我相信它會計算不同CPU使用率的百分比(通過計算從前一個'/ proc'數據得出的增量,以及每個字段有多少變化),但我同意所有的CPU和哪個進程都做了什麼都在OS中處理。 –

+0

@Josten:然後「通知」,而不是粗魯。事實上,讓我們決定不使用像「通知」這樣的傲慢的術語,我們呢?我不同意答案是不正確的。我們只是以不同的方式解釋這個問題。我相信OP指的是你的抽象層次較低,他想知道'top'如何通過獲取其他數據並應用計算來獲取每個進程的CPU使用率數據。答案是......它沒有。操作系統告訴它CPU使用率。是的,'top'對這些值進行一些後處理,以不同的方式呈現它們,但它們是相同的數據。 –