大家好,我是小匠。如果有朋友是经历过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规范下共同工作,一步步安全的关闭主机。在操作系统卡死等极端情况下,长按电源键强制关机是最后手段,毕竟谁也不想强拔电源,在这种情况下,缓存中的数据是有可能丢失的。
再就是一些安装机械硬盘的电脑,在突然断电后,磁臂可能会对磁片造成伤害,但是现在的机械盘都有了较好的安全机制,当检测到断电后,会接着磁盘剩下的动能把磁臂归为,所以一般只要脸不黑,硬盘都坏不了,所以不需要太过担心。