CN108196934B - 一种定时器的定时设置方法、装置和虚拟化设备 - Google Patents

一种定时器的定时设置方法、装置和虚拟化设备 Download PDF

Info

Publication number
CN108196934B
CN108196934B CN201611122483.8A CN201611122483A CN108196934B CN 108196934 B CN108196934 B CN 108196934B CN 201611122483 A CN201611122483 A CN 201611122483A CN 108196934 B CN108196934 B CN 108196934B
Authority
CN
China
Prior art keywords
component
time
timer
scanning
shared memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611122483.8A
Other languages
English (en)
Other versions
CN108196934A (zh
Inventor
张扬
罗犇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201611122483.8A priority Critical patent/CN108196934B/zh
Publication of CN108196934A publication Critical patent/CN108196934A/zh
Application granted granted Critical
Publication of CN108196934B publication Critical patent/CN108196934B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Abstract

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

Description

一种定时器的定时设置方法、装置和虚拟化设备
技术领域
本申请涉及虚拟化的技术领域,特别是涉及一种定时器的定时设置方法、一种定时器的定时设置装置和一种虚拟化设备。
背景技术
在云计算的IaaS(Infrastructure as a Service,基础设施即服务)中,云运营商提供托管的物理机、虚拟机及其他设施,供不同的用户根据自己的实际需要进行使用。
虚拟机(Virtual Machine)服务是IaaS的核心服务之一,是指系统虚拟机,即可以进行模拟的、具有完整硬件系统功能的,运行在一个完全隔离环境中的完整计算机系统。
虚拟机无法完全掌控所有硬件资源,在访问某些硬件资源时需要退出到非虚拟化状态下,由宿主机代理完成一些资源访问。
如果虚拟机的程序主动等待(sleep)一段时间,此时需要设置定时器,定时器计时结束后会发出中断信号,该程序被唤醒。
在虚拟化环境下,定时器是共享的硬件,在设置定时器时,对一个特殊的寄存器进行写操作,引发虚拟机退出,交给宿主机来协调定时器资源。
例如,定时器初始设置为2s触发,如果某个客户机需要1s触发,那么,宿主机就要把定时器改为1s触发,而2s触发的事件保存下来,在1s触发之后,宿主机再为2s触发的事件对定时器设置一个1s的到期时间。
在设置定时器的过程中,如果出现定时错误等情况,可能取消掉本次设置,这又会引发虚拟机退出,取消后又要重新设置定时器,这还会引发虚拟机退出。同时,定时器到期后发出中断,这个中断也会引发虚拟机退出。
并且,目前普遍使用非周期性时钟,在每个时钟中断到来后,需要重新设置定时器,频繁地设置定时器容易导致虚拟机频繁退出。
虚拟机退出时需要进行大量的状态保存和切换工作,再次进入虚拟化状态也需要恢复这些状态,所以,虚拟机的退出繁琐、耗时较多。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种定时器的定时设置方法、一种定时器的定时设置装置和一种虚拟化设备。
为了解决上述问题,本申请实施例公开了一种定时器的定时设置方法,应用在虚拟化设备中,在所述虚拟化设备中部署有多个处理器并运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,所述方法包括:
第二组件将定时器的定时时间通知第一组件;
第一组件调用所述代理处理器按照所述定时时间设置定时器。
本申请实施例还公开了一种定时器的定时设置装置,应用在虚拟化设备中,在所述虚拟化设备中部署有多个处理器并运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,其中,
所述第二组件包括:
定时时间通知模块,用于将定时器的定时时间通知第一组件;
所述第一组件包括:
定时器设置模块,用于调用所述代理处理器按照所述定时时间设置定时器。
本申请实施例还公开了一种虚拟化设备,包括:
多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述多个处理器执行,其中,在所述虚拟化设备中运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,所述多个处理器被配置为:
第二组件将定时器的定时时间通知第一组件;
第一组件调用所述代理处理器按照所述定时时间设置定时器。
本申请实施例包括以下优点:
本申请实施例中,第二组件将定时器的定时时间通知第一组件,第一组件调用独立于第二组件的代理处理器按照定时时间设置定时器,这样,系统也会使用代理处理器的硬件来产生该定时器的中断,如此便不会在第二组件所属的处理器上发生中断而引发第二组件退出,可以避免虚拟机设定的定时器中断引发的虚拟机退出,从而减少虚拟机退出的次数、减少定时器的设置耗时。
本申请实施例通过共享内存的方式将定时器的定时时间通知第一组件,减少通过写寄存器的方式将定时器的定时时间通知第一组件,可以有效地减少虚拟机操作定时器造成的退出,从而减少虚拟机退出的次数、减少定时器的设置耗时。
附图说明
图1是本申请的一种定时器的定时设置方法实施例的步骤流程图;
图2是本申请的一种虚拟化设备的架构示意图;
图3是本申请的另一种定时器的定时设置方法实施例的步骤流程图;
图4是本申请实施例提供的一种定时器的定时设置示例图;
图5是本申请的一种定时器的定时设置装置实施例的结构框图;
图6是本申请的另一种定时器的定时设置装置实施例的结构框图;
图7是本申请实施例提供的一种虚拟化设备的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种定时器的定时设置方法实施例的步骤流程图。
在具体实现中,如图2所示,本申请实施例可以应用在虚拟化设备200中,该虚拟化设备200为物理设备,在虚拟化设备200中部署有多个处理器(Central Processing Unit,CPU)、内存、网络设备存储设备等硬件资源。
一般而言,虚拟化是值计算机元件在虚拟的基础上运行,用逻辑表示资源,通过在虚拟化设备上200添加虚拟化层,从而实现虚拟化,如虚拟化处理器、虚拟内存管理器(Memory Management Unit,MMU)和虚拟I/O系统等等。虚拟化层将下层资源封装,抽象为另一种形式的资源,提供给上层使用。虚拟化可以将一份资源抽象为多份,也可以将多份资源抽象成一份。
在虚拟化设备上200中运行第一组件210,即虚拟化平台所在的系统,在第一组件210上通过虚拟化构建第二组件220,分别运行多个不同或相同的操作系统。
在本申请实施例的一个示例中,第一组件210可以为宿主机、第二组件220可以为运行在宿主机上的虚拟机,又称之为客户机,如Hyper-V,Xen,KVM(Kernel-based VirtualMachine),Vmware等等。
第二组件220(如客户机)是由虚拟化层提供的独立的计算机系统,拥有自己的虚拟硬件(CPU、内存、网络设备,存储设备等),对于上层,第二组件220(如客户机)就是真实的计算,从应用程序的角度看,程序运行在第二组件220(如客户机)上与运行在第一组件210(如宿主机)上是一样的。
在具体实现中,虚拟化的一种方式为半虚拟化(Paravirtualization,PV),即使用Hypervisor(虚拟机管理程序)分享存取底层的硬件资源,虚拟出来的架构与物理架构一致,通常修改第二组件220(如客户机)的内核,然后实现就请求转发给Hypervisor(虚拟机管理程序),让Hypervisor(虚拟机管理程序)执行之后再返回(hyper call)给第二组件220(如客户机)。
该方法具体可以包括如下步骤:
步骤101,第二组件将定时器的定时时间通知第一组件。
第二组件在需求定时器时,可以将定时器的定时时间通知第一组件,让第一组件进行设置。
在本申请的一个实施例中,步骤101可以包括如下子步骤:
子步骤S11,第二组件申请共享内存,并通知第一组件;
第二组件与第一组件对共享内存的操作,可以采用原子操作(operation),即不会被线程调度机制打断的操作,这种操作一旦开始,就运行到结束,中间不会有发生contextswitch(切换到另一个线程),该原子操作包括但不限于XCHG(寄存器和内存变量之间内容的交换指令)等。
需要说明的是,在同一个第一组件中可以运行多个第二组件,各个第二组件可以在其内存中共享内存。
第二组件申请共享内存成功之后,可以通过写MSR(machine specific register)引发退出等方式,将该共享内存的基地址发送给第一组件,使得第一组件可以按照该基地址访问该共享内存。
此后,第二组件和第一组件将以同样的数据结构来解析这个共享内存,以共享定时器的信息。
子步骤S12,第二组件从所述共享内存中读取第一组件写入的、下一次扫描所述共享内存的扫描时间。
在每个扫描周期中,第一组件可以计算下一次扫描共享内存的扫描时间(next_sync_tsc),以及,第一组件将下一次扫描共享内存的扫描时间写入共享内存。
为了方便第二组件进行比对,下一次扫描共享内存的扫描时间以第二组件的tsc(time stamp counter,时间戳设备)为准,其中,该tsc记录系统重置以来的CPU周期数,对操作系统而言是只读的,由硬件按照CPU工作频率来更新。
当然,定时时间也可以以第一组件的tsc为准,本申请实施例对此不加以限制。
在具体实现中,第一组件可以设置下一个扫描周期到来的时刻N,同时,第一组件获知自身时间与虚拟机时间之间差值G,计算N和G之和,即可计算出下一次扫描共享内存在第二组件中的扫描时间(next_sync_tsc),又或者,第一组件获知第二组件的时间,加上当前时间到下一个扫描周期之间的差值,即可计算出下一次扫描共享内存在第二组件中的扫描时间(next_sync_tsc)。
需要说明的是,由于每个第二组件都可能具有共享内存,因此,第一组件扫描共享的周期,可以是针对每个第二组件的,也可以是针对所有第二组件的,即一次性扫描所有第二组件的共享内存,本申请实施例对此不加以限制。
第二组件在设置定时器之前,可以从共享内存中读取第一组件下一次扫描共享内存的扫描时间。
子步骤S13,第二组件依据定时器的定时时间与所述扫描时间之间的关系时,将所述定时时间通知第一组件。
在本申请实施例中,第二组件可以比较定时器的定时时间与扫描时间之间的大小,确定在第一组件扫描共享内存之前,定时器是否会计算完成,从而确定通过哪种方式通知将定时时间通知第一组件。
在一种情况中,第二组件在确定定时器的定时时间大于所述扫描时间时,将所述定时时间写入所述共享内存。
在此种情况中,第二组件可以根据业务需求确定定时器的定时时间(expire_tsc),该定时时间可以以第二组件的tsc为准。
当然,定时时间也可以以第一组件的tsc为准,本申请实施例对此不加以限制。
在一个示例中,该定时时间(expire_tsc)可以设置为设置时间(第二组件设置定时时间的时间)、定时时长(定时的长度),例如,若第二组件在16:00设置定时3s,则可以定时时间(expire_tsc)为16:00、3。
当然,该定时时间(expire_tsc)也可以设置为到期时间,例如,若定时时间为16:03,表示在16:03发起中断,或者其他形式,本申请实施例对此不加以限制。
如果定时时间(expire_tsc)>扫描时间(next_sync_tsc),即定时时间(expire_tsc)超过扫描时间(next_sync_tsc),定时器的中断发生在第一组件下一次的扫描之前,第一组件可以及时地扫描、感知到这个定时器,并进行设置,因此,可以将定时时间写入共享内存。
需要说明的是,共享内存的写操作,不会引发第二组件的退出。
在另一种情况中,第二组件在确定定时器的定时时间小于或等于所述扫描时间时,将所述定时时间写寄存器的方式通知第一组件。
如果定时时间(expire_tsc)≤扫描时间(next_sync_tsc),即定时时间(expire_tsc)未超过扫描时间(next_sync_tsc),定时器的中断发生在第一组件下一次的扫描时或之后,第一组件并不能可以及时地扫描、感知到这个定时器,并进行设置,因此,第二组件并不能将定时时间写入共享内存。
为了及时通知第一组件设置定时器,第二组件可以通过写MSR引发退出的方式,将该定时时间通知第一组件。
在本申请实施例中,第二组件可以通过两种方式将定时器的定时时间通知第一组件,分别为共享内存与写寄存器,写寄存器意味着会有退出,可以根据写寄存器或者不写共享内存的情况、适当调整对共享内存的扫描周期。
当上一次通过共享内存通知第一组件定时器的定时时间时,为了减少资源的消耗,可以适当延长扫描的周期,减少单位时间内的扫描次数,即下一次扫描共享内存的扫描时间大于上一次扫描共享内存的扫描时间。
当上一次通过寄存器通知第一组件定时器的定时时间时,为了减少退出的次数,可以减少延长扫描的周期,增加在定时器到期前扫描到设置定时器的概率,即下一次扫描共享内存的扫描时间小于上一次扫描共享内存的扫描时间。
在具体实现中,在第一组件中,可以设置一个变量(PVtimer_miss),用于记录通过写寄存器通知的次数或者错失通过共享内存通知的次数。
该变量的初始值为0,当第二组件将定时时间写入共享内存时,可以不调整变量的值,当第二组件将定时时间写入寄存器时,将变量的值加1。
第一组件在设置下一次扫描共享内存的扫描时间时,检测该统计变量(PVtimer_miss),如果统计变量(PVtimer_miss)为0,表示上一次通过共享内存通知第一组件定时器的定时时间,如果统计变量(PVtimer_miss)不为0,表示上一次通过寄存器通知第一组件定时器的定时时间。
需要说明的是,上一次扫描共享内存与下一次扫描共享内存是相邻的两个扫描周期的扫描操作。
当然,上述计算扫描时间的方式只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他计算扫描时间的方式,例如,设置恒定的扫描时间等,本申请实施例对此不加以限制。另外,除了上述计算扫描时间的方式外,本领域技术人员还可以根据实际需要采用其它计算扫描时间的方式,本申请实施例对此也不加以限制。
此外,上述通知第一组件的方式只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他通知第一组件的方式,例如,直接通过写寄存器的方式通知第一组件等,本申请实施例对此不加以限制。另外,除了上述通知第一组件的方式外,本领域技术人员还可以根据实际需要采用其它通知第一组件的方式,本申请实施例对此也不加以限制。
步骤102,第一组件调用所述代理处理器按照所述定时时间设置定时器。
在本申请实施例中,处理器中包括独立于第二组件的代理处理器,所谓独立于第二组件的代理处理器,即第二组件无法触及的物理处理器,例如,如图2所示的CPU_X,定时器可以设置在该代理处理器之下。
所谓定时器,是指计算机系统中用来在未来某个时间产生中断,以触发某些事件执行的设备,有多种硬件可以实现定时器功能。
本申请实施例中所指的定时器,可以指Local APIC(Advanced ProgrammableInterrupt Controller,管理中断)中的高精度定时器,其中,Local APIC是本地高级可编程中断控制器,本地指每个处理器上拥有自己的APIC。
当然,本申请实施例中所指的定时器,也可以是指低精度定时器(如毫秒级的定时器)或者其他定时器,本申请实施例对此不加以限制。
在本申请的一个实施例中,步骤102可以包括如下子步骤:
子步骤S21,第一组件在到达所述扫描时间时,扫描所述共享内存;
在申请实施例中,第二组件通过共享内存将定时时间(expire_tsc)通知第一组件。
第一组件可以启动一内核线程,并绑定代理处理器,它周期性的扫描共享内存。
第一组件调用内核线程在到达所述扫描时间时,扫描所述共享内存。
子步骤S22,第一组件从所述共享内存中读取所述定时时间;
如果共享内存中的定时时间(expire_tsc)不等于0,则可以将这个定时时间(expire_tsc)取出。
子步骤S23,第一组件调用所述代理处理器按照所述定时时间设置定时器。
在具体实现中,第一组件可以调用内核线程按照定时时间设置定时器。
需要说明的是,从第二组件设置定时时间(expire_tsc)到第一组件扫描共享内存、读取定时时间(expire_tsc)之间存在时间差,第二组件的时间与第一组件之间也存在时间差,第一组件在设置定时器时,需要对这些时间差进行补偿。
例如,假设第二组件设置的定时时间(expire_tsc)为16:00、3,第一组件在16:01读取定时时间(expire_tsc),而第二组件的时间与第一组件之间的时间差为0.5s,因此,第一组件设置的定时器的到期时间为3-1-0.5=1.5s。
在本申请的另一个实施例中,步骤102可以包括如下子步骤:
子步骤S31,第一组件从第二组件所属的处理器通知所述代理处理器、按照所述定时时间设置定时器。
在申请实施例中,第二组件通过写MSR的方式通知第一组件。
第一组件设置定时器的方式不同于原来的直接代理设置定时器,改为发送IPI(Inter-Processor Interrupts,核间中断)到代理处理器并执行指定的处理函数,该处理函数可以用于设置针对本IPI源处理器的定时器。
本申请实施例发送IPI到代理处理器,可以确保定时器的亲和性不发生改变,一直处在代理处理器的管辖之下。
本申请实施例中,第二组件将定时器的定时时间通知第一组件,第一组件代理处理器按照定时时间设置定时器,这样,系统也会使用代理处理器的硬件来产生该定时器的中断,如此便不会在第二组件所属的处理器上发生中断而引发第二组件退出,可以避免虚拟机设定的定时器中断引发的虚拟机退出,从而减少虚拟机退出的次数、减少定时器的设置耗时。
本申请实施例通过共享内存的方式将定时器的定时时间通知第一组件,减少通过写寄存器的方式将定时器的定时时间通知第一组件,可以有效地减少虚拟机操作定时器造成的退出,从而减少虚拟机退出的次数、减少定时器的设置耗时。
参照图3,示出了本申请的另一种定时器的定时设置方法实施例的步骤流程图,应用在虚拟化设备中,在所述虚拟化设备中部署有多个处理器并运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,所述方法具体可以包括如下步骤:
步骤301,第二组件询问第一组件是否支持半虚拟化定时器。
步骤302,第二组件在获知第一组件支持半虚拟化定时器时,通知第一组件、所述第二组件支持半虚拟化定时器。
由于第二组件和第一组件的系统版本不一定恒定,并非都支持半虚拟化定时器(PV-timer),因此,第二组件在采用半虚拟化定时器(PV-timer)的规范设置定时器之前,可以与第一组件进行特性同步。
在具体实现中,如果第二组件本身支持半虚拟化定时器(PV-timer)的特性,则可以采用CPUID指令询问第一组件是否支持半虚拟化定时器(PV-timer)的特性。
如果第二组件获知第一组件支持半虚拟化定时器(PV-timer)的特性,第二组件可以通过写寄存器MSR的方式通知第一组件,此第二组件支持半虚拟化定时器(PV-timer)的特性,后续可以按照半虚拟化定时器(PV-timer)进行定时器的设置。
需要说明的是,半虚拟化定时器(PV-timer)可以指本申请实施例中定时器的定时设置方法,如步骤101-步骤102、步骤303-306,等等,相关之处参见定时器的定时设置方法实施例的部分说明即可,在此不加以详述。
此外,如果第二组件或第一组件任一不支持半虚拟化定时器的特征,则可以通过其他方式进行定时器的设置,本申请实施例对此不加以限制。
步骤303,第二组件将定时器的定时时间通知第一组件。
步骤304,第一组件调用所述代理处理器按照所述定时时间设置定时器。
步骤305,第一组件在定时器计算所述定时时间完成时,在所述代理处理器中产生中断信号。
步骤306,第一组件将所述中断信号注入第二组件的虚拟处理器。
当定时器到期后,在代理处理器上产生中断,而并非是在第二组件所属的源处理器上发生中断,因此,此中断并不会引发虚拟机的退出。
中断产生后,会执行定时器处理程序,向第二组件的虚拟处理器(vcpu)注入一个PI(Posted-interrupts)中断,PI中断能在不引发第二组件退出的情况下,中断vcpu使其处理中断。
其中,PI中断是虚拟化特性,可以有选择地为虚拟机注入中断而不引发退出,从而提高虚拟机系统的性能。
为使本领域技术人员更好地理解本申请实施例,以下通过具体的示例来说明本申请实施例中定时器的定时设置方法。
如图4所示,虚拟化平台所在的系统为宿主机410,在宿主机中存在多个CPU,包括CPU_0、CPU_1……CPU_X,客户机410运行在CPU_1中。
因此,CPU_1为客户机420的源CPU,而客户机420无法触及CPU_X,则可以将CPU_X设置为代理CPU。
客户机420在其内存中申请了一页共享内存421,并将该共享内存421的基地址通知了宿主机410。
宿主机410计算下一次扫描描共享内存的扫描时间(next_sync_tsc)。
根据上周期得到的统计变量(PVtimer_miss)累计值,决定本周期扫描的时长:
如果PVtimer_miss=0,本周期=上周期*1.01
如果PVtimer_miss≠0,本周期=上周期/2
其中,周期上限不超过1ms,下限不低于3μs。
在步骤S1中,宿主机410将计算得到的下一次扫描描共享内存的扫描时间(next_sync_tsc)写入共享内存421中。
客户机420确定定时时间(expire_tsc),并判断是否定时时间(expire_tsc)>扫描时间(next_sync_tsc),若是,则执行步骤S2,将定时时间(expire_tsc)写入共享内存421中,若否,则执行步骤S3,通过写MSR的方式通知宿主机410。
在前一种方式中,执行步骤S4,宿主机410到达扫描时间(next_sync_tsc)时,启动一内核线程,并绑定至CPU_X,由该内核线程扫描共享内存,如果定时时间(expire_tsc)≠0,则提取该定时时间(expire_tsc),并在CPU_X之下设置定时器411。
在后一种方式中,执行步骤S5,宿主机410的CPU_1获知定时时间(expire_tsc),CPU_1发送IPI到CPU_X,通知CPU_X设置定时器411。
在步骤S6中,当定时器411到达定时时间(expire_tsc)后,产生一中断,CPU_X向客户机420的处理器vcpu注入PI中断,客户机420的处理中断。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图5,示出了本申请的一种定时器的定时设置装置实施例的结构框图,应用在虚拟化设备中,在所述虚拟化设备中部署有多个处理器并运行第一组件510,在所述第一组件510上通过虚拟化构建第二组件520,所述处理器中包括独立于所述第二组件520的代理处理器,其中:
所述第二组件520包括:
定时时间通知模块521,用于将定时器的定时时间通知第一组件510;
所述第一组件510包括:
定时器设置模块511,用于调用所述代理处理器按照所述定时时间设置定时器。
在本申请的一个实施例中,所述定时时间通知模块521包括:
共享内存申请子模块,用于申请共享内存,并通知第一组件510;
扫描时间读取子模块,用于从所述共享内存中读取第一组件510写入的、下一次扫描所述共享内存的扫描时间;
时间关系通知子模块,用于依据定时器的定时时间与所述扫描时间之间的关系时,将所述定时时间通知第一组件510。
在本申请的一个实施例中,所述时间关系通知子模块包括:
写共享内存单元,用于在确定定时器的定时时间大于所述扫描时间时,将所述定时时间写入所述共享内存;
或者,
写寄存器单元,用于在确定定时器的定时时间小于或等于所述扫描时间时,将所述定时时间通过写寄存器的方式通知第一组件510。
在本申请的一个实施例中,所述第一组件510还包括:
扫描时间计算模块,用于计算下一次扫描所述共享内存的扫描时间;
扫描时间写模块,用于将所述下一次扫描所述共享内存的扫描时间写入所述共享内存。
在本申请实施例的一个示例中,当上一次通过所述共享内存通知第一组件510定时器的定时时间时,下一次扫描所述共享内存的扫描时间大于上一次扫描所述共享内存的扫描时间;
当上一次通过所述寄存器通知第一组件510定时器的定时时间时,下一次扫描所述共享内存的扫描时间小于上一次扫描所述共享内存的扫描时间。
在本申请的一个实施例中,所述定时器设置模块511包括:
共享内存扫描子模块,用于在到达所述扫描时间时,扫描所述共享内存;
定时时间读取子模块,用于从所述共享内存中读取所述定时时间;
第一定时器设置子模块,用于调用所述代理处理器按照所述定时时间设置定时器。
在本申请的一个实施例中,所述共享内存扫描子模块包括:
内核线程启动单元,用于第一组件510启动一内核线程,并绑定所述代理处理器;
内核线程扫描单元,用于调用所述内核线程在到达所述扫描时间时,扫描所述共享内存。
在本申请的一个实施例中,所述第一定时器设置子模块包括:
内核线程设置单元,用于调用所述内核线程按照所述定时时间设置定时器。
在本申请的另一个实施例中,所述定时器设置模块511包括:
第二定时器设置子模块,用于从第二组件520所属的处理器通知所述代理处理器、按照所述定时时间设置定时器。
参照图6,示出了本申请的另一种定时器的定时设置装置实施例的结构框图,应用在虚拟化设备中,在所述虚拟化设备中部署有多个处理器并运行第一组件610,在所述第一组件610上通过虚拟化构建第二组件620,所述处理器中包括独立于所述第二组件620的代理处理器,其中:
所述第二组件620包括:
特性询问模块621,用于询问第一组件610是否支持半虚拟化定时器;
特性通知模块622,用于在获知第一组件610支持半虚拟化定时器时,通知第一组件610、所述第二组件620支持半虚拟化定时器。
定时时间通知模块623,用于将定时器的定时时间通知第一组件610;
所述第一组件610包括:
定时器设置模块611,用于调用所述代理处理器按照所述定时时间设置定时器;
中断信号产生模块612,用于在定时器计算所述定时时间完成时,在所述代理处理器中产生中断信号;
中断信号注入模块613,用于将所述中断信号注入第二组件620的虚拟处理器。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
图7是本申请实施例提供的一种虚拟化设备结构示意图。该虚拟化设备700可因配置或性能不同而产生比较大的差异,可以包括多个中央处理器(central processingunits,CPU)722(例如,多个处理器)和存储器732,一个或一个以上存储应用程序742或数据744的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器732和存储介质730可以是短暂存储的或持久存储的。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对虚拟化设备中的一系列指令操作。更进一步地,中央处理器722可以设置为与存储介质730通信,在虚拟化设备700上执行存储介质730中的一系列指令操作。
虚拟化设备700还可以包括一个或一个以上电源726,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口758,一个或一个以上键盘757,和/或,一个或一个以上操作系统741,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。其中,在所述虚拟化设备中运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,中央处理器722可以在虚拟化设备700上执行以下操作的指令:
第二组件将定时器的定时时间通知第一组件;
第一组件调用所述代理处理器按照所述定时时间设置定时器。
可选地,中央处理器722还可以在虚拟化设备700上执行以下操作的指令:
第二组件询问第一组件是否支持半虚拟化定时器;
第二组件在获知第一组件支持半虚拟化定时器时,通知第一组件、所述第二组件支持半虚拟化定时器。
可选地,中央处理器722还可以在虚拟化设备700上执行以下操作的指令:
第二组件申请共享内存,并通知第一组件;
第二组件从所述共享内存中读取第一组件写入的、下一次扫描所述共享内存的扫描时间;
第二组件依据定时器的定时时间与所述扫描时间之间的关系时,将所述定时时间通知第一组件。
可选地,中央处理器722还可以在虚拟化设备700上执行以下操作的指令:
第二组件在确定定时器的定时时间大于所述扫描时间时,将所述定时时间写入所述共享内存;
或者,
第二组件在确定定时器的定时时间小于或等于所述扫描时间时,将所述定时时间通过写寄存器的方式通知第一组件。
可选地,中央处理器722还可以在虚拟化设备700上执行以下操作的指令:
第一组件计算下一次扫描所述共享内存的扫描时间;
第一组件将所述下一次扫描所述共享内存的扫描时间写入所述共享内存;
其中,当上一次通过所述共享内存通知第一组件定时器的定时时间时,下一次扫描所述共享内存的扫描时间大于上一次扫描所述共享内存的扫描时间;
当上一次通过所述寄存器通知第一组件定时器的定时时间时,下一次扫描所述共享内存的扫描时间小于上一次扫描所述共享内存的扫描时间。
可选地,中央处理器722还可以在虚拟化设备700上执行以下操作的指令:
第一组件在到达所述扫描时间时,扫描所述共享内存;
第一组件从所述共享内存中读取所述定时时间;
第一组件调用所述代理处理器按照所述定时时间设置定时器。
可选地,中央处理器722还可以在虚拟化设备700上执行以下操作的指令:
所述第一组件在到达所述扫描时间时,扫描所述共享内存的步骤包括:
第一组件启动一内核线程,并绑定所述代理处理器;
第一组件调用所述内核线程在到达所述扫描时间时,扫描所述共享内存。
可选地,中央处理器722还可以在虚拟化设备700上执行以下操作的指令:
第一组件调用所述内核线程按照所述定时时间设置定时器。
可选地,中央处理器722还可以在虚拟化设备700上执行以下操作的指令:
第一组件从第二组件所属的源处理器通知所述代理处理器、按照所述定时时间设置定时器。
可选地,中央处理器722还可以在虚拟化设备700上执行以下操作的指令:
第一组件在定时器计算所述定时时间完成时,在所述代理处理器中产生中断信号;
第一组件将所述中断信号注入第二组件的虚拟处理器。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种定时器的定时设置方法、一种定时器的定时设置装置和一种虚拟化设备,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (16)

1.一种定时器的定时设置方法,其特征在于,应用在虚拟化设备中,在所述虚拟化设备中部署有多个处理器并运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,所述第一组件包括宿主机,所述第二组件包括运行在所述宿主机上的虚拟机,所述方法包括:
第二组件将定时器的定时时间通知第一组件;
第一组件调用所述代理处理器按照所述定时时间设置定时器;
所述第二组件将定时器的定时时间通知第一组件,包括:
所述第二组件在确定定时器的定时时间大于下一次扫描共享内存的扫描时间时,将所述定时时间写入共享内存;所述下一次扫描共享内存的扫描时间从所述共享内存中读取。
2.根据权利要求1所述的方法,其特征在于,在所述第二组件将定时器的定时时间通知第一组件的步骤之前,所述方法还包括:
第二组件询问第一组件是否支持半虚拟化定时器;
第二组件在获知第一组件支持半虚拟化定时器时,通知第一组件、所述第二组件支持半虚拟化定时器。
3.根据权利要求1所述的方法,其特征在于,所述第二组件将定时器的定时时间通知第一组件的步骤包括:
第二组件申请共享内存,并通知第一组件;
第二组件从所述共享内存中读取第一组件写入的、下一次扫描所述共享内存的扫描时间;
第二组件依据定时器的定时时间与所述扫描时间之间的关系时,将所述定时时间通知第一组件。
4.根据权利要求1所述的方法,其特征在于,所述第二组件将定时器的定时时间通知第一组件的步骤还包括:
第二组件在确定定时器的定时时间小于或等于所述扫描时间时,将所述定时时间通过写寄存器的方式通知第一组件。
5.根据权利要求4所述的方法,其特征在于,在所述第二组件申请共享内存,并通知第一组件的步骤之后,所述方法还包括:
第一组件计算下一次扫描所述共享内存的扫描时间;
第一组件将所述下一次扫描所述共享内存的扫描时间写入所述共享内存;
其中,当上一次通过所述共享内存通知第一组件定时器的定时时间时,下一次扫描所述共享内存的扫描时间大于上一次扫描所述共享内存的扫描时间;
当上一次通过所述寄存器通知第一组件定时器的定时时间时,下一次扫描所述共享内存的扫描时间小于上一次扫描所述共享内存的扫描时间。
6.根据权利要求4所述的方法,其特征在于,所述第一组件调用所述按照所述定时时间设置定时器的步骤包括:
第一组件在到达所述扫描时间时,扫描所述共享内存;
第一组件从所述共享内存中读取所述定时时间;
第一组件调用所述代理处理器按照所述定时时间设置定时器。
7.根据权利要求6所述的方法,其特征在于,
所述第一组件在到达所述扫描时间时,扫描所述共享内存的步骤包括:
第一组件启动一内核线程,并绑定所述代理处理器;
第一组件调用所述内核线程在到达所述扫描时间时,扫描所述共享内存;
所述第一组件调用所述代理处理器按照所述定时时间设置定时器的步骤包括:
第一组件调用所述内核线程按照所述定时时间设置定时器。
8.根据权利要求4所述的方法,其特征在于,所述第一组件调用所述代理处理器按照所述定时时间设置定时器的步骤包括:
第一组件从第二组件所属的处理器通知所述代理处理器、按照所述定时时间设置定时器。
9.根据权利要求1-8任一项所述的方法,其特征在于,还包括:
第一组件在定时器计算所述定时时间完成时,在所述代理处理器中产生中断信号;
第一组件将所述中断信号注入第二组件的虚拟处理器。
10.一种定时器的定时设置装置,其特征在于,应用在虚拟化设备中,在所述虚拟化设备中部署有多个处理器并运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,所述第一组件包括宿主机,所述第二组件包括运行在所述宿主机上的虚拟机,其中,
所述第二组件包括:
定时时间通知模块,用于将定时器的定时时间通知第一组件;
所述第一组件包括:
定时器设置模块,用于调用所述代理处理器按照所述定时时间设置定时器;
所述定时时间通知模块,包括:
写共享内存单元,用于在确定定时器的定时时间大于下一次扫描共享内存的扫描时间时,将所述定时时间写入共享内存;所述下一次扫描共享内存的扫描时间从所述共享内存中读取。
11.根据权利要求10所述的装置,其特征在于,所述定时时间通知模块包括:
共享内存申请子模块,用于申请共享内存,并通知第一组件;
扫描时间读取子模块,用于从所述共享内存中读取第一组件写入的、下一次扫描所述共享内存的扫描时间;
时间关系通知子模块,用于依据定时器的定时时间与所述扫描时间之间的关系时,将所述定时时间通知第一组件。
12.根据权利要求10所述的装置,其特征在于,所述定时时间通知模块还包括:写寄存器子单元,用于在确定定时器的定时时间小于或等于所述扫描时间时,将所述定时时间通过写入寄存器的方式通知第一组件。
13.根据权利要求12所述的装置,其特征在于,所述定时器设置模块包括:
共享内存扫描子模块,用于在到达所述扫描时间时,扫描所述共享内存;
定时时间读取子模块,用于从所述共享内存中读取所述定时时间;
第一定时器设置子模块,用于调用所述代理处理器按照所述定时时间设置定时器。
14.根据权利要求12所述的装置,其特征在于,所述定时器设置模块包括:
第二定时器设置子模块,用于从第二组件所属的处理器通知所述代理处理器、按照所述定时时间设置定时器。
15.根据权利要求10-14任一项所述的装置,其特征在于,所述第一组件还包括:
中断信号产生模块,用于在定时器计算所述定时时间完成时,在所述代理处理器中产生中断信号;
中断信号注入模块,用于将所述中断信号注入第二组件的虚拟处理器。
16.一种虚拟化设备,其特征在于,包括:
多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述多个处理器执行,其中,在所述虚拟化设备中运行第一组件,在所述第一组件上通过虚拟化构建第二组件,所述处理器中包括独立于所述第二组件的代理处理器,所述第一组件包括宿主机,所述第二组件包括运行在所述宿主机上的虚拟机,所述多个处理器被配置为:
第二组件将定时器的定时时间通知第一组件;
第一组件调用所述代理处理器按照所述定时时间设置定时器;
所述第二组件将定时器的定时时间通知第一组件,包括:
所述第二组件在确定定时器的定时时间大于下一次扫描共享内存的扫描时间时,将所述定时时间写入共享内存;所述下一次扫描共享内存的扫描时间从所述共享内存中读取。
CN201611122483.8A 2016-12-08 2016-12-08 一种定时器的定时设置方法、装置和虚拟化设备 Active CN108196934B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611122483.8A CN108196934B (zh) 2016-12-08 2016-12-08 一种定时器的定时设置方法、装置和虚拟化设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611122483.8A CN108196934B (zh) 2016-12-08 2016-12-08 一种定时器的定时设置方法、装置和虚拟化设备

Publications (2)

Publication Number Publication Date
CN108196934A CN108196934A (zh) 2018-06-22
CN108196934B true CN108196934B (zh) 2022-04-26

Family

ID=62572665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611122483.8A Active CN108196934B (zh) 2016-12-08 2016-12-08 一种定时器的定时设置方法、装置和虚拟化设备

Country Status (1)

Country Link
CN (1) CN108196934B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990180B (zh) * 2019-11-28 2023-04-07 龙芯中科技术股份有限公司 Tlb异常处理方法、装置、电子设备及储存介质
CN112817701B (zh) * 2021-02-25 2024-03-12 北京火山引擎科技有限公司 定时器处理方法、装置、电子设备和计算机可读介质
CN113157408A (zh) * 2021-03-25 2021-07-23 上海科世达-华阳汽车电器有限公司 一种嵌入式软件计数定时方法、装置、电子设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354662A (zh) * 2008-09-11 2009-01-28 青岛海信移动通信技术股份有限公司 一种Java软件运行的方法和装置
CN101383781A (zh) * 2008-10-30 2009-03-11 中国人民解放军国防科学技术大学 虚拟域间短信息通讯方法
CN102637126A (zh) * 2011-02-15 2012-08-15 无锡物联网产业研究院 嵌入式系统的定时方法、装置和系统
CN103853598A (zh) * 2014-02-21 2014-06-11 北京神舟航天软件技术有限公司 实现嵌入式虚拟机硬实时虚拟定时器响应的方法
WO2016131247A1 (zh) * 2015-07-30 2016-08-25 中兴通讯股份有限公司 一种用于虚拟机的高性能定时器实现方法、虚拟机

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478924B2 (en) * 2009-04-24 2013-07-02 Vmware, Inc. Interrupt coalescing for outstanding input/output completions
CN101620547B (zh) * 2009-07-03 2012-05-30 中国人民解放军国防科学技术大学 X86计算机虚拟化的物理中断处理方法
CN102479111A (zh) * 2010-11-30 2012-05-30 英业达股份有限公司 Linux操作系统下的数据储存方法及其Linux计算机系统
US9183157B2 (en) * 2011-03-15 2015-11-10 Huawei Technologies Co., Ltd. Method for creating virtual machine, a virtual machine monitor, and a virtual machine system
CN104917594B (zh) * 2015-04-22 2018-05-29 北京邮电大学 虚拟机的tcp数据传输方法和虚拟机系统
CN106201660A (zh) * 2016-07-14 2016-12-07 浪潮电子信息产业股份有限公司 一种虚拟机自动升级虚拟硬件和软件的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354662A (zh) * 2008-09-11 2009-01-28 青岛海信移动通信技术股份有限公司 一种Java软件运行的方法和装置
CN101383781A (zh) * 2008-10-30 2009-03-11 中国人民解放军国防科学技术大学 虚拟域间短信息通讯方法
CN102637126A (zh) * 2011-02-15 2012-08-15 无锡物联网产业研究院 嵌入式系统的定时方法、装置和系统
CN103853598A (zh) * 2014-02-21 2014-06-11 北京神舟航天软件技术有限公司 实现嵌入式虚拟机硬实时虚拟定时器响应的方法
WO2016131247A1 (zh) * 2015-07-30 2016-08-25 中兴通讯股份有限公司 一种用于虚拟机的高性能定时器实现方法、虚拟机

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
多核虚拟机监控系统;蒋楠等;《计算机系统应用》;20120915;第21卷(第9期);第2-4页 *

Also Published As

Publication number Publication date
CN108196934A (zh) 2018-06-22

Similar Documents

Publication Publication Date Title
Sahni et al. A hybrid approach to live migration of virtual machines
US9417912B2 (en) Ordering tasks scheduled for execution based on priority and event type triggering the task, selecting schedulers for tasks using a weight table and scheduler priority
CN106970921B (zh) 一种数据迁移方法及装置
US8769519B2 (en) Personal and pooled virtual machine update
EP2831728B1 (en) Architecture and method for managing interrupts in a virtualized environment
TWI501102B (zh) 虛擬時間控制裝置、方法及電腦程式產品
US10521256B2 (en) Virtual machine migration acceleration with page state indicators
CN110609730B (zh) 一种实现虚拟处理器间中断透传的方法及设备
CN106970821B (zh) 一种kvm虚拟化下处理i/o请求的方法和装置
US20120179855A1 (en) Mechanism for Memory Change Tracking During Migration of Virtual Machine (VM) with VM-Controlled Assigned Peripherals
US20120180042A1 (en) Mechanism for Memory State Restoration of Virtual Machine (VM)-Controlled Peripherals at a Destination Host Machine During Migration of the VM
US20180081674A1 (en) Updating Machine Emulator
CN108196934B (zh) 一种定时器的定时设置方法、装置和虚拟化设备
US11573815B2 (en) Dynamic power management states for virtual machine migration
WO2019028682A1 (zh) 一种多系统共享内存的管理方法及装置
JP2016110183A (ja) 情報処理システム及び情報処理システムの制御方法
CN106919620B (zh) 单页面处理方法及装置
CN108241522B (zh) 虚拟化环境中的睡眠状态切换方法、装置及电子设备
CN107037945B (zh) 一种焦点处理方法、装置和智能终端
US10474512B1 (en) Inter-process intra-application communications
CN108196945B (zh) 一种核间通信方法、装置和虚拟化设备
CN114296915A (zh) 一种操作系统调度方法、装置、设备及存储介质
Cui et al. Lightweight virtual machine checkpoint and rollback for long-running applications
US20140282533A1 (en) Virtual computer system
US10203977B2 (en) Lazy timer programming for virtual machines

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant