操作系統的系統開銷比率怎麼計算?
01-07
如題:就緒隊列中有10個進程,時間片設置為200ms,CPU進程切換要花費10ms,則系統開銷所佔比率是多少?
下面的講解是這樣計算的:2x10/(2*200)=5%為什麼不這樣算呢?10/(10+200)
我猜題主你的理解操作系統調度應該是這樣的:
時鐘中斷 時鐘中斷
|----任務執行200ms----&>|-操作系統調度10ms-&>|----任務執行200ms----&>|-....
可是實際上是這樣的:
時鐘中斷 時鐘中斷
|-操作系統調度10ms-&>|----任務執行(200-10)ms----&>|-....
也就是說,操作系統調度耗時本身要算到時鐘的時間片里的。
因為操作系統的調度邏輯是:發生中斷-&>處理調度-&>發生中斷-&>處理調度...
一個時間片長度就是兩次中斷的時間長度。
所以操作系統開銷可以大概理解為:
調度耗時/時間片長度:10/200 = 5%推薦閱讀:
※為什麼要了解進程與線程的區別,了解二者的區別有什麼意義呢?
※安卓系統的通病後台啟動進程過多,待機狀態下就占內存一半,怎麼解決這種問題呢?
※如何看待針對 Windows 系統的 "AtomBombing" 內存注入攻擊 ?
※在單線程的情況下,NodeJs是如何分發子任務去執行的?
※操作系統用戶級線程能夠調用內核嗎?