我希望这与编程有关.
在操作系统的关闭过程中究竟发生了什么,让我们将Linux作为其开源来源,并且可能有更多关于此的知识.
当计算机处于"清除"状态时,电源是否停止供电(上尉明显)?清楚状态的意思是CPU不再发生任何事情,等等.
为什么大多数操作系统需要很长时间才能关闭?我的意思是嘿,他们不需要初始化某些东西,甚至不需要将资源加载到内存中.
为什么操作系统不像"嘿,没关系 - 让我们终止所有流程结束只关闭电源"?
好吧,有时操作系统只是插拔.给'重启'正确的控制参数和splat.
如果对文件的修改是在内存中而不是刷新到磁盘怎么办?你可能想先把它们拿出来.
如果某个守护程序进程在文件的某些复杂更新中途会怎么样?你可能希望它完成.
如果一个守护进程需要告诉网络上的其他内容它将要离开以安排有序的离开,该怎么办?
为了处理所有这些,操作系统具有有序的关闭程序.在linux上,您可以通过查看/etc/rcN.d来查看香肠,N = 0,1,2,3,4.
以"K"开头的符号链接是关闭过程.
在过程结束时,在现代硬件上,操作系统会以某种方式关闭电源.这意味着什么取决于硬件.
最新的 Mac OS X Show Leopard 实际上做了一些相当有趣的事情:应用程序应该让自己处于“稳定”状态,这样它们就可以在没有警告的情况下终止。如果情况并非如此(在写入磁盘期间),他们必须让操作系统知道。然后,当您要求它关闭,并且所有应用程序都处于“稳定”状态时,操作系统实际上只是拔掉插头(在明显的与硬件相关的关闭完成后,例如将所有脏页写入磁盘,确保硬盘驱动器停止并停放等)。
大多数操作系统有时需要很长时间才能关闭的另一个原因是:您可能有很多应用程序有一段时间没有使用,因此被换掉了。为了彻底关闭它们,操作系统向它们发送 Terminate 消息。但是为了让他们对此做出反应并安全退出,他们必须再次换入。这发生在磁盘正忙于其他进程向其写入数据的同时...