中斷占用CPU的時間分析

2021-07-22 22:22:58 字數 839 閱讀 4323

本篇從一道題目出發理清楚這類題目想表達的意思。這類題目很有趣的一點在於,從不同的角度思考,複雜度是不一樣的。也就是,用正確的思路去想,就很簡單且自然。

假設乙個計算機系統具有如下效能特徵:處理一次中斷平均需要500us,一次程序排程平均需要花費1ms,程序的切換平均需要花費2ms。若該計算機系統的定時器每秒發出120次時鐘中斷,忽略其他中斷的影響,請問:

1)作業系統將百分之幾的cpu時間分配給時鐘中斷處理程式?

2)如果作業系統採用時間片輪轉排程演算法,24個時鐘中斷算乙個時間片,作業系統每進行一次程序的切換需要花費百分之幾的cpu時間?

雖然你也可能非常明確每乙個步驟的進行,或許你和我一樣但是一到如何計算占用cpu時間比例,就有些迷惑。

1) 這裡,每秒發出120次時鐘中斷和中斷處理聯絡怎麼理解?

可以這樣:每秒發出120個時鐘中斷,且每個中斷都必須要處理。留給每個中斷的處理時間便是:1/

120s

,再這樣去考慮處理一次中斷的用時

500u

s ,那麼就很容易求出所有的中斷處理程式占用cpu的時間比例是:

500us÷

(1/120)=

6%.2) 同樣我們用1)的思路去分析問題:24個時鐘中斷算乙個時間片,每乙個時間片結束就會進行程序的排程。所以每乙個排程的cpu時間段是24個時間片大小。而在24個時鐘中斷中,排程一次程序用時1m

s+2m

s=3m

s ,所以占用百分比是3m

s÷乙個

時間片=

1.5%

.應該指出,我們計算一段時間就能判斷總體的原因在於:用的是平均,因此可以將時間化為相等的段。

jstack分析cpu占用100

背景 執行測試程式後,top命令發現某個程序 pid 占用cpu達到100 檢視哪個執行緒占用最多資源 ps mp pid o thread,tid,命令檢視這個程序下面的所有執行緒占用情況。發現執行緒324占用最多。使用jstack進行跟蹤 jstack pid 進行檢視輸出到臨時檔案 jstac...

Linux jstack分析cpu占用100

執行測試程式後,top命令發現某個程序 pid 占用cpu達到100 檢視哪個執行緒占用最多資源 ps mp pid o thread,tid,命令檢視這個程序下面的所有執行緒占用情況。發現執行緒324占用最多。使用jstack進行跟蹤 jstack pid 進行檢視輸出到臨時檔案 jstack 3...

Mysql 占用cpu資源高的分析

在伺服器上執行命令,將 mysql 當前的環境變數輸出到檔案 output.txt d web mysql mysqld.exe help output.txt 發現 tmp table size 的值是預設的 32m,於是修改 my.ini,將 tmp table size 賦值到 200m d ...