进程迁移方法和可迁移操作系统.pdf

上传人:111****11 文档编号:275404 上传时间:2018-02-07 格式:PDF 页数:25 大小:6.48MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310112322.0

申请日:

2013.04.01

公开号:

CN104102535A

公开日:

2014.10.15

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 9/48申请日:20130401|||公开

IPC分类号:

G06F9/48

主分类号:

G06F9/48

申请人:

华为技术有限公司; 中国科学院计算技术研究所

发明人:

王磊; 詹剑锋; 林鑫龙; 张立新

地址:

518129 广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

北京同立钧成知识产权代理有限公司 11205

代理人:

孟金喆

PDF下载: PDF下载
内容摘要

本发明实施例提供一种进程迁移方法和可迁移操作系统。本发明进程迁移方法,包括:在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息;监测是否产生进程迁移触发条件;当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息;根据所述进程相关信息获取所述待迁移进程的进程数据;根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。本发明实施例通过维护内核上进程相关信息,当某个内核失效时根据进程相关信息将待迁移进程迁移至其他内核运行,实现在较小系统开销下保证操作系统的高容错性,解决由于系统开销大影响操作系统性能的问题。

权利要求书

1.  一种进程迁移方法,其特征在于,包括:
在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息;
监测是否产生进程迁移触发条件;
当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息;
根据所述进程相关信息获取所述待迁移进程的进程数据;
根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。

2.
  根据权利要求1所述的进程迁移方法,其特征在于,所述全局信息表包括内核编号、全系统数据信息表和全系统状态信息表,所述全系统数据信息表中的进程相关信息包括:进程编号和进程页目录基址,所述全系统状态信息表中的进程相关信息包括:全局描述符表入口和全局描述符表大小。

3.
  根据权利要求2所述的进程迁移方法,其特征在于,在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息包括:
每个内核在本地进程的状态发生变化时或按照预设规律,将状态变化进程的所述进程相关信息发送给其他内核,以更新其他内核中的全局信息表。

4.
  根据权利要求3所述的进程迁移方法,其特征在于,还包括:
每个内核在操作系统启动时,在本地建立所述全系统数据信息表和全系统状态信息表;
每个内核将内核编号、全局描述符表入口和全局描述符表大小发送给其他内核,以更新其他内核的全系统状态信息表;
每个内核将内核编号、本地进程的进程编号和进程页目录基址发送给其他内核,以更新其他内核的全系统数据信息表。

5.
  根据权利要求1-4任一所述的进程迁移方法,其特征在于,监测是否产生进程迁移触发条件包括:
每个内核向其他内核发送消息;
每个内核将在设定时间内未返回响应的内核确定为失效内核,所述确定失效内核作为产生进程迁移触发条件。

6.
  根据权利要求1所述的进程迁移方法,其特征在于,所述进程数据包括:进程内存镜像数据、进程切换寄存器数据及进程控制块数据,根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行包括:
识别所述待迁移进程的状态;
当所述待迁移进程的状态为运行状态,则根据所述进程内存镜像数据将待迁移进程迁移至目标内核重新启动;
当所述待迁移进程的状态为非运行状态,则根据所述进程内存镜像数据、进程切换寄存器数据及进程控制块数据将待迁移进程迁移至目标内核继续运行。

7.
  根据权利要求1所述的进程迁移方法,其特征在于,当监测到产生进程迁移触发条件之后,还包括:
根据各内核的负载情况协商确定进程迁移的目标内核。

8.
  根据权利要求1所述的进程迁移方法,其特征在于,当监测到产生进程迁移触发条件之后,还包括:
根据各内核的类型协商确定与源内核类型相同的内核作为进程迁移的目标内核。

9.
  根据权利要求1所述的进程迁移方法,其特征在于,在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息之前,还包括:
在操作系统启动时,每个内核向其他内核发送消息;
每个内核将在设定时间内返回响应的内核确定为正常内核;
操作系统在正常内核上分配进程任务。

10.
  一种可迁移操作系统,其特征在于,包括:
维护模块,用于在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息;
监测模块,用于监测是否产生进程迁移触发条件;
提取模块,用于当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息;
获取模块,用于根据所述进程相关信息获取所述待迁移进程的进程数据;
迁移模块,用于根据所述进程数据将待迁移进程从源内核迁移至目标内 核上运行。

11.
  根据权利要求10所述的可迁移操作系统,其特征在于,所述全局信息表包括内核编号、全系统数据信息表和全系统状态信息表,所述全系统数据信息表中的进程相关信息包括:进程编号和进程页目录基址,所述全系统状态信息表中的进程相关信息包括:全局描述符表入口和全局描述符表大小。

12.
  根据权利要求11所述的可迁移操作系统,其特征在于,所述维护模块具体用于配置每个内核在本地进程的状态发生变化时或按照预设规律,将状态变化进程的所述进程相关信息发送给其他内核,以更新其他内核中的全局信息表。

13.
  根据权利要求12所述的可迁移操作系统,其特征在于,还包括:
处理模块,用于配置每个内核在操作系统启动时,在本地建立所述全系统数据信息表和全系统状态信息表;
第一发送模块,用于配置每个内核将内核编号、全局描述符表入口和全局描述符表大小发送给其他内核,以更新其他内核的全系统状态信息表;
第二发送模块,用于配置每个内核将内核编号、本地进程的进程编号和进程页目录基址发送给其他内核,以更新其他内核的全系统数据信息表。

14.
  根据权利要求10-13任一所述的可迁移操作系统,其特征在于,所述监测模块具体用于:
配置每个内核向其他内核发送消息;
配置每个内核将在设定时间内未返回响应的内核确定为失效内核,所述确定失效内核作为产生进程迁移触发条件。

15.
  根据权利要求10所述的可迁移操作系统,其特征在于,所述进程数据包括:进程内存镜像数据、进程切换寄存器数据及进程控制块数据,所述迁移模块包括:
识别单元,用于识别所述待迁移进程的状态;
第一迁移单元,用于当所述待迁移进程的状态为运行状态,则根据所述进程内存镜像数据将待迁移进程迁移至目标内核重新启动;
第二迁移单元,用于当所述待迁移进程的状态为非运行状态,则根据所述进程内存镜像数据、进程切换寄存器数据及进程控制块数据将待迁移进程迁移至目标内核继续运行。

16.
  根据权利要求10所述的可迁移操作系统,其特征在于,还包括:
第一协商模块,用于根据各内核的负载情况协商确定进程迁移的目标内核。

17.
  根据权利要求10所述的可迁移操作系统,其特征在于,还包括:
第二协商模块,用于根据各内核的类型协商确定与源内核类型相同的内核作为进程迁移的目标内核。

18.
  根据权利要求10所述的可迁移操作系统,其特征在于,还包括:
第三发送模块,用于在操作系统启动时,配置每个内核向其他内核发送消息;
处理模块,用于配置每个内核将在设定时间内返回响应的内核确定为正常内核;
分配模块,用于配置操作系统在正常内核上分配进程任务。

说明书

进程迁移方法和可迁移操作系统
技术领域
本发明实施例涉及计算机技术,尤其涉及一种进程迁移方法和可迁移操作系统。
背景技术
计算系统是现在普遍采用的工作和生活的数据处理工具,一般包括存储器、处理器和外设等,还配置有系统软件和应用软件等来实现各种功能。个人计算机即为一种典型的计算系统。随着计算机技术的发展,计算系统的处理器越来越多,软件和硬件发生故障的几率也随之增大,如何保证其操作系统的高可用和高容错性已经成为亟需解决的问题。
计算系统常采用多内核的操作系统,操作系统为每个处理器部署一个内核,当计算系统的软件或硬件发生故障时都会体现为操作系统中对应内核失效。为了保证操作系统能正常工作,将失效内核上运行的进程迁移到其他正常运行的内核上,这样可实现操作系统的高可用和高容错性。现有技术中,常采用设置检查点(checkpoint)的方法,由操作系统定期对检查点当前运行的所有状态和数据都进行备份,当其中的任意内核发生失效时,计算系统读取存储的备份并进行回滚,并从最近一个检查点的时间点重新启动,从而实现操作系统的高可用和高容错性。
但是,上述现有技术需要定期保存检查点的所有状态和数据,这样会造成很大的系统开销,严重影响整个操作系统的性能。
发明内容
本发明实施例提供一种进程迁移方法和可迁移操作系统,以解决为保证操作系统的高可用和高容错性需要大量系统开销的问题,以实现在较小的系统开销下满足操作系统的高可用和高容错性,以保证整个操作系统的性能。
第一方面,本发明实施例提供一种进程迁移方法,包括:
在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息;
监测是否产生进程迁移触发条件;
当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息;
根据所述进程相关信息获取所述待迁移进程的进程数据;
根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。
在第一方面的第一种可能的实现方式中,所述全局信息表包括内核编号、全系统数据信息表和全系统状态信息表,所述全系统数据信息表中的进程相关信息包括:进程编号和进程页目录基址,所述全系统状态信息表中的进程相关信息包括:全局描述符表入口和全局描述符表大小。
根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息包括:
每个内核在本地进程的状态发生变化时或按照预设规律,将状态变化进程的所述进程相关信息发送给其他内核,以更新其他内核中的全局信息表。
根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述进程迁移方法还包括:
每个内核在操作系统启动时,在本地建立所述全系统数据信息表和全系统状态信息表;
每个内核将内核编号、全局描述符表入口和全局描述符表大小发送给其他内核,以更新其他内核的全系统状态信息表;
每个内核将内核编号、本地进程的进程编号和进程页目录基址发送给其他内核,以更新其他内核的全系统数据信息表。
根据第一方面、第一方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,监测是否产生进程迁移触发条件包括:
每个内核向其他内核发送消息;
每个内核将在设定时间内未返回响应的内核确定为失效内核,所述确定失效内核作为产生进程迁移触发条件。
在第一方面的第五种可能的实现方式中,所述进程数据包括:进程内存 镜像数据、进程切换寄存器数据及进程控制块数据,根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行包括:
识别所述待迁移进程的状态;
当所述待迁移进程的状态为运行状态,则根据所述进程内存镜像数据将待迁移进程迁移至目标内核重新启动;
当所述待迁移进程的状态为非运行状态,则根据所述进程内存镜像数据、进程切换寄存器数据及进程控制块数据将待迁移进程迁移至目标内核继续运行。
在第一方面的第六种可能的实现方式中,当监测到产生进程迁移触发条件之后,还包括:
根据各内核的负载情况协商确定进程迁移的目标内核。
在第一方面的第七种可能的实现方式中,当监测到产生进程迁移触发条件之后,还包括:
根据各内核的类型协商确定与源内核类型相同的内核作为进程迁移的目标内核。
在第一方面的第八种可能的实现方式中,在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息之前,还包括:
在操作系统启动时,每个内核向其他内核发送消息;
每个内核将在设定时间内返回响应的内核确定为正常内核;
操作系统在正常内核上分配进程任务。
第二方面,本发明实施例提供一种可迁移操作系统,包括:
维护模块,用于在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息;
监测模块,用于监测是否产生进程迁移触发条件;
提取模块,用于当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息;
获取模块,用于根据所述进程相关信息获取所述待迁移进程的进程数据;
迁移模块,用于根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。
在第二方面的第一种可能的实现方式中,所述全局信息表包括内核编号、全系统数据信息表和全系统状态信息表,所述全系统数据信息表中的进程相关信息包括:进程编号和进程页目录基址,所述全系统状态信息表中的进程相关信息包括:全局描述符表入口和全局描述符表大小。
根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述维护模块具体用于配置每个内核在本地进程的状态发生变化时或按照预设规律,将状态变化进程的所述进程相关信息发送给其他内核,以更新其他内核中的全局信息表。
根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述可迁移操作系统还包括:
处理模块,用于配置每个内核在操作系统启动时,在本地建立所述全系统数据信息表和全系统状态信息表;
第一发送模块,用于配置每个内核将内核编号、全局描述符表入口和全局描述符表大小发送给其他内核,以更新其他内核的全系统状态信息表;
第二发送模块,用于配置每个内核将内核编号、本地进程的进程编号和进程页目录基址发送给其他内核,以更新其他内核的全系统数据信息表。
根据第二方面、第二方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,所述监测模块具体用于:
配置每个内核向其他内核发送消息;
配置每个内核将在设定时间内未返回响应的内核确定为失效内核,所述确定失效内核作为产生进程迁移触发条件。
在第二方面的第五种可能的实现方式中,所述进程数据包括:进程内存镜像数据、进程切换寄存器数据及进程控制块数据,所述迁移模块包括:
识别单元,用于识别所述待迁移进程的状态;
第一迁移单元,用于当所述待迁移进程的状态为运行状态,则根据所述进程内存镜像数据将待迁移进程迁移至目标内核重新启动;
第二迁移单元,用于当所述待迁移进程的状态为非运行状态,则根据所述进程内存镜像数据、进程切换寄存器数据及进程控制块数据将待迁移进程迁移至目标内核继续运行。
在第二方面的第六种可能的实现方式中,所述可迁移操作系统还包括:
第一协商模块,用于根据各内核的负载情况协商确定进程迁移的目标内核。
在第二方面的第七种可能的实现方式中,所述可迁移操作系统还包括:
第二协商模块,用于根据各内核的类型协商确定与源内核类型相同的内核作为进程迁移的目标内核。
在第二方面的第八种可能的实现方式中,所述可迁移操作系统还包括:
第三发送模块,用于在操作系统启动时,配置每个内核向其他内核发送消息;
处理模块,用于配置每个内核将在设定时间内返回响应的内核确定为正常内核;
分配模块,用于配置操作系统在正常内核上分配进程任务。
第三方面,本发明实施例提供一种计算系统,包括存储器、多个内存和至少一个处理器,还包括通信总线,连接所述存储器、内存和处理器。其中,所述至少一个处理器配置有本发明任意装置实施例所提供的可迁移操作系统的内核,并进行数据处理;所述存储器用于存放构成本发明任意装置实施例所提供的可迁移操作系统的程序。
本发明实施例进程迁移方法和可迁移操作系统,通过操作系统内核维护全局信息表,当某个内核失效时,根据全局信息表中的进程相关信息将失效内核上的进程迁移到其他内核上运行,实现在较小系统开销下保证操作系统的高可用和高容错性,提高整个操作系统的性能,解决为保证操作系统的高可用和高容错性需要大量系统开销的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明进程迁移方法实施例一的流程图;
图2为本发明进程迁移方法实施例二的流程图;
图3为本发明进程迁移方法实施例三的流程图;
图4为本发明进程迁移方法实施例四的流程图;
图5为本发明进程迁移方法实施例五的流程图;
图6为本发明进程迁移方法实施例六的流程图;
图7为本发明可迁移操作系统实施例一的结构示意图;
图8为本发明可迁移操作系统实施例二的结构示意图;
图9为本发明可迁移操作系统实施例三的结构示意图;
图10为本发明计算系统实施例的结构示意图;
图11为本发明计算系统实施例的工作原理示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明进程迁移方法实施例一的流程图,所述方法适用于多内核操作系统中内核之间的进程迁移,尤其是在失效内核与正常内核之间的进程迁移。多内核操作系统中的各内核均可以访问其他内核对应的内存空间,且进程不可以跨多个内核运行。本实施例的方法可以由可迁移操作系统来执行,如图1所示,所述方法可以包括:
S101、在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息。
在多内核操作系统中,操作系统为每个内核分配内存空间作为本地内存,每个内核管理本地内存中运行的进程,其他内核可以访问本地内存,但进程不能跨内核运行。
本步骤中,可以在至少一个内核所分配的本地内存存储有全局信息表,所述全局信息表中记录有所有内核上运行的进程的进程相关信息,在操作系统运行时,所述至少一个内核对全局信息表进行维护,以保证其所保存的全局信息表为实时有效的。所述维护可以是定时进行的,也可以是在某一触发 条件下进行的,可根据实际设计要求而定,此处不做限制。全局信息表可以是每个内核存储一份完整的全局信息表,也可以是多个内核中的部分内核存储全局信息表,还可以是一份完整的全局信息表在多个内核中各存储一部分,分别维护。
其中,所述进程相关信息为与进程相关的状态和存储地址等信息,可以包括进程编号、进程的页目录基址,还可以包括进程所在内核的内核编号、全局描述符表(Global Descriptor Table,简称GDT)入口和GDT大小,但不以此为限,只要能据此获取进程数据,完成进程迁移即可。所述进程可以为操作系统本身的系统服务进程,如文件系统服务和通信系统服务等,也可以是应用程序的进程,但不以此为限。
S102、监测是否产生进程迁移触发条件。
在操作系统运行过程中,实时对操作系统进行监测,判断否产生进程迁移触发条件。例如,可以将定时监测进程控制块(Process Control Block,简称PCB)作为监测手段。由于操作系统中所有运行的进程可以以PCB的形式组成一个双向链表,操作系统可以根据宏命令“for_each_task”方便地搜索到所有进程的PCB,从PCB中连续获取信息进行判断,若设定时间内某一内核上的所有进程不发生变化则认为该内核失效了,即将该失效内核作为进程迁移的源内核;本步骤也可以通过某一内核向其他内核发送同步消息,其他内核接收该同步信息后返回响应消息,如果该内核在设定时间内未接收到其中一个内核返回的响应消息,则认为该内核失效,将所述失效内核作为进程迁移的源内核。
S103、当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息。
当监测到产生进程迁移触发条件时,操作系统从所述至少一个内核的全局信息表中,可以通过源内核的内核编号获取所述待迁移进程的进程相关信息。
S104、根据所述进程相关信息获取所述待迁移进程的进程数据。
操作系统获取到待迁移进程的进程相关信息后,根据进程相关信息获取所述待迁移进程的进程数据,例如,可以根据进程相关信息中的进程编号从PCB中获取进程的进程标识符、进程当前状态及进程优先级等PCB数据;可 以根据内核GDT入口和GDT大小获取任务状态段(Task State Segment,简称TSS),再根据TSS得到进程切换时寄存器中的数据,即进程切换寄存器数据;还可以根据进程页目录基址获得待迁移进程的页目录,从而得到进程对应的物理地址,根据物理地址访问源内核的本地内存,从本地内存中获取内存镜像数据。
其中,所述进程数据为进程进行迁移所需的相关数据,如PCB数据、进程切换寄存器数据、内存镜像数据等。
S105、根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。
具体地,在操作系统获取到源内核中待迁移进程的进程数据后,可以根据进程相关信息中的进程编号和进程页目录基址获取待迁移进程的内存镜像数据,根据所述内存镜像数据将所待迁移进程在目标内核本地重新加载运行,实现操作系统的高可用和高容错性。这样在内核上存储的全局信息表只需要维护进程编号和进程页目录基址等进程相关信息即可,使得操作系统运行时只需要维护较小信息量,在保证系统容错性的同时极大地减小日常开销。
本实施例,通过日常维护内核上的全局信息表中的进程相关信息,当某个内核失效时,根据进程相关信息将失效内核上的待迁移进程迁移至其他内核运行,由于进程相关信息仅为一些基本信息,维护简单,系统开销小,从而实现了在较小系统开销下保证操作系统的高可用和高容错性,解决了由于系统开销大而影响整个操作系统性能的问题。
可选地,本实施例在上述实施例的基础上,所述全局信息表包括内核编号、全系统数据信息表和全系统状态信息表,所述全系统数据信息表中的进程相关信息包括:进程编号和进程页目录基址,所述全系统状态信息表中的进程相关信息包括:全局描述符表入口和全局描述符表大小。
可选地,在上述实施例的基础上,步骤S101可以包括:每个内核在本地进程的状态发生变化时或按照预设规律,将状态变化进程的所述进程相关信息发送给其他内核,以更新其他内核中的全局信息表。具体地,在操作系统的每个内核的本地内存中均建立有全局信息表,为了保证全局信息表中的进程相关信息的实时性,需要不间断地对数据进行更新。对于更新的触发条件,例如,可以是每个内核在本地进程的状态发生变化时将状态变化进程的进程相关信息发送给其他内核,也可是按照预设规律,如满足设定时间间隔后每 个内核将本地状态变化进程的进程相关信息发送给其他内核。这样做的好处在于,保证了进程相关信息是实时可用的,提高了进程迁移的可靠性。
实施例二
图2为本发明进程迁移方法实施例二的流程图,本实施例在上述实施例的基础上,进一步,如图2所示,所述方法还可以包括如下步骤:
S201、每个内核在操作系统启动时,在本地建立所述全系统数据信息表和全系统状态信息表。
S202、每个内核将内核编号、全局描述符表入口和全局描述符表大小发送给其他内核,以更新其他内核的全系统状态信息表。
在操作系统启动时,各内核在本地建立所述全系统数据信息表和全系统状态信息表,将内核位置、内核访问方式、内核编号、GDT入口和GDT大小发送给其他内核,其他内核接收到各内核的这些信息,根据各内核的编号存储在本地全局信息表的对应位置处,实现全系统状态信息表的更新。由于上述信息为静态信息,所以在全局信息表建立后可以只更新一次即可。
S203、每个内核将内核编号、本地进程的进程编号和进程页目录基址发送给其他内核,以更新其他内核的全系统数据信息表。
本步骤更新的信息为动态信息,需要在操作系统运行中实时进行更新,以保证所述进行相关信息的可用性。所以,本步骤更新的所述全系统数据信息表的进程相关信息可以认为是进程更新同步信息。
其中,内核之间的信息传递可以采用广播消息的方式,传输介质可以采用如个人计算机接口标准(Personal Computer Interface Express,简称PCIE)或超传输(HyperTransport,简称HT)等。
本实施例,在建立全局信息表后,对全系统状态信息表中的进程相关信息只需更新一次,从而减小信息更新量,进一步降低操作系统的日常开销,优化操作系统的性能。
实施例三
图3为本发明进程迁移方法实施例三的流程图,本实施例在上述实施例的基础上,如图3所示,所述监测是否产生进程迁移触发条件可以包括:
S301、每个内核向其他内核发送消息。
S302、每个内核将在设定时间内未返回响应的内核确定为失效内核,所 述确定失效内核作为产生进程迁移触发条件。
具体地,为了实时监测操作系统中的内核是否失效从而进行进程迁移,每个内核可以向其他内核发送消息,其他内核接收该消息后,在设定时间内向所述每个内核返回响应消息,以表明该内核处于正常工作状态,若在设定时间内未返回响应消息,则认为该内核失效,进而产生进程迁移的触发条件。
本实施例还可以优选将上述的进程更新同步信息作为所述消息,即,每个内核将所述进程更新同步消息发送给其他内核,更新其他内核本地存储的全局信息表,其他内核接收到所述消息后返回所述响应消息,如所述每个内核未接收到某个内核的响应消息则认为所述某个内核失效,进而产生进程迁移触发条件。
本实施例,通过每个内核向其他内核发送消息,以是否接收到的响应消息作为产生进程迁移触发条件,尤其是以进程更新同步信息作为所述消息,保证操作系统的高可用和高容错性的同时,进一步降低了系统开销。
实施例四
图4为本发明进程迁移方法实施例四的流程图,本实施例在上述实施例的基础上,所述进程数据可以包括:进程内存镜像数据、进程切换寄存器数据及进程控制块数据,如图4所示,步骤S105可以包括:
S401、识别所述待迁移进程的状态。
具体地,可以根据进程数据中的PCB信息对所述待迁移进程的状态进行判断。通过进程数据中的进程编号,从操作系统中由以PCB的形式组成的双向链表中获取PCB信息,在PCB信息中包含有待迁移进程的状态信息,根据所述状态信息可以识别出进程是否处于运行状态。
S402、当所述待迁移进程的状态为运行状态,则根据所述进程内存镜像数据,将待迁移进程迁移至目标内核重新启动。
若待迁移进程处于运行状态时,则目标内核根据所述进程内存镜像数据在本地内存分配内存空间,重新加载运行。
S403、当所述待迁移进程的状态为非运行状态,则根据所述进程内存镜像数据、进程切换寄存器数据及进程控制块数据将待迁移进程迁移至目标内核继续运行。
若待迁移进程处于非运行状态,如进程挂起、就绪、等待等,则目标内 核根据所述进程内存镜像数据,并通过本地存储的所述待迁移进程的进程相关信息获取进程切换寄存器数据及进程控制块数据,从而得到运行进程所需的全部数据,之后将待迁移进程在目标内核上进行重构并继续运行。
本实施例,通过对待迁移进程的状态进行判断,对处于运行状态和非运行状态的待迁移进程采用不同的迁移操作,在保证操作系统高可用和高容错性的同时避免了进程迁移时数据的大量丢失,进一步优化了整个操作系统的性能。
实施例五
图5为本发明进程迁移方法实施例五的流程图,本实施例在上述实施例的基础上,当监测到产生进程迁移触发条件之后,还包括:根据各内核的负载情况协商确定进程迁移的目标内核。如图5所示,所述方法可以按照如下步骤进行:
S101、在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息。
S102、监测是否产生进程迁移触发条件。
S103、当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息。
S501、根据各内核的负载情况协商确定进程迁移的目标内核。
具体地,监测到失效内核后,操作系统需要从正常工作的内核中根据负载情况选择一个内核作为目标内核。例如,可以从存储有全局信息表的正常运行的内核中根据全局信息表中的进程相关信息进行协商,选择一个工作量负荷最小的内核作为目标内核。
S104、根据所述进程相关信息获取所述待迁移进程的进程数据。
S105、根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。
本实施例,通过根据各内核的负载情况协商确定进程迁移的目标内核,优化了目标内核的选择,避免了将待迁移进程迁移到负荷量大的内核上导致内核失效的问题。
可选地,在上述实施例的基础上,当各内核的类型不同时,所述方法在监测到产生进程迁移触发条件之后,还包括:根据各内核的类型协商确定与源内核类型相同的内核作为进程迁移的目标内核。具体地,由于计算系统的 处理器类型不同,如两种指令集的中央处理器CPU:Xeon和龙芯,会导致操作系统中对应的内核类型有所不同。进行进程迁移时,源内核与目标内核需要为同一类型,不同类型的内核将无法进行进程迁移。本实施例通过选择同类型的内核作为目标内核,提高了进程迁移的效率。
实施例六
图6为本发明进程迁移方法实施例六的流程图,本实施例在上述实施例的基础上,如图6所示,在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息之前,还可以包括:
S601、在操作系统启动时,每个内核向其他内核发送消息。
S602、每个内核将在设定时间内返回响应的内核确定为正常内核。
S603、操作系统在正常内核上分配进程任务。
具体地,在操作系统启动时,可以先对各内核进行检测来确定各内核的是否处于正常状态。本实施例可以通过每个内核向其他内核发送消息,每个内核将在设定时间内返回响应的内核确定为正常内核,对于未返回响应的内核则认为是失效内核,在操作系统对各内核分配进程之前将失效内核剔除。其中,本实施例中的所述消息可以优选为各内核发送给其他内核的全系统状态信息表中的进程相关信息。
本实施例,通过在操作系统启动时先进行内核状态检测,将失效内核剔除后再进行进程任务分配,防止将进程分配给失效内核而引起不必要的进程迁移,进一步提高了操作系统的性能。
实施例七
图7为本发明可迁移操作系统实施例一的结构示意图,所述操作系统可以应用于具有多处理器的计算系统,如集成多个CPU的SMP或NUMA系统、集成CPU和图形处理器GPU的混合计算系统等。如图7所示,所述操作系统可以包括:维护模块71、监测模块72、提取模块73、获取模块74和迁移模块75。其中,所述维护模块71用于在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息;所述监测模块72用于监测是否产生进程迁移触发条件;所述提取模块73用于当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息;所述获取模块74用于根据所述进程相关信息获取所述待迁移进 程的进程数据;所述迁移模块75用于根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。
本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选地,在上述装置实施例的基础上,所述全局信息表可以包括内核编号、全系统数据信息表和全系统状态信息表,所述全系统数据信息表中的进程相关信息包括:进程编号和进程页目录基址,所述全系统状态信息表中的进程相关信息包括:全局描述符表入口和全局描述符表大小。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选地,在上述装置实施例的基础上,所述维护模块具体用于配置每个内核在本地进程的状态发生变化时或按照预设规律,将状态变化进程的所述进程相关信息发送给其他内核,以更新其他内核中的全局信息表。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选地,在上述实施例的基础上,所述操作系统还可以包括:处理模块、第一发送模块和第二发送模块。其中,所述处理模块用于配置每个内核在操作系统启动时,在本地建立所述全系统数据信息表和全系统状态信息表;所述第一发送模块用于配置每个内核将内核编号、全局描述符表入口和全局描述符表大小发送给其他内核,以更新其他内核的全系统状态信息表;所述第二发送模块用于配置每个内核将内核编号、本地进程的进程编号和进程页目录基址发送给其他内核,以更新其他内核的全系统数据信息表。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选地,在上述实施例的基础上,所述监测模块具体用于配置每个内核向其他内核发送消息;配置每个内核将在设定时间内未返回响应的内核确定为失效内核,所述确定失效内核作为产生进程迁移触发条件。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选地,在上述实施例的基础上,所述操作系统还可以包括:第一协商 模块,用于根据各内核的负载情况协商确定进程迁移的目标内核。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选地,在上述实施例的基础上,所述操作系统还可以包括:第二协商模块,用于根据各内核的类型协商确定与源内核类型相同的内核作为进程迁移的目标内核。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例八
图8为本发明可迁移操作系统实施例二的结构示意图,所述进程数据包括:进程内存镜像数据、进程切换寄存器数据及进程控制块数据,如图8所示,迁移模块75可以包括:识别单元81、第一迁移单元82和第二迁移单元83。其中,所述识别单元81用于识别所述待迁移进程的状态;所述第一迁移单元82用于当所述待迁移进程的状态为运行状态,则根据所述进程内存镜像数据将待迁移进程迁移至目标内核重新启动;所述第二迁移单元83用于当所述待迁移进程的状态为非运行状态,则根据所述进程内存镜像数据、进程切换寄存器数据及进程控制块数据将待迁移进程迁移至目标内核继续运行。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例九
图9为本发明可迁移操作系统实施例三的结构示意图,如图9所示,所述维护模块71包括:第三发送模块91、处理模块92和分配模块93。其中,所述第三发送模块91用于在操作系统启动时,配置每个内核向其他内核发送消息;所述处理模块92用于配置每个内核将在设定时间内返回响应的内核确定为正常内核;所述分配模块93,用于配置操作系统在正常内核上分配进程任务。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
实施例十
图10为本发明计算系统实施例的结构示意图,如图10所示,所述计算系统可以包括存储器101、多个内存103和至少一个处理器102等硬件设备,还包括一通信总线104,连接所述存储器101、内存103和处理器102。其中, 所述至少一个处理器102可以包括至少一个CPU和/或至少一个GPU,其中,所述至少一个CPU可以为同一类型的CPU,如同一指令集的Xeon和Atom,也可以为不同类型的CPU,如不同指令集的Xeon和龙芯。在至少一个处理器102中配置有多个内核,可并行进行数据处理。存储器101可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。在本实施例所提供的计算系统中,存储器101,用于存放程序A对应的指令。多个内存103的存储空间,分配给各个内核使用。
具体地,当CPU可以通过执行程序A对应的指令来执行程序A,程序A执行时,可以包括:
在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息;
监测是否产生进程迁移触发条件;
当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息;
根据所述进程相关信息获取所述待迁移进程的进程数据;
根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。
在上述方案的基础上,该程序A中优选是配置,所述全局信息表包括内核编号、全系统数据信息表和全系统状态信息表,所述全系统数据信息表中的进程相关信息包括:进程编号和进程页目录基址,所述全系统状态信息表中的进程相关信息包括:全局描述符表入口和全局描述符表大小。
在上述程序A中,优选是,在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息包括:
每个内核在本地进程的状态发生变化时或按照预设规律,将状态变化进程的所述进程相关信息发送给其他内核,以更新其他内核中的全局信息表。
在上述程序A中,优选是,还包括:
每个内核在操作系统启动时,在本地建立所述全系统数据信息表和全系统状态信息表;
每个内核将内核编号、全局描述符表入口和全局描述符表大小发送给其他内核,以更新其他内核的全系统状态信息表;
每个内核将内核编号、本地进程的进程编号和进程页目录基址发送给其 他内核,以更新其他内核的全系统数据信息表。
在上述程序A中,优选是,监测是否产生进程迁移触发条件包括:
每个内核向其他内核发送消息;
每个内核将在设定时间内未返回响应的内核确定为失效内核,所述确定失效内核作为产生进程迁移触发条件。
在上述程序A中,优选是,所述进程数据包括:进程内存镜像数据、进程切换寄存器数据及进程控制块数据,根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行包括:
识别所述待迁移进程的状态;
当所述待迁移进程的状态为运行状态,则根据所述进程内存镜像数据将待迁移进程迁移至目标内核重新启动;
当所述待迁移进程的状态为非运行状态,则根据所述进程内存镜像数据、进程切换寄存器数据及进程控制块数据将待迁移进程迁移至目标内核继续运行。
在上述程序A中,优选是,当监测到产生进程迁移触发条件之后,还包括:
根据各内核的负载情况协商确定进程迁移的目标内核。
在上述程序A中,优选是,当监测到产生进程迁移触发条件之后,还包括:
根据各内核的类型协商确定与源内核类型相同的内核作为进程迁移的目标内核。
在上述程序A中,优选是,在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息之前,还包括:
在操作系统启动时,每个内核向其他内核发送消息;
每个内核将在设定时间内返回响应的内核确定为正常内核;
操作系统在正常内核上分配进程任务。
图11为本发明计算系统实施例的工作原理示意图,本实施例的计算系统的工作过程,如图11所示,以五个CPU:两个龙芯、一个Atom和两个Xeon,为例进行说明。
具体地,分配给各个CPU的本地内存1~本地内存5之间可以相互访问, CPU之间可以通过如PCIE总线互连,但不以此为限,PCIE的连接是建立在一个双向的序列的点对点连接基础之上,每个PCIE设备都有自己独立的数据连接,在要求传输数据时各自建立自己的传输通道,各个设备之间并发的数据传输互不影响。设计基于PCIE的广播机制,在任意两个内核可以互相通信的基础上,封装广播接口使得一个内核可以调用接口实现对于组内所有内核的广播。
可迁移操作系统103在五个CPU上各部署一个内核,如图中所示的内核1~内核5,在计算系统启动时,可迁移操作系统103检测五个内核是否均正常工作,如果是,则对五个内核分配进程任务,如图所示,内核1管理进程1、内核2管理进程2和进程3等,其中进程不可以跨CPU运行;若检测到有内核失效时,则在进程任务分配时剔除失效内核。
可迁移操作系统103启动后,在各内核的本地内存中建立全局信息表,每个内核提交自身的相关信息,包括内核编号、位置、访问方式、GDT大小和GDT入口,并获取其他内核的相关信息。将获取到的进程相关信息保存在自身的全系统状态信息表中。可迁移操作系统103正常运行时,当某个内核上有进程产生或消失时,将该进程的进程编号和页目录基址发送给其他内核,其他内核将收到的信息保存在全系统数据信息表中。
若内核1失效,此时可迁移操作系统103选择与其类型相同的内核3(CPU均为龙芯)作为目标内核,并根据for_each_task命令查询内核1上的进程1的PCB数据,若得知内核1失效时进程1正在运行,内核3直接根据本地存储的全系统数据信息表中的进程相关信息得到内核1上进程1的页目录基址,从而找到进程1的页目录,然后得到进程1对应的物理地址,根据物理地址访问内核1的本地内存1,获取内存镜像数据,然后直接在本地重新加载进程1并启动运行;若得知内核1失效时进程1处于就绪状态,内核3根据本地存储的全系统数据信息表中的进程相关信息得到内核1上进程1的页目录基址,同样获取内存镜像数据,再根据本地存储的全系统状态信息表中的进程相关信息找到内核1的GDT入口和GDT大小,根据GDT入口和GDT大小找到TSS,即可得到进程1切换时寄存器中的信息,即切换寄存器数据,进程1的PCB中还含有进程1运行所需的全部信息,即PCB数据,内核3根据进程1的内存镜像数据、切换寄存器数据和PCB数据就可以重新载入进 程1并重构,为其在本地分配内存使其继续运行。运行成功后内核3向其他内核发送进程1的进程相关信息,以同步各内核的全局信息表,若多次不成功,报错。
若内核2失效,此时可迁移操作系统103选择与其类型相同的内核4和内核5(CPU均为Xeon)作为目标内核的选择,然后根据内核之间的协商机制,选择负载较轻的内核4作为目标内核,并对内核2上的进程2和进程3的状态进行识别,若处于运行状态,迁移至内核4重新启动,若处于非运行状态,迁移至内核4继续运行。
进一步,为了防止将失效内核上的所有进程迁移至一个目标内核导致目标内核负荷太大而出现异常,可根据内核之间的协商机制将失效内核上的多个进程分别迁移到多个目标内核运行,具体操作可根据实际情况选择。
本实施例的计算系统,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

进程迁移方法和可迁移操作系统.pdf_第1页
第1页 / 共25页
进程迁移方法和可迁移操作系统.pdf_第2页
第2页 / 共25页
进程迁移方法和可迁移操作系统.pdf_第3页
第3页 / 共25页
点击查看更多>>
资源描述

《进程迁移方法和可迁移操作系统.pdf》由会员分享,可在线阅读,更多相关《进程迁移方法和可迁移操作系统.pdf(25页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104102535A43申请公布日20141015CN104102535A21申请号201310112322022申请日20130401G06F9/4820060171申请人华为技术有限公司地址518129广东省深圳市龙岗区坂田华为总部办公楼申请人中国科学院计算技术研究所72发明人王磊詹剑锋林鑫龙张立新74专利代理机构北京同立钧成知识产权代理有限公司11205代理人孟金喆54发明名称进程迁移方法和可迁移操作系统57摘要本发明实施例提供一种进程迁移方法和可迁移操作系统。本发明进程迁移方法,包括在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息;监。

2、测是否产生进程迁移触发条件;当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息;根据所述进程相关信息获取所述待迁移进程的进程数据;根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。本发明实施例通过维护内核上进程相关信息,当某个内核失效时根据进程相关信息将待迁移进程迁移至其他内核运行,实现在较小系统开销下保证操作系统的高容错性,解决由于系统开销大影响操作系统性能的问题。51INTCL权利要求书3页说明书13页附图8页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书13页附图8页10申请公布号CN104102535ACN10410。

3、2535A1/3页21一种进程迁移方法,其特征在于,包括在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息;监测是否产生进程迁移触发条件;当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息;根据所述进程相关信息获取所述待迁移进程的进程数据;根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。2根据权利要求1所述的进程迁移方法,其特征在于,所述全局信息表包括内核编号、全系统数据信息表和全系统状态信息表,所述全系统数据信息表中的进程相关信息包括进程编号和进程页目录基址,所述全系统状态信息表中的进程相关信息包括全局描述符表。

4、入口和全局描述符表大小。3根据权利要求2所述的进程迁移方法,其特征在于,在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息包括每个内核在本地进程的状态发生变化时或按照预设规律,将状态变化进程的所述进程相关信息发送给其他内核,以更新其他内核中的全局信息表。4根据权利要求3所述的进程迁移方法,其特征在于,还包括每个内核在操作系统启动时,在本地建立所述全系统数据信息表和全系统状态信息表;每个内核将内核编号、全局描述符表入口和全局描述符表大小发送给其他内核,以更新其他内核的全系统状态信息表;每个内核将内核编号、本地进程的进程编号和进程页目录基址发送给其他内核,以更新其他。

5、内核的全系统数据信息表。5根据权利要求14任一所述的进程迁移方法,其特征在于,监测是否产生进程迁移触发条件包括每个内核向其他内核发送消息;每个内核将在设定时间内未返回响应的内核确定为失效内核,所述确定失效内核作为产生进程迁移触发条件。6根据权利要求1所述的进程迁移方法,其特征在于,所述进程数据包括进程内存镜像数据、进程切换寄存器数据及进程控制块数据,根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行包括识别所述待迁移进程的状态;当所述待迁移进程的状态为运行状态,则根据所述进程内存镜像数据将待迁移进程迁移至目标内核重新启动;当所述待迁移进程的状态为非运行状态,则根据所述进程内存镜像数据、进。

6、程切换寄存器数据及进程控制块数据将待迁移进程迁移至目标内核继续运行。7根据权利要求1所述的进程迁移方法,其特征在于,当监测到产生进程迁移触发条件之后,还包括根据各内核的负载情况协商确定进程迁移的目标内核。权利要求书CN104102535A2/3页38根据权利要求1所述的进程迁移方法,其特征在于,当监测到产生进程迁移触发条件之后,还包括根据各内核的类型协商确定与源内核类型相同的内核作为进程迁移的目标内核。9根据权利要求1所述的进程迁移方法,其特征在于,在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息之前,还包括在操作系统启动时,每个内核向其他内核发送消息;每个内。

7、核将在设定时间内返回响应的内核确定为正常内核;操作系统在正常内核上分配进程任务。10一种可迁移操作系统,其特征在于,包括维护模块,用于在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息;监测模块,用于监测是否产生进程迁移触发条件;提取模块,用于当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息;获取模块,用于根据所述进程相关信息获取所述待迁移进程的进程数据;迁移模块,用于根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。11根据权利要求10所述的可迁移操作系统,其特征在于,所述全局信息表包括内核编号、全系统数据信息。

8、表和全系统状态信息表,所述全系统数据信息表中的进程相关信息包括进程编号和进程页目录基址,所述全系统状态信息表中的进程相关信息包括全局描述符表入口和全局描述符表大小。12根据权利要求11所述的可迁移操作系统,其特征在于,所述维护模块具体用于配置每个内核在本地进程的状态发生变化时或按照预设规律,将状态变化进程的所述进程相关信息发送给其他内核,以更新其他内核中的全局信息表。13根据权利要求12所述的可迁移操作系统,其特征在于,还包括处理模块,用于配置每个内核在操作系统启动时,在本地建立所述全系统数据信息表和全系统状态信息表;第一发送模块,用于配置每个内核将内核编号、全局描述符表入口和全局描述符表大小。

9、发送给其他内核,以更新其他内核的全系统状态信息表;第二发送模块,用于配置每个内核将内核编号、本地进程的进程编号和进程页目录基址发送给其他内核,以更新其他内核的全系统数据信息表。14根据权利要求1013任一所述的可迁移操作系统,其特征在于,所述监测模块具体用于配置每个内核向其他内核发送消息;配置每个内核将在设定时间内未返回响应的内核确定为失效内核,所述确定失效内核作为产生进程迁移触发条件。15根据权利要求10所述的可迁移操作系统,其特征在于,所述进程数据包括进程内存镜像数据、进程切换寄存器数据及进程控制块数据,所述迁移模块包括识别单元,用于识别所述待迁移进程的状态;第一迁移单元,用于当所述待迁移。

10、进程的状态为运行状态,则根据所述进程内存镜像权利要求书CN104102535A3/3页4数据将待迁移进程迁移至目标内核重新启动;第二迁移单元,用于当所述待迁移进程的状态为非运行状态,则根据所述进程内存镜像数据、进程切换寄存器数据及进程控制块数据将待迁移进程迁移至目标内核继续运行。16根据权利要求10所述的可迁移操作系统,其特征在于,还包括第一协商模块,用于根据各内核的负载情况协商确定进程迁移的目标内核。17根据权利要求10所述的可迁移操作系统,其特征在于,还包括第二协商模块,用于根据各内核的类型协商确定与源内核类型相同的内核作为进程迁移的目标内核。18根据权利要求10所述的可迁移操作系统,其特。

11、征在于,还包括第三发送模块,用于在操作系统启动时,配置每个内核向其他内核发送消息;处理模块,用于配置每个内核将在设定时间内返回响应的内核确定为正常内核;分配模块,用于配置操作系统在正常内核上分配进程任务。权利要求书CN104102535A1/13页5进程迁移方法和可迁移操作系统技术领域0001本发明实施例涉及计算机技术,尤其涉及一种进程迁移方法和可迁移操作系统。背景技术0002计算系统是现在普遍采用的工作和生活的数据处理工具,一般包括存储器、处理器和外设等,还配置有系统软件和应用软件等来实现各种功能。个人计算机即为一种典型的计算系统。随着计算机技术的发展,计算系统的处理器越来越多,软件和硬件发。

12、生故障的几率也随之增大,如何保证其操作系统的高可用和高容错性已经成为亟需解决的问题。0003计算系统常采用多内核的操作系统,操作系统为每个处理器部署一个内核,当计算系统的软件或硬件发生故障时都会体现为操作系统中对应内核失效。为了保证操作系统能正常工作,将失效内核上运行的进程迁移到其他正常运行的内核上,这样可实现操作系统的高可用和高容错性。现有技术中,常采用设置检查点(CHECKPOINT)的方法,由操作系统定期对检查点当前运行的所有状态和数据都进行备份,当其中的任意内核发生失效时,计算系统读取存储的备份并进行回滚,并从最近一个检查点的时间点重新启动,从而实现操作系统的高可用和高容错性。0004。

13、但是,上述现有技术需要定期保存检查点的所有状态和数据,这样会造成很大的系统开销,严重影响整个操作系统的性能。发明内容0005本发明实施例提供一种进程迁移方法和可迁移操作系统,以解决为保证操作系统的高可用和高容错性需要大量系统开销的问题,以实现在较小的系统开销下满足操作系统的高可用和高容错性,以保证整个操作系统的性能。0006第一方面,本发明实施例提供一种进程迁移方法,包括0007在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息;0008监测是否产生进程迁移触发条件;0009当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信。

14、息;0010根据所述进程相关信息获取所述待迁移进程的进程数据;0011根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。0012在第一方面的第一种可能的实现方式中,所述全局信息表包括内核编号、全系统数据信息表和全系统状态信息表,所述全系统数据信息表中的进程相关信息包括进程编号和进程页目录基址,所述全系统状态信息表中的进程相关信息包括全局描述符表入口和全局描述符表大小。0013根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息包说明书CN104102535A2/13页6括0014每个内核在本地进。

15、程的状态发生变化时或按照预设规律,将状态变化进程的所述进程相关信息发送给其他内核,以更新其他内核中的全局信息表。0015根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述进程迁移方法还包括0016每个内核在操作系统启动时,在本地建立所述全系统数据信息表和全系统状态信息表;0017每个内核将内核编号、全局描述符表入口和全局描述符表大小发送给其他内核,以更新其他内核的全系统状态信息表;0018每个内核将内核编号、本地进程的进程编号和进程页目录基址发送给其他内核,以更新其他内核的全系统数据信息表。0019根据第一方面、第一方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实。

16、现方式中,监测是否产生进程迁移触发条件包括0020每个内核向其他内核发送消息;0021每个内核将在设定时间内未返回响应的内核确定为失效内核,所述确定失效内核作为产生进程迁移触发条件。0022在第一方面的第五种可能的实现方式中,所述进程数据包括进程内存镜像数据、进程切换寄存器数据及进程控制块数据,根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行包括0023识别所述待迁移进程的状态;0024当所述待迁移进程的状态为运行状态,则根据所述进程内存镜像数据将待迁移进程迁移至目标内核重新启动;0025当所述待迁移进程的状态为非运行状态,则根据所述进程内存镜像数据、进程切换寄存器数据及进程控制块数据。

17、将待迁移进程迁移至目标内核继续运行。0026在第一方面的第六种可能的实现方式中,当监测到产生进程迁移触发条件之后,还包括0027根据各内核的负载情况协商确定进程迁移的目标内核。0028在第一方面的第七种可能的实现方式中,当监测到产生进程迁移触发条件之后,还包括0029根据各内核的类型协商确定与源内核类型相同的内核作为进程迁移的目标内核。0030在第一方面的第八种可能的实现方式中,在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息之前,还包括0031在操作系统启动时,每个内核向其他内核发送消息;0032每个内核将在设定时间内返回响应的内核确定为正常内核;0033操。

18、作系统在正常内核上分配进程任务。0034第二方面,本发明实施例提供一种可迁移操作系统,包括0035维护模块,用于在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息;0036监测模块,用于监测是否产生进程迁移触发条件;说明书CN104102535A3/13页70037提取模块,用于当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息;0038获取模块,用于根据所述进程相关信息获取所述待迁移进程的进程数据;0039迁移模块,用于根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。0040在第二方面的第一种可能的实现方式中,。

19、所述全局信息表包括内核编号、全系统数据信息表和全系统状态信息表,所述全系统数据信息表中的进程相关信息包括进程编号和进程页目录基址,所述全系统状态信息表中的进程相关信息包括全局描述符表入口和全局描述符表大小。0041根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述维护模块具体用于配置每个内核在本地进程的状态发生变化时或按照预设规律,将状态变化进程的所述进程相关信息发送给其他内核,以更新其他内核中的全局信息表。0042根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述可迁移操作系统还包括0043处理模块,用于配置每个内核在操作系统启动时,在本地建立所述全系统数据信。

20、息表和全系统状态信息表;0044第一发送模块,用于配置每个内核将内核编号、全局描述符表入口和全局描述符表大小发送给其他内核,以更新其他内核的全系统状态信息表;0045第二发送模块,用于配置每个内核将内核编号、本地进程的进程编号和进程页目录基址发送给其他内核,以更新其他内核的全系统数据信息表。0046根据第二方面、第二方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,所述监测模块具体用于0047配置每个内核向其他内核发送消息;0048配置每个内核将在设定时间内未返回响应的内核确定为失效内核,所述确定失效内核作为产生进程迁移触发条件。0049在第二方面的第五种可能的实现方式中。

21、,所述进程数据包括进程内存镜像数据、进程切换寄存器数据及进程控制块数据,所述迁移模块包括0050识别单元,用于识别所述待迁移进程的状态;0051第一迁移单元,用于当所述待迁移进程的状态为运行状态,则根据所述进程内存镜像数据将待迁移进程迁移至目标内核重新启动;0052第二迁移单元,用于当所述待迁移进程的状态为非运行状态,则根据所述进程内存镜像数据、进程切换寄存器数据及进程控制块数据将待迁移进程迁移至目标内核继续运行。0053在第二方面的第六种可能的实现方式中,所述可迁移操作系统还包括0054第一协商模块,用于根据各内核的负载情况协商确定进程迁移的目标内核。0055在第二方面的第七种可能的实现方式。

22、中,所述可迁移操作系统还包括0056第二协商模块,用于根据各内核的类型协商确定与源内核类型相同的内核作为进程迁移的目标内核。0057在第二方面的第八种可能的实现方式中,所述可迁移操作系统还包括说明书CN104102535A4/13页80058第三发送模块,用于在操作系统启动时,配置每个内核向其他内核发送消息;0059处理模块,用于配置每个内核将在设定时间内返回响应的内核确定为正常内核;0060分配模块,用于配置操作系统在正常内核上分配进程任务。0061第三方面,本发明实施例提供一种计算系统,包括存储器、多个内存和至少一个处理器,还包括通信总线,连接所述存储器、内存和处理器。其中,所述至少一个处。

23、理器配置有本发明任意装置实施例所提供的可迁移操作系统的内核,并进行数据处理;所述存储器用于存放构成本发明任意装置实施例所提供的可迁移操作系统的程序。0062本发明实施例进程迁移方法和可迁移操作系统,通过操作系统内核维护全局信息表,当某个内核失效时,根据全局信息表中的进程相关信息将失效内核上的进程迁移到其他内核上运行,实现在较小系统开销下保证操作系统的高可用和高容错性,提高整个操作系统的性能,解决为保证操作系统的高可用和高容错性需要大量系统开销的问题。附图说明0063为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面。

24、描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。0064图1为本发明进程迁移方法实施例一的流程图;0065图2为本发明进程迁移方法实施例二的流程图;0066图3为本发明进程迁移方法实施例三的流程图;0067图4为本发明进程迁移方法实施例四的流程图;0068图5为本发明进程迁移方法实施例五的流程图;0069图6为本发明进程迁移方法实施例六的流程图;0070图7为本发明可迁移操作系统实施例一的结构示意图;0071图8为本发明可迁移操作系统实施例二的结构示意图;0072图9为本发明可迁移操作系统实施例三的结构示意图;007。

25、3图10为本发明计算系统实施例的结构示意图;0074图11为本发明计算系统实施例的工作原理示意图。具体实施方式0075为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0076实施例一0077图1为本发明进程迁移方法实施例一的流程图,所述方法适用于多内核操作系统中内核之间的进程迁移,尤其是在失效内核与正常内核之间的进程迁移。多内核操作系统中的各。

26、内核均可以访问其他内核对应的内存空间,且进程不可以跨多个内核运行。本实施例的方法可以由可迁移操作系统来执行,如图1所示,所述方法可以包括说明书CN104102535A5/13页90078S101、在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息。0079在多内核操作系统中,操作系统为每个内核分配内存空间作为本地内存,每个内核管理本地内存中运行的进程,其他内核可以访问本地内存,但进程不能跨内核运行。0080本步骤中,可以在至少一个内核所分配的本地内存存储有全局信息表,所述全局信息表中记录有所有内核上运行的进程的进程相关信息,在操作系统运行时,所述至少一个内核对全。

27、局信息表进行维护,以保证其所保存的全局信息表为实时有效的。所述维护可以是定时进行的,也可以是在某一触发条件下进行的,可根据实际设计要求而定,此处不做限制。全局信息表可以是每个内核存储一份完整的全局信息表,也可以是多个内核中的部分内核存储全局信息表,还可以是一份完整的全局信息表在多个内核中各存储一部分,分别维护。0081其中,所述进程相关信息为与进程相关的状态和存储地址等信息,可以包括进程编号、进程的页目录基址,还可以包括进程所在内核的内核编号、全局描述符表(GLOBALDESCRIPTORTABLE,简称GDT)入口和GDT大小,但不以此为限,只要能据此获取进程数据,完成进程迁移即可。所述进程。

28、可以为操作系统本身的系统服务进程,如文件系统服务和通信系统服务等,也可以是应用程序的进程,但不以此为限。0082S102、监测是否产生进程迁移触发条件。0083在操作系统运行过程中,实时对操作系统进行监测,判断否产生进程迁移触发条件。例如,可以将定时监测进程控制块(PROCESSCONTROLBLOCK,简称PCB)作为监测手段。由于操作系统中所有运行的进程可以以PCB的形式组成一个双向链表,操作系统可以根据宏命令“FOR_EACH_TASK”方便地搜索到所有进程的PCB,从PCB中连续获取信息进行判断,若设定时间内某一内核上的所有进程不发生变化则认为该内核失效了,即将该失效内核作为进程迁移的。

29、源内核;本步骤也可以通过某一内核向其他内核发送同步消息,其他内核接收该同步信息后返回响应消息,如果该内核在设定时间内未接收到其中一个内核返回的响应消息,则认为该内核失效,将所述失效内核作为进程迁移的源内核。0084S103、当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息。0085当监测到产生进程迁移触发条件时,操作系统从所述至少一个内核的全局信息表中,可以通过源内核的内核编号获取所述待迁移进程的进程相关信息。0086S104、根据所述进程相关信息获取所述待迁移进程的进程数据。0087操作系统获取到待迁移进程的进程相关信息后,根据进程相关信息获取所述待。

30、迁移进程的进程数据,例如,可以根据进程相关信息中的进程编号从PCB中获取进程的进程标识符、进程当前状态及进程优先级等PCB数据;可以根据内核GDT入口和GDT大小获取任务状态段(TASKSTATESEGMENT,简称TSS),再根据TSS得到进程切换时寄存器中的数据,即进程切换寄存器数据;还可以根据进程页目录基址获得待迁移进程的页目录,从而得到进程对应的物理地址,根据物理地址访问源内核的本地内存,从本地内存中获取内存镜像数据。0088其中,所述进程数据为进程进行迁移所需的相关数据,如PCB数据、进程切换寄存器数据、内存镜像数据等。说明书CN104102535A6/13页100089S105、根。

31、据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。0090具体地,在操作系统获取到源内核中待迁移进程的进程数据后,可以根据进程相关信息中的进程编号和进程页目录基址获取待迁移进程的内存镜像数据,根据所述内存镜像数据将所待迁移进程在目标内核本地重新加载运行,实现操作系统的高可用和高容错性。这样在内核上存储的全局信息表只需要维护进程编号和进程页目录基址等进程相关信息即可,使得操作系统运行时只需要维护较小信息量,在保证系统容错性的同时极大地减小日常开销。0091本实施例,通过日常维护内核上的全局信息表中的进程相关信息,当某个内核失效时,根据进程相关信息将失效内核上的待迁移进程迁移至其他内核运行,。

32、由于进程相关信息仅为一些基本信息,维护简单,系统开销小,从而实现了在较小系统开销下保证操作系统的高可用和高容错性,解决了由于系统开销大而影响整个操作系统性能的问题。0092可选地,本实施例在上述实施例的基础上,所述全局信息表包括内核编号、全系统数据信息表和全系统状态信息表,所述全系统数据信息表中的进程相关信息包括进程编号和进程页目录基址,所述全系统状态信息表中的进程相关信息包括全局描述符表入口和全局描述符表大小。0093可选地,在上述实施例的基础上,步骤S101可以包括每个内核在本地进程的状态发生变化时或按照预设规律,将状态变化进程的所述进程相关信息发送给其他内核,以更新其他内核中的全局信息表。

33、。具体地,在操作系统的每个内核的本地内存中均建立有全局信息表,为了保证全局信息表中的进程相关信息的实时性,需要不间断地对数据进行更新。对于更新的触发条件,例如,可以是每个内核在本地进程的状态发生变化时将状态变化进程的进程相关信息发送给其他内核,也可是按照预设规律,如满足设定时间间隔后每个内核将本地状态变化进程的进程相关信息发送给其他内核。这样做的好处在于,保证了进程相关信息是实时可用的,提高了进程迁移的可靠性。0094实施例二0095图2为本发明进程迁移方法实施例二的流程图,本实施例在上述实施例的基础上,进一步,如图2所示,所述方法还可以包括如下步骤0096S201、每个内核在操作系统启动时,。

34、在本地建立所述全系统数据信息表和全系统状态信息表。0097S202、每个内核将内核编号、全局描述符表入口和全局描述符表大小发送给其他内核,以更新其他内核的全系统状态信息表。0098在操作系统启动时,各内核在本地建立所述全系统数据信息表和全系统状态信息表,将内核位置、内核访问方式、内核编号、GDT入口和GDT大小发送给其他内核,其他内核接收到各内核的这些信息,根据各内核的编号存储在本地全局信息表的对应位置处,实现全系统状态信息表的更新。由于上述信息为静态信息,所以在全局信息表建立后可以只更新一次即可。0099S203、每个内核将内核编号、本地进程的进程编号和进程页目录基址发送给其他内核,以更新其。

35、他内核的全系统数据信息表。0100本步骤更新的信息为动态信息,需要在操作系统运行中实时进行更新,以保证所述进行相关信息的可用性。所以,本步骤更新的所述全系统数据信息表的进程相关信息可说明书CN104102535A107/13页11以认为是进程更新同步信息。0101其中,内核之间的信息传递可以采用广播消息的方式,传输介质可以采用如个人计算机接口标准(PERSONALCOMPUTERINTERFACEEXPRESS,简称PCIE)或超传输(HYPERTRANSPORT,简称HT)等。0102本实施例,在建立全局信息表后,对全系统状态信息表中的进程相关信息只需更新一次,从而减小信息更新量,进一步降低。

36、操作系统的日常开销,优化操作系统的性能。0103实施例三0104图3为本发明进程迁移方法实施例三的流程图,本实施例在上述实施例的基础上,如图3所示,所述监测是否产生进程迁移触发条件可以包括0105S301、每个内核向其他内核发送消息。0106S302、每个内核将在设定时间内未返回响应的内核确定为失效内核,所述确定失效内核作为产生进程迁移触发条件。0107具体地,为了实时监测操作系统中的内核是否失效从而进行进程迁移,每个内核可以向其他内核发送消息,其他内核接收该消息后,在设定时间内向所述每个内核返回响应消息,以表明该内核处于正常工作状态,若在设定时间内未返回响应消息,则认为该内核失效,进而产生进。

37、程迁移的触发条件。0108本实施例还可以优选将上述的进程更新同步信息作为所述消息,即,每个内核将所述进程更新同步消息发送给其他内核,更新其他内核本地存储的全局信息表,其他内核接收到所述消息后返回所述响应消息,如所述每个内核未接收到某个内核的响应消息则认为所述某个内核失效,进而产生进程迁移触发条件。0109本实施例,通过每个内核向其他内核发送消息,以是否接收到的响应消息作为产生进程迁移触发条件,尤其是以进程更新同步信息作为所述消息,保证操作系统的高可用和高容错性的同时,进一步降低了系统开销。0110实施例四0111图4为本发明进程迁移方法实施例四的流程图,本实施例在上述实施例的基础上,所述进程数。

38、据可以包括进程内存镜像数据、进程切换寄存器数据及进程控制块数据,如图4所示,步骤S105可以包括0112S401、识别所述待迁移进程的状态。0113具体地,可以根据进程数据中的PCB信息对所述待迁移进程的状态进行判断。通过进程数据中的进程编号,从操作系统中由以PCB的形式组成的双向链表中获取PCB信息,在PCB信息中包含有待迁移进程的状态信息,根据所述状态信息可以识别出进程是否处于运行状态。0114S402、当所述待迁移进程的状态为运行状态,则根据所述进程内存镜像数据,将待迁移进程迁移至目标内核重新启动。0115若待迁移进程处于运行状态时,则目标内核根据所述进程内存镜像数据在本地内存分配内存空。

39、间,重新加载运行。0116S403、当所述待迁移进程的状态为非运行状态,则根据所述进程内存镜像数据、进程切换寄存器数据及进程控制块数据将待迁移进程迁移至目标内核继续运行。0117若待迁移进程处于非运行状态,如进程挂起、就绪、等待等,则目标内核根据所述说明书CN104102535A118/13页12进程内存镜像数据,并通过本地存储的所述待迁移进程的进程相关信息获取进程切换寄存器数据及进程控制块数据,从而得到运行进程所需的全部数据,之后将待迁移进程在目标内核上进行重构并继续运行。0118本实施例,通过对待迁移进程的状态进行判断,对处于运行状态和非运行状态的待迁移进程采用不同的迁移操作,在保证操作系。

40、统高可用和高容错性的同时避免了进程迁移时数据的大量丢失,进一步优化了整个操作系统的性能。0119实施例五0120图5为本发明进程迁移方法实施例五的流程图,本实施例在上述实施例的基础上,当监测到产生进程迁移触发条件之后,还包括根据各内核的负载情况协商确定进程迁移的目标内核。如图5所示,所述方法可以按照如下步骤进行0121S101、在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息。0122S102、监测是否产生进程迁移触发条件。0123S103、当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息。0124S501、根据各内核。

41、的负载情况协商确定进程迁移的目标内核。0125具体地,监测到失效内核后,操作系统需要从正常工作的内核中根据负载情况选择一个内核作为目标内核。例如,可以从存储有全局信息表的正常运行的内核中根据全局信息表中的进程相关信息进行协商,选择一个工作量负荷最小的内核作为目标内核。0126S104、根据所述进程相关信息获取所述待迁移进程的进程数据。0127S105、根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。0128本实施例,通过根据各内核的负载情况协商确定进程迁移的目标内核,优化了目标内核的选择,避免了将待迁移进程迁移到负荷量大的内核上导致内核失效的问题。0129可选地,在上述实施例的基础上。

42、,当各内核的类型不同时,所述方法在监测到产生进程迁移触发条件之后,还包括根据各内核的类型协商确定与源内核类型相同的内核作为进程迁移的目标内核。具体地,由于计算系统的处理器类型不同,如两种指令集的中央处理器CPUXEON和龙芯,会导致操作系统中对应的内核类型有所不同。进行进程迁移时,源内核与目标内核需要为同一类型,不同类型的内核将无法进行进程迁移。本实施例通过选择同类型的内核作为目标内核,提高了进程迁移的效率。0130实施例六0131图6为本发明进程迁移方法实施例六的流程图,本实施例在上述实施例的基础上,如图6所示,在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信。

43、息之前,还可以包括0132S601、在操作系统启动时,每个内核向其他内核发送消息。0133S602、每个内核将在设定时间内返回响应的内核确定为正常内核。0134S603、操作系统在正常内核上分配进程任务。0135具体地,在操作系统启动时,可以先对各内核进行检测来确定各内核的是否处于正常状态。本实施例可以通过每个内核向其他内核发送消息,每个内核将在设定时间内返回响应的内核确定为正常内核,对于未返回响应的内核则认为是失效内核,在操作系统对说明书CN104102535A129/13页13各内核分配进程之前将失效内核剔除。其中,本实施例中的所述消息可以优选为各内核发送给其他内核的全系统状态信息表中的进。

44、程相关信息。0136本实施例,通过在操作系统启动时先进行内核状态检测,将失效内核剔除后再进行进程任务分配,防止将进程分配给失效内核而引起不必要的进程迁移,进一步提高了操作系统的性能。0137实施例七0138图7为本发明可迁移操作系统实施例一的结构示意图,所述操作系统可以应用于具有多处理器的计算系统,如集成多个CPU的SMP或NUMA系统、集成CPU和图形处理器GPU的混合计算系统等。如图7所示,所述操作系统可以包括维护模块71、监测模块72、提取模块73、获取模块74和迁移模块75。其中,所述维护模块71用于在多内核操作系统的至少一个内核上存储的全局信息表中维护所有内核中进程的进程相关信息;所。

45、述监测模块72用于监测是否产生进程迁移触发条件;所述提取模块73用于当监测到产生进程迁移触发条件时,从所述全局信息表中提取源内核上待迁移进程对应的进程相关信息;所述获取模块74用于根据所述进程相关信息获取所述待迁移进程的进程数据;所述迁移模块75用于根据所述进程数据将待迁移进程从源内核迁移至目标内核上运行。0139本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。0140可选地,在上述装置实施例的基础上,所述全局信息表可以包括内核编号、全系统数据信息表和全系统状态信息表,所述全系统数据信息表中的进程相关信息包括进程编号和进程页。

46、目录基址,所述全系统状态信息表中的进程相关信息包括全局描述符表入口和全局描述符表大小。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。0141可选地,在上述装置实施例的基础上,所述维护模块具体用于配置每个内核在本地进程的状态发生变化时或按照预设规律,将状态变化进程的所述进程相关信息发送给其他内核,以更新其他内核中的全局信息表。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。0142可选地,在上述实施例的基础上,所述操作系统还可以包括处理模块、第一发送模块和。

47、第二发送模块。其中,所述处理模块用于配置每个内核在操作系统启动时,在本地建立所述全系统数据信息表和全系统状态信息表;所述第一发送模块用于配置每个内核将内核编号、全局描述符表入口和全局描述符表大小发送给其他内核,以更新其他内核的全系统状态信息表;所述第二发送模块用于配置每个内核将内核编号、本地进程的进程编号和进程页目录基址发送给其他内核,以更新其他内核的全系统数据信息表。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。0143可选地,在上述实施例的基础上,所述监测模块具体用于配置每个内核向其他内核发送消息;配置每个内核将在设定。

48、时间内未返回响应的内核确定为失效内核,所述确定失效内核作为产生进程迁移触发条件。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。0144可选地,在上述实施例的基础上,所述操作系统还可以包括第一协商模块,用于说明书CN104102535A1310/13页14根据各内核的负载情况协商确定进程迁移的目标内核。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。0145可选地,在上述实施例的基础上,所述操作系统还可以包括第二协商模块,用于根据各内核的类型协商确定与源内。

49、核类型相同的内核作为进程迁移的目标内核。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。0146实施例八0147图8为本发明可迁移操作系统实施例二的结构示意图,所述进程数据包括进程内存镜像数据、进程切换寄存器数据及进程控制块数据,如图8所示,迁移模块75可以包括识别单元81、第一迁移单元82和第二迁移单元83。其中,所述识别单元81用于识别所述待迁移进程的状态;所述第一迁移单元82用于当所述待迁移进程的状态为运行状态,则根据所述进程内存镜像数据将待迁移进程迁移至目标内核重新启动;所述第二迁移单元83用于当所述待迁移进程的状态。

50、为非运行状态,则根据所述进程内存镜像数据、进程切换寄存器数据及进程控制块数据将待迁移进程迁移至目标内核继续运行。本实施例的装置,可以用于执行本发明实施例所提供的进程迁移方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。0148实施例九0149图9为本发明可迁移操作系统实施例三的结构示意图,如图9所示,所述维护模块71包括第三发送模块91、处理模块92和分配模块93。其中,所述第三发送模块91用于在操作系统启动时,配置每个内核向其他内核发送消息;所述处理模块92用于配置每个内核将在设定时间内返回响应的内核确定为正常内核;所述分配模块93,用于配置操作系统在正常内核上分配进程任务。本实。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1