基于LXC的资源调度方法、装置、设备及存储介质与流程

文档序号:29957540发布日期:2022-05-11 08:20阅读:255来源:国知局
基于LXC的资源调度方法、装置、设备及存储介质与流程
基于lxc的资源调度方法、装置、设备及存储介质
技术领域
1.本技术涉及车辆技术领域,尤其涉及一种基于lxc的资源调度方法、装置、设备及存储介质。


背景技术:

2.随着车辆的智能化发展,车辆系统的更新迭代越来越频繁。日新月异的智能座舱体验往往让人忽视车辆安全驾驶的重要性,特别是车辆的仪表系统和娱乐系统运行在同一硬件的场景。
3.目前,基于linux容器(linux container,lxc)技术的车辆的仪表系统和娱乐系统等多系统启动方案,其中的安全驾驶包含仪表系统安全、仪表显示安全等方面。在多系统启动方案中,仪表系统和娱乐系统共用图形处理器(graphics processing unit,gpu)硬件资源。在车辆正常行驶过程中,可能会存在仪表系统显示卡顿的问题,影响车辆的安全驾驶。


技术实现要素:

4.本技术提供一种基于lxc的资源调度方法、装置、设备及存储介质,以解决在车辆正常行驶过程中,可能会存在的仪表系统显示卡顿的问题。
5.第一方面,本技术提供一种基于lxc的资源调度方法,包括:
6.响应于仪表显示指令,调度仪表系统的显示任务抢占获得gpu的使用权;
7.在仪表系统的显示任务使用完gpu时,基于自定义时间片周期调度算法调度被抢占了gpu的使用权的其他系统的显示任务重新获得gpu的使用权。
8.可选的,响应于仪表显示指令,调度仪表系统的显示任务抢占获得图形处理器gpu的使用权,包括:响应于仪表显示指令,确定仪表系统的显示任务对应的第一调度优先级;根据第一调度优先级,调度仪表系统的显示任务抢占获得gpu的使用权。
9.可选的,响应于仪表显示指令,确定仪表系统的显示任务对应的第一调度优先级之前,该基于lxc的资源调度方法还包括:在初始化仪表系统时,向linux内核注册第一调度优先级。
10.可选的,仪表系统包括多个显示任务,调度仪表系统的显示任务抢占获得图形处理器gpu的使用权,包括:基于自定义时间片周期调度算法调度仪表系统的显示任务抢占获得gpu的使用权。
11.可选的,基于自定义时间片周期调度算法调度仪表系统的显示任务抢占获得gpu的使用权,包括:根据仪表系统对应的调度队列中的显示任务的排队顺序,以轮循的方式依次获取仪表系统包含的每个显示任务的gpu的使用权,仪表系统对应的调度队列中的显示任务的排队顺序是根据仪表系统包含的多个显示任务分别对应的优先级、已使用硬件时长以及已排队时长的加权值确定的。
12.可选的,其他系统包括多个显示任务,基于自定义时间片周期调度算法调度被抢占了gpu的使用权的其他系统的显示任务重新获得gpu的使用权,包括:根据其他系统对应
的调度队列中的显示任务的排队顺序,以轮循的方式依次获取其他系统包含的每个显示任务的gpu的使用权,其他系统对应的调度队列中的显示任务的排队顺序是根据其他系统包含的多个显示任务分别对应的优先级、已使用硬件时长以及已排队时长的加权值确定的。
13.可选的,根据其他系统对应的调度队列中的显示任务的排队顺序,以轮循的方式依次获取其他系统包含的每个显示任务的gpu的使用权之前,该基于lxc的资源调度方法还包括:在初始化其他系统时,向linux内核注册第二调度优先级,第二调度优先级小于第一调度优先级。
14.可选的,该基于lxc的资源调度方法还包括:在仪表系统进入睡眠状态后,启动定时检错任务,定时检错任务用于检测仪表系统是否存在资源泄漏;若通过定时检错任务确定仪表系统存在资源泄漏,则在夜间无人驾驶状态重启仪表系统。
15.可选的,该基于lxc的资源调度方法还包括:若检测到仪表系统出现显示故障,则切换到备用仪表系统。
16.第二方面,本技术提供一种基于lxc的资源调度装置,包括:
17.第一调度模块,用于响应于仪表显示指令,调度仪表系统的显示任务抢占获得gpu的使用权;
18.第二调度模块,用于在仪表系统的显示任务使用完gpu时,基于自定义时间片周期调度算法调度被抢占了gpu的使用权的其他系统的显示任务重新获得gpu的使用权。
19.可选的,第一调度模块具体用于:响应于仪表显示指令,确定仪表系统的显示任务对应的第一调度优先级;根据第一调度优先级,调度仪表系统的显示任务抢占获得gpu的使用权。
20.可选的,第一调度模块在响应于仪表显示指令,确定仪表系统的显示任务对应的第一调度优先级之前,还用于:在初始化仪表系统时,向linux内核注册第一调度优先级。
21.可选的,仪表系统包括多个显示任务,第一调度模块具体用于:基于自定义时间片周期调度算法调度仪表系统的显示任务抢占获得gpu的使用权。
22.可选的,第一调度模块在用于基于自定义时间片周期调度算法调度仪表系统的显示任务抢占获得gpu的使用权时,具体用于:根据仪表系统对应的调度队列中的显示任务的排队顺序,以轮循的方式依次获取仪表系统包含的每个显示任务的gpu的使用权,仪表系统对应的调度队列中的显示任务的排队顺序是根据仪表系统包含的多个显示任务分别对应的优先级、已使用硬件时长以及已排队时长的加权值确定的。
23.可选的,其他系统包括多个显示任务,第二调度模块具体用于:根据其他系统对应的调度队列中的显示任务的排队顺序,以轮循的方式依次获取其他系统包含的每个显示任务的gpu的使用权,其他系统对应的调度队列中的显示任务的排队顺序是根据其他系统包含的多个显示任务分别对应的优先级、已使用硬件时长以及已排队时长的加权值确定的。
24.可选的,第二调度模块在用于根据其他系统对应的调度队列中的显示任务的排队顺序,以轮循的方式依次获取其他系统包含的每个显示任务的gpu的使用权之前,还用于:在初始化其他系统时,向linux内核注册第二调度优先级,第二调度优先级小于第一调度优先级。
25.可选的,该基于lxc的资源调度装置还包括检错处理模块,用于:在仪表系统进入睡眠状态后,启动定时检错任务,定时检错任务用于检测仪表系统是否存在资源泄漏;若通
过定时检错任务确定仪表系统存在资源泄漏,则在夜间无人驾驶状态重启仪表系统。
26.可选的,该基于lxc的资源调度装置还包括检测处理模块,用于:若检测到仪表系统出现显示故障,则切换到备用仪表系统。
27.第三方面,本技术提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;
28.存储器存储计算机执行指令;
29.处理器执行存储器存储的计算机执行指令,以实现如本技术第一方面所述的基于lxc的资源调度方法。
30.第四方面,本技术提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序指令,计算机程序指令被处理器执行时,实现如本技术第一方面所述的基于lxc的资源调度方法。
31.第五面,本技术提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如本技术第一方面所述的基于lxc的资源调度方法。
32.本技术提供的基于lxc的资源调度方法、装置、设备及存储介质,通过响应于仪表显示指令,调度仪表系统的显示任务抢占获得图形处理器gpu的使用权,在仪表系统的显示任务使用完gpu时,基于自定义时间片周期调度算法调度被抢占了gpu的使用权的其他系统的显示任务重新获得gpu的使用权。由于本技术能够调度仪表系统的显示任务抢占获得图形处理器gpu的使用权,因此,能够较好地保障仪表系统的正常显示,进而能够较好地保障多系统场景下车辆驾驶的安全性。
附图说明
33.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
34.图1为本技术一实施例提供的应用场景示意图;
35.图2为本技术一实施例提供的基于lxc的资源调度方法的流程图;
36.图3为本技术另一实施例提供的基于lxc的资源调度方法的流程图;
37.图4为本技术又一实施例提供的基于lxc的资源调度方法的流程图;
38.图5为本技术一实施例提供的基于lxc的资源调度装置的结构示意图;
39.图6为本技术提供的一种电子设备结构示意图。
具体实施方式
40.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
41.本技术的技术方案中,所涉及的金融数据或用户数据等信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
42.目前,基于lxc技术的车辆的仪表系统和娱乐系统等多系统启动方案中,仪表系统和娱乐系统共用gpu硬件资源和硬件图形合成器(hardware composer,hwc)资源。在车辆正常行驶过程中,若娱乐系统长时间高负载占用gpu硬件资源,则容易导致仪表系统显示卡顿,影响车辆的安全驾驶。车辆的车机系统在点火开关关闭(acc off)后处于睡眠状态,若睡眠程序存在资源泄漏,则会导致下次acc开启(on)时仪表无法正常使用。另外,在车辆行驶过程中,若仪表系统出现其他无法恢复的故障问题,在没有备用硬件的情况下,也会影响车辆的安全驾驶。
43.基于上述问题,本技术提供一种基于lxc的资源调度方法、装置、设备及存储介质,通过增加多系统间gpu资源周期调度和抢占式调度策略、系统检错机制等,能够较好地保障多系统场景下车辆驾驶的安全性。
44.以下,首先对本技术提供的方案的应用场景进行示例说明。
45.图1为本技术一实施例提供的应用场景示意图。如图1所示,本应用场景中,车辆101装有仪表系统对应的显示屏1011和娱乐系统对应的显示屏1012,车辆101基于lxc技术启动仪表系统和娱乐系统,对仪表系统和娱乐系统共用的gpu硬件资源进行调度,以保证能够在仪表系统对应的显示屏1011中正常显示仪表系统对应的信息,且能够在娱乐系统对应的显示屏1012中正常显示娱乐系统对应的信息。其中,车辆101对仪表系统和娱乐系统共用的gpu硬件资源进行调度的具体实现过程可以参见下述各实施例的方案。
46.需要说明的是,图1仅是本技术实施例提供的一种应用场景的示意图,本技术实施例不对图1中包括的设备进行限定,也不对图1中设备之间的位置关系进行限定。
47.接下来,通过具体实施例介绍基于lxc的资源调度方法。
48.图2为本技术一实施例提供的基于lxc的资源调度方法的流程图。该基于lxc的资源调度方法可以由软件和/或硬件装置执行,例如,该硬件装置可以为基于lxc的资源调度装置,该基于lxc的资源调度装置可以为电子设备或者电子设备中的处理芯片。如图2所示,本技术实施例的方法包括:
49.s201、响应于仪表显示指令,调度仪表系统的显示任务抢占获得gpu的使用权。
50.本技术实施例中,仪表显示指令用于指示在车辆的仪表显示屏中显示仪表系统对应的信息。该步骤中,示例性地,执行本方法实施例的电子设备基于lxc技术启动仪表系统和娱乐系统,仪表系统和娱乐系统共用的gpu硬件资源。在娱乐系统的显示任务使用gpu的时候,响应于仪表显示指令,调度仪表系统的显示任务抢占获得图形处理器gpu的使用权,相应地,娱乐系统的显示任务不再有gpu的使用权,等待重新获得gpu的使用权。对于如何调度仪表系统的显示任务抢占获得图形处理器gpu的使用权,可参考后续实施例,此处不再赘述。
51.s202、在仪表系统的显示任务使用完gpu时,基于自定义时间片周期调度算法调度被抢占了gpu的使用权的其他系统的显示任务重新获得gpu的使用权。
52.该步骤中,其他系统比如为娱乐系统,仪表系统和娱乐系统共用gpu硬件资源。示例性地,自定义时间片周期调度算法为基于时间片调度(based timespice schedule,btss)算法,用于根据每个系统的调度队列中显示任务的排队顺序,以轮循的方式依次调度相应的显示任务在预设时间片内访问gpu。对于如何具体使用btss算法可参考后续实施例。该步骤中,在调度仪表系统的显示任务抢占获得图形处理器gpu的使用权后,在仪表系统的
显示任务使用完gpu时,基于自定义时间片周期调度算法调度被抢占了gpu的使用权的娱乐系统的显示任务重新获得gpu的使用权。
53.进一步地,可选的,其他系统包括多个显示任务,调度被抢占了gpu的使用权的其他系统的显示任务重新获得gpu的使用权,包括:根据其他系统对应的调度队列中的显示任务的排队顺序,以轮循的方式依次获取其他系统包含的每个显示任务的gpu的使用权,其他系统对应的调度队列中的显示任务的排队顺序是根据其他系统包含的多个显示任务分别对应的优先级、已使用硬件时长以及已排队时长的加权值确定的。
54.示例性地,仪表系统和其他系统中显示任务的优先级的范围比如为0至99,优先级越大,使用gpu的时长越大。若仪表系统中有且仅有单个显示任务,则将该显示任务的优先级设置为100,能够独占gpu的使用权。其他系统比如为娱乐系统,娱乐系统中包含两个显示任务,其中的一个显示任务比如为桌面启动器(launcher)程序,用于显示车机娱乐桌面,设置launcher程序的优先级比如为50;另一个显示任务比如为地图导航程序,用于显示车机娱乐桌面,设置地图导航程序的优先级比如为60。可以理解,车辆行驶过程中,地图导航程序对应的地图导航功能的优先级高于launcher程序对应的娱乐桌面功能。在一种可能的实施方式中,娱乐系统启动后,娱乐系统的显示任务的优先级可以根据使用场景变化动态修改。例如,车辆行驶过程中,地图导航程序优先于launcher程序,停车娱乐过程,launcher程序优先于地图导航程序。
55.由于娱乐系统中包含launcher程序和地图导航程序两个显示任务,因此,娱乐系统对应的调度队列中包含launcher程序和地图导航程序两个显示任务。可以根据娱乐系统包含的两个显示任务分别对应的优先级、已使用硬件时长以及已排队时长的加权值来确定娱乐系统对应的调度队列中的显示任务的排队顺序。具体地,根据btss算法,优先级为x的任务已使用硬件时长的加权系数分别为1/x,已排队时长的加权系数为1/(2*x)。因此,可以确定优先级为60的地图导航程序的已使用硬件时长和已排队时长的加权值要低于优先级为50的launcher程序,地图导航程序更应该得到gpu的使用权。此后,launcher程序和地图导航程序以轮循的方式依次获得gpu的使用权,该方式可以理解为周期调度的方式。总体上,地图导航程序使用gpu的时长更多。
56.示例性地,假设娱乐系统的launcher程序被抢占了gpu的使用权,在仪表系统的显示任务使用完gpu时,launcher程序重新获得gpu的使用权,比如launcher程序可以使用gpu 5ms。其中,5ms为btss算法的默认使用时间片,该时间片可以按需进行动态修改,本技术对此不做任何限制。在launcher程序使用完当前的时间片5ms后,按照娱乐系统对应的调度队列中的显示任务的排队顺序,地图导航程序获得gpu的使用权,在地图导航程序使用完当前的时间片5ms后,launcher程序获得gpu的使用权,依此类推,launcher程序和地图导航程序以轮循的方式依次获得gpu的使用权。
57.本技术实施例提供的基于lxc的资源调度方法,通过响应于仪表显示指令,调度仪表系统的显示任务抢占获得图形处理器gpu的使用权,在仪表系统的显示任务使用完gpu时,基于自定义时间片周期调度算法调度被抢占了gpu的使用权的其他系统的显示任务重新获得gpu的使用权。由于本技术实施例中能够调度仪表系统的显示任务抢占获得图形处理器gpu的使用权,因此,能够较好地保障仪表系统的正常显示,进而能够较好地保障多系统场景下车辆驾驶的安全性。
58.图3为本技术另一实施例提供的基于lxc的资源调度方法的流程图。在上述实施例的基础上,本技术实施例对基于lxc的资源调度方法进行进一步说明。如图3所示,本技术实施例的方法可以包括:
59.s301、在初始化仪表系统时,向linux内核注册第一调度优先级。
60.示例性地,车辆上电以后,引导程序加载宿主机镜像后,解析镜像中linux内核二进制文件和宿主机(host)操作系统(operating system,os)的根文件系统,并拷贝到指定的内存。其中,宿主机操作系统为lxc虚拟化环境中,运行在物理硬件上的操作系统。linux内核初始化完成后,宿主机操作系统正常运行,lxc虚拟化环境就绪,优先启动车辆的仪表客户机(guest)os,即仪表系统,以保证车辆点火启动的实时性要求。其中,guest os为运行在lxc上的虚拟机操作系统。在初始化仪表系统时,向linux内核注册第一调度优先级,该第一调度优先级比如为驱动(driver)类。然后仪表系统启动仪表程序(即仪表系统的显示任务),用于显示车机状态,设置仪表程序的优先级最高优先级,比如为100,可以独占gpu的使用权。
61.s302、在初始化其他系统时,向linux内核注册第二调度优先级,第二调度优先级小于第一调度优先级。
62.该步骤中,示例性地,其他系统比如为娱乐系统,在宿主机基于lxc的资源调度仪表系统后,顺序启动娱乐系统。仪表系统和娱乐系统的初始化同步进行,而不是仪表系统初始化完成后才启动娱乐系统。在娱乐系统初始化时,向linux内核注册第二调度优先级,该第二调度优先级比如为娱乐(play)类。第二调度优先级小于第一调度优先级,因此,第一调度优先级的显示任务可以抢占第二调度优先级的显示任务,而第二调度优先级的显示任务不可以抢占第一调度优先级的显示任务。
63.在娱乐系统向linux内核注册第二调度优先级后,启动launcher程序,设置launcher程序的优先级比如为50;启动地图导航程序,设置地图导航程序的优先级比如为60。
64.本技术实施例中,图2中s201步骤可以进一步包括如下的s303和s304两个步骤:
65.s303、响应于仪表显示指令,确定仪表系统的显示任务对应的第一调度优先级。
66.s304、根据第一调度优先级,调度仪表系统的显示任务抢占获得gpu的使用权。
67.示例性地,汽车行驶过程中,用户操作娱乐桌面,launcher程序获得调度,获得gpu的使用权5ms。在launcher程序使用2ms后,用户脚踩油门,相应地,响应于仪表显示指令,确定仪表系统的显示任务的调度优先级为第一调度优先级,即为driver类,而launcher程序的调度优先级为第二调度优先级,即为play类,driver类可以抢占play类的gpu的使用权,因此,仪表系统的显示任务(比如为仪表程序)获得调度,获得gpu的使用权5ms。仪表程序使用完当前的时间片5ms后,若依然需要使用gpu,则仪表程序继续获得调度,直至仪表程序不再进入调度队列。在仪表程序获得调度的过程中,娱乐系统的launcher程序一直躺在娱乐系统的调度队列中,等待下次调度。
68.一种可能的实施方式中,仪表系统包括多个显示任务,调度仪表系统的显示任务抢占获得图形处理器gpu的使用权,可以包括:基于自定义时间片周期调度算法调度仪表系统的显示任务抢占获得gpu的使用权。
69.示例性地,若仪表系统包括多个显示任务,在调度仪表系统的显示任务抢占获得
图形处理器gpu的使用权时,则可以基于btss算法调度仪表系统的显示任务抢占获得gpu的使用权。
70.进一步地,可选的,基于自定义时间片周期调度算法调度仪表系统的显示任务抢占获得gpu的使用权,可以包括:根据仪表系统对应的调度队列中的显示任务的排队顺序,以轮循的方式依次获取仪表系统包含的每个显示任务的gpu的使用权,仪表系统对应的调度队列中的显示任务的排队顺序是根据仪表系统包含的多个显示任务分别对应的优先级、已使用硬件时长以及已排队时长的加权值确定的。
71.示例性地,参考s202步骤中的示例,仪表系统包括两个显示任务,分别为仪表显示任务1和仪表显示任务2,其中,设置显示任务1的优先级高于仪表显示任务2的优先级,则可以基于自定义时间片周期调度算法,根据仪表系统包含的两个显示任务分别对应的优先级、已使用硬件时长以及已排队时长的加权值来确定仪表系统对应的调度队列中的显示任务的排队顺序。显示任务1首先获得gpu的使用权,在显示任务1使用完当前的时间片5ms后,显示任务2获得gpu的使用权,在显示任务2使用完当前的时间片5ms后,显示任务1获得gpu的使用权,依此类推,显示任务1和显示任务2以轮循的方式依次获得gpu的使用权。
72.s305、在仪表系统的显示任务使用完gpu时,基于自定义时间片周期调度算法调度被抢占了gpu的使用权的其他系统的显示任务重新获得gpu的使用权。
73.该步骤的具体描述可以参见图2所示实施例中s202的相关描述,此处不再赘述。
74.本技术实施例提供的基于lxc的资源调度方法,通过在初始化仪表系统时,向linux内核注册第一调度优先级,在初始化其他系统时,向linux内核注册第二调度优先级,第二调度优先级小于第一调度优先级;响应于仪表显示指令,确定仪表系统的显示任务对应的第一调度优先级,根据第一调度优先级,调度仪表系统的显示任务抢占获得gpu的使用权;在仪表系统的显示任务使用完gpu时,基于自定义时间片周期调度算法调度被抢占了gpu的使用权的其他系统的显示任务重新获得gpu的使用权。由于本技术实施例中根据仪表系统对应的第一调度优先级,调度仪表系统的显示任务抢占获得图形处理器gpu的使用权,因此,能够较好地保障仪表系统的正常显示,进而能够较好地保障多系统场景下车辆驾驶的安全性。
75.在上述实施例的基础上,可选的,基于lxc的资源调度方法还可以包括:在仪表系统进入睡眠状态后,启动定时检错任务,定时检错任务用于检测仪表系统是否存在资源泄漏;若通过定时检错任务确定仪表系统存在资源泄漏,则在夜间无人驾驶状态重启仪表系统。
76.示例性地,车辆的仪表系统在用户触发acc off后,仪表系统进入睡眠状态,然后启动仪表系统的定时检错程序(即定时检错任务)。定时检错程序排查仪表系统的资源泄漏问题,即检测仪表系统是否存在资源泄漏。若确定仪表系统存在资源泄露,则在夜间无人驾驶状态重启仪表系统,即完成仪表系统的自重启。仪表系统完成自重启后,仪表系统直接进入睡眠状态,而娱乐系统正常运行,不需要重启。
77.通过在仪表系统进入睡眠状态后,启动定时检错任务,能够及时发现仪表系统是否存在资源泄漏,因此,能够较好保障仪表系统的正常运行,进而保障车辆驾驶的安全性。
78.在上述实施例的基础上,可选的,基于lxc的资源调度方法还可以包括:若检测到仪表系统出现显示故障,则切换到备用仪表系统。
79.示例性地,比如通过安全芯片提供备用仪表系统。若检测到仪表系统出现显示故障,则切换到安全芯片提供的备用仪表系统。
80.通过在检测到仪表系统出现显示故障时,切换到备用仪表系统,能够保障车辆行驶过程中,在仪表系统出现其他无法恢复的故障问题时,通过备用仪表来正常显示对应的信息,进而保障车辆驾驶的安全性。
81.在上述实施例的基础上,为了便于理解本技术实施例提供的基于lxc的资源调度方法,下面,将以汽车单个车机芯片上启动并运行仪表系统和娱乐系统为例,对本技术实施例提供的技术方案进行详细的描述,具体的可参见图4所示,图4为本技术又一实施例提供的基于lxc的资源调度方法的流程图。如图4所示,本技术实施例的方法可以包括:
82.s401、汽车系统上电以后,引导程序加载宿主机镜像后,解析镜像中linux内核二进制文件和宿主机操作系统的根文件系统,并拷贝到指定的内存。
83.s402、linux内核初始化完成后,宿主机操作系统正常运行,lxc虚拟化环境就绪,为启动guest os做准备。
84.s403、lxc虚拟化运行环境就绪后,优先启动汽车的仪表guest os,保证汽车点火启动的实时性要求。
85.s404、在汽车的仪表guest os初始化阶段,向linux内核注册第一调度优先级为driver类。
86.s405、汽车的仪表guest os启动仪表程序,用于显示车机状态,设置仪表程序的优先级为100。
87.示例性地,仪表系统和娱乐系统的显示任务的优先级范围为0至99,优先级越大,使用硬件时长越大。假设仪表系统有且仅有单个显示任务,则将该优先级设置为100,能够独占gpu的使用权。
88.s406、lxc启动汽车的仪表guest os后,顺序启动汽车的娱乐guest os。
89.示例性地,宿主机操作系统顺序启动仪表guest os和娱乐guest os,两个guest os的初始化同步进行,而不是仪表系统初始化完成后才启动娱乐系统。
90.s407、在汽车的娱乐guest os初始化阶段,向linux内核注册第二调度优先级为play类。
91.s408、汽车的娱乐guest os启动launcher程序,用于显示车机娱乐桌面,设置launcher程序的优先级为50。
92.s409、汽车的娱乐guest os启动地图导航程序,用于显示地图导航信息,设置地图导航程序的优先级为60。在车辆行驶过程中,地图导航功能优先级高于娱乐桌面功能。
93.基于上述步骤可知,当前存在三个显示任务,分别是driver类仪表程序、play类launcher程序和play类地图导航程序。当前存在两个调度队列,分别是仪表系统的调度队列和娱乐系统的调度队列。
94.s410、在汽车行驶过程中,用户操作娱乐桌面,launcher程序进入娱乐系统的调度队列,launcher程序获得调度,获得gpu的使用权5ms。
95.示例性地,btss算法的默认时间片为5ms,支持动态修改。
96.s411、在娱乐系统的launcher程序使用gpu 2ms后,用户脚踩油门。因为仪表程序的调度优先级为driver类,launcher程序的调度优先级为play类,driver类可以抢占play
类的gpu使用权,因此,仪表程序获得调度,获得gpu的使用权5ms。在仪表程序的最小时间片使用完,若依然需要使用gpu,则仪表程序继续获得调度,直到仪表程序不再进入调度队列。
97.在仪表程序获得调度的过程中,娱乐系统的launcher程序一直躺在娱乐系统的调度队列,等待下次调度。在仪表程序处理完成后,launcher程序再次获得调度,获得gpu的使用权5ms。
98.s412、在汽车行驶过程中,用户操作使用地图导航功能。因为launcher程序和地图导航程序属于同一个调度优先级play类,因此,地图导航程序无法触发抢占,需要等待launcher程序使用完当前的时间片后开始周期调度。当前娱乐系统中的调度队列有两个任务,分别为launcher程序和地图导航程序。根据btss算法,调度队列的排队顺序取决于显示任务对应的优先级、已使用硬件时长以及已排队时长的加权值,因此,此优先级为60的地图导航程序的已使用硬件时长和已排队时长的加权值要低于优先级为50的launcher程序,地图导航程序更应该得到gpu的使用权。此后,launcher程序和地图导航程序周期调度,总体上,地图导航程序使用gpu的时长更多。
99.s413、汽车的仪表guest os在用户触发acc off后,仪表系统进入睡眠状态,然后启动仪表系统的定时检错程序。
100.s414、汽车的仪表guest os定时检错程序排查资源泄漏问题。
101.s415、确定是否存在资源泄露。
102.若确定存在资源泄露,则执行s416步骤;若确定不存在资源泄露,则不需要进行任何处理,即结束本技术实施例的方法流程。
103.s416、汽车的仪表guest os在夜间无人驾驶状态完成自重启,重启后系统直接进入睡眠状态,而娱乐guest os正常运行,不需要重启。
104.本技术实施例提供的基于lxc的资源调度方法,通过多系统间gpu资源的周期调度和抢占式调度策略以及仪表系统的定时检错程序,能够较好地保障仪表系统的正常显示,进而能够较好地保障多系统场景下车辆驾驶的安全性。
105.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
106.图5为本技术一实施例提供的基于lxc的资源调度装置的结构示意图,如图5所示,本技术实施例的基于lxc的资源调度装置500包括:第一调度模块501和第二调度模块502。其中:
107.第一调度模块501,用于响应于仪表显示指令,调度仪表系统的显示任务抢占获得gpu的使用权。
108.第二调度模块502,用于在仪表系统的显示任务使用完gpu时,基于自定义时间片周期调度算法调度被抢占了gpu的使用权的其他系统的显示任务重新获得gpu的使用权。
109.在一些实施例中,第一调度模块501可以具体用于:响应于仪表显示指令,确定仪表系统的显示任务对应的第一调度优先级;根据第一调度优先级,调度仪表系统的显示任务抢占获得gpu的使用权。
110.可选的,第一调度模块501在响应于仪表显示指令,确定仪表系统的显示任务对应的第一调度优先级之前,还可以用于:在初始化仪表系统时,向linux内核注册第一调度优先级。
111.在一些实施例中,仪表系统包括多个显示任务,第一调度模块501可以具体用于:基于自定义时间片周期调度算法调度仪表系统的显示任务抢占获得gpu的使用权。
112.可选的,第一调度模块501在用于基于自定义时间片周期调度算法调度仪表系统的显示任务抢占获得gpu的使用权时,可以具体用于:根据仪表系统对应的调度队列中的显示任务的排队顺序,以轮循的方式依次获取仪表系统包含的每个显示任务的gpu的使用权,仪表系统对应的调度队列中的显示任务的排队顺序是根据仪表系统包含的多个显示任务分别对应的优先级、已使用硬件时长以及已排队时长的加权值确定的。
113.在一些实施例中,其他系统包括多个显示任务,第二调度模块502可以具体用于:根据其他系统对应的调度队列中的显示任务的排队顺序,以轮循的方式依次获取其他系统包含的每个显示任务的gpu的使用权,其他系统对应的调度队列中的显示任务的排队顺序是根据其他系统包含的多个显示任务分别对应的优先级、已使用硬件时长以及已排队时长的加权值确定的。
114.可选的,第二调度模块502在用于根据其他系统对应的调度队列中的显示任务的排队顺序,以轮循的方式依次获取其他系统包含的每个显示任务的gpu的使用权之前,还可以用于:在初始化其他系统时,向linux内核注册第二调度优先级,第二调度优先级小于第一调度优先级。
115.在一些实施例中,该基于lxc的资源调度装置还可以包括检错处理模块503,用于:在仪表系统进入睡眠状态后,启动定时检错任务,定时检错任务用于检测仪表系统是否存在资源泄漏;若通过定时检错任务确定仪表系统存在资源泄漏,则在夜间无人驾驶状态重启仪表系统。
116.可选的,该基于lxc的资源调度装置还可以包括切换处理模块504,用于:若检测到仪表系统出现显示故障,则切换到备用仪表系统。
117.本实施例的装置,可以用于执行上述任一所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
118.图6为本技术提供的一种电子设备结构示意图。如图6所示,该电子设备600可以包括:至少一个处理器601和存储器602。
119.存储器602,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
120.存储器602可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
121.处理器601用于执行存储器602存储的计算机执行指令,以实现前述方法实施例所描述的基于lxc的资源调度方法。其中,处理器601可能是一个中央处理器(central processing unit,简称为cpu),或者是特定集成电路(application specific integrated circuit,简称为asic),或者是被配置成实施本技术实施例的一个或多个集成电路。具体的,在实现前述方法实施例所描述的基于lxc的资源调度方法时,该电子设备例如可以是终端、服务器等具有处理功能的电子设备。在实现前述方法实施例所描述的基于lxc的资源调度方法时,该电子设备例如可以是车辆上的电子控制单元。
122.可选的,该电子设备600还可以包括通信接口603。在具体实现上,如果通信接口603、存储器602和处理器601独立实现,则通信接口603、存储器602和处理器601可以通过总
线相互连接并完成相互间的通信。总线可以是工业标准体系结构(industry standard architecture,简称为isa)总线、外部设备互连(peripheral component,简称为pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称为eisa)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
123.可选的,在具体实现上,如果通信接口603、存储器602和处理器601集成在一块芯片上实现,则通信接口603、存储器602和处理器601可以通过内部接口完成通信。
124.本技术还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。
125.本技术还提供一种计算机程序产品,该计算机程序产品包括执行指令,该执行指令存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得电子设备实施上述的各种实施方式提供的基于lxc的资源调度方法。
126.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1