虚拟内核对象Linux程序检查点用户级实现方法.docVIP

虚拟内核对象Linux程序检查点用户级实现方法.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
说 明 书 摘 要 本发明公开了一种基于虚拟内核对象的Linux程序检查点用户级实现方法,在应用层与系统API层之间插入检查点层,其中检查点层包括应用线程检查点控制层和内核对象状态跟踪记录与对象引用映射层,应用层对系统API的调用被重定向到检查点层;对应用线程设置执行位置标志;控制应用线程的检查点不落入内核对象状态跟踪记录与对象引用映射层、系统API层和内核层中。本发明在用户级为Linux应用程序进程在不同机器之间的迁移,为进程在动态环境下基于检查点的正确恢复提供支持,以实现负载平衡、系统容错和高效软件排错。 摘 要 附 图 权 利 要 求 书 1、一种基于虚拟内核对象的Linux程序检查点用户级实现方法,其特征在于,在应用层与系统API层之间插入检查点层,其中检查点层包括应用线程检查点控制层和内核对象状态跟踪记录与对象引用映射层,应用层对系统API的调用被重定向到检查点层,对应用线程设置执行位置标志:当应用线程的执行从应用层移入检查点层时,置位其执行位置标志,当应用线程的执行从应用线程检查点控制层返回应用层时复位其执行位置标志;控制应用线程的检查点不落入内核对象状态跟踪记录与对象引用映射层、系统API层和内核层中,进程检查点实现方法如下: 进程启动执行时,执行检查点初始化例程,完成系统API截获、检查点线程创建、检查点参数读取操作;该进程的进程检查点过程包括如下三个阶段: 使该进程的所有应用线程进入检查点就绪状态;该进程的检查点线程置位检查点标志,触发检查点中断信号;该进程的所有应用线程的执行将被中断,转去执行中断例程,在中断例程中,应用线程如果发现自己的执行位置标志在复位状态,则调用检查点例程;对执行位置标志为置位状态的应用线程,其执行从中断例程返回,并将移入应用线程检查点控制层,调用检查点例程;在检查点例程中,应用线程释放其拥有的所有同步对象,获取自身线程上下文,然后进入检查点就绪状态,等待进程状态快照完成; 进程状态快照获取:在该进程的所有应用线程进入检查点就绪状态后,该进程的检查点线程做进程状态快照,内容包括该进程的应用线程上下文、所有虚拟内核对象、应用线程栈,以及该进程中应用程序使用的堆、全局变量、申请的内存数据块; 执行恢复:进程状态快照完成后,该进程的检查点线程触发所有应用线程恢复执行:应用线程恢复拥有其在第一阶段释放的同步对象,然后等待检查点线程的通知,在所有应用线程都恢复拥有其同步对象之后,检查点线程触发所有应用线程恢复执行,运行态线程恢复其正常执行,等待态线程则重新调用等待API函数进入等待状态。 说 明 书 基于虚拟内核对象的Linux程序检查点用户级实现方法 技术领域 本发明涉及一种捕获Linux应用程序进程状态,以及恢复进程状态使其继续执行的方法,具体是一种基于虚拟内核对象的Linux程序检查点用户级实现方法。 背景技术 进程检查点可以分别在操作系统级、用户级或者应用级实现,各有其特点。操作系统级实现的进程检查点对用户程序透明,容易得到进程的内核数据结构,但需要修改系统内核,其可配置性和移植性差,检查点开销也大。用户级的进程检查点将检查点功能实现部分编译为一个库并链接到应用程序,可以实现对应用程序透明,具有易于配置且开销较小的特点。不过其实现机制与操作系统平台相关,平台移植性较差。应用级检查点的优点是能够实现平台无关性,可在不同的操作系统间移植,其不足之处是对应用的限定多,只能对部分应用程序有效。 由于用户级的进程检查点具有对应用程序透明、易于配置、开销较小且实用等特点,因此很多检查点系统都选择在用户级实现。Unix、Windows、Linux是目前使用最广的操作系统,在用户级实现进程检查点都已有一些方法。 进程状态包括用户空间状态和内核空间状态。用户空间状态在进程用户地址空间和CPU寄存器中,在用户级可以直接对其进行访问。内核空间状态是指与目标进程相关的系统内核对象及其状态。内核空间由操作系统管理,在用户级不能对其直接进行访问。现有获取内核空间状态的方法是跟踪进程对系统API的调用,然后基于跟踪信息来判定内核空间状态。 进程用户空间状态和内核空间状态存在耦合关系,即用户空间状态中存有内核空间中相关对象的引用。在用户级对系统内核对象进行访问操作,要求通过调用系统API来实现。在用户级通过调用系统API来创建(打开)系统内核对象时,操作系统返回一个对象引用。随后应用程序对内核对象的访问都是使用对象引用作为标识参数调用相应系统API来完成。在恢复时,系统重启,使用检查点信息来恢复进程状态,使进程从检查点状态继续执行。现有内核空间状态恢复方法是使用检查点信息通过系统API调用来完成。这种内核空间状态恢复方法不能实现严格一致的恢复,恢复后的用户空间状态和内核空间状态的耦合关系有可能被打破。具体来说,就

文档评论(0)

ipad0b + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档