[发明专利]程序运行方法、装置、设备以及存储介质在审
申请号: | 201810670779.6 | 申请日: | 2018-06-26 |
公开(公告)号: | CN110716758A | 公开(公告)日: | 2020-01-21 |
发明(设计)人: | 李成龙 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F8/61 |
代理公司: | 11452 北京展翼知识产权代理事务所(特殊普通合伙) | 代理人: | 屠长存 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 进程 运行时 程序处理 程序启动 程序运行 存储介质 加载程序 快速启动 快照进程 时间减少 运行状态 直接启动 重新构建 资源文件 保存 初始化 磁盘 跳过 内存 响应 恢复 | ||
本公开提出了一种程序运行方法、装置、设备以及存储介质。在程序启动过程中,使用进程加载程序所需的资源文件的至少一部分之后的时刻,保存进程的运行时,以得到进程的镜像进程。响应于程序的下一次启动,对镜像进程进行恢复,以得到与时刻对应的进程的运行状态一致的进程实体。由此,通过直接启动保存在磁盘上的镜像进程,可以减少乃至跳过资源的初始化部分,而且进程的内存分布也不需要重新构建,使用的是快照进程的运行时,使得程序处理的时间减少,从而达到快速启动目的。
技术领域
本公开涉及计算机技术领域,特别是涉及一种程序运行方法、装置、设备以及存储介质。
背景技术
在程序启动时,一般都需要加载一些固定的资源文件,这些资源文件加载时自身又需要初始化,导致程序启动时间比较长。
Linux系统提供了一种hibernate(休眠)方案。图1是示出了hibernate方案的系统架构图。从图1可以看出,hibernate涉及模块较多,需要设备驱动协作以及芯片厂家支持才能完成。具体地,在kernel(操作系统内核)层的Swap中,需要厂家指定预保留镜像的交换分区;在suspend及resume过程中,需要厂家实现针对snapshot的操作。因为在snapshot过程中,需要厂家保存kernel所有的上下文信息及内存信息;由于在Hibernate过程中,blockIO已经提前suspend,snapshot保存上下文信息时,需要操作block设备,此时需要厂家实现独立的读写block设备操作;针对特定的Device驱动,需要厂家实现安全稳定的状态保留和恢复机制,例如,GPU,3G modem,WIFI firmware等。可见,hibernate方案是对整个系统进行快照,虽然可以更加快速启动整个系统,但开销比较大,实现复杂,不够灵活。
因此,需要一种开销小、使用灵活的解决方案,来提高程序启动速度。
发明内容
本公开的一个目的在于提出一种能够提高程序启动速度的程序运行方案。
根据本公开的第一个方面,提出了一种程序运行方法包括:在程序启动过程中,使用进程加载程序所需的资源文件的至少一部分之后的时刻,保存进程的运行时,以得到进程的镜像进程;以及响应于程序的下一次启动,对镜像进程进行恢复,以得到与时刻对应的进程的运行状态一致的进程实体。
可选地,程序运行方法还包括:响应于程序的下一次启动,判断是否存在可用的镜像进程;以及在判定存在可用的镜像进程的情况下,执行对镜像进程进行恢复的步骤。
可选地,保存进程的运行时的步骤包括:获取进程当前的运行时状态;基于运行时状态,收集进程中的线程上下文;以及根据线程上下文,逐个将进程中的每个线程以及信号量写入文件并保存,以得到镜像进程。
可选地,收集进程中的线程上下文的步骤包括:将运行时状态形成参数列表传递到内核;根据参数列表在内核内调用进程实体;以及由内核收集当前调用的进程实体中的线程上下文,作为进程中的线程上下文。
可选地,对镜像进程进行恢复的步骤包括:对镜像进程进行解析,以得到运行时结构;根据运行时结构,创建进程结构;以及根据创建的进程结构,生成进程实体。
可选地,运行时包括进程当前运行状态下所对应的元素。
可选地,元素包括:堆栈;寄存器;内存布局;以及信号量。
可选地,程序运行方法还包括:在应用层中注册回调及错误处理机制,用于在保存进程的运行时出现错误的情况下,进行回调及错误处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810670779.6/2.html,转载请声明来源钻瓜专利网。