一种定时器的定时设置方法、装置和虚拟化设备制造方法及图纸

技术编号:18289268 阅读:66 留言:0更新日期:2018-06-24 03:53
本申请实施例提供了一种定时器的定时设置方法、装置和虚拟化设备,该方法应用在虚拟化设备中,在所述虚拟化设备中部署有多个处理器并运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,所述方法包括:第二组件将定时器的定时时间通知第一组件;第一组件调用所述代理处理器按照所述定时时间设置定时器。这样,系统也会使用代理处理器的硬件来产生该定时器的中断,如此便不会在第二组件所属的处理器上发生中断而引发第二组件退出,可以避免虚拟机设定的定时器中断引发的虚拟机退出,从而减少虚拟机退出的次数、减少定时器的设置耗时。

【技术实现步骤摘要】
一种定时器的定时设置方法、装置和虚拟化设备
本申请涉及虚拟化的
,特别是涉及一种定时器的定时设置方法、一种定时器的定时设置装置和一种虚拟化设备。
技术介绍
在云计算的IaaS(InfrastructureasaService,基础设施即服务)中,云运营商提供托管的物理机、虚拟机及其他设施,供不同的用户根据自己的实际需要进行使用。虚拟机(VirtualMachine)服务是IaaS的核心服务之一,是指系统虚拟机,即可以进行模拟的、具有完整硬件系统功能的,运行在一个完全隔离环境中的完整计算机系统。虚拟机无法完全掌控所有硬件资源,在访问某些硬件资源时需要退出到非虚拟化状态下,由宿主机代理完成一些资源访问。如果虚拟机的程序主动等待(sleep)一段时间,此时需要设置定时器,定时器计时结束后会发出中断信号,该程序被唤醒。在虚拟化环境下,定时器是共享的硬件,在设置定时器时,对一个特殊的寄存器进行写操作,引发虚拟机退出,交给宿主机来协调定时器资源。例如,定时器初始设置为2s触发,如果某个客户机需要1s触发,那么,宿主机就要把定时器改为1s触发,而2s触发的事件保存下来,在1s触发之后,宿主机再为2s触发的事件对定时器设置一个1s的到期时间。在设置定时器的过程中,如果出现定时错误等情况,可能取消掉本次设置,这又会引发虚拟机退出,取消后又要重新设置定时器,这还会引发虚拟机退出。同时,定时器到期后发出中断,这个中断也会引发虚拟机退出。并且,目前普遍使用非周期性时钟,在每个时钟中断到来后,需要重新设置定时器,频繁地设置定时器容易导致虚拟机频繁退出。虚拟机退出时需要进行大量的状态保存和切换工作,再次进入虚拟化状态也需要恢复这些状态,所以,虚拟机的退出繁琐、耗时较多。
技术实现思路
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种定时器的定时设置方法、一种定时器的定时设置装置和一种虚拟化设备。为了解决上述问题,本申请实施例公开了一种定时器的定时设置方法,应用在虚拟化设备中,在所述虚拟化设备中部署有多个处理器并运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,所述方法包括:第二组件将定时器的定时时间通知第一组件;第一组件调用所述代理处理器按照所述定时时间设置定时器。本申请实施例还公开了一种定时器的定时设置装置,应用在虚拟化设备中,在所述虚拟化设备中部署有多个处理器并运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,其中,所述第二组件包括:定时时间通知模块,用于将定时器的定时时间通知第一组件;所述第一组件包括:定时器设置模块,用于调用所述代理处理器按照所述定时时间设置定时器。本申请实施例还公开了一种虚拟化设备,包括:多个处理器;存储器;和一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述多个处理器执行,其中,在所述虚拟化设备中运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,所述多个处理器被配置为:第二组件将定时器的定时时间通知第一组件;第一组件调用所述代理处理器按照所述定时时间设置定时器。本申请实施例包括以下优点:本申请实施例中,第二组件将定时器的定时时间通知第一组件,第一组件调用独立于第二组件的代理处理器按照定时时间设置定时器,这样,系统也会使用代理处理器的硬件来产生该定时器的中断,如此便不会在第二组件所属的处理器上发生中断而引发第二组件退出,可以避免虚拟机设定的定时器中断引发的虚拟机退出,从而减少虚拟机退出的次数、减少定时器的设置耗时。本申请实施例通过共享内存的方式将定时器的定时时间通知第一组件,减少通过写寄存器的方式将定时器的定时时间通知第一组件,可以有效地减少虚拟机操作定时器造成的退出,从而减少虚拟机退出的次数、减少定时器的设置耗时。附图说明图1是本申请的一种定时器的定时设置方法实施例的步骤流程图;图2是本申请的一种虚拟化设备的架构示意图;图3是本申请的另一种定时器的定时设置方法实施例的步骤流程图;图4是本申请实施例提供的一种定时器的定时设置示例图;图5是本申请的一种定时器的定时设置装置实施例的结构框图;图6是本申请的另一种定时器的定时设置装置实施例的结构框图;图7是本申请实施例提供的一种虚拟化设备的结构示意图。具体实施方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。参照图1,示出了本申请的一种定时器的定时设置方法实施例的步骤流程图。在具体实现中,如图2所示,本申请实施例可以应用在虚拟化设备200中,该虚拟化设备200为物理设备,在虚拟化设备200中部署有多个处理器(CentralProcessingUnit,CPU)、内存、网络设备存储设备等硬件资源。一般而言,虚拟化是值计算机元件在虚拟的基础上运行,用逻辑表示资源,通过在虚拟化设备上200添加虚拟化层,从而实现虚拟化,如虚拟化处理器、虚拟内存管理器(MemoryManagementUnit,MMU)和虚拟I/O系统等等。虚拟化层将下层资源封装,抽象为另一种形式的资源,提供给上层使用。虚拟化可以将一份资源抽象为多份,也可以将多份资源抽象成一份。在虚拟化设备上200中运行第一组件210,即虚拟化平台所在的系统,在第一组件210上通过虚拟化构建第二组件220,分别运行多个不同或相同的操作系统。在本申请实施例的一个示例中,第一组件210可以为宿主机、第二组件220可以为运行在宿主机上的虚拟机,又称之为客户机,如Hyper-V,Xen,KVM(Kernel-basedVirtualMachine),Vmware等等。第二组件220(如客户机)是由虚拟化层提供的独立的计算机系统,拥有自己的虚拟硬件(CPU、内存、网络设备,存储设备等),对于上层,第二组件220(如客户机)就是真实的计算,从应用程序的角度看,程序运行在第二组件220(如客户机)上与运行在第一组件210(如宿主机)上是一样的。在具体实现中,虚拟化的一种方式为半虚拟化(Paravirtualization,PV),即使用Hypervisor(虚拟机管理程序)分享存取底层的硬件资源,虚拟出来的架构与物理架构一致,通常修改第二组件220(如客户机)的内核,然后实现就请求转发给Hypervisor(虚拟机管理程序),让Hypervisor(虚拟机管理程序)执行之后再返回(hypercall)给第二组件220(如客户机)。该方法具体可以包括如下步骤:步骤101,第二组件将定时器的定时时间通知第一组件。第二组件在需求定时器时,可以将定时器的定时时间通知第一组件,让第一组件进行设置。在本申请的一个实施例中,步骤101可以包括如下子步骤:子步骤S11,第二组件申请共享内存,并通知第一组件;第二组件与第一组件对共享内存的操作,可以采用原子操作(operation),即不会被线程调度机制打断的操作,这种操作一旦开始,就运行到结束,中间不会有发生contextswitch(切换到另一个线程),该原子操作包括但不限于XCHG(寄存器和内存变量之间内容的交换本文档来自技高网
...
一种定时器的定时设置方法、装置和虚拟化设备

【技术保护点】
1.一种定时器的定时设置方法,其特征在于,应用在虚拟化设备中,在所述虚拟化设备中部署有多个处理器并运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,所述方法包括:第二组件将定时器的定时时间通知第一组件;第一组件调用所述代理处理器按照所述定时时间设置定时器。

【技术特征摘要】
1.一种定时器的定时设置方法,其特征在于,应用在虚拟化设备中,在所述虚拟化设备中部署有多个处理器并运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,所述方法包括:第二组件将定时器的定时时间通知第一组件;第一组件调用所述代理处理器按照所述定时时间设置定时器。2.根据权利要求1所述的方法,其特征在于,在所述第二组件将定时器的定时时间通知第一组件的步骤之前,所述方法还包括:第二组件询问第一组件是否支持半虚拟化定时器;第二组件在获知第一组件支持半虚拟化定时器时,通知第一组件、所述第二组件支持半虚拟化定时器。3.根据权利要求1所述的方法,其特征在于,所述第二组件将定时器的定时时间通知第一组件的步骤包括:第二组件申请共享内存,并通知第一组件;第二组件从所述共享内存中读取第一组件写入的、下一次扫描所述共享内存的扫描时间;第二组件依据定时器的定时时间与所述扫描时间之间的关系时,将所述定时时间通知第一组件。4.根据权利要求3所述的方法,其特征在于,所述第二组件依据定时器的定时时间与所述扫描时间之间的关系时,将所述定时时间通知第一组件的步骤包括:第二组件在确定定时器的定时时间大于所述扫描时间时,将所述定时时间写入所述共享内存;或者,第二组件在确定定时器的定时时间小于或等于所述扫描时间时,将所述定时时间通过写寄存器的方式通知第一组件。5.根据权利要求4所述的方法,其特征在于,在所述第二组件申请共享内存,并通知第一组件的步骤之后,所述方法还包括:第一组件计算下一次扫描所述共享内存的扫描时间;第一组件将所述下一次扫描所述共享内存的扫描时间写入所述共享内存;其中,当上一次通过所述共享内存通知第一组件定时器的定时时间时,下一次扫描所述共享内存的扫描时间大于上一次扫描所述共享内存的扫描时间;当上一次通过所述寄存器通知第一组件定时器的定时时间时,下一次扫描所述共享内存的扫描时间小于上一次扫描所述共享内存的扫描时间。6.根据权利要求4所述的方法,其特征在于,所述第一组件调用所述按照所述定时时间设置定时器的步骤包括:第一组件在到达所述扫描时间时,扫描所述共享内存;第一组件从所述共享内存中读取所述定时时间;第一组件调用所述代理处理器按照所述定时时间设置定时器。7.根据权利要求6所述的方法,其特征在于,所述第一组件在到达所述扫描时间时,扫描所述共享内存的步骤包括:第一组件启动一内核线程,并绑定所述代理处理器;第一组件调用所述内核线程在到达所述扫描时间时,扫描所述共享内存;所述第一组件调用所述代理处理器按照所述定时时间设置定时器的步骤包括:第一组件调用所述内核线程按照所述定时时间设置定时器。8.根据权利要求4所述的方法,其特征在于,所述第一组件调用所述代理处理器按...

【专利技术属性】
技术研发人员:张扬罗犇
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1