windows - 安装软件后重启系统

标签 windows restart

<分区>

为什么有些软件在windows中需要系统restart? 同时,我从未在基于 Linux 的发行版中遇到过这种情况。

最佳答案

Windows 的设计方式与生俱来。加载可执行文件不会将文件加载到 RAM 中。 Windows 会为可执行文件创建一个内存映射文件。程序 block 仅在需要时按需加载到 RAM 中。页面错误从文件中复制 4096 个字节。 RAM 页面本身不受页面文件支持。如果其他进程需要 RAM,则 Windows 会简单地取消映射该页面并丢弃它包含的字节。如果进程再次登陆页面,则页面错误会从文件重新加载 RAM。非常高效,当您需要在仅 16 兆字节的 RAM 中运行 32 位操作系统和许多进程时,这非常重要。今天仍然高效,但不像以前那么重要。

内存映射文件的一个副作用是它在文件上加了一个写锁。有必要防止其他进程更改可执行文件。那将是灾难性的,RAM 可能在文件中包含新旧字节的混合。这肯定会导致程序出现故障。

当然,这会让故意更改可执行文件的程序变得更加困难。顺便说一句,包括恶意品种。因此必须停止加载文件的进程,它会释放写锁。通过 Windows Update 提供的更新往往会更新无法轻松卸载的可执行文件,因为它们是操作系统的一部分。这就是他们往往需要重新启动的原因,当机器重新启动时,该文件会作为启动序列的一部分进行更新。

绕过锁定的一种方法是重命名 文件。锁只保护文件数据,不保护目录条目。然后您可以创建一个与旧目录同名的新目录条目。下次进程启动时,它将使用新条目。一个小问题是您最终必须删除重命名的文件。

关于windows - 安装软件后重启系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18080381/

相关文章:

windows - 像打开文本文件一样打开文件(即使其扩展名不是 .txt)

windows - 在 PowerShell 和命令提示符上选择某些内容时避免暂停任务

iphone - 如果应用程式意外关闭,应如何重新启动

android - 服务中的 BroadcastReceiver : Design Issues

android - 如何防止 Android 在调用相机 Intent 后重新启动应用程序?

c# - 检测 Windows 重新启动是否是由于 Windows 更新

python - 自动调整命令行窗口大小

java - 如何生成带有双反斜杠或正斜杠分隔符的目录路径?

linux - 如何在 docker 容器内自动启动服务

tomcat - 重新启动 Tomcat7 时出现奇怪的响应