原因分析:
我們還是先從單核CPU的角度來說這個(gè)問題。一個(gè)CPU同一時(shí)間其實(shí)只能處理一條指令。但實(shí)際上我們?cè)谑褂糜?jì)算機(jī)時(shí)可能會(huì)處理多個(gè)工作,比如同時(shí)在瀏覽網(wǎng)頁,聽音樂等等。
此時(shí),CPU是劃分成多個(gè)時(shí)間片,分別來處理這些事務(wù)。比如每個(gè)人物花費(fèi)1ms的時(shí)間去進(jìn)行處理,那這里就要引入一個(gè)中斷的概念,也就是說當(dāng)1個(gè)事務(wù)還未完全處理時(shí),如果其分配的時(shí)間片用完或者有高優(yōu)先級(jí)程序需要搶先運(yùn)行,那么就會(huì)通過中斷機(jī)制,暫停前一個(gè)進(jìn)程的運(yùn)行,空出資源運(yùn)行下一個(gè)進(jìn)程。
這就是中斷進(jìn)程的功能。如果你所運(yùn)行的程序都是對(duì)實(shí)時(shí)性要求比較高,或者互相之間會(huì)爭搶優(yōu)先級(jí)的話,就可能導(dǎo)致中斷進(jìn)程占用資源上升,特別是當(dāng)程序之間有沖突等情況的話,該項(xiàng)資源可能所占據(jù)的資源會(huì)更高。
解決方法:
所謂“系統(tǒng)中斷”可以理解為系統(tǒng)命令自相矛盾陷入死循環(huán)了,你看下“系統(tǒng)中斷”占用CPU大的時(shí)候CPU頻率是不是幾乎100%了?而且你剛開機(jī)是不會(huì)的,就是某個(gè)時(shí)間開始出現(xiàn),只要不重啟,注銷用戶也沒用。
出現(xiàn)這個(gè)問題,是因?yàn)槟愀膭?dòng)了電源計(jì)劃配置,比如在編輯計(jì)劃設(shè)置那里,你選了計(jì)算機(jī)進(jìn)入睡眠狀態(tài)為“從不”,然后你又在更改高級(jí)電源設(shè)置那里,在此時(shí)間后休眠這一選項(xiàng),填了具體的分鐘數(shù),比如“360分鐘”,這樣開機(jī)滿6小時(shí)的時(shí)候,這邊說要休眠,那邊說從不睡眠,就進(jìn)入”系統(tǒng)中斷“自相矛盾了,也可以理解為Win7的Bug之一。
解決辦法就是恢復(fù)電源選項(xiàng)的默認(rèn)設(shè)置,或者,如果你選了計(jì)算機(jī)進(jìn)入睡眠狀態(tài)為“從不”,高級(jí)設(shè)置的休眠時(shí)間那里填上“0”分鐘(0分鐘=從不休眠),這樣就不沖突了。
所以一些系統(tǒng)設(shè)置導(dǎo)致的系統(tǒng)陷入死循環(huán)很有可能會(huì)導(dǎo)致系統(tǒng)中斷占用很高的CPU,如果遇到的朋友不妨檢查一下是不不上述的設(shè)置影響到你的電腦。
有興趣的可以再驗(yàn)證一下:從不睡眠,然后高級(jí)選項(xiàng)休眠時(shí)間那里填“5”分鐘,包你5分鐘后出現(xiàn)“系統(tǒng)中斷”占用CPU急劇上升。