2011-09-07 56 views
84

我可以根據名稱進行猜測,但UNIX中的掛鐘時間,user-cpu-time和system-cpu-time具體是什麼?UNIX中的掛鐘時間,user-cpu-time和system-cpu-time具體是什麼?

用戶cpu時間是花在執行用戶代碼上的時間量,而kernel-cpu時間是由於需要特權操作(如IO到磁盤)而花費在內核上的時間量?

什麼單位的時間是該測量英寸

而且是掛鐘時間真的進程所花費的CPU上或者是名字只是誤導的秒數?

回答

86

牆上時鐘時間是指牆上的時鐘(或手錶上的一個時鐘)測量爲在過程開始和'現在'之間經過的時間。

user-cpu時間和system-cpu時間幾乎與您所說的一樣 - 花在用戶代碼上的時間以及花費在內核代碼上的時間量。

單位是秒(和亞秒,可能是微秒或納秒)。

掛鐘時間不是進程在CPU上花費的秒數;它是經過的時間,包括等待打開CPU的時間(其他進程開始運行)。

+1

那麼這是否意味着掛鐘時間總是會比cpu時間大**? – Pacerier

+9

@Prier:在單核心機器上,是的,但多核心機器和多線程程序每秒可以使用超過1個CPU秒。 –

+0

@JonathanLeffler謝謝你的回答,我想知道已經過去的納秒數,但是使用公式'CPUtime = #clock_cycles/clock_rate'來計算CPU時間不能與計算經過時間相同。你知道我是否可以從CPU時間獲取經過的時間嗎? – Bionix1441

25

掛鐘時間:根據計算機的內部時鐘流逝的時間,它應該與外界的時間相匹配。這與CPU使用率無關;它僅供參考。

用戶CPU時間和系統時間:正是您的想法。包括I/O調用(如read,write等)在內的系統調用通過跳入內核代碼並執行它來執行。

如果掛鐘時間爲< CPU時間,那麼您正在並行執行程序。如果掛鐘時間> CPU時間,則表示您正在等待磁盤,網絡或其他設備。

所有的測量都是以秒爲單位,每SI

5

掛鐘時間正是它說,由時鐘在牆上(或手錶)

用戶CPU時間是在「用戶空間」所花費的時間來測量經過的時間,也就是時間花在非內核進程

系統cpu時間是花在內核上的時間,通常用於系統調用的時間。

相關問題