[发明专利]一种任务处理的方法和虚拟机有效
申请号: | 201210543870.4 | 申请日: | 2012-12-14 |
公开(公告)号: | CN103049334A | 公开(公告)日: | 2013-04-17 |
发明(设计)人: | 顾磷;马志强;盛中华;文刘飞 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/455 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 黄厚刚 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 处理 方法 虚拟机 | ||
技术领域
本发明涉及计算机技术领域,特别涉及一种任务处理的方法和虚拟机。
背景技术
在计算机技术领域中,虚拟技术是一种通过组合或分割现有的计算机资源,使得这些资源表现为一个或多个操作环境,从而提供优于原有资源配置的访问方式的技术。
现有技术中通过软件的方式将多个X86系统聚合成一个虚拟的对称多处理机。使用一个虚拟机监视器或者虚拟机仿真器实现单个结点的物理资源的虚拟化,提供统一的运行环境。虚拟机对内存的管理是通过软件的方式实现的,将所有物理资源中的内存在逻辑上视为一个整体的内存,内存是按照虚拟页面划分的。当虚拟机在执行任务时,会随机选取等待队列中的任务,然后按照任务涉及的相关数据所需的内存空间,在逻辑内存中为任务按顺序的分配内存地址,是一种按需分配内存的机制。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由于虚拟机系统是按照页面来划分是否存在数据冲突的,当两个不同的任务所涉及的数据被分配在同一个虚拟页面之后,两个任务同时访问该虚拟页面中的两个不同地址,虚拟机会认为两个任务访问的是同一个数据,因此会认为两个任务发生了数据共享冲突,会中端两个任务的执行过程,而事实上并未发生真正的共享冲突,即产生了假共享现象,影响任务的执行。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种任务处理的方法和虚拟机。所述技术方案如下:
第一方面,本发明实施例提供的一种任务处理的方法,包括:
当接收到虚拟指令层下发的创建任务的指令时,为所述任务选取一个用于执行所述任务的空闲资源,其中所述指令中至少包括所述任务运行时的起始地址,所述任务涉及的全局变量的地址信息和同步变量的地址信息;
根据所述全局变量的地址信息获取与所述全局变量地址信息对应的全局变量状态信息;
根据全局变量状态信息为全局变量创建本地全局变量快照;
根据所述本地全局变量快照在选取的所述空闲资源中预先分配的私有内存空间中执行所述任务;
当所述任务执行完毕后,获取所述全局变量对应的新的全局变量快照,根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量;
判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列;
其中所述同步任务等待队列中的任务是等待同步变量触发的任务所在的队列,当同步任务等待队列中的任务的同步变量触发后,将任务放入所述执行任务等待队列中排队等待调度;所述执行任务等待队列中的任务是等待调度执行的任务所在的队列。
在第一方面的第一种可能的实现方式中,所述判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列,包括:
在执行任务等待队列中选取一个第一特定任务由第一空闲资源来运行,其中,所述第一特定任务涉及的全局变量的地址信息与当前执行的所有任务所涉及的全局变量的地址信息不冲突;或,
在执行任务等待队列中选取一个第二特定任务由第二空闲资源来运行,其中,所述第二特定任务涉及的全局变量的地址信息与第二空闲资源已执行完毕的任务所涉及的全局变量的地址信息尽可能多的相同或相近,以增加数据亲和性。
在第一方面的第二种可能的实现方式中,所述全局变量状态信息包括所述全局变量的内存地址,创建时间以及版本标记,所述根据全局变量状态信息为全局变量创建全局变量快照包括:根据所述全局变量状态信息,将所述全局变量状态信息进行复制,生成所述全局变量的全局变量快照;
相应的,所述根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量包括:
判断所述本地全局变量快照中的版本标记与所述新的全局变量快照的版本标记是否相同,如果相同则表示所述全局变量未被其他任务更新;如果不相同则表示所述全局变量已被其他任务更新。
根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量之后,所述方法还包括:
当全局变量未被其他任务更新时,在执行所述任务的资源中的公用内存空间中保存所述本地全局变量快照,并更新全局变量的内存地址为执行所述任务的资源中的公用内存空间中保存所述全局变量快照的内存地址,将所述本地全局变量快照更新为所述本地全局变量快照。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210543870.4/2.html,转载请声明来源钻瓜专利网。