众所周知,现在不应该使用电源开关关闭计算机。但是,为什么呢?这是过去的体系结构遗留下来的神话吗?
是否仅是为了防止关闭时正在写入的数据被破坏(奖金:如何准确地破坏它?)?我敢肯定,断电后硬盘驱动器的阅读提示不会再在磁盘上崩溃(否则,我现在将没有HDD)。
更精确地讲,使用电源开关对计算机重新通电是否会使计算机更快磨损甚至损坏,为什么?(仅适用于硬件)?
众所周知,现在不应该使用电源开关关闭计算机。但是,为什么呢?这是过去的体系结构遗留下来的神话吗?
是否仅是为了防止关闭时正在写入的数据被破坏(奖金:如何准确地破坏它?)?我敢肯定,断电后硬盘驱动器的阅读提示不会再在磁盘上崩溃(否则,我现在将没有HDD)。
更精确地讲,使用电源开关对计算机重新通电是否会使计算机更快磨损甚至损坏,为什么?(仅适用于硬件)?
Answers:
它纯粹是软件。
当您写入磁盘时,它不会直接进入磁盘,而是进入缓存,然后在以后的某个时间点将缓存复制到实际磁盘。当高速缓存已满并且需要留出一些额外的空间时,或者仅在计算机没有执行其他重要操作时,或者经过专门指示。
关闭过程中的最后一项操作是将缓存刷新到磁盘。
如果仅关闭电源,该高速缓存中的数据将丢失。结果,您的数据可能会损坏。
关闭过程中发生的另一件重要事情是,指示所有正在运行的进程退出,这时关闭所有打开的文件并自行清理。
现代计算机具有许多级别的数据存储缓存。这是因为大多数存储设备使用较大的数据包进行读写时速度更快。操作系统将在RAM中保留写入一段时间。然后将它们发送到硬盘。它们在这里临时存储,同时等待硬盘驱动器到达正确的扇区。然后将它们写成。如果未彻底关闭系统电源,则整个链上的数据都可能丢失。
这实际上既是软件问题,又是硬件问题。
如先前在其他答案中所述,当前的体系结构使用许多缓存机制,以加快处理速度。断电时,即使您认为已将其写入文件,也会丢失尚未写入非易失性存储器的内容。这是数据丢失。这也可能导致数据损坏,因为某些文件系统的写入顺序与上述程序不同,以提高I / O速率。我听说有人禁用ext4中的乱序写操作以使某些软件文件损坏防护机制仍然有效,而ext4开发人员告诉此类程序应使用fsync来确保文件系统行为。
还有硬件问题。残酷的断电可能导致过电压或过电流,这主要是由于某些电气组件(主要是电动机)的感应行为所致。但是,设计良好的硬件应能够防止后续损坏。它的价格要贵一些,但是,如果您购买的计算机具有一年的保修期(甚至是可选件),或者至少可以处理客户退货,那么制造商增加反激二极管的成本要比处理客户退货的成本低。因此,除了非常便宜的电源外,我在这里并不担心。
值得注意的是,今天避免残酷关机的原因与30年前的原因有所不同。30年前,文件系统对电源故障非常敏感,因此您可以破坏文件系统本身。今天,从理论上讲,您可能会损坏文件,而不是整个文件系统。实际上,如果您想要高端的最新性能,则将切换到SSD。固态驱动器使用托管闪存,通常是多层单元NAND闪存(这意味着双层单元),有时是三层单元。使用这些技术,由于在写入过程中断电,您可能会损坏正在写入的页面,但也会破坏同一块中的一个或两个其他页面。在文件系统级别,一个文件的修改可能会损坏另一个文件,甚至是文件系统数据。由于磨损均衡,垃圾收集,以及其他正确和重定位机制,即使文件系统不需要来自SSD的任何活动(也称为后台操作),也可能发生写入,因此从文件系统的角度来看,损坏是不可预测的。为了避免这种损坏,一些SSD制造商在其SSD上增加了一个电容器,以便在检测到功耗时终止闪存上正在进行的任何操作(这大约需要10ms的电源)。SD卡和USB闪存驱动器具有相同的约束,但不能具有此类电容器。一些SSD制造商在其SSD中添加了电容器,以在检测到功率损耗时终止正在进行的闪存操作(这大约需要10ms的电源)。SD卡和USB闪存驱动器具有相同的约束,但不能具有此类电容器。一些SSD制造商在其SSD中添加了电容器,以在检测到功率损耗时终止正在进行的闪存操作(这大约需要10ms的电源)。SD卡和USB闪存驱动器具有相同的约束,但不能具有此类电容器。
简而言之,设计良好的硬件通常可以防止功耗,但价格更高。软件大部分时间都是省电的,但是有时其他软件的发展可能会打破假设。任何进行更便宜的设计或最小化设计的尝试都可能降低使设计抗功耗的能力。也很难知道您的计算机是否始终能够抵抗残酷的功耗。
电气开关将瞬态电压输入电源。(瞬态电压极高,宽度极窄。实际上,根据我在四年制电子学课程中的定义,瞬态电压是极窄宽度的无限电压。)如果没有足够的滤波,则这些尖峰会损坏电子器件。机械开关也容易响铃。振铃是电源线上的振荡,可能引起类似的问题。
尽管上述许多答案对于软件都是正确的,但也必须考虑电子硬件。
缺少的答案仍然是当前的答案:计算机在强制关机时(例如在“拔下的电源线等”中)会损坏电子设备。(这不适用于电源开关,因为它会执行“安全”的电源循环,不会损坏电子设备,对稳定的HDD状态不利,或者会导致数据丢失,如上所述)。
强制断开电源时会发生突然的电涌(认为是“尖峰”),在极少数情况下可能会超过滤波器极限/ IC击穿电压。如果在CMOS或其他内存中发生这种情况,则可能会永久损坏“单元”或损坏“单元”上的数据。如今这已是一件罕见的事情,大多数系统对此都有对策(可能会失败)。
如果使用电机(例如磁盘驱动器),则这种情况尤其如此。由于降速有时会导致其一条线(+ 12,+ 5,-5,0)出现尖峰。这不一定是电动机本身的电源线(由于“重影”)。
低于5伏的信号很少这样做,因为大多数IC设计为以5伏信号工作,尽管有些处理器利用3.3V作为其最大电压,但大多数情况下仍会屏蔽与5 V相同的信号。
@samuel,是的,我是。但是工作电压会指示您可以“预期”哪种感应尖峰(隔离器/保护器件或数量)