软件程序的重启方法及装置制造方法及图纸

技术编号:10786846 阅读:66 留言:0更新日期:2014-12-17 13:48
本发明专利技术实施例提供一种软件程序的重启方法及装置。本发明专利技术软件程序的重启方法,包括:调用服务进程为软件程序进程分配独立内存块;将所述独立内存块以只读方式映射到所述软件程序进程空间虚拟内存块以生成读数据通道;将所述服务进程与所述软件程序进程通过进程间通信生成写数据通道,在向所述虚拟内存块写入数据时;在重启所述软件程序进程时,重新生成所述读数据通道和写数据通道,以使所述软件程序进程通过所述读数据通道获取所述独立内存块中的数据或通过所述写数据通道更新所述独立内存块中的数据。本发明专利技术实施例在软件程序进程重启时,通过只读方式映射获取独立内存块中保存的数据,以解决软件重启时比较慢的问题。

【技术实现步骤摘要】
【专利摘要】本专利技术实施例提供一种软件程序的重启方法及装置。本专利技术软件程序的重启方法,包括:调用服务进程为软件程序进程分配独立内存块;将所述独立内存块以只读方式映射到所述软件程序进程空间虚拟内存块以生成读数据通道;将所述服务进程与所述软件程序进程通过进程间通信生成写数据通道,在向所述虚拟内存块写入数据时;在重启所述软件程序进程时,重新生成所述读数据通道和写数据通道,以使所述软件程序进程通过所述读数据通道获取所述独立内存块中的数据或通过所述写数据通道更新所述独立内存块中的数据。本专利技术实施例在软件程序进程重启时,通过只读方式映射获取独立内存块中保存的数据,以解决软件重启时比较慢的问题。【专利说明】软件程序的重启方法及装置
本专利技术实施例涉及计算机操作系统技术,尤其涉及一种软件程序的重启方法及装置。
技术介绍
互联网和通信业务的普及以及计算机和通信技术的飞速发展使得无处不在的网 络服务正在成为可能,同时也对网络系统中软件程序的高可用性(High Availability,简 称HA)和可靠性提出了更高的要求。除了无故障运行能力之外,从故障中快速恢复的能力 也是衡量高可用性系统的一个重要指标。 -般地,当运行的软件程序发生故障时,可以通过简单地重启软件程序来恢复提 供业务。目前,为了避免软件程序运行时的重要状态数据丢失,在重启软件程序时,有两种 处理方式:第一种,在操作系统内核中设置一固定进程,用于存储软件程序运行时重要的状 态数据,当软件程序发生错误重启时从预留的内存中恢复重要状态数据;第二种,将软件程 序运行时的重要状态数据备份存储于文件或者数据库,重启软件程序时从文件或者数据 库中加载状态数据。 然而,现有的两种处理方式都存在保存的数据恢复比较慢的问题:第一种处理 方式,因为预留内存和软件程序在不同的地址空间,因此软件程序在读写数据时导致额外 的系统调用开销,如进程间通信(Inter-Process Communication,简称IPC)或者内存复 制的开销;第二种处理方式,在存储和恢复数据时,文件和数据库访问操作受输入/输出 (Input/Output,简称I/O)读写效率低的限制,影响软件程序重启时读写数据的速度。
技术实现思路
本专利技术实施例提供一种软件程序的重启方法及装置,以解决软件重启时保存的数 据恢复比较慢的问题,以实现软件的高可用性。 第一方面,本专利技术实施例提供一种软件程序的重启方法,包括: 调用服务进程为软件程序进程分配独立内存块; 将所述独立内存块以只读方式映射到所述软件程序进程空间虚拟内存块以生成 读数据通道,且在从所述虚拟内存块读取数据时,通过所述读数据通道从对应的独立内存 块中获取数据; 将所述服务进程与所述软件程序进程通过进程间通信生成写数据通道,且在向所 述虚拟内存块写入数据时,通过所述写数据通道将数据写入到对应的独立内存块中; 在重启所述软件程序进程时,重新生成所述读数据通道和写数据通道,以使所述 软件程序进程通过所述读数据通道获取所述独立内存块中的数据或通过所述写数据通道 更新所述独立内存块中的数据。 在第一方面的第一种可能的实现方式中,在向所述虚拟内存块写入数据时,通过 所述写数据通道将数据写入到对应的独立内存块中,包括: 若待写数据为批量处理数据时,在批量处理数据中增加起始和结束标识以表示所 述批量处理数据的起始和结束; 通过所述写数据通道将批量处理数据写入到对应的独立内存块中。 根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式 中,通过所述写数据通道将批量处理数据写入到对应的独立内存块中,包括: 将所述独立内存块中的数据备份到对应分配给所述独立内存块的备份内存块 中; 通过所述写数据通道将批量处理数据写入到对应的独立内存块中,且判断批量处 理数据中是否含有结束标识,若是,则清空所述备份内存块中的数据。 在第一方面的第三种可能的实现方式中,所述读数据通道和写数据通道为封装的 编程访问接口,以供所述软件程序进程运行时调用。 根据第一方面,第一方面的第一种至第三种可能的实现方式中,在第一方面的第 四种可能的实现方式中,还包括: 在软件程序进程执行完成后,释放所述独立内存块。 第二方面,本专利技术实施例提供一种软件程序的重启装置,包括: 分配模块,用于调用服务进程为软件程序进程分配的独立内存块; 读数据模块,用于将所述独立内存块以只读方式映射到所述软件程序进程空间虚 拟内存块以生成读数据通道,且在从所述虚拟内存块读取数据时,通过所述读数据通道从 对应的独立内存块中获取数据; 写数据模块,用于将所述服务进程与所述软件程序进程通过进程间通信生成写数 据通道,且在向所述虚拟内存块写入数据时,通过所述写数据通道将数据写入到对应的独 立内存块中; 重启模块,用于在重启所述软件程序进程时,重新生成所述读数据通道和写数据 通道,以使所述软件程序进程通过所述读数据通道获取所述独立内存块中的数据或通过所 述写数据通道更新所述独立内存块中的数据。 在第二方面的第一种可能的实现方式中,所述写数据模块,包括: 批处理单元,用于若待写数据为批量处理数据时,在批量处理数据中增加起始和 结束标识以表示所述批量处理数据的起始和结束; 写入单元,用于通过所述写数据通道将批量处理数据写入到对应的独立内存块 中。 根据第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式 中,所述写数据模块,包括: 备份单元,用于将所述独立内存块中的数据备份到对应分配给所述独立内存块的 备份内存块中; 判断单元,用于通过所述写数据通道将批量处理数据写入到对应的独立内存块 中,且判断批量处理数据中是否含有结束标识,若是,则清空所述备份内存块中的数据。 在第二方面的第三种可能的实现方式中,所述读数据通道和写数据通道为封装的 编程访问接口,以供所述软件程序进程运行时调用。 根据第二方面,第二方面的第一种至第三种可能的实现方式中,在第二方面的第 四种可能的实现方式中,还包括: 释放模块,用于在软件程序进程执行完成后,释放所述独立内存块。 本专利技术实施例软件程序重启的方法及装置,通过分配与软件程序进程自身对应的 独立内存块,并将独立内存块映射到软件程序进程自身的虚拟内存,实现软件程序进程重 启时,通过只读方式映射获取所述独立内存块中的数据,以解决软件重启时保存的数据恢 复比较慢的问题。 【专利附图】【附图说明】 为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。 图1为本专利技术软件程序重启的方法实施例一的流程图; 图2为本专利技术软件程序重启的方法实施例二的流程图; 图3为本专利技术软件程序重启的装置实施例一的结构示意图; 图4为图3中读数据通道和写数据通道的位置示意图; 图5为本专利技术软件程序重启的装置实施例二的结构示意本文档来自技高网
...
软件程序的重启方法及装置

【技术保护点】
一种软件程序的重启方法,其特征在于,包括:调用服务进程为软件程序进程分配独立内存块;将所述独立内存块以只读方式映射到所述软件程序进程空间虚拟内存块以生成读数据通道,且在从所述虚拟内存块读取数据时,通过所述读数据通道从对应的独立内存块中获取数据;将所述服务进程与所述软件程序进程通过进程间通信生成写数据通道,且在向所述虚拟内存块写入数据时,通过所述写数据通道将数据写入到对应的独立内存块中;在重启所述软件程序进程时,重新生成所述读数据通道和写数据通道,以使所述软件程序进程通过所述读数据通道获取所述独立内存块中的数据或通过所述写数据通道更新所述独立内存块中的数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:徐向阳施广宇
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1