- UID
- 3662
- 帖子
- 122
- 精华
- 0
- 贡献
- 0
- 推广
- 0
- 有效BUG
- 0
- 来自
- 风筝之都__山东潍坊
- 注册时间
- 2005-10-17
|
28#
发表于 2006-11-22 08:40
| 只看该作者
系统关机时要进行一系列的操作,包括:关闭窗口、结束进程和服务、保存数据等等。而像上面那样快速关机是否省掉了某些步骤,这样做又会不会对系统有所危害呢?
先来看看系统正常关机要经历哪些步骤:
①关机指令通知Windows子系统CSRSS.EXE,CSRSS.EXE,收到通知后会和Winlogon.EXE做一个数据交换,再由Winlogon.EXE通知CSRSS.EXE开始关闭系统的流程。
②CSRSS.EXE依次查询拥有顶层窗口的用户进程,让这些用户进程退出。
关于这样的坏处,我做了一次试验:
1. 普通关机,然后启动计算机,进入故障恢复控制台
2. 输入chkdsk X: /p (X为Windows所在盘符),检测
3. 结果显示没有错误。
4. 使用这个快速关机
5. 同样是进入控制台
6. 结果显示“至少有一个错误”。
很明显,不推荐这样做是有道理的。(这两次关机我是启动计算机之后直接进行的,其间没有作其他动作
,并且是等到系统启动结束后20s才做这次试验。)
这种关机实际上相当于将电源直接拔掉,不同的是,这种关机对于硬件而言等价于普通关机操作,对软件
系统而言是直接拔掉电源。
③接着开始终止系统进程。
以上3个步骤是整个Windows关机过程中最耗费时间的一段,大多数关机缓慢的原因都是因为这3个步骤引起的。
④Winlogon.EXE调用NtShutdownSystem()函数来命令系统执行后面的扫尾工作,最后关机。
看来Windows关机过程还挺复杂的。而使用Ctrl键关机或是使用某些快速关机软件,并不会经过完整的四步过程,而往往是跳过前三步而直接调用NtShutdownSystem()函数进行关机的。
很多软件在运行时会将数据写入内存,在退出时再保存到文件。如果不经过前面的步骤关机,会导至程序不能正常退出而丢失数据,这样就可能因重要数据丢失造成一些意外的错误,对系统是有危害的。
所以,在此建议大家尽量不要使用Ctrl键关机或是某些快速关机软件,毕竟数据的安全性比节省的那一点关机时间重要得多。 |
|