首页
/
每日頭條
/
生活
/
計算機死機指什麼
計算機死機指什麼
更新时间:2025-02-03 04:02:23

今天花幾分鐘跟大家分享一個很有意思又能漲知識的問題:電腦死機的時候到底在幹什麼?

計算機死機指什麼(計算機死機的時候)1

電腦死機,應該每個接觸計算機的小夥伴都經曆過吧。

尤其是早些年,電腦配置還沒現在這麼高的時候,多開幾個重量級應用程序,死機就能如約而至,就算你把鍵盤上的CTRL ALT DELETE按爛了,任務管理器也出不來,最後隻能默默含淚長按關機按鈕,強制關機。

那麼,你有沒有想過,電腦在死機的時候,它到底在幹嘛呢?

衆所周知,計算機的核心中樞是中央處理器CPU。上過計算機基礎課程的同學都被教導過:CPU是一根筋死腦筋,隻知道不斷的取出指令來一條條執行,直到關機方休。

所以理論上,死機分為兩種,一種是CPU罷工不幹了,不再執行下一條指令了,這屬于硬件死機,不過這種情況基本不會發生。

更多的是軟件層面的死機,也就是CPU被困在了某個地方出不來了,導緻本該執行的程序得不到執行,看起來就是死機了一般。

聰明的你可能馬上想到,如果寫一個死循環,把CPU陷在裡面出不去,是不是就能死機了?比如這樣:

void dead_loop {while (1) {...}}

你可以試一下,會發現為CPU降溫的風扇可能會轉起來,但計算機依舊能正常工作,并沒有死機。

死循環,CPU不是應該一直在這裡轉圈嗎?難道不會死機?

這就不得不提到一個概念:中斷

中斷

中斷這個概念,絕對是計算機史上最偉大的發明之一。

中斷,顧名思義,用于打斷CPU正常的工作,讓它去執行别處的指令程序。

操作系統之所以能夠掌控全局,就得益于它啟動時給CPU安插的一系列的中斷處理函數(比如我們最常見的時鐘中斷),好讓操作系統能周期性的收回CPU的執行權,調度别的線程來執行。

所以,即便你某個線程進入了死循環,在你的時間片用完之後,也得乖乖交出CPU,讓别的程序來執行。

想用一個死循環就把電腦搞死機,那自然是不可能的。

其實想來也是,如果這麼容易就給你搞死機了,那這操作系統也太菜了吧,新手如果剛學編程,還不得一天強制重起電腦十幾回?

退一萬步講,就算不考慮中斷的影響,現在的CPU大都是多核,一個線程進入死循環,但還有别的核可以參與系統調度,也依然不會死機。

那麼回到開始的問題,那到底CPU被困在了哪裡出不來,連中斷都拿它沒辦法呢?

其實有兩種情況:

1、中斷确實拿它沒辦法

很多人都知道中斷的概念,但很多人不知道,中斷也是有優先級的。

這很容易理解,比如CPU正在執行程序,突然發生了一個中斷事件。CPU保存好當前執行的上下文,轉頭去處理這個中斷事件,但剛處理到一半兒,這時又有一個新的中斷事件來了,那CPU怎麼辦?要不要響應?

所以中斷也有優先級之分,低優先級的中斷無法打斷高優先級的中斷。

有了這個前提來試想一下,如果由于操作系統内核代碼寫的不當,在處理某個中斷的時候陷入了死循環,比如自旋鎖,會發生什麼?

因為在處理中斷的時候,CPU運行在一個很高的優先級上,一般的中斷是無法把執行權搶過去的,這就導緻這顆CPU核心成為了“植物人”,怎麼叫它都沒反應了。

2、中斷能搶到CPU,但發現沒有線程可以調度

程序員們對死鎖這個概念應該不陌生,兩個線程A等待B,B等待A,兩個線程互相等待對方讓步(釋放鎖),形成僵持局面,最後成為死鎖。

如果死鎖發生在應用層面,那問題不大,最多就是兩個程序死了。但如果發生在内核呢?

比如在Windows操作系統内核中,就有大量的全局性的鎖,一個不小心造成死鎖,其他想要的線程都得進入等待隊列,那就涼涼了。

計算機死機指什麼(計算機死機的時候)2

引用一段另一位大神Tim Chen的描述(我覺得特别形象):

計算機死機指什麼(計算機死機的時候)3

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
一輩子不想換的網名男
一輩子不想換的網名男
1、三生萬物2、唯愛3、星空迷上山野4、屌絲紳士5、不如笑着放手6、狂浪~7、白甯.8、靈魂操控者9...
2025-02-03
建行一類卡二類卡區别
建行一類卡二類卡區别
1、建行一類卡在建設銀行隻能辦理一張,二類卡則沒有這樣的限制,不過在建設銀行辦理儲蓄卡的數量最多不能...
2025-02-03
炒鍋選什麼材質的好雙立人炒鍋怎麼樣
炒鍋選什麼材質的好雙立人炒鍋怎麼樣
第一、陶制炒鍋是用沙土燒制而成的,花樣多造型也多,但是在選購這類炒鍋的時候不要選擇有彩釉的,因為其中有鉛等重金屬。第二、鐵質炒鍋是最常見的了,但是鐵炒鍋自身的傳熱性是比較弱的,比起鋁制的話就要稍微弱一點。第三、鋁制炒鍋的傳熱性比較好,并且重量也比較輕盈,造型也比較美觀,但是鋁制品不要用來裝酸性食物,...
2025-02-03
買公寓房的優點是什麼
買公寓房的優點是什麼
1、由于政策因素,住宅在當前嚴厲的限購限貸政策下,已将沒有購房資質的群體拒之門外。而有住房需求和投資需求的群體在不能選擇住宅時,隻能退而求其次的考慮公寓,用公寓作為一個過渡。2、公寓的建築面積普遍偏小,目前市場上的産品大多在30~50平左右(但也有100平以上),而且單價與住宅相比也相對低一些,總價...
2025-02-03
小蘇打洗衣方法是什麼
小蘇打洗衣方法是什麼
1、先用小勺取用小蘇打,把小蘇打灑在衣服污漬處,小蘇打有很好的除污效果,尤其是白衣服。2、污漬處再滴上洗衣液,加強除污效果同時,美化衣物。3、倒上清水。4、浸泡15分鐘。5、用手揉搓衣物。6、換一盆清水,搓洗幹淨衣物後直接晾幹即可。7、利用小蘇打洗衣服就完成了,晾幹後可見衣物變的很幹淨了。
2025-02-03
Copyright 2023-2025 - www.tftnews.com All Rights Reserved