一种用户态虚拟机虚拟核的暂停方法及装置与流程

文档序号:31731697发布日期:2022-10-05 02:09阅读:129来源:国知局
一种用户态虚拟机虚拟核的暂停方法及装置与流程

1.本发明涉及操作系统领域,尤其涉及一种用户态虚拟机虚拟核的暂停方法及装置。


背景技术:

2.现有支持多任务多虚拟核的嵌入式操作系统,暂停一个虚拟核时,是将一个虚拟核停止运行,然后再恢复此虚拟核的运行。
3.因为现有技术是真正暂停了虚拟核,需要保存一个虚拟核的上下文,在恢复该虚拟核时需要恢复保存的上下文,这样会导致操作系统的开销比较大,而且暂停和恢复动作时间长,降低操作系统的性能和实时性,增加操作系统的复杂性。


技术实现要素:

4.有鉴于此,本发明实施例提供了一种用户态虚拟机虚拟核的暂停方法及装置,一个虚拟核通过服务中断通知另一个虚拟核暂停,该另一个通过中断响应暂停,无须保存虚拟核的上下文,同时还可以通过虚拟核的虚拟核暂停自旋锁和虚拟核恢复自旋锁来同步被暂停的虚拟核状态。本发明各实施例提高了虚拟核上暂停操作的实时性,还简化了操作系统虚拟核的暂停操作。
5.第一方面,本发明实施例提供了一种用户态虚拟机虚拟核的暂停方法,包括:第一虚拟核收到暂停第二虚拟核的指令时,向第二虚拟核发送暂停虚拟核的服务中断;第二虚拟核暂停其当前任务,响应所述服务中断;当第一虚拟核收到恢复第二虚拟核的指令时,第一虚拟核通知第二虚拟核恢复运行;第二虚拟核检测到该恢复运行的通知后,退出所述服务中断。
6.由上,第一虚拟核通过服务中断向第二虚拟核发送暂停虚拟核的通知,提高了第二虚拟核上暂停操作的实时性。
7.在第一方面的一种可能的实施方式中,一种用户态虚拟机虚拟核的暂停方法还包括:第一虚拟核收到暂停第二虚拟核的指令之后和向第二虚拟核发送暂停虚拟核的服务中断之前,第一虚拟核成功获取第二虚拟核的虚拟核暂停自旋锁和虚拟核恢复自旋锁;
8.由上,通过虚拟核暂停自旋锁和虚拟核恢复自旋锁来同步被暂停的虚拟核状态,简化了操作系统虚拟核的暂停操作。
9.在第一方面的一种可能的实施方式中,第二虚拟核响应所述服务中断的流程包括:第二虚拟核在响应所述服务中断时释放第二虚拟核的虚拟核暂停自旋锁。
10.由上,第二虚拟核通过释放第二虚拟核的虚拟核暂停自旋锁,使第一虚拟核及时通过第二虚拟核的虚拟核暂停自旋锁的值获知第二虚拟核已经进入暂停操作,从而第一虚拟核及时恢复第一任务运行,降低对第一任务的影响。
11.在第一方面的一种可能的实施方式中,一种用户态虚拟机虚拟核的暂停方法还包括:第一虚拟核向第二虚拟核发送暂停虚拟核的服务中断之后,第一虚拟核尝试获得第二
虚拟核的虚拟核暂停自旋锁;以及当第一虚拟核成功获取第二虚拟核的虚拟核暂停自旋锁时,释放第二虚拟核的虚拟核暂停自旋锁。
12.由上,当第一虚拟核成功再次获取第二虚拟核的虚拟核暂停自旋锁时,释放第二虚拟核的虚拟核暂停自旋锁,使第二虚拟核可以被执行下次暂停操作,简化了虚拟核的暂停操作。
13.在第一方面的一种可能的实施方式中,所述第一虚拟核通知第二虚拟核退出服务中断,包括:第一虚拟核释放第二虚拟核的虚拟核恢复自旋锁。
14.由上,第一虚拟核释放第二虚拟核的虚拟核恢复自旋锁,以通过第二虚拟核的虚拟核恢复自旋锁的值变化通知第二虚拟核可以退出了服务中断,结束虚拟核暂停,恢复第二任务运行,提高了第二虚拟核恢复的实时性。
15.在第一方面的一种可能的实施方式中,第二虚拟核检测第一虚拟核发送的恢复第二虚拟核运行的通知的流程,包括:第二虚拟核尝试获取第二虚拟核的虚拟核恢复自旋锁;以及当第二虚拟核成功获取第二虚拟核的虚拟核恢复自旋锁时,第二虚拟核判断为收到第一虚拟核的恢复第二虚拟核运行的通知。
16.由上,当第二虚拟核成功获取第二虚拟核的虚拟核恢复自旋锁时,第二虚拟核判断为收到第一虚拟核的恢复第二虚拟核运行的通知,准备退出了服务中断,结束虚拟核暂停,恢复第二任务运行,提高了第二虚拟核恢复的实时性。
17.在第一方面的一种可能的实施方式中,一种用户态虚拟机虚拟核的暂停方法还包括:第二虚拟核判断收到第一虚拟核的恢复第二虚拟核运行的通知之后和退出所述服务中断之前,第二虚拟核释放第二虚拟核的虚拟核恢复自旋锁。
18.由上,第二虚拟核在退出服务中断之前释放第二虚拟核的虚拟核恢复自旋锁,使第二虚拟核可以进入下次暂停操作,再次简化了虚拟核的暂停操作。
19.第二方面,本发明实施例提供了一种用户态虚拟机虚拟核的暂停装置,包括:暂停中断发送模块,用于第一虚拟核收到暂停第二虚拟核的指令时,向第二虚拟核发送暂停虚拟核的服务中断;暂停中断处理模块,用于第二虚拟核暂停其当前任务,响应所述服务中断;恢复通知发送模块,当第一虚拟核收到恢复第二虚拟核的指令时,第一虚拟核通知第二虚拟核恢复运行;所述暂停中断处理模块还用于第二虚拟核检测到该恢复运行的通知后,退出所述服务中断。
20.由上,第一虚拟核通过服务中断向第二虚拟核发送暂停虚拟核的通知,提高了第二虚拟核上暂停操作的实时性。
21.在第二方面的一种可能的实施方式中,暂停中断发送模块还用于在第一虚拟核收到暂停第二虚拟核的指令之后和向第二虚拟核发送暂停虚拟核的服务中断之前,第一虚拟核成功获取第二虚拟核的虚拟核暂停自旋锁和虚拟核恢复自旋锁;
22.由上,通过虚拟核暂停自旋锁和虚拟核恢复自旋锁来同步被暂停的虚拟核状态,简化了操作系统虚拟核的暂停操作。
23.在第二方面的一种可能的实施方式中,暂停中断处理模块具体用于第二虚拟核在响应所述服务中断时释放第二虚拟核的虚拟核暂停自旋锁。
24.由上,第二虚拟核通过释放第二虚拟核的虚拟核暂停自旋锁,使第一虚拟核及时通过第二虚拟核的虚拟核暂停自旋锁的值获知第二虚拟核已经进入暂停操作,从而第一虚
拟核及时恢复第一任务运行,降低对第一任务的影响。
25.在第二方面的一种可能的实施方式中,暂停中断发送模块还具体用于,包括:第一虚拟核向第二虚拟核发送暂停虚拟核的服务中断之后,第一虚拟核尝试获得第二虚拟核的虚拟核暂停自旋锁;以及当第一虚拟核成功获取第二虚拟核的虚拟核暂停自旋锁时,释放第二虚拟核的虚拟核暂停自旋锁。
26.由上,当第一虚拟核成功再次获取第二虚拟核的虚拟核暂停自旋锁时,释放第二虚拟核的虚拟核暂停自旋锁,使第二虚拟核可以被执行下次暂停操作,简化了虚拟核的暂停操作。
27.在第二方面的一种可能的实施方式中,恢复通知发送模块具体用于第一虚拟核释放第二虚拟核的虚拟核恢复自旋锁。
28.由上,第一虚拟核释放第二虚拟核的虚拟核恢复自旋锁,以通过第二虚拟核的虚拟核恢复自旋锁的值变化通知第二虚拟核可以退出了服务中断,结束虚拟核暂停,恢复第二任务运行,提高了第二虚拟核恢复的实时性。
29.在第二方面的一种可能的实施方式中,暂停中断处理模块还具体用于,包括:第二虚拟核尝试获取第二虚拟核的虚拟核恢复自旋锁;以及当第二虚拟核成功获取第二虚拟核的虚拟核恢复自旋锁时,第二虚拟核判断为收到第一虚拟核的恢复第二虚拟核运行的通知。
30.由上,当第二虚拟核成功获取第二虚拟核的虚拟核恢复自旋锁时,第二虚拟核判断为收到第一虚拟核的恢复第二虚拟核运行的通知,准备退出了服务中断,结束虚拟核暂停,恢复第二任务运行,提高了第二虚拟核恢复的实时性。
31.在第二方面的一种可能的实施方式中,暂停中断处理模块还具体用于还包括:第二虚拟核判断收到第一虚拟核的恢复第二虚拟核运行的通知之后和退出所述服务中断之前,第二虚拟核释放第二虚拟核的虚拟核恢复自旋锁。
32.由上,第二虚拟核在退出服务中断之前释放第二虚拟核的虚拟核恢复自旋锁,使第二虚拟核可以进入下次暂停操作,再次简化了虚拟核的暂停操作。
33.第三方面,本发明实施例提供了一种操作系统,执行第一方面任一实施方式所述方法。
34.第四方面,本发明实施例提供了一种计算设备,包括,
35.总线;
36.通信接口,其与所述总线连接;
37.至少一个处理器,其与所述总线连接;以及
38.至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行本发明第一方面任一所述实施方式。
39.第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行申请第一方面任一所述实施方式。
附图说明
40.图1为本发明的各实施例应用场景的结构示意图;
41.图2为本发明的一种用户态虚拟机虚拟核的暂停方法实施例一的流程示意图;
42.图3为本发明的一种用户态虚拟机虚拟核的暂停方法实施例二的流程示意图;
43.图4为本发明的一种用户态虚拟机虚拟核的暂停装置实施例一的结构示意图;
44.图5为本发明的一种用户态虚拟机虚拟核的暂停装置实施例二的结构示意图;
45.图6本发明各实施例的一种计算设备的结构示意图。
具体实施方式
46.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
47.在以下的描述中,所涉及的术语“第一\第二\第三等”或模块a、模块b、模块c等,仅用于区别类似的对象,或用于区别不同的实施例,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
48.在以下的描述中,所涉及的表示步骤的标号,如s110、s120
……
等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
49.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
50.本发明各实施例提供了一种用户态虚拟机虚拟核的暂停方法及装置,一个虚拟核通过服务中断通知另一个虚拟核暂停,该另一个通过中断响应暂停,无须保存虚拟核的上下文,同时还可以通过虚拟核的虚拟核暂停自旋锁和虚拟核恢复自旋锁来同步被暂停的虚拟核状态。本发明各实施例提高了虚拟核上暂停操作的实时性,还简化了操作系统虚拟核的暂停操作。
51.下面首先介绍本发明各实施例的应用场景的结构,本场景为一个包括一种虚拟机系统,其包括用户态和核心态。
52.其中,用户态包括多个用户态虚拟机,每个用户态虚拟机运行多个虚拟核上,通过多虚拟核任务调度单元调度多个任务。
53.示例地,图1示出了用户态虚拟机1、用户态虚拟机2和用户态虚拟机3,以用户态虚拟机1为示例说明每个用户态虚拟机,用户态虚拟机1运行在虚拟核11、虚拟核12和虚拟核13上,当任务101、任务102或任务103接收到暂停用户态虚拟机1中任一虚拟核时,通过多虚拟核任务调度单元暂停相应的虚拟核。实际系统可以需要配置任意数目的用户态虚拟机,每个用户态虚拟机根据实际需求运行任意数目的虚拟核上,每个用户态虚拟机根据实际需求通过多虚拟核任务调度单元调度任意数目的任务。
54.其中,核心态包括多虚拟机多核调度单元和各物理核,各个物理核通过多虚拟机多核调度单元映射成各用户态虚拟机的虚拟核。
55.下面根据图2至图3介绍本发明的各方法实施例。
56.首先根据图2介绍本发明的一种用户态虚拟机虚拟核的暂停方法实施例一。
57.为了叙述方便,以第一虚拟核暂停第二虚拟核为例,且第一虚拟核上当前运行第一任务,第二虚拟核上当前运行第二任务。
58.一种用户态虚拟机虚拟核的暂停方法实施例一在图1的各用户态虚拟机中运行,第一虚拟核通过服务中断通知第二虚拟核暂停,第二虚拟核通过中断响应虚拟核暂停操作,无须保存虚拟核的上下文,提高了虚拟核上暂停操作的实时性。
59.图2示出了本发明的一种用户态虚拟机虚拟核的暂停方法实施例一的流程,其包括步骤s110至s150。
60.s110:第一虚拟核在运行第一任务时收到暂停第二虚拟核的指令时,第一虚拟核向第二虚拟核发送暂停虚拟核的服务中断,通知第二虚拟核处于暂停状态。
61.其中,第一虚拟核当前正在运行第一任务,第二虚拟核当前正在运行第二任务,第一虚拟核通过第一任务向第二虚拟核发送暂停虚拟核的服务中断。
62.其中,通过服务中断通知第二虚拟核暂停虚拟核的方式,使第二虚拟核通过该服务中断快速响应,提高了第二虚拟核上暂停操作的实时性。
63.s120:第二虚拟核暂停第二任务,响应服务中断。
64.其中,第二虚拟核响应虚拟核暂停的服务中断处理,其本身并未停止运行,暂停速度快。
65.s130:第一虚拟核检测到第二虚拟核已经响应所述服务中断时,第一虚拟核继续运行第一任务。
66.其中,在一些实施例中,第一虚拟核在发送暂停虚拟核的服务中断前获取第二虚拟核的虚拟核暂停自旋锁,第二虚拟核响应服务中断时释放其虚拟核暂停自旋锁,第一虚拟核再次尝试获取第二虚拟核的虚拟核暂停自旋锁,当第一虚拟核此次成功获取第二虚拟核的虚拟核暂停自旋锁时,判断为检测到第二虚拟核已经响应暂停虚拟核的服务中断。
67.其中,在另一些实施例中,第二虚拟核响应服务中断时在共享内存中写入相关暂停标记,第一虚拟核根据此标记检测第二虚拟核是否已经响应虚拟核暂停的服务中断。
68.s140:当第一虚拟核收到恢复第二虚拟核的指令时,第一虚拟核通知第二虚拟核恢复运行。
69.其中,在一些实施例中,第一虚拟核在发送暂停虚拟核的服务中断前获取第二虚拟核的虚拟核恢复自旋锁,当第一虚拟核收到恢复第二虚拟核的指令时,第一虚拟核释放第二虚拟核的虚拟核恢复自旋锁,以通知第二虚拟核恢复运行。
70.其中,在另一些实施例中,当第一虚拟核收到恢复第二虚拟核的指令时,第一虚拟核在共享内存中写入相关恢复标记,以通过该标记通知第二虚拟核恢复运行。
71.s150:第二虚拟核检测到该恢复运行的通知后,退出所述服务中断,以运行第二任务。
72.其中,第二虚拟核通过退出中断方式快速恢复第二虚拟核,提高了第二虚拟核上恢复操作的时效性。
73.综上,在一种用户态虚拟机虚拟核的暂停方法实施例一中,第一虚拟核通过服务中断通知第二虚拟核暂停,第二虚拟核通过中断响应虚拟核暂停操作,无须保存虚拟核的上下文,同时在第一虚拟核通知第二虚拟核恢复时,第二虚拟核退出服务中断响应即可,无需恢复虚拟核的上下文,提高了虚拟核上暂停操作的实时性。
74.下面根据图3介绍本发明的一种用户态虚拟机虚拟核的暂停方法实施例二。
75.在本实施例中,定义下列两个全局的自旋锁:
76.定义虚拟核暂停自旋锁g_vcpu_paused[config_smp_nvcpus],每个虚拟核一把,初始值是可获取的,config_smp_nvcpus表示虚拟核数目;
[0077]
定义用于恢复虚拟核的自旋锁g_vcpu_wait[config_smp_nvcpus],每个虚拟核一把,初始值是可获取的。
[0078]
其中,使用unlock释放自旋锁;使用lock获取自旋锁。如果一个虚拟核的暂停自旋锁已被获取,会一直自旋在此自旋锁上,也就是活锁在此自旋锁上,直到此自旋锁被释放,从而达到多核间虚拟核状态的同步与互斥。
[0079]
在本实施例中,在各虚拟核上还安装虚拟核暂停的中断处理函数,以响应虚拟核暂停的服务中断,该中断处理函数表示为pause_service_handler()。
[0080]
一种用户态虚拟机虚拟核的暂停方法实施例二在图1的各用户态虚拟机中运行,在一种用户态虚拟机虚拟核的暂停方法实施例一的基础上,增加全局的虚拟核暂停自旋锁和虚拟核恢复自旋锁在各虚拟核之间同步虚拟核的暂停状态,不仅提高了虚拟核上暂停操作的实时性,还简化了操作系统暂停虚拟核的操作复杂性。
[0081]
图3示出了本发明的一种用户态虚拟机虚拟核的暂停方法实施例二的流程,其包括步骤s210至s230和步骤s310。
[0082]
为了叙述方便,以虚拟核n暂停虚拟核m为例,且虚拟核n上当前运行第一任务,虚拟核m上当前运行第二任务。步骤s210至s230在虚拟核n上运行,步骤s310在虚拟核m上运行。
[0083]
s210:虚拟核n收到暂停虚拟核m的指令时向虚拟核m发起暂停请求时,向虚拟核m发送虚拟核暂停的服务中断。
[0084]
其中,虚拟核n执行暂停虚拟核请求操作函数pause_cpu(),该函数包括向虚拟核m发送虚拟核暂停的服务中断。在pause_cpu()中虚拟核n依次执行步骤s2110至步骤s2150。
[0085]
s2110:虚拟核n尝试获取虚拟核m的虚拟核暂停自旋锁,直至成功获取该锁。
[0086]
其中,虚拟核n通过lock g_vcpu_paused[m]获取虚拟核m的虚拟核暂停自旋锁g_vcpu_paused[m]。
[0087]
其中,当虚拟核n成功获取g_vcpu_paused[m],继续往下执行。
[0088]
s2120:虚拟核n尝试获取虚拟核m的虚拟核恢复自旋锁,直至成功获取该锁。
[0089]
其中,虚拟核n通过lock g_vcpu_p wait[m]获取虚拟核m的虚拟核恢复自旋锁g_vcpu_wait[m]。
[0090]
其中,当虚拟核n成功获取g_vcpu_wait[m],继续往下执行。
[0091]
s2130:虚拟核n向虚拟核m发送虚拟核暂停的服务中断。
[0092]
s2140:虚拟核n再次尝试获取虚拟核m的虚拟核暂停自旋锁。
[0093]
其中,此时虚拟核m处于活锁状态,虚拟核n通过lock g_vcpu_paused[m]再次尝试获取虚拟核m的虚拟核暂停自旋锁g_vcpu_paused[m]。
[0094]
其中,本步骤本质上是通过尝试获取虚拟核暂停自旋锁g_vcpu_paused[m]检测虚拟核m是否响应暂停虚拟核的服务中断,即检测虚拟核m是否已经执行后文的步骤s3110。
[0095]
s2150:当虚拟核n成功获取虚拟核m的虚拟核暂停自旋锁时,判断虚拟核m响应暂停虚拟核的服务中断,虚拟核n释放虚拟核m的虚拟核暂停自旋锁。
[0096]
其中,虚拟核n通过unlock g_vcpu_paused[m]释放虚拟核m的虚拟核暂停自旋锁
g_vcpu_paused[m]。虚拟核n释放g_vcpu_paused[m后,其他虚拟核可以进行下次虚拟核m的暂停操作。
[0097]
s220:虚拟核n继续运行第一任务。
[0098]
其中,在虚拟核m的暂停期间,不影响虚拟核n的运行,虚拟n继续第一任务。
[0099]
s230:虚拟核n收到恢复虚拟核m的指令时,释放虚拟核m的虚拟核恢复自旋锁。
[0100]
其中,本步骤中虚拟核n执行恢复虚拟核操作函数resume_cpu(),在resume_cpu()中,虚拟核n通过unlock g_vcpu_wait[m]释放虚拟核m的虚拟核恢复自旋锁g_vcpu_wait[m],以通过g_vcpu_wait[m]的状态变化通知虚拟核恢复运行。
[0101]
其中,在虚拟核n释放虚拟核m的虚拟核恢复自旋锁g_vcpu_wait[m]后,虚拟核m继续向下执行后续步骤s3130。
[0102]
s310:虚拟核m响应虚拟核暂停的服务中断,执行虚拟核暂停服务中断的处理函数。
[0103]
其中,虚拟核m在虚拟核暂停服务中断的处理函数pause_service_handler()中虚拟核m依次执行步骤s3110至s3130。
[0104]
s3110:虚拟核m释放其虚拟核暂停自旋锁。
[0105]
其中,虚拟核m通过unlock g_vcpu_paused[m]释放其虚拟核暂停自旋锁g_vcpu_paused[m]。
[0106]
其中,虚拟核m释放其虚拟核暂停自旋锁g_vcpu_paused[m],表示其已响应虚拟核暂停请求,虚拟核n可以继续往下执行步骤s2150。
[0107]
s3120:虚拟核m尝试获取虚拟核m的虚拟核恢复自旋锁。
[0108]
其中,虚拟核m通过lock g_vcpu_wait[m]尝试获取虚拟核m的虚拟核恢复自旋锁g_vcpu_wait[m]。
[0109]
其中,本步骤的本质是虚拟核m在等待虚拟核n恢复虚拟m即等待接收虚拟核n的恢复虚拟核m运行的通知。
[0110]
s3130:当虚拟核m成功获取虚拟核恢复自旋锁时,释放虚拟核m的虚拟核恢复自旋锁,退出服务中断,恢复第二任务的运行。
[0111]
其中,虚拟核m成功获取虚拟核恢复自旋锁时,虚拟核m判断虚拟核n发出恢复虚拟核m运行的通知,虚拟核m通过unlock g_vcpu_wait[m]释放虚拟核m的虚拟核恢复自旋锁g_vcpu_wait[m],并退出服务中断,暂停结束,恢复第二任务运行。
[0112]
综上,一种用户态虚拟机虚拟核的暂停方法实施例二在一种用户态虚拟机虚拟核的暂停方法实施例一的基础上,增加全局的虚拟核暂停自旋锁和虚拟核恢复自旋锁,在各虚拟核之间实现被暂停虚拟核的状态同步和互斥,不仅提高了虚拟核上暂停操作的实时性,还简化了操作系统暂停虚拟核的操作复杂性。
[0113]
下面基于图4至图5介绍本发明的一种用户态虚拟机虚拟核的暂停各装置实施例。
[0114]
图4示出了本发明的一种用户态虚拟机虚拟核的暂停装置实施例一的结构,其包括:暂停中断发送模块410、暂停中断处理模块420、任务继续运行模块430和恢复通知发送模块440。
[0115]
暂停中断发送模块410用于第一虚拟核在运行第一任务时收到暂停第二虚拟核的指令时,第一虚拟核向第二虚拟核发送暂停虚拟核的服务中断,通知第二虚拟核处于暂停
状态,其具体原理和优点请参照一种用户态虚拟机虚拟核的暂停方法实施例一的步骤s110。
[0116]
暂停中断处理模块420用于第二虚拟核暂停第二任务,响应服务中断,其具体原理和优点请参照一种用户态虚拟机虚拟核的暂停方法实施例一的步骤s120。
[0117]
任务继续运行模块430用于第一虚拟核检测到第二虚拟核已经响应所述服务中断时,第一虚拟核继续运行第一任务,其具体原理和优点请参照一种用户态虚拟机虚拟核的暂停方法实施例一的步骤s130。
[0118]
恢复通知发送模块440用于当第一虚拟核收到恢复第二虚拟核的指令时,第一虚拟核通知第二虚拟核恢复运行,其具体原理和优点请参照一种用户态虚拟机虚拟核的暂停方法实施例一的步骤s140。
[0119]
暂停中断处理模块420还用于第二虚拟核检测到该恢复运行的通知后,退出所述服务中断,以运行第二任务,其具体原理和优点请参照一种用户态虚拟机虚拟核的暂停方法实施例一的步骤s150。
[0120]
图5示出了本发明的一种用户态虚拟机虚拟核的暂停装置实施例二的结构,其包括:暂停中断发送模块510、暂停中断处理模块520、任务继续运行模块530和恢复通知发送模块540。
[0121]
为了叙述方便,以虚拟核n暂停虚拟核m为例,且虚拟核n上当前运行第一任务,虚拟核m上当前运行第二任务。
[0122]
暂停中断发送模块510用于虚拟核n收到暂停虚拟核m的指令时向虚拟核m发起暂停请求时,向虚拟核m发送虚拟核暂停的服务中断,其具体原理和优点请参照一种用户态虚拟机虚拟核的暂停方法实施例二的步骤s210。
[0123]
暂停中断处理模块520用于虚拟核m响应虚拟核暂停的服务中断,执行虚拟核暂停服务中断的处理函数,其具体原理和优点请参照一种用户态虚拟机虚拟核的暂停方法实施例二的步骤s310。
[0124]
任务继续运行模块530,用于虚拟核n释放虚拟核m的虚拟核暂停自旋锁后继续运行第一任务,其具体原理和优点请参照一种用户态虚拟机虚拟核的暂停方法实施例二的步骤s220。
[0125]
恢复通知发送模块540用于虚拟核n收到恢复虚拟核m的指令时,通过释放虚拟核m的虚拟核恢复自旋锁通知虚拟核m恢复,其具体原理和优点请参照一种用户态虚拟机虚拟核的暂停方法实施例二的步骤s230。
[0126]
本发明实施例还提供一种操作系统,执行一种用户态虚拟机虚拟核的暂停方法实施例一所述方法和一种用户态虚拟机虚拟核的暂停方法实施例二所述方法。
[0127]
本发明实施例还提供一种计算设备,下面结合图6详细介绍。
[0128]
该计算设备600包括,处理器610、存储器620、通信接口630、总线640。
[0129]
应理解,该图所示的计算设备600中的通信接口630可以用于与其他设备之间进行通信。
[0130]
其中,该处理器610可以与存储器620连接。该存储器620可以用于存储该程序代码和数据。因此,该存储器620可以是处理器610内部的存储单元,也可以是与处理器610独立的外部存储单元,还可以是包括处理器610内部的存储单元和与处理器610独立的外部存储
单元的部件。
[0131]
可选的,计算设备600还可以包括总线640。其中,存储器620、通信接口630可以通过总线640与处理器610连接。总线640可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(efstended industry standard architecture,eisa)总线等。所述总线640可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
[0132]
应理解,在本发明实施例中,该处理器610可以采用中央处理单元(central processing unit,cpu)。该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器610采用一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
[0133]
该存储器620可以包括只读存储器和随机存取存储器,并向处理器610提供指令和数据。处理器610的一部分还可以包括非易失性随机存取存储器。例如,处理器610还可以存储设备类型的信息。
[0134]
在计算设备600运行时,所述处理器610执行所述存储器620中的计算机执行指令执行各方法实施例的操作步骤。
[0135]
应理解,根据本发明实施例的计算设备600可以对应于执行根据本发明各实施例的方法中的相应主体,并且计算设备600中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
[0136]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0137]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0138]
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0139]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0140]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以
是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0141]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括,u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0142]
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行各方法实施例的操作步骤。
[0143]
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括,具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0144]
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0145]
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0146]
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0147]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,均属于本发明保护范畴。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1