在1980年代,计算机戏中中有泾渭分明的CPU、RAM、DISK,而到了2008年代,在RAM和DISK之间出现了基于FLASH的SSD,也就是固态硬盘,而到2013年,则会出现包括多种类型非易失性存储设备构建的Storage Class Memory,而到了2018年代,此时的HDD可能就会就此消失!
对于Windows来说,开机速度似乎不是微软关注的重点。操作系统的开机时间主要消耗在驱动的载入时间、新硬件的检测时间上,这是OS开机消耗时间的主因,如果给Windows里加上加载时间戳,主要的时间都消耗在载入sys文件(主要都是驱动),为什么休眠再开机很快?因为休眠恢复的过程中sys文件是不需要重新载入的,这里的载入是包含执行过程的,而不是单纯的load to memory,磁盘开销是很大的。微软为了兼容各个硬件,必须在开机时检测硬件。
最后,SCM的到来已经在倒计时了。两三年内估计Intel的产品就出来了。其他厂家的产品四五年内很可能也会出来。十年后我们就看到软件是如何使用SCM的了。 作者: eIxgQwRa 时间: 2017-12-15 09:38
不是很切题,不过值得补充一下。还有篇论文《Nonvolatile Memory is a Broken Time Machine》[1],在一致性的层面讨论了 nvram 对存储软件的影响。
内存有了持久性,并不等同于整台计算机所有状态的持久性,除了 RAM,易失的状态还有 CPU 寄存器、高速缓存、外部设备等等,要实现整台计算机状态的持久性,仍需要电池的硬件支持,和操作系统的 “你可以安全地断电了” 的电源管理支持。至于电池朝不保夕的移动设备(energy harvesting device),就不得不放弃这个选项,只能正面这个问题:内存里有了细粒度的持久性(随便 for 循环里面一个 i 变量都持久了),然而其他易失数据丢失导致不一致了怎么办。
如果 program counter 寄存器丢失了,程序断电重启之后回到开始位置重新执行,可能出现两种不一致: