为什么我的电脑在切换创建用户的时候会卡死机?
了解不深,就嘗試套一下理論吧。
在現(xiàn)今流行的windows桌面機(jī)上,假如某個(gè)應(yīng)用的線程出現(xiàn)了死循環(huán),它是會(huì)消耗掉很多CPU時(shí)間,但不該100%占用甚至卡死系統(tǒng)。原因有兩點(diǎn),一是用完它的時(shí)間片,內(nèi)核會(huì)強(qiáng)制切換到別的線程上去執(zhí)行;另外多核的CPU,最多一個(gè)核被100%占用,其它線程還是能歡快地分享剩下的N-1個(gè)核。
寫了個(gè)死循環(huán)代碼在Win7 四核機(jī)器上做了個(gè)實(shí)驗(yàn),確實(shí)卡不死,只有一個(gè)核在100%,該進(jìn)程在24%~25%徘徊。
所以,猜測(cè)這是由于某個(gè)內(nèi)核線程的死循環(huán)
導(dǎo)致的,而非用戶態(tài)線程。Windows / Linux屬于非搶占式內(nèi)核,如果一段ring0代碼霸占著CPU某個(gè)核不放,就算處理過中斷還是會(huì)繼續(xù)霸占下去,不會(huì)切換到別的線程。如果還在自旋鎖的互斥保護(hù)范圍內(nèi),那另外的N-1核在事實(shí)上也被廢了。或者系統(tǒng)里其它各個(gè)用戶態(tài)線程的優(yōu)先級(jí)和這個(gè)死循環(huán)代碼在別的核上的兄弟代碼不對(duì)等,所以分到的CPU時(shí)間會(huì)極端少??jī)?nèi)核態(tài)死循環(huán)的殺傷力滿塞,這個(gè)我就沒做試驗(yàn)了。簡(jiǎn)言之,大概某個(gè)驅(qū)動(dòng)寫得忒爛了。
總結(jié)
以上是生活随笔為你收集整理的为什么我的电脑在切换创建用户的时候会卡死机?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 徐州房屋租赁登记备案证明在哪里办理?
- 下一篇: 企业会计准则备案信息填写?