[发明专利]一种任务处理的方法和虚拟机有效
申请号: | 201210543870.4 | 申请日: | 2012-12-14 |
公开(公告)号: | CN103049334A | 公开(公告)日: | 2013-04-17 |
发明(设计)人: | 顾磷;马志强;盛中华;文刘飞 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/455 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 黄厚刚 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 处理 方法 虚拟机 | ||
1.一种任务处理的方法,其特征在于,所述方法包括:
当接收到虚拟指令层下发的创建任务的指令时,为所述任务选取一个用于执行所述任务的空闲资源,其中所述指令中至少包括所述任务运行时的起始地址,所述任务涉及的全局变量的地址信息和同步变量的地址信息;
根据所述全局变量的地址信息获取与所述全局变量地址信息对应的全局变量状态信息;
根据全局变量状态信息为全局变量创建本地全局变量快照;
根据所述本地全局变量快照在选取的所述空闲资源中预先分配的私有内存空间中执行所述任务;
当所述任务执行完毕后,获取所述全局变量对应的新的全局变量快照,根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量;
判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列;
其中所述同步任务等待队列中的任务是等待同步变量触发的任务所在的队列,当同步任务等待队列中的任务的同步变量触发后,将任务放入所述执行任务等待队列中排队等待调度;所述执行任务等待队列中的任务是等待调度执行的任务所在的队列。
2.根据权利要求1所述的方法,其特征在于,所述判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列,包括:
在执行任务等待队列中选取一个第一特定任务由第一空闲资源来运行,其中,所述第一特定任务涉及的全局变量的地址信息与当前执行的所有任务所涉及的全局变量的地址信息不冲突;或,
在执行任务等待队列中选取一个第二特定任务由第二空闲资源来运行,其中,所述第二特定任务涉及的全局变量的地址信息与第二空闲资源已执行完毕的任务所涉及的全局变量的地址信息尽可能多的相同或相近,以增加数据亲和性。
3.根据权利要求1所述的方法,其特征在于,所述全局变量状态信息包括所述全局变量的内存地址,创建时间以及版本标记,所述根据全局变量状态信息为全局变量创建全局变量快照包括:根据所述全局变量状态信息,将所述全局变量状态信息进行复制,生成所述全局变量的全局变量快照;
相应的,所述根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量包括:
判断所述本地全局变量快照中的版本标记与所述新的全局变量快照的版本标记是否相同,如果相同则表示所述全局变量未被其他任务更新;如果不相同则表示所述全局变量已被其他任务更新。
4.根据权利要求3所述的方法,其特征在于,所述根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量之后,所述方法还包括:
当全局变量未被其他任务更新时,在执行所述任务的资源中的公用内存空间中保存所述本地全局变量快照,并更新全局变量的内存地址为执行所述任务的资源中的公用内存空间中保存所述全局变量快照的内存地址,将所述本地全局变量快照更新为所述本地全局变量快照。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述全局变量快照在选取的所述空闲资源中预先分配的私有内存空间中执行所述任务之后,所述方法还包括:
执行所述任务发生缺页错误时,则查询所述全局变量快照的内存地址实际的状态;
当所述任务对应的全局变量快照的内存地址在其他资源的公用内存空间中,将所述全局变量快照的内存地址对应的实际内容拷贝到本地;
当所述任务对应的全局变量快照的内存地址在本地的公用内存空间中,则在本地的公用内存空间中进行获取。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210543870.4/1.html,转载请声明来源钻瓜专利网。