大家好,我是小匠。如果有朋友是經歷過windows95版本一定會記得——必須正確關機。當你想要關機的時候一定要打開開始菜單,然后點擊關機才行,絕對不可以直接按下電源鍵。
當時如果我們按下電源鍵,電源就會立刻被切斷,幸運一點的話下一次開機跑個磁盤檢測就行了,否則的話你未保存的文件可能就全部丟失了。這個設計在當時PC還屬于高端科技產品的時候和正常電器的使用習慣完全不同。在之后的Windows98以及XP系統中,引入了ACPI情況才得以改善,現在我們看一下按下電源后,現在主機都會發生什么。
當按下電源鍵后:
電源鍵抬起——PWRBTN#被觸發——PWRBTN-STS被置1——SCI產生
操作系統的OSPM發現SCI是電源鍵產生,隨后檢查用戶的電源鍵設置偏好。用戶可以設置睡眠或者關機。
如果是關機,通過各個應用程序保存退出,通知各個驅動程序電源事件,有序關閉應用以及驅動。
調用關機前的各個ACPI定義的Event
寫MADT表中的電源寄存器真正關機,進入G2/S5狀態
當你按下電源鍵不動,超過5秒時:
這就屬于強制關機操作,前一種方式需要操作系統的配合,當操作系統死機時,通過這種保護措施(Power button override)硬件會觸發強制關機,直接關閉CPU電源,進入G2/S5 狀態。雖然看起來像是直接關機了,其實這個操作仍然是跑完了一整個關機正常的硬件流程,和你直接拔電源不是一樣的。
所以,按下電源鍵之后,現在的電腦都會先嘗試安全關機,系統和固件在ACPI規范下共同工作,一步步安全的關閉主機。在操作系統卡死等極端情況下,長按電源鍵強制關機是最后手段,畢竟誰也不想強拔電源,在這種情況下,緩存中的數據是有可能丟失的。
再就是一些安裝機械硬盤的電腦,在突然斷電后,磁臂可能會對磁片造成傷害,但是現在的機械盤都有了較好的安全機制,當檢測到斷電后,會接著磁盤剩下的動能把磁臂歸為,所以一般只要臉不黑,硬盤都壞不了,所以不需要太過擔心。