電腦宕機什麼問題(電腦宕機和什麼有關係)
又一個冷知識,電腦宕機的時候,主機依然在執行,那麼這個過程,電腦在幹什麼呢?
“電腦宕機”是十分常見的電腦問題,在我們使用電腦的時候,突然螢幕中的畫面就卡住不動了,包括滑鼠點選了也沒有任何的反應。
有的小夥伴想試著調出工作管理員,卻差點就把鍵盤上的【CTRL ALT DELETE】按爛。不管怎麼操作鍵盤,電腦都沒有一點反應。
最後,只能用粗暴的方法強制按關機鍵關機重啟。
好奇,在宕機的時候,電腦到底在幹什麼?
電腦的大腦是“CPU”,它的主要作用是進行運算和控制,處理著各種資訊。
電腦的CPU是一根死腦筋,它是不斷地取出指令來一條條執行,直到關機方休!
所以,電腦不會那麼容易宕機,除非出現這兩種情況。
一種是CPU擺爛不幹了,不再執行下一條指令。這屬於硬體宕機,出現這種情況是讓使用者感到最頭疼的。不過出現的概率很低,基本上不會發生。
另外一種就是軟體方面的宕機。CPU被困在了某個地方出不來,導致無法響應使用者的輸入,本該執行的程式得不到執行電腦就和宕機了一樣。
突然有個問題,我們是不是可以建立一個死迴圈命令讓電腦執行,故意把CPU困在裡面讓它出不去呢?
當然不行,用死迴圈就想把電腦搞宕機是不可能的。
因為作業系統會用“中斷”進行干預。
有了中斷的加入,CPU指令就多出了一個檢查中斷的步驟。中斷就是可以打斷CPU正常的工作,讓它去執行別處的指令程式。
我們最常見的是“時間中斷”,即便某個執行緒進入了死迴圈,在一定的時間後也要把CPU放出來,讓別的程式來接手。
另外,現在的cpu大都是多核,如果一個執行緒進入死迴圈,也有別的核可以參與系統排程呀,所以不會這麼容易就宕機。
接著回到連中斷都搞不定的宕機問題,cpu被困在哪裡出不來呢?
首先,中斷是有優先順序的,低優先順序的中斷無法打斷高優先順序的中斷。
例如cpu正在執行程式,突然發生了一箇中斷事件,cpu會儲存當前執行的去處理這個中斷事件,然而中途又出現了一個新的中斷。在處理中斷的時候,cpu運作在一個高的優先順序上,一般的中斷是無法把執行權搶過來的,所以就導致這顆cpu沒有響應,電腦就宕機了。
另外一種情況,中斷搶到了執行權,卻發現沒有執行緒可以調動!
比如,兩個執行緒a等待b,b等待a,且互相等待對方讓步,局面僵持,最後就成為“死鎖”。
“死鎖”出現在應用上,就會導致兩個應用崩了。而出現在核心中,就會讓電腦宕機: