一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种实现虚拟化资源调度的方法和装置与流程

2021-12-08 00:29:00 来源:中国专利 TAG:


1.本文涉及但不限于自动化技术,尤指一种实现虚拟化资源调度的方法和装置。


背景技术:

2.边缘计算控制器因其具备丰富的处理器计算资源和网络资源,在自动化生产过程中得到了大量运用;边缘计算控制器与传统控制器的应用场景需求有所差异,除了需要支持运算控制、通信协议和界面显示等功能,还需要满足控制实时性需求。虚拟化技术是实现边缘计算控制器的基础技术。在边缘计算控制器内部,通过在物理中央处理器(cpu)上构建虚拟cpu。在构建的虚拟cpu上可以加载多个独立、隔离运行的操作系统。在各个操作系统上可以运行实时运算、通信协议和界面显示等业务功能。
3.相对于云计算服务器,边缘计算控制器对被管控设备(自动化生产中的现场设备)控制实时性要求更加严格。虚拟cpu调度是决定边缘计算控制器实时性的关键;边缘计算控制器主要通过虚拟化软件(内核级虚拟技术(kvm) 或者xen(xen是一个直接运行在计算机硬件层之上的虚拟化软件;由英国剑桥大学计算机实验室开发;xen无需特殊硬件支持,就能达到高性能的虚拟化))配置构建虚拟机的虚机运行环境,虚机运行环境上构建若干包含虚拟cpu的虚拟机;虚拟cpu调度算法是为满足云计算服务器计算资源负载均衡而设计的算法,无法满足边缘计算的实时性要求。相关技术技术人员的主要做法是将物理cpu与虚拟cpu进行一对一绑定,由指定的虚拟cpu专门执行指定对应虚拟机的实时业务,从而满足实时要求。这种做法的本质是将物理cpu的资源分配给指定的虚拟cpu执行虚拟cpu应用业务,当该虚拟 cpu应用业务空闲时,会造成计算资源浪费。
4.针对于上述的边缘计算控制器,如何实现现场设备控制实时性需求和计算资源有效应用,成为一个有待解决的问题。


技术实现要素:

5.以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
6.本发明实施例提供一种实现虚拟化资源调度的方法和装置,能够实现现场设备的实时性控制和计算资源的有效应用。
7.本发明实施例提供了一种实现虚拟化资源调度的方法,包括:
8.获取边缘计算控制器中包含的两个以上虚拟中央处理器cpu的调度信息;
9.根据获取的调度信息进行虚拟cpu的调度;
10.其中,所述虚拟cpu包括:基于内核级虚拟技术kvm或者xen建立的虚拟机中的cpu;所述调度信息包括:优先级等级信息。
11.另一方面,本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述实现虚拟化资源调度的方法。
12.再一方面,本发明实施例还提供一种终端,包括:存储器和处理器,所述存储器中
保存有计算机程序;其中,
13.处理器被配置为执行存储器中的计算机程序;
14.所述计算机程序被所述处理器执行时实现如上述实现虚拟化资源调度的方法。
15.还一方面,本发明实施例还提供一种实现虚拟化资源调度的装置,包括:获取单元和调度单元;其中,
16.获取单元设置为:获取边缘计算控制器中包含的两个以上虚拟中央处理器cpu的调度信息;
17.调度单元设置为:根据获取的调度信息进行虚拟cpu的调度;
18.其中,所述虚拟cpu包括:基于内核级虚拟技术kvm或者xen建立的虚拟机中的cpu;所述调度信息包括:优先级等级信息。
19.本技术技术方案包括:获取边缘计算控制器中包含的虚拟中央处理器 cpu的调度信息;根据获取的调度信息进行虚拟cpu的调度;其中,虚拟 cpu包括:基于内核级虚拟技术(kvm)或者xen建立的虚拟机中的cpu;调度信息包括:优先级等级信息。本发明实施例通过包括优先级等级信息的调度信息进行虚拟cpu的调度,在实现现场设备控制实时性需求的前提下,物理cpu的资源根据调度信息进行调度,避免了将物理cpu的资源分配给指定的虚拟cpu应用业务造成的计算资源浪费。
20.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
21.附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本技术的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
22.图1为本发明实施例实现虚拟化资源调度的方法的流程图;
23.图2为本发明实施例实现虚拟化资源调度的装置的结构框图;
24.图3为本发明应用示例边缘计算控制器的组成框图;
25.图4为本发明应用示例虚拟cpu调度模块的结构框图;
26.图5为本发明应用示例配置表的示意图;
27.图6为本发明应用示例实现虚拟cpu调度的示意图;
28.图7为本发明应用示例位图和位图索引的结构示意图;
29.图8为本发明应用示例位图和位图索引的实例示意图;
30.图9为本发明实施例轮转调度队列的示意图。
具体实施方式
31.为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互任意组合。
32.在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺
序执行所示出或描述的步骤。
33.图1为本发明实施例实现虚拟化资源调度的方法的流程图,如图1所示,包括:
34.步骤101、获取边缘计算控制器中包含的两个以上虚拟中央处理器cpu 的调度信息;其中,虚拟cpu包括:基于内核级虚拟技术(kvm)或者xen 建立的虚拟机中的cpu;调度信息包括:优先级等级信息。
35.在一种示例性实例中,本发明实施例中的边缘计算控制器由软件部分与硬件部分组成,硬件部分包括:多核cpu、网络和存储等硬件。软件部分包括虚拟化软件,虚拟化软件上运行多个虚拟机,虚拟机中配置有虚拟cpu。虚拟机上加载有实时操作系统软件和进行业务应用处理的控制软件;在一种示例性实例中,本发明实施例中的虚拟化软件中包括相关技术中的:进行内存管理的模块、对外设资源进行管理的模块和对中断异常进行处理的模块。
36.本发明实施例虚拟cpu可以参照相关技术设定不同的优先级等级,例如:按照64级设置不同虚拟cpu相应的优先级等级;在一种示例性实例中,本发明实施例可以设置优先级等级的数值越小,优先级等级越高;
37.步骤102、根据获取的调度信息进行虚拟cpu的调度;
38.本发明实施例通过包括优先级等级信息的调度信息进行虚拟cpu的调度,在实现现场设备控制实时性需求的前提下,物理cpu的资源根据调度信息进行调度,避免了将物理cpu的资源分配给指定的虚拟cpu应用业务造成的计算资源浪费。
39.在一种示例性实例中,获取边缘计算控制器中包含的两个以上虚拟中央处理器cpu的调度信息之前,本发明实施例方法还包括:
40.通过预设的交互接口编辑调度信息。
41.在一种示例性实例中,本发明实施例中的交互接口包括但不限于:应用程序编程接口(api);
42.在一种示例性实例中,本发明实施例中的虚拟cpu的优先级等级信息可以包括:根据虚拟cpu执行的业务,参照相关标准确定的等级信息;本发明实施例中的一个物理cpu存在一个以上虚拟cpu等待调度,根据虚拟cpu 源于哪个物理cpu,本发明实施例可以参照相关技术建立物理cpu与虚拟 cpu的映射关系。
43.在一种示例性实例中,根据获取的调度信息进行虚拟cpu的调度之前,本发明实施例方法还包括:
44.通过预设的配置文件存储调度信息。
45.本发明实施例将调度信息以配置文件的形式进行存储,避免由于断电重启造成调度信息丢失;在进行虚拟cpu的调度时,对配置文件进行解析,获取其中的调度信息。
46.在一种示例性实例中,本发明实施例配置文件可以包括以下任一种类的文件:线性表、配置表或数据共享文件。
47.在一种示例性实例中,本发明实施例根据获取的调度信息进行虚拟cpu 的调度,包括:
48.根据优先级等级信息确定两个以上虚拟cpu的优先级等级的排序;
49.根据确定的两个以上虚拟cpu的优先级等级的排序,按照优先级等级由高到低的顺序调度虚拟cpu。
50.在一种示例性实例中,本发明实施例根据优先级等级信息确定两个以上虚拟cpu的优先级等级的排序,包括:
51.将两个以上虚拟cpu的优先级等级信息通过预设的位图及位图索引记录;
52.根据位图及位图索引确定两个以上虚拟cpu包含的所有优先级等级;
53.对确定的所有优先级等级进行比较,确定优先级等级的排序。
54.本发明实施例假设优先级等级分为64个,通过8行*8列的位图记录优先级等级信息,每一行为一组,共8组;64级优先级等级可以通过2的6次方表示;按照位图为8行*8列的结构,26个位,可以表示为23个组(1行为一组),每一组包含23个列;本发明实施例基于上述方式记录优先级等级后,通过位图的组索引和列索引可以表示优先级等级;以上位图结构和位图索引仅为本发明实施例示例,本发明实施例可以采用其他位数足够的位图进行优先级等级信息的记录。
55.在一种示例性实例中,本发明实施例调度信息还包括时间片信息,根据获取的调度信息进行虚拟cpu的调度还包括:
56.根据优先级等级信息,确定是否有处于同一优先级等级的虚拟cpu;
57.根据时间片信息,对处于同一优先级等级的虚拟cpu进行调度。
58.在一种示例性实例中,本发明实施例可以通过位图及位图索引确定两个以上虚拟cpu的所有优先级等级;例如、虚拟cpu1、虚拟cpu2、虚拟cpu3、虚拟cpu4、虚拟cpu5和虚拟cpu6的优先级等级分别为:10、12、15、18、 12和15;本发明实施例通过位图记录的所有虚拟cpu的优先级等级包括: 10、12、15和18;通过位图索引可以确定记录的上述优先级等级,即10、12、 15和18;确定记录的优先级等级后,本发明实施例对每一个优先级等级,确定是否有处于同一优先级等级的虚拟cpu,例如:对记录的优先级等级10,确定所有虚拟cpu中,调度信息中的优先级等级为10的虚拟cpu,只有虚拟cpu1一个;对记录的优先级等级12,确定所有虚拟cpu中,调度信息中的优先级等级为12的虚拟cpu,有虚拟cpu2和虚拟cpu4两个;对记录的优先级等级15,确定所有虚拟cpu中,调度信息中的优先级等级为15的虚拟cpu,有虚拟cpu3和虚拟cpu6两个;对记录的优先级等级18,确定所有虚拟cpu中,调度信息中的优先级等级为18的虚拟cpu,只有虚拟cpu4 一个;
59.在一种示例性实例中,本发明实施例对处于同一优先级等级的虚拟cpu 进行调度,包括:
60.采用时间片轮转算法,根据时间片信息对处于同一优先级等级的虚拟 cpu的时间片进行调度。
61.需要说明的是,时间片轮转算法为相关技术中已有的算法,在此不做赘述。
62.本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机程序,计算机程序被处理器执行时实现上述实现虚拟化资源调度的方法。
63.本发明实施例还提供一种终端,包括:存储器和处理器,存储器中保存有计算机程序;其中,
64.处理器被配置为执行存储器中的计算机程序;
65.计算机程序被处理器执行时实现如上述实现虚拟化资源调度的方法。
66.图2为本发明实施例实现虚拟化资源调度的装置的结构框图,如图2所示,包括:获取单元和调度单元;其中,
67.获取单元设置为:获取边缘计算控制器中包含的两个以上虚拟中央处理器cpu的调度信息;
68.调度单元设置为:根据获取的调度信息进行虚拟cpu的调度;
69.其中,虚拟cpu包括:基于内核级虚拟技术kvm或者xen建立的虚拟机中的cpu;调度信息包括:优先级等级信息。
70.本发明实施例通过包括优先级等级信息的调度信息进行虚拟cpu的调度,在实现现场设备控制实时性需求的前提下,物理cpu的资源根据调度信息进行调度,避免了将物理cpu的资源分配给指定的虚拟cpu应用业务造成的计算资源浪费。
71.在一种示例性实例中,本发明实施例装置还包括编辑单元,设置为:
72.通过预设的交互接口编辑调度信息。
73.在一种示例性实例中,本发明实施例获取单元还设置为:
74.通过预设的配置文件存储调度信息。
75.在一种示例性实例中,本发明实施例调度单元是设置为:
76.根据优先级等级信息确定两个以上虚拟cpu的优先级等级的排序;
77.根据确定的两个以上虚拟cpu的优先级等级的排序,按照优先级等级由高到低的顺序调度虚拟cpu。
78.在一种示例性实例中,本发明实施例调度单元设置为根据优先级等级信息确定两个以上虚拟cpu的优先级等级的排序,包括:
79.将两个以上虚拟cpu的优先级等级信息通过预设的位图及位图索引记录;
80.根据位图及位图索引确定两个以上虚拟cpu包含的所有优先级等级;
81.对确定的所有优先级等级进行比较,确定优先级等级的排序。
82.在一种示例性实例中,本发明实施例中的调度信息还包括时间片信息,本发明实施例调度单元还设置为:
83.根据优先级等级信息,确定是否有处于同一优先级等级的虚拟cpu;
84.根据时间片信息,对处于同一优先级等级的虚拟cpu进行调度。
85.在一种示例性实例中,本发明实施例调度单元设置为对处于同一优先级等级的虚拟cpu进行调度,包括:
86.采用时间片轮转算法,根据时间片信息对处于同一优先级等级的虚拟 cpu的时间片进行调度。
87.以下通过应用示例对本发明实施例进行简要说明,应用示例仅用于陈述本发明实施例,并不用于限定本发明的保护范围。
88.应用示例
89.图3为本发明应用示例边缘计算控制器的组成框图,如图3所示,边缘计算控制器由软件部分与硬件部分组成,硬件部分包括:多核cpu、网络和存储等硬件;软件部分包括虚拟化软件,虚拟化软件上运行多个虚拟机,虚拟机中配置有虚拟cpu。虚拟机上加载有实时操作系统软件和进行业务应用处理的控制软件;在一种示例性实例中,本发明实施例中的虚拟化软件中包括相关技术中的:进行内存管理的内存管理模块、对外设资源进行管理的外设资源管理模块和对中断异常进行处理的中断异常处理模块;本发明应用示例在虚拟化软件中增加虚拟cpu调度模块,用于执行上述实施例实现虚拟化资源调度的处理。
90.图4为本发明应用示例虚拟cpu调度模块的结构框图,如图4所示,包括:编辑单元、获取单元和调度单元;其中,
91.编辑单元设置为:通过预设的交互接口编辑调度信息;其中,虚拟cpu 包括:基于内核级虚拟技术(kvm)或者xen建立的虚拟机中的cpu;调度信息包括:优先级等级信息;
92.获取单元设置为:获取边缘计算控制器中包含的两个以上虚拟中央处理器(cpu)的调度信息;通过预设的配置文件存储调度信息;
93.调度单元设置为:根据获取的调度信息进行虚拟cpu的调度;
94.在一种示例性实例中,本发明应用示例虚拟cpu调度模块还包括解析单元,用于在调度单元根据获取的调度信息进行虚拟cpu的调度之前,解析配置文件;
95.在一种示例性实例中,本发明应用示例调度单元是设置为:
96.将所有虚拟cpu的优先级等级信息通过预设的位图及位图索引记录;根据位图及位图索引确定所有虚拟cpu包含的优先级等级;对确定的所有优先级等级进行比较,确定优先级等级的排序;根据确定的优先级等级的排序,按照优先级等级由高到低的顺序调度虚拟cpu。
97.在一种示例性实例中,本发明实施例中的调度信息还包括时间片信息,本发明实施例调度单元还设置为:
98.根据优先级等级信息,确定是否有处于同一优先级等级的虚拟cpu;根据时间片信息,对处于同一优先级等级的虚拟cpu进行调度。
99.需要说明的是,时间片(timeslice)又称为处理器片(processor slice),是分时操作系统分配给每个正在运行的进程微观上的一段cpu时间。
100.在一种示例性实例中,本发明应用示例配置文件可以是配置表,图5为本发明应用示例配置表的示意图,如图5所示,配置表中记录了边缘计算控制器包含的虚拟cpu,虚拟cpu的优先级等级和虚拟cpu的时间片,本发明应用示例配置表中还记录了虚拟cpu所在的物理cpu,即还记录了物理 cpu和虚拟cpu的映射关系;
101.本发明应用示例假设虚拟cpu0、虚拟cpu1具有相同的优先级等级p1,虚拟cpu2的优先级等级为p2;其中,p1高于p2;虚拟cpu0、虚拟cpu1、虚拟cpu2的时间片大小均为1个时间片;图6为本发明应用示例实现虚拟cpu调度的示意图,如图6所示,在具备较低优先级等级的虚拟cpu2被执行过程中,可以被具备较高优先级等级的虚拟cpu0、虚拟cpu1抢占执行,虚拟cpu2暂停执行。当虚拟cpu0与虚拟cpu1调度执行完成后,虚拟cpu2 才能够被调度执行;虚拟cpu0与虚拟cpu1具备相同的优先级等级,本发明应用示例以时间片为单位,根据时间片轮转算法进行轮转执行;
102.图7为本发明应用示例位图和位图索引的结构示意图,如图7所示,位图包含8行8列,每一行为一组,一组共8位,共64个位,代表64个优先级等级。位图索引y用于记录位图的组信息。每个优先级等级用6位二级制数字来表示,能够表示64个优先级(2的6次方)。将这6位数分为高3位与第3位,高3位数字为恰好是组索引,低3位数字恰好为列索引,位图索引可以确定位图中记录的优先级的等级。
103.在一种示例性实例中,本发明实施例虚拟cpu调度可以分为就绪状态和运行状态;运行状态是指该虚拟cpu正在被调度执行,就绪状态是指该虚拟 cpu等待被调度执行。
104.本发明应用示例初始化过程中,根据虚拟cpu的调度信息生成配置文件;配置文件
为配置表时,本应用示例将配置表中的各个虚拟cpu优先级等级在位图中表示;根据上述的优先级等级与位图的映射规则,将位图中对应位的值设置为1;并将位图索引y对应的位设置为1。假设当前有四个虚拟cpu,优先级等级分别为10、5、17和2;图8为本发明应用示例位图和位图索引的实例示意图,如图8所示,虚拟cpu0的优先级10对应的二级制数值为 0*001010,其中,高3位为0*001,那么低3位为0*010,因此优先级等级10 对应在位图中的第1组第2位;对应的位图索引y的第一位被设置为1;虚拟cpu1的优先级等级为5,对应的二进制数值为0*000101;其中高三位为0,低3位为0*101,因此,优先级等级5对应的位图中的第0组第5位;对应的位图索引y的第0位被设置为1;虚拟cpu2的优先级等级为17,对应的二进制数值为0*010001;其中,高三位为0*010,低3位为0*001,因此,优先级等级17对应的对应位图中的第2组第1位;对应的位图索引y的第0位被设置为1;虚拟cpu3的优先级等级3,对应的二进制数值为0*000011,其中,高三位为0*000,低3位为0*011,因此,优先级等级3对应位图中的第0组第3位;对应的位图索引y的第0位被设置为1。
105.对于优先级等级不同的虚拟cpu,本发明实施例可以按照以上方式设置位图。对于相同优先级等级的虚拟cpu,本发明应用示例可以通过建立轮转调度队列,用于执行时间片轮转算法;图9为本发明实施例轮转调度队列的示意图,如图9所示,每一个优先级等级的调度任务对应一个轮转调度链表,队列头指针指向该优先级等级的任务链表,任务链表中的每个元素为每个虚拟cpu的信息结构;当某一个优先级等级的调度任务不存在时,则队列头指针为空;当某一个优先级等级的调度任务有且仅有一个时,则链表头所指向的链表,仅有一个虚拟cpu信息结构。
106.本发明用实例执行虚拟cpu调度时,在每个时钟中断中获得执行时机,对虚拟cpu进行调度处理包括:
107.在位图索引中查找最低位为1的位数,即最高优先级的组索引y;例如图 8中位图索引的值0x111,最低位为1的位数为0,即位图第0组;通过上一步骤中的最高优先级等级的组索引y,查看在位图中该组最低位为1的位数,即找到该组对应的最高优先级等级对应的位索引x。例如图8中,第0组的值 0x00100100,最低位为1的位数为2,索引x=2;计算出所有虚拟cpu中优先级等级的最高值p,计算公式:p=y*8 x;例如图8中,y=0,x=2;p=0*2 x=2;当前虚拟cpu中最高的优先级为2;
108.判断比较p与正在调度执行的虚拟cpu指针(pcurrentvcpu)指向的虚拟cpu对应的优先级等级。若优先级等级p高于正在调度执行的虚拟cpu 的优先级等级,则继续调度执行虚拟cpu指针指向的虚拟cpu;若优先级等级p低于当前正在调度执行的虚拟cpu的优先级等级,查找优先级等级p所对应的相同优先级等级的虚拟cpu的调度链表,选择调度链表中链表头指针所指向的第一个虚拟cpu进行调度,将虚拟cpu指针指向该虚拟cpu;将链表头指针指向下一个虚拟cpu,以备下一次调度,从而实现轮转调度。
109.本发明应用示例提供了一种面向边缘计算工业应用场景的虚拟cpu调度方法。在原有边缘计算虚拟化软件架构基础上,设计实现了基于不同优先级等级的虚拟cpu调度,并通过位图进行实现,保证调度算法执行时间的确定性;相对于相关技术中的虚拟化软件的调度技术,具有以下优点:调度的实时性:相对于主流面向云计算应用场景的虚拟化软件,本发明应用示例符合 iec61131

3标准中关于可编程逻辑控制器(plc)的调度策略要求,能够更好的满足边缘计算控制器工业现场实时控制应用场景;在提高调度实时性的同时,提
高计算资源利用率;相关技术中,为了保证虚拟cpu调度的实时性,只能采用虚拟cpu绑定独占物理cpu的方式;本发明应用示例所提供的虚拟 cpu调度策略,既能满足cpu调度实时性需求,也可以实现多个虚拟cpu 共享物理cpu,从而提供cpu计算资源的利用率。本发明应用示例虚拟化软件可以仅提供调度策略注册接口,由用户在应用程序层实现本发明应用示例上述虚拟cpu的调度,通过调用注册接口的方式实施上述方案。
110.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd

rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献