windows8怎么关机_按下电源键后发生了什么?电脑是如何关机的?
在Windows启动后,最自然的关机方式是什么呢?当然是按下电源键了。有没有好奇,当我们按下电源键,会发生什么呢?为什么Windows可以选择关机或者睡眠?背后的机理又是什么呢?
历史
如果你曾经使用过Windows95,你一定会记得当时的一个铁律,必须正确关机!我们要点击关机菜单,在三个选项中选择关机才好。像这样按下电源键是绝对不行的:
我们按下电源键真的会立刻切断整机电源,如果你足够幸运,下次也许跑个Scandisk就行了,如果你没有这么幸运,你没有保存的文件可能就丢失了!这个设计简直是反人类,和我们其他电器的使用习惯完全不同。幸亏当时PC还是高大上的高科技产品而不是现在四处可见的普通电器,否则微软一定会被骂死。
Window98和随后的WindowsXP引入了ACPI,情况才得到改善。我们来一起看一看当我们按下电源键后会发生什么。
原理
我们把按下电源键分成两种情况:一、按一下立刻抬起。二、按住不动超过5秒。这里需要ACPI的背景知识(ACPI与UEFI - 知乎专栏)。
1。按一下
ACPI定义了两种电源键:Fixed hardware power button和Control method power button。Fixed hardware power button一般对应南桥或者SOC中的PWRBTN#引脚,而Control method power button一般可以用GPIO等扩展,它需要在ACPI table中报告_HID(PNP0C0C)设备并提供_GPE Event。为了简单起见,我们以最常见的PWRBTN#来说明整个流程:
1. 用户按下电源键,并抬起。
2. PWRBTN#被触发。
3. PWRBTN_STS被置1。
4. SCI产生。
5. 操作系统的OSPM发现SCI是电源键产生,随后检查用户的电源键设置偏好。用户可以设置睡眠或者关机。
6. 如果是关机,通知各个应用程序保存退出;通知各个驱动程序电源事件。有序关闭应用和驱动。
7. 调用关机前的各个ACPI定义的Event。
8. 写MADT表中的电源寄存器真正关机,进入G2/S5状态。
2。按住不动超过5秒
这是一种强制关机操作。前一种操作需要OS配合,如果系统已经死机了呢?我们总不能拔电源插头或者抠出来电池吧,这是一种保险措施了。这个操作叫做Power button override。在PWRBTN#上,硬件都有专有的Timer来计时,超过5秒还没有抬起,就触发了强制关机,硬件会直接关闭CPU电源,进入G2/S5状态。
Tips
1。如何选择按下电源键后进入关机还是睡眠?
在控制面板的电源选项里选择,如下图:
也可以用命令行powercfg。
2。如何在命令行关机
用shutdown命令:
该命令还有重启等功能,可以配合mstsc远程重启。
结论
按下电源键,比较新的电脑先会尝试安全关机。操作系统和固件在ACPI规范下共同工作,不同分工,一步步安全关闭计算机。在操作系统死机等特殊情况下,用户可以尝试按住电源键不动5秒钟以上,硬件会自动强制关闭电源。这是最后一个手段,保证用户可以在极端条件下拥有强制关闭电脑的权利,毕竟谁也不想强拔电源(有时条件也不允许)。当然这种条件下,缓存中数据是有可能丢失的。
最新的电脑,如果不改变电源策略,按下电源键就是关闭电脑,而且是安全关闭。习惯老Win95的用户完全没有必要害怕直接按下电源键。
按下电源键如何开机的呢?见另一篇文章:按下电源键后发生了什么?电脑是如何优雅地开机的?
扩展阅读
1.实际上SOC和主板上有很多power rail,关机并不是简简单单切断电源就好了,有复杂的关闭各个power rail的时序,大家可以看看芯片手册了解一下。
2. ACPI 5.0后增加了10秒的power button override,需要Windows Blue + 平台支持并且BIOS需要报告_DSM,见: https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/windows-button-array-device-specific-method---dsm-
3. 其他平台的电源状态欢迎阅读本专栏的其他文章:
老狼:按下电源键后发生了什么?电脑是如何优雅地开机的?zhuanlan.zhihu.com
老狼:Reset重启后发生了什么?它和关机后再开机有什么区别?zhuanlan.zhihu.com
July:一起学习电脑如何睡眠S3zhuanlan.zhihu.com
老狼:CPU省电的秘密(一):EISTzhuanlan.zhihu.com
老狼:CPU省电的秘密(二):CStateszhuanlan.zhihu.com
老狼:睿频:榨干CPU所有的潜力(CPU电源管理系列番外篇)zhuanlan.zhihu.com
欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿!
windows8怎么关机_按下电源键后发生了什么?电脑是如何关机的?相关推荐
- 华为手机怎么强制关机_华为手机电源键这么神?你只拿来锁屏关机,白浪费这么强的黑科技...
阅读本文前,请您先点击上面的蓝色字体"生活妙招噻",再点击"关注",这样您就可以继续免费收到内容了.每天都有分享.完全是免费订阅,请放心关注. 手机电源键你用来 ...
- 笔记本电脑如何强制关机_长按电源键强制关机会损害笔记本硬件吗?联想:不会但不建议...
如今电脑性能和稳定性已经有了明显进步,尤其是内存的翻倍.SSD硬盘的加入,已经摆脱了动不动卡死.蓝屏的状况. 正因为此,"长按电源键强制关机"的操作已经越来越少,不过以Window ...
- 按下 Home 键后发生了什么事?
后台有位小伙伴分享了一个头条的面试题:按下手机的 Home 键,有哪些动作和事件发生? 今天我们就来分析一下,本文源码基于 Android - 28 事件的分类 安卓系统中的事件,主要有以下几种: 按 ...
- 针对xps13无法开机,按下电源键亮几秒无反应的问题
背景:2018.3.24晚我初学git后,关机睡觉.第二天,起来第一件事就是打开电脑继续我的学习.这个时候,TM的电脑出问题了,怎么都无法开机.我慌了,长按1分钟,30秒......都快要把电源键按烂 ...
- 当我们按下电源键,Android 究竟做了些什么?
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由goo发表于云+社区专栏 相信我们对Android系统都不陌生,而Android系统博大精深,被各种各样的智能设备承载的同时,我们会否 ...
- int 9中断例程-;在屏幕中间依次显示'a'~'z',并可以让人看清。 在显示的过程中,按下Esc键后,改变显示的颜色...
;在屏幕中间依次显示'a'~'z',并可以让人看清. ;在显示的过程中,按下Esc键后,改变显示的颜色 assume cs:code stack segment db 128 dup(0) stack ...
- textbox控件输入内容后按下Enter键后执行button1的click方法
对于Asp.Net.在TextBox1中输入内容后,按下enter键后,执行Button1的click方法,在page_load事件增加如下代码即可实现: TextBox1.Attributes.Ad ...
- 键盘按下某键 停止运行java_Java:按下“Q”键后终止while循环
我有下面这个java程序,它在没有while循环的情况下工作正常,但我想运行执行,直到用户从键盘按下Q键.Java:按下"Q"键后终止while循环 那么,什么样的条件应该放在wh ...
- stm32按下复位键后程序停止运行,重新上电又可以运行
文章目录 问题描述 一.问题排查 二.问题原因 1.boot引脚没有地或者VCC 总结 问题描述 今天遇到了一个比较有意思的问题,大致就是在做蓝牙串口通信时,发现自己焊接的板子出现了按下reset键时 ...
最新文章
- 超详细的Python matplotlib 绘制动态图
- [PKUSC2018]真实排名——线段树+组合数
- Flink SQL Client注册JAVA UDF完整流程
- DCASE三次挑战赛概览
- linux文件编程(1)—— open、write、read、lseek、阻塞问题
- java十六进制大小端转换_字节顺序
- linux的驱动开发——简单驱动程序编写
- 简单的线性回归实现模型的存储和读取
- centos yum安装php5.5,奇妙伞-Centos下使用yum安装PHP5.5,5.6,7.0
- c语言中十进制与十六进制转换_小猿圈分享-java-十进制、八进制、十六进制数互相转换...
- 阿里巴巴数据中台实践分享
- 如何下载和安装iOS 15公测版【附更新建议】
- [0CTF 2016] piapiapia 题解
- easyexcel 简介、中文文档、中英对照文档 下载
- 功能测试(六)—— APP测试之互联网公司的必备知识
- 流利阅读 2019.2.23 China’s Forbidden City opens to the general public at night for the first time in 94
- 在线客服系统的功能介绍
- 8086cpu指令系统———作业3
- 使用安全令牌保护 RTMP 流
- 107-周跳探测之MW
热门文章
- 在Android中运用RxJava
- web.xml文件书写规则
- kindeditor编辑器
- 20 Tips to Simplify Your Digital and Online Life
- python代码实现中心化_数据预处理——标准化(附python代码)
- appium文件夹下无.bin文件_手把手教你Win10应用商店文件夹无权限访问怎么处理
- mysql主主同步稳定吗_MySQL主主同步
- HALCON 20.11:深度学习笔记(11)---目标检测
- Python+OpenCV:K-Means聚类
- 基于机器视觉的铁片轮廓检测