瀏覽量:76次
又一個(gè)冷知識(shí),電腦死機(jī)的時(shí)候,主機(jī)依然在運(yùn)行,那么這個(gè)過(guò)程,電腦在干什么呢?
“電腦死機(jī)”是十分常見(jiàn)的電腦問(wèn)題,在我們使用電腦的時(shí)候,突然屏幕中的畫(huà)面就卡住不動(dòng)了,包括鼠標(biāo)點(diǎn)擊了也沒(méi)有任何的反應(yīng)。
有的小伙伴想試著調(diào)出任務(wù)管理器,卻差點(diǎn)就把鍵盤(pán)上的【CTRL ALT DELETE】按爛。不管怎么操作鍵盤(pán),電腦都沒(méi)有一點(diǎn)反應(yīng)。
最后,只能用粗暴的方法強(qiáng)制按關(guān)機(jī)鍵關(guān)機(jī)重啟。
好奇,在死機(jī)的時(shí)候,電腦到底在干什么?
電腦的大腦是“CPU”,它的主要作用是進(jìn)行運(yùn)算和控制,處理著各種信息。
電腦的CPU是一根死腦筋,它是不斷地取出指令來(lái)一條條執(zhí)行,直到關(guān)機(jī)方休!
所以,電腦不會(huì)那么容易死機(jī),除非出現(xiàn)這兩種情況。
一種是CPU擺爛不干了,不再執(zhí)行下一條指令。這屬于硬件死機(jī),出現(xiàn)這種情況是讓用戶感到最頭疼的。不過(guò)出現(xiàn)的概率很低,基本上不會(huì)發(fā)生。
另外一種就是軟件方面的死機(jī)。CPU被困在了某個(gè)地方出不來(lái),導(dǎo)致無(wú)法響應(yīng)用戶的輸入,本該執(zhí)行的程序得不到執(zhí)行電腦就和死機(jī)了一樣。
突然有個(gè)問(wèn)題,我們是不是可以創(chuàng)建一個(gè)死循環(huán)命令讓電腦執(zhí)行,故意把CPU困在里面讓它出不去呢?
當(dāng)然不行,用死循環(huán)就想把電腦搞死機(jī)是不可能的。
因?yàn)椴僮飨到y(tǒng)會(huì)用“中斷”進(jìn)行干預(yù)。
有了中斷的加入,CPU指令就多出了一個(gè)檢查中斷的步驟。中斷就是可以打斷CPU正常的工作,讓它去執(zhí)行別處的指令程序。
我們最常見(jiàn)的是“時(shí)間中斷”,即便某個(gè)線程進(jìn)入了死循環(huán),在一定的時(shí)間后也要把CPU放出來(lái),讓別的程序來(lái)接手。
另外,現(xiàn)在的cpu大都是多核,如果一個(gè)線程進(jìn)入死循環(huán),也有別的核可以參與系統(tǒng)調(diào)度呀,所以不會(huì)這么容易就死機(jī)。
接著回到連中斷都搞不定的死機(jī)問(wèn)題,cpu被困在哪里出不來(lái)呢?
首先,中斷是有優(yōu)先級(jí)的,低優(yōu)先級(jí)的中斷無(wú)法打斷高優(yōu)先級(jí)的中斷。
例如cpu正在執(zhí)行程序,突然發(fā)生了一個(gè)中斷事件,cpu會(huì)保存當(dāng)前執(zhí)行的去處理這個(gè)中斷事件,然而中途又出現(xiàn)了一個(gè)新的中斷。在處理中斷的時(shí)候,cpu運(yùn)作在一個(gè)高的優(yōu)先級(jí)上,一般的中斷是無(wú)法把執(zhí)行權(quán)搶過(guò)來(lái)的,所以就導(dǎo)致這顆cpu沒(méi)有響應(yīng),電腦就死機(jī)了。
另外一種情況,中斷搶到了執(zhí)行權(quán),卻發(fā)現(xiàn)沒(méi)有線程可以調(diào)動(dòng)!
比如,兩個(gè)線程a等待b,b等待a,且互相等待對(duì)方讓步,局面僵持,最后就成為“死鎖”。
“死鎖”出現(xiàn)在應(yīng)用上,就會(huì)導(dǎo)致兩個(gè)應(yīng)用崩了。而出現(xiàn)在內(nèi)核中,就會(huì)讓電腦死機(jī):
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請(qǐng)您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們?cè)诖_認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776