大家好,我是小匠。如果有朋友是經(jīng)歷過windows95版本一定會記得——必須正確關(guān)機(jī)。當(dāng)你想要關(guān)機(jī)的時候一定要打開開始菜單,然后點擊關(guān)機(jī)才行,絕對不可以直接按下電源鍵。
當(dāng)時如果我們按下電源鍵,電源就會立刻被切斷,幸運一點的話下一次開機(jī)跑個磁盤檢測就行了,否則的話你未保存的文件可能就全部丟失了。這個設(shè)計在當(dāng)時PC還屬于高端科技產(chǎn)品的時候和正常電器的使用習(xí)慣完全不同。在之后的Windows98以及XP系統(tǒng)中,引入了ACPI情況才得以改善,現(xiàn)在我們看一下按下電源后,現(xiàn)在主機(jī)都會發(fā)生什么。

當(dāng)按下電源鍵后:
電源鍵抬起——PWRBTN#被觸發(fā)——PWRBTN-STS被置1——SCI產(chǎn)生
操作系統(tǒng)的OSPM發(fā)現(xiàn)SCI是電源鍵產(chǎn)生,隨后檢查用戶的電源鍵設(shè)置偏好。用戶可以設(shè)置睡眠或者關(guān)機(jī)。
如果是關(guān)機(jī),通過各個應(yīng)用程序保存退出,通知各個驅(qū)動程序電源事件,有序關(guān)閉應(yīng)用以及驅(qū)動。
調(diào)用關(guān)機(jī)前的各個ACPI定義的Event
寫MADT表中的電源寄存器真正關(guān)機(jī),進(jìn)入G2/S5狀態(tài)
當(dāng)你按下電源鍵不動,超過5秒時:
這就屬于強(qiáng)制關(guān)機(jī)操作,前一種方式需要操作系統(tǒng)的配合,當(dāng)操作系統(tǒng)死機(jī)時,通過這種保護(hù)措施(Power button override)硬件會觸發(fā)強(qiáng)制關(guān)機(jī),直接關(guān)閉CPU電源,進(jìn)入G2/S5 狀態(tài)。雖然看起來像是直接關(guān)機(jī)了,其實這個操作仍然是跑完了一整個關(guān)機(jī)正常的硬件流程,和你直接拔電源不是一樣的。
所以,按下電源鍵之后,現(xiàn)在的電腦都會先嘗試安全關(guān)機(jī),系統(tǒng)和固件在ACPI規(guī)范下共同工作,一步步安全的關(guān)閉主機(jī)。在操作系統(tǒng)卡死等極端情況下,長按電源鍵強(qiáng)制關(guān)機(jī)是最后手段,畢竟誰也不想強(qiáng)拔電源,在這種情況下,緩存中的數(shù)據(jù)是有可能丟失的。
再就是一些安裝機(jī)械硬盤的電腦,在突然斷電后,磁臂可能會對磁片造成傷害,但是現(xiàn)在的機(jī)械盤都有了較好的安全機(jī)制,當(dāng)檢測到斷電后,會接著磁盤剩下的動能把磁臂歸為,所以一般只要臉不黑,硬盤都壞不了,所以不需要太過擔(dān)心。