[发明专利]通用寄存器保留恢复的实现方法有效
申请号: | 201910891118.0 | 申请日: | 2019-09-20 |
公开(公告)号: | CN112540871B | 公开(公告)日: | 2022-10-04 |
发明(设计)人: | 黄高阳;郑岩;王星焱;林海南;刘松;邹通 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F9/30;G06F9/54 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 通用 寄存器 保留 恢复 实现 方法 | ||
本发明公开一种通用寄存器保留恢复的实现方法,进程保留方法:用户进程调用系统调用ioctl函数;在ioctl函数中设置进程flag保留/恢复标志位;内核态切换到用户态,根据linux信号处理机制进入到对保留/恢复标志位判断;如果存在保留/恢复标志位,进入do_work_pending处理函数;do_work_pending处理函数将内核栈上的通用寄存器$0~$29全部保存到文件或指定内存中;进程恢复方法:其前三步骤与进程保留方法步骤相同,内核态切换到用户态,根据linux信号处理机制会进入到对保留/恢复标志位判断。本发明解决了通用寄存器保留不完整的问题。
技术领域
本发明涉及一种通用寄存器保留恢复的实现方法,属于国产申威多核服务器操作系统技术领域。
背景技术
在高性能计算中,由于大型应用课题平均运行时间常常超过高性能计算机群(High Performance Computing,HPC)系统的有效稳定运行时间,因此用户大型应用课题需要使用检查点技术进行容错。系统级的保留恢复是一种对用户透明的检查点技术,其中涉及到一个重要的技术点就是进程的系统级保留恢复。进程的系统级保留恢复是用户进程通过特定的系统调用接口进入到操作系统内核态,在内核态保留进程的空间、信号、通用寄存器等信息到文件中;恢复时,用户恢复进程通过特定的系统调用接口进入到操作系统内核态,在内核态从保留的文件中恢复用户进程的空间、信号以及寄存器信息。
当前在国产申威多核服务器操作系统中,主要是在系统调用中保存用户进程的部分寄存器,寄存器$9~$15由于与编译器约定是不保留的,因此在进程的系统保留中无法保留这些寄存器,只能在进程的系统中保留寄存器$0~$8,$16~$29。由此可知,在国产申威多核服务器操作系统的保留/恢复流程中,由于走的是通用的系统调用流程,无法保存$9~$15这几个寄存器,因此对于某些应用会导致恢复失败;同时,国产申威处理器上的操作系统无法完整的保留所有的通用寄存器,因此有可能造成进程恢复时不正确。
发明内容
本发明的目的是提供一种通用寄存器保留恢复的实现方法,该通用寄存器保留恢复的实现方法解决了通用寄存器保留不完整的问题。
为达到上述目的,本发明采用的技术方案是:一种通用寄存器保留恢复的实现方法,包括进程保留方法和进程恢复方法,所述进程保留方法包括以下步骤,
S11、用户进程通过用户态系统调用进入内核态,用户进程调用系统调用ioctl函数;
S12、在所述ioctl函数中设置进程flag的保留/恢复标志位;
S13、用户进程通过用户态系统调用进入内核态执行完成后,内核态切换到用户态,根据linux信号处理机制,会进入到对保留/恢复标志位的判断;如果存在保留/恢复标志位,进入do_work_pending处理函数,否则不进入do_work_pending处理函数;
S14、do_work_pending处理函数中将内核栈上的通用寄存器$0~$29全部保存到文件或指定内存中;
所述进程恢复方法包括以下步骤,
S21、用户进程通过用户态系统调用进入内核态,用户进程调用系统调用ioctl函数;
S22、在所述ioctl函数中设置进程flag的保留/恢复标志位;
S23、用户进程通过用户态系统调用进入内核态执行完成后,内核态切换到用户态,根据linux信号处理机制,会进入到对保留/恢复标志位的判断;如果存在保留/恢复标志位,进入do_work_pending处理函数,否则不进入do_work_pending处理函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910891118.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:通信域的集中式管理方法
- 下一篇:用户发起的运行时状态检测方法