当 PC 关闭时会发生什么?

ss4*_*768 61 windows shutdown

当我单击关闭按钮时,它会给我另一个屏幕说关闭

关闭

在这个阶段实际发生了什么?

我认为在 Windows XP 中,它会在关闭电源之前说诸如保存设置之类的内容。但是,如果您在应用主题时或单击应用时保存了某些设置,则可以保存哪些设置。

如果它正在卸载HD,那么它肯定与强制关闭(拔掉插头)相同

Kel*_*ari 68

很多事情在停机期间发生的事情。这里仅举几个例子:

  • 检查是否有任何用户应用程序尚未关闭(如未保存的文档)并在必要时提示用户
  • 停止后台服务
  • 等待来自打开的正在运行的服务和应用程序的终止信号
  • 将缓存刷新到磁盘
  • 写入日志文件
  • 所有用户都已注销
  • 结束外壳
  • 如有必要,开始安装 Windows 更新,并在必要时告诉操作系统在启动时完成更新
  • 发送 ACPI 关机信号(这是关闭机器的原因)

编辑:如果您能想到其他项目,请随时在评论中添加更多内容。

  • 在 Win10 的情况下,将您的所有“私人”信息发送给 Microsoft。 (76认同)
  • 一个好的操作系统也会抑制笔记本电脑盖子引起的挂起。当我再次打开笔记本电脑时,我讨厌关机程序是什么。 (30认同)
  • 在 Linux 上,它还将熵池存储在磁盘上。这对您的下一次启动很重要。还是我错了? (7认同)
  • @Ben 花费的时间远远超过微秒。这就是为什么需要这么长时间 (6认同)
  • 操作系统礼貌地要求每个正在运行的进程(包括服务和驱动程序)停止正在执行的操作并自行清理。它们不仅仅是被杀死,而是在操作系统开始用刷新缓冲区和缓存来整理自己之前 (5认同)
  • @Ben:除了将缓存写入磁盘之外,以上所有内容都需要微秒。这就是最初发明磁盘缓存的原因 - 写入磁盘很慢。虽然现代磁盘速度相当快,但现代数据却相当大。写回 1GB 缓存(是的,这是正常的)需要时间。 (4认同)
  • 您需要使文件系统进入稳定状态。至少,您必须刷新所有内核空间缓冲区和(也许)刷新硬件缓冲区。您可能还需要根据文件系统的性质编写某些类型的元数据。这通常是您在 ACPI 断电之前要做的最后一件事,因为在那之后,您无法将任何内容保存到磁盘。 (3认同)

zza*_*zur 13

系统注册表(可能?)写入磁盘。回到 XP,我注意到如果您对注册表进行了任何更改然后拔掉电源,更改将不会被保存。这个我不是很确定,只是指出来。

这是 Microsoft 发布的文档的摘录。

• 系统会话关闭。此阶段包括关机前通知和关机通知子阶段:

• 关机前通知。Windows 连续关闭所有注册以接收关闭前通知的服务。有序服务——设置了依赖服务关闭顺序的服务——在非有序服务之前关闭。

• 关机通知。所有注册接收关闭通知的服务都将并行关闭。如果所有服务在 20 秒(在 Windows Vista 中)或 12 秒(在 Windows 7 客户端操作系统中)后仍未退出,系统将继续关机。未及时关闭的进程和服务会在系统关闭时继续运行。

• 内核关闭。系统的其余部分,如所有设备和驱动程序,在内核关闭阶段关闭。


基本上,您正在等待的是每个单独的服务进行清理和退出。每个服务在被杀死之前有 12 秒的时间退出。

一半的关机时间专门用于关闭系统服务。如果您真的很想知道关机期间什么时间专用于什么,Windows 包含一个用于跟踪关机时间的工具。

xbootmgr -trace shutdown -numRuns 3 -resultPath %systemdrive%\traces -postBootDelay 180 -traceFlags base

并理解生成的文件(确保在 %systemdrive%\traces 中运行)

xperf -i trace.etl -o summary.xml -a 关机

来源:更新:来自 Microsoft 服务器的链接不再有效

download.microsoft.com/download/3/C/A/3CA9058B-7EE5-4191-99E2-DB5917877522/OnOffTransPerf.docx

https://s3-us-west-1.amazonaws.com/omarpersonal/OnOffTransPerf.docx

download.microsoft.com/download/7/E/7/7E7662CF-CBEA-470B-A97E-CE7CE0D98DC2/OnOffTrans.docx

https://s3-us-west-1.amazonaws.com/omarpersonal/onofftrans.docx