论文部分内容阅读
进程检查点机制是在进程正常运行的适当时刻设置检查点,将进程状态保存到稳定存储器中。如果在随后的运行过程中发生故障,从存储器中读出保存的进程状态,将进程卷回恢复,继续运行,从而避免从头开始执行,减少计算损失。 随着WinNT操作系统的不断普及,基于该操作系统下的应用也越来越广泛。WinNT软件的容错性越来越受到重视。WinNT是不公开内核的操作系统,许多研究通过实现用户级进程检查点系统,在不修改系统内核的前提下来提高WinNT软件的容错性。 本文首先对进程检查点技术以及目前国内外研究的现状进行综述。通过分析现有用户级进程检查点系统,总结了实现进程检查点系统的难点和需要解决的问题。接着介绍了实现检查点系统的关键技术及其原理:DLL的注入,API函数的截获,活动文件的保存和恢复等。 本文着重介绍了用户级进程检查点系统NTckpt的设计与实现。该系统由两部分组成:DLL注入模块InjectDll和检查点库T-FAULT.DLL。InjectDll模块实现了在执行文件中透明的插入检查点库。检查点库T-FAULT.DLL是系统的核心,实现API函数截获和包裹,进程状态的获取、保存与恢复。 进程回卷恢复时,NTckpt系统采用了完全一致恢复进程用户地址空间的方法,与现有系统中的非一致恢复相比不仅可以消除原有方法在恢复进程状态时存在的隐患还可以减少系统截获和包裹的API调用,简化进程状态的恢复。 检查点时间间隔选取是影响检查点系统性能的一个方面。本文利用时间序列分析方法为进程状态大小情况建立模型,预测进程检查点开销较小的时刻放置检查点,动态确定检查点的时间间隔。实验表明使用该方法可以帮助用户设置合适的检查点间隔,有效的减小检查点的开销。