进程管理方法、装置、电子设备和存储介质与流程
未命名
10-09
阅读:132
评论:0
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.一种可能的实现中,所述车机系统中运行有虚拟机操作系统,所述可用内存值包括空闲内存mem free、内存缓冲mem buffers以及高速缓存cached;
41.所述第一进程获取车机系统的可用内存值和系统负载值,包括:
42.所述第一进程在第一数据中获取与所述mem free对应的值、所述mem buffers对应的值,和所述cached对应的值,所述第一数据为执行第一命令返回的数据;
43.所述第一进程在第二数据中获取系统负载对应的所述系统负载值,所述第二数据为执行第二命令返回的数据。
44.一种可能的实现中,所述车机系统中未运行有虚拟机操作系统,所述可用内存值包括空闲内存mem free、内存缓冲mem buffers以及高速缓存cached;
45.所述第一进程获取车机系统的可用内存值和系统负载值,包括:
46.所述第一进程在第三数据中获取与所述mem free对应的值、所述mem buffers对应的值,和所述cached对应的值,所述第三数据为执行第三命令返回的数据;
47.所述第一进程在第四数据中获取系统负载对应的所述系统负载值,所述第四数据为执行第四命令返回的数据。
48.一种可能的实现中,所述第一进程根据所述可用内存值和所述系统负载值,确定所述车机系统的负载率和所述负载率对应的负载级别,包括:
49.所述第一进程计算所述mem free、所述mem buffers和所述cached的加和,将所述加和与内存总量的比值确定为第一负载率;
50.所述第一进程根据所述第一负载率所处的第一取值范围,确定所述第一负载率对应的负载等级为所述第一取值范围对应的第一负载等级;
51.所述第一进程将所述系统负载值与系统能够允许的负载最大值的比值,确定为第二负载率;
52.所述第一进程根据所述第二负载率所处的第二取值范围,确定所述第二负载率对应的负载等级为所述第二取值范围对应的第二负载等级。
53.第二方面,本技术实施例提供了一种进程管理装置,所述进程管理装置包括:
54.获取模块,用于获取车机系统的可用内存值和系统负载值;
55.计算模块,用于根据所述可用内存值和所述系统负载值,确定所述车机系统的负载率和所述负载率对应的负载级别;
56.广播模块,用于在确定所述负载级别满足负载释放条件的情况下,将所述负载率和所述负载率对应的负载级别广播至第二进程;
57.调整模块,用于根据所述负载率和所述负载率对应的负载级别释放系统资源。
58.一种可能的实现中,所述第二进程中包括允许调整业务逻辑的第一目标进程,所述调整模块,具体用于在所述第一目标进程确定所述负载率对应的负载级别满足负载释放条件的情况时,根据所述负载率调整待执行的业务逻辑,调整后的业务逻辑占用的系统资源小于调整前的业务逻辑占用的系统资源。
59.一种可能的实现中,所述负载率包括第一负载率,所述第一负载率是根据所述可用内存值确定的,所述第一负载率对应的负载级别为第一负载级别;所述待执行的业务逻辑包括待执行的第一业务逻辑,所述待执行的第一业务逻辑为占用内存的业务逻辑。
60.所述调整模块,具体用于在所述第一目标进程确定所述第一负载级别大于或等于第一预设级别时,根据所述第一负载率调整所述待执行的第一业务逻辑,调整后的第一业务逻辑占用的内存值小于调整前的第一业务逻辑占用的内存值,且调整前的第一业务逻辑占用的内存值与调整后的第一业务逻辑占用的内存值的差值小于或等于第一预设值。
61.一种可能的实现中,所述负载率包括第一负载率,所述第一负载率是根据所述可用内存值确定的,所述第一负载率对应的负载级别为第一负载级别;所述待执行的业务逻辑包括待执行的第一业务逻辑,所述待执行的第一业务逻辑为占用内存的业务逻辑。
62.所述调整模块,具体用于在所述第一目标进程确定所述第一负载级别大于或等于第二预设级别时,根据所述第一负载率调整所述待执行的第一业务逻辑,调整后的第一业务逻辑占用的内存值小于调整前的第一业务逻辑占用的内存值,且调整前的第一业务逻辑占用的内存值与调整后的第一业务逻辑占用的内存值的差值大于所述第一预设值,所述第二预设级别大于第一预设级别。
63.一种可能的实现中,所述负载率还包括第二负载率,所述第二负载率是根据所述
系统负载值确定的,所述第二负载率对应的负载级别为第二负载级别;所述待执行的业务逻辑还包括待执行的第二业务逻辑,所述待执行的第二业务逻辑为占用系统负载的业务逻辑。
64.所述调整模块,具体用于在所述第一目标进程确定所述第二负载级别大于或等于第三预设级别时,根据所述第二负载率调整所述待执行的第二业务逻辑,调整后的第二业务逻辑占用的系统负载小于调整前的第二业务逻辑占用的系统负载,且调整前的第二业务逻辑占用的系统负载与调整后的第二业务逻辑占用的系统负载的差值小于或等于第二预设值。
65.一种可能的实现中,所述负载率还包括第二负载率,所述第二负载率是根据所述系统负载值确定的,所述第二负载率对应的负载级别为第二负载级别;所述待执行的业务逻辑还包括待执行的第二业务逻辑,所述待执行的第二业务逻辑为占用系统负载的业务逻辑。
66.所述调整模块,具体用于在所述第一目标进程确定所述第二负载级别大于或等于第四预设级别时,根据所述第二负载率调整所述待执行的第二业务逻辑,调整后的第二业务逻辑占用的系统负载小于调整前的第二业务逻辑占用的系统负载,且调整前的第二业务逻辑占用的系统负载与调整后的第二业务逻辑占用的系统负载的差值大于所述第二预设值,所述第四预设级别大于第三预设级别。
67.一种可能的实现中,所述第二进程中还包括允许退出运行状态的第二目标进程,所述调整模块,具体用于在所述第二目标进程确定所述负载率对应的负载级别满足释放条件的情况时,所述第二目标进程退出运行状态。
68.一种可能的实现中,所述负载率包括第一负载率和第二负载率,所述第一负载率是根据所述可用内存值确定的,所述第一负载率对应的负载级别为第一负载级别,所述第二负载率是根据所述系统负载值确定的,所述第二负载率对应的负载级别为第二负载级别。
69.所述调整模块,具体用于在所述第二目标进程确定所述第一负载级别大于或等于第二预设级别和/或所述第二负载级别大于或等于第四预设级别时,所述第二目标进程退出运行状态。
70.一种可能的实现中,所述调整模块,具体用于在确定所述第二负载级别大于或等于第二预设级别和/或所述第一负载级别大于或等于第二预设级别时,判断第一目标进程的数量是否小于或等于第三预设值;当所述第一目标进程的数量小于或等于所述第三预设值时,所述第二目标进程退出运行状态。
71.一种可能的实现中,所述调整模块,具体用于在确定所述第二负载级别大于或等于第二预设级别和/或所述第一负载级别大于或等于第二预设级别时,判断所述第一负载率是否大于或等于第四预设值,以及,所述第二负载率是否小于或等于第五预设值;当所述第一负载率大于或等于所述第四预设值,和/或,所述第二负载率小于或等于所述第五预设值时,所述第二目标进程退出运行状态。
72.一种可能的实现中,所述车机系统中运行有虚拟机操作系统,所述可用内存值包括空闲内存mem free、内存缓冲mem buffers以及高速缓存cached;所述获取模块,具体用于在第一数据中获取与所述mem free对应的值、所述mem buffers对应的值,和所述cached
对应的值,所述第一数据为执行第一命令返回的数据;在第二数据中获取系统负载对应的所述系统负载值,所述第二数据为执行第二命令返回的数据。
73.一种可能的实现中,所述车机系统中未运行有虚拟机操作系统,所述可用内存值包括空闲内存mem free、内存缓冲mem buffers以及高速缓存cached;所述获取模块,具体用于在第三数据中获取与所述mem free对应的值、所述mem buffers对应的值,和所述cached对应的值,所述第三数据为执行第三命令返回的数据;在第四数据中获取系统负载对应的所述系统负载值,所述第四数据为执行第四命令返回的数据。
74.一种可能的实现中,所述计算模块,具体用于计算所述mem free、所述mem buffers和所述cached的加和,将所述加和与内存总量的比值确定为第一负载率;根据所述第一负载率所处的第一取值范围,确定所述第一负载率对应的负载等级为所述第一取值范围对应的第一负载等级;将所述系统负载值与系统能够允许的负载最大值的比值,确定为第二负载率;根据所述第二负载率所处的第二取值范围,确定所述第二负载率对应的负载等级为所述第二取值范围对应的第二负载等级。
75.第三方面,本技术实施例还提供了一种电子设备,该电子设备包括:处理器,以及与所述处理器通信连接的存储器;
76.所述存储器存储计算机执行指令;
77.所述处理器执行所述存储器存储的计算机执行指令,以实现上述第一方面任一种可能的实现方式中所述的方法。
78.第四方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述第一方面任一种可能的实现方式中所述的方法。
79.第五方面,本技术实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现上述第一方面任一种可能的实现方式中所述的方法。
80.由此可见,本技术实施例提供了进程管理方法、装置、电子设备和存储介质,应用于车机系统,车机系统中运行有第一进程和第二进程,第一进程用于管理第二进程,第二进程为除第一进程之外的其他进程,进程管理方法包括:第一进程获取车机系统的可用内存值和系统负载值;第一进程根据可用内存值和系统负载值,确定车机系统的负载率和负载率对应的负载级别;第一进程在确定负载级别满足负载释放条件的情况下,将负载率和负载率对应的负载级别广播至第二进程;第二进程根据负载率和负载率对应的负载级别释放系统资源。这样,第二进程可以自行释放系统资源,不需要强制将进程清理掉,可以减少出现将不应该清理的进程清理掉的情况,提升用户体验。
附图说明
81.图1为本技术实施例提供的一种车机系统的结构示意图;
82.图2为本技术实施例提供的一种进程管理方法的流程示意图;
83.图3为本技术实施例提供的一种第二进程调整业务逻辑的方法的流程图;
84.图4为本技术实施例提供的一种第二进程调整业务逻辑并退出运行状态的方法的流程图;
85.图5为本技术实施例提供的另一种进程管理方法的流程示意图;
86.图6为本技术实施例提供的一种进程管理装置的结构示意图;
87.图7为本技术提供的一种电子设备结构示意图。
88.通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
89.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
90.在本技术的实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。在本技术的文字描述中,字符“/”一般表示前后关联对象是一种“或”的关系。
91.车机系统中运行的进程会占用一定的系统资源,有系统的资源是有上限的,因此,需要对进程的存活和退出进行管理。若没有管理好进程的存活和退出,可能会由于进程占用的系统资源较多,而导致系统卡顿等性能问题,影响用户体验。
92.以车机系统为android系统,进程为应用进程为例,当应用进程在android系统中存活时,会占用系统资源,系统资源包括但不限于中央处理器(central processing unit,简称cpu)、内存和输入/输出(input/output,简称i/o)等。然而,车机系统的系统资源可以是根据硬件制定而有上限的,因此,一旦存活的进程超过了系统资源的负载,就会导致系统卡顿或者不稳定的现象,从而直接影响用户体验。
93.当应用进程退出时,若用户下次需要该应用程序,需要执行启动应用程序的操作时,则该应用进程就需要重新加载,可能出现启动慢的问题,进而也会影响到用户体验。
94.一些实现中,可以通过判断系统的负载情况、应用的使用场景、使用频率等,控制应用进程退出运行状态。例如,当系统的负载值达到某个值时,例如系统的负载值接近系统能够允许的负载的最大值时,可以强制退出处于运行状态的几个应用进程。或者,当用户使用电子设备玩游戏时,可以将后台运行的多个应用进程中的一个或几个应用进程强制退出。或者,可以根据应用程序的使用频率,将使用频率较低的应用进程强制退出。
95.然而,上述实现中,强制退出应用进行进程时,可能会出现不应该被清理的进程被强制退出运行状态,例如,可能会将用户不想退出的应用进程强制退出,使得应用体验较差。
96.基于此,本技术实施例提供了一种进程管理方法,通过一个进程对车机系统的系统资源进行检测,当该进程检测到需要进行系统资源释放时,可以将检测的结果广播给其他的进程,使得其他的进程可以根据广播的内容释放系统资源。这样,进程可以根据广播的内容主动进行系统资源的释放,而不是电子设备强制将该进程退出。由于进程不应该被清理时,则不会根据广播的内容进行清理,可以减少出现不应该被清理的进程被清理掉的情况。因此,本技术实施例的进程管理方法可以在释放系统资源的同时,提升用户体验。
97.下面,将通过具体的实施例对本技术提供的进程管理方法进行详细地说明。可以理解的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
98.本技术实施例提供的进程管理方法可以应用于电子设备中,该电子设备可以为运行车机系统的电子设备,例如,手机、电脑等电子设备,本技术实施例对此不做限定。
99.在对本技术实施例提供的进程管理方法进行说明之前,以车机系统为例,对本技术实施例的车机系统的结构进行描述。图1为本技术实施例提供的一种车机系统的结构示意图。图1所示的车机系统可以为android系统,android系统中运行有系统负载获取模块、系统负载计算模块和进程动态调整模块。
100.系统负载获取模块可以用于获取车机系统的可用内存值和系统负载值。
101.系统负载计算模块可以用于根据可用内存值和系统负载值,计算车机系统的负载率和负载率对应的负载级别。
102.进程动态调整模块中可以包括多个系统正在运行的进程,用于根据负载率和负载率对应的负载级别释放系统资源。
103.示例性的,在车机系统运行过程中,系统负载获取模块可以获取车机系统的可用内存值和系统负载值,并将获取到的可用内存值和系统负载值传输给系统负载计算模块。系统负载计算模块可以根据可用内存值和系统负载值,计算车机系统的负载率和负载率对应的负载级别,并将负载率和负载率对应的负载级别传输给进程动态调整模块。进程动态调整模块可以根据负载率和负载率对应的负载级别释放系统资源。
104.需要说明的是,系统负载获取模块和系统负载计算模块可以是同一个进程中的模块,也可以是不同进程中的模块,本技术实施例对此不做限定。
105.如图1所示,服务端可以与车机系统进行系统,用户可以通过服务端对车机系统进行设定,例如,设定车机系统中定时器的轮询周期等,本技术实施例对于服务端与车机系统交互的内容不做具体限定。
106.这样,可以使得进程自行释放系统资源,而不需要电子设备强制执行,可以减少将不应该被清理的进程清理掉的情况。
107.基于上述图1所示,图2为本技术实施例提供的一种进程管理方法的流程示意图。该进程管理方法可以由软件和/或硬件装置执行,例如,该硬件装置可以为进程管理装置,该进程管理装置可以为电子设备或者电子设备中的处理芯片。示例的,请参见图2所示,该进程管理方法可以包括:
108.s201、第一进程获取车机系统的可用内存值和系统负载值。
109.在本技术实施例中,第一进程可以为用于获取电子设备的内存占用情况以及系统负载情况的进程,第一进程可以包括上述图1中的系统负载获取模块,本技术实施例对此不做限定。
110.可用内存值可以包括空闲内存mem free、内存缓冲mem buffers以及高速缓存cached。
111.系统负载值可以是电子设备中运行的操作系统的系统负载值,由于电子设备中除了运行主操作系统之外,还可能运行有虚拟机操作系统。因此,第一进程获取车机系统的可用内存值和系统负载值的方法包括下述两种可能的实现:
112.一种可能的实现中,车机系统中运行有虚拟机操作系统。第一进程获取车机系统的可用内存值和系统负载值时,第一进程可以在第一数据中获取与mem free对应的值、mem buffers对应的值,和cached对应的值。第一进程还可以在第二数据中获取系统负载对应的系统负载值。
113.第一数据可以为执行第一命令返回的数据,第一数据中可以包括关键字mem free、关键字mem buffers和关键字cached,还可以包括mem free对应的值、mem buffers对应的值、cached对应的值。例如,关键字mem free对应的值为142822k、关键字mem buffers对应的值为36592k、关键字cached对应的值为2131040k。当然,第一数据还可以包括其他关键字和该关键字对应的值,本技术实施例对此不做限定。
114.第二数据为执行第二命令返回的数据,第二数据中可以包括关键字used,还可以包括total一行中的关键字used对应的值,如下述表1所示。当然,第二数据还可以包括其他关键字和该关键字对应的值,本技术实施例对此不做限定。
115.示例性的,第一命令和第二命令可以是同一命令,也可以是不同命令。例如,第一命令和第二命令均可以是通过java的processbuilder类执行的top命令,也可以是其他命令,本技术实施例对于第一命令和第二命令不做限定。
116.示例性的,假设电子设备运行有qnx系统以及虚拟机操作系统android系统,可以在android系统的串口中通过java编写的串口操作程序输入特定命令获得qnx系统的负载,通过执行该特定命令返回的数据可以是有固定格式的内容,返回的数据可以如下述表1所示,第一进程可以在下述表1的数据中total一行中的used中获取到系统负载值,如表1所示,该系统负载值为65.81%。
117.表1
[0118][0119]
需要说明的是,第一命令和第二命令可以是同一个命令也可以是不同的命令,这与车机系统运行的操作系统有关,本技术实施例对此不做限定。
[0120]
这样,通过执行相应的命令可以获取可用内存值和系统负载值,获取的方式较为简单,使得进行处理的效率较高。
[0121]
另一种可能的实现中,车机系统中未运行有虚拟机操作系统,第一进程获取车机系统的可用内存值和系统负载值时,第一进程可以在第三数据中获取与mem free对应的值、mem buffers对应的值,和cached对应的值。第一进程可以在第四数据中获取系统负载对应的系统负载值。
[0122]
第三数据可以为执行第三命令返回的数据,第三数据中可以包括关键字mem free、关键字mem buffers和关键字cached,还可以包括mem free对应的值、mem buffers对应的值、cached对应的值。第三数据的内容可以与第一数据的内容相同,本技术实施例对此不做限定。
[0123]
第四数据为执行第四命令返回的数据,第四数据中可以包括关键字idle,还可以包括idle对应的值。当然,第四数据还可以包括其他关键字和该关键字对应的值,本技术实施例对此不做限定。
[0124]
例如,假设车机系统为android系统,且车机系统中未运行有虚拟机操作系统,第三命令可以为通过java的processbuilder类执行的top命令。第一进程可以获取该命令返回的第三数据中mem一栏中的free和buffers,以及swap一栏中的cached,来获取可用内存值。
[0125]
进一步的,第四命令可以为通过java的processbuilder类执行top命令。在执行该命令返回的第四数据中,第二进程可以获取idle关键字对应的值作为系统负载值。
[0126]
示例性的,假设电子设备运行有qnx系统以及虚拟机操作系统android系统,可以在android系统的串口中通过java编写的串口操作程序输入特定命令获得qnx系统的负载,通过执行该特定命令返回的数据可以是有固定格式的内容,返回的数据可以如表1所示,第一进程可以在表1的数据中total一行中的used中获取到系统负载值,如表1所示,该系统负载值为65.81%。
[0127]
需要说明的是,第三命令和第四命令可以是同一个命令也可以是不同的命令,这与车机系统的操作系统有关,本技术实施例对此不做限定。
[0128]
这样,通过执行相应的命令可以获取可用内存值和系统负载值,获取的方式较为简单,使得进行处理的效率较高。
[0129]
s202、第一进程根据可用内存值和系统负载值,确定车机系统的负载率和负载率对应的负载级别。
[0130]
示例性的,第一进程可以包括上述图1中的系统负载计算模块。
[0131]
示例性的,第一进程可以根据可用内存值,确定车机系统的可用内存值的负载率,以及可用内存值的负载率对应的负载级别,并且第一进程可以根据系统负载值,确定车机系统的系统负载值的负载率,以及系统负载值的负载率对应的负载级别。
[0132]
示例性的,第一进程根据可用内存值,确定车机系统的可用内存值的负载率,以及可用内存值的负载率对应的负载级别,可以包括:第一进程可以计算mem free、mem buffers和cached的加和,将加和与内存总量的比值确定为第一负载率。第一进程可以根据第一负载率所处的第一取值范围,确定第一负载率对应的负载等级为第一取值范围对应的第一负载等级。
[0133]
示例性的,第一进程根据系统负载值,确定车机系统的系统负载值的负载率,以及系统负载值的负载率对应的负载级别,可以包括:第一进程可以将系统负载值与系统允许的负载最大值的比值,确定为第二负载率。第一进程可以根据第二负载率所处的第二取值范围,确定第二负载率对应的负载等级为第二取值范围对应的第二负载等级。
[0134]
示例性的,可以预先为可用内存值对应的第一负载率和系统负载值对应的第二负载率设置不同的负载等级,例如,负载等级可以包括无问题l0、预警l1、告警l2以及报警l3。
其中,无问题l0表示负载正常,出现问题的可能性较小,预警l1表示负载有可能要出问题了但还没问题,告警l2表示负载开始出现小问题,报警l3表示负载已经出现严重问题。不同的负载等级对应有不同的取值范围。
[0135]
例如,第一负载率的取值范围和负载等级的对应情况可参见下述表2所示:
[0136]
表2
[0137][0138]
在上述表2中,第一负载率v1=s1/t1,其中,s1表示mem free、mem buffers和cached的加和,t1表示内存总量。
[0139]
需要说明的,本技术实施例仅以表2所示的负载等级和负载等级对应的取值范围为例进行说明,对于负载等级的数量,以及负载范围的设定并不构成影响。
[0140]
例如,当车机系统为android系统,且车机系统中未运行虚拟机操作系统时,第二负载率的取值范围和负载等级的对应情况可参见下述表3所示:
[0141]
表3
[0142][0143][0144]
在上述表3中,第二负载率v2=s2/t2,其中,s2表示系统负载值,t2表示系统能够允许的负载最大值。
[0145]
需要说明的,本技术实施例仅以表3所示的负载等级和负载等级对应的取值范围为例进行说明,对于负载等级的数量,以及负载范围的设定并不构成影响。
[0146]
例如,当车机系统为qnx系统,且车机系统中运行有虚拟机操作系统时,第二负载率的取值范围和负载等级的对应情况可参见下述表4所示:
[0147]
表4
[0148][0149]
在上述表4中,第二负载率v3=s3/t3,其中,s3表示系统负载值,t3表示系统能够允许的负载最大值。
[0150]
需要说明的,本技术实施例仅以表4所示的负载等级和负载等级对应的取值范围为例进行说明,对于负载等级的数量,以及负载范围的设定并不构成影响。
[0151]
可以理解的是,负载率对应的负载级别越大,表示车机系统可能出现的问题的风险越大。例如,第一负载率对应的第一负载级别越大,表示可用内存值越少。上述表格中,无问题l0、预警l1、告警l2以及报警l3对应的负载等级为依次递增的。
[0152]
这样,可以根据预先设定的取值范围和计算得到的负载率确定负载等级,而不需要进行负载的计算,不需要耗费较大的算力。
[0153]
s203、第一进程在确定负载级别满足负载释放条件的情况下,将负载率和负载率对应的负载级别广播至第二进程。
[0154]
示例性的,负载级别满足负载释放条件的情况可以为负载级别可能存在出现问题的存在风险的情况,例如,负载级别满足负载释放条件的情况可以是负载级别为上述步骤所述的预警l1、告警l2以及报警l3中的任一个的情况。本技术实施例对于负载级别的满足负载释放条件的情况不做具体限定。
[0155]
基于上述步骤所述,将负载率和负载率对应的负载级别广播至第二进程时,第一进程可以将第一负载率、第一负载率对应的第一负载级别、第二负载率以及第二负载率对应的第二负载级别广播至第二进程。
[0156]
第一负载率和第一负载率对应的第一负载级别可以参见上述表2所述的内容,第二负载率以及第二负载率对应的第二负载级别可参见上述表3或表4所示的内容。
[0157]
示例性的,第一进程发布的广播还可以带有广播标识符,该标识符为唯一的,这样,第二进程可以接收到该广播,并获取该广播的广播标识符,基于广播标识符确定该广播为进行系统资源释放的广播。第二进程可以获取广播的内容。
[0158]
s204、第二进程根据负载率和负载率对应的负载级别释放系统资源。
[0159]
第二进程为除第一进程之外的其他进程,因此,第二进程可以包括多个进程。第二进程中包括的多个进程可以有允许调整业务逻辑的进程,也可以有自行退出运行状态的进程。本技术实施例对于第二进程的数量和类型不做限定。
[0160]
在本技术实施例中,第二进程释放系统资源的方式可以包括调整第二进程的业务逻辑和/或第二进程退出运行状态。
[0161]
示例性的,第二进程可以根据上述步骤中的第一负载率、第一负载率对应的第一负载级别、第二负载率和第二负载率对应的第二负载级别释放系统资源。
[0162]
由此可见,本技术实施例提供的进程管理方法,第一进程负责得到负载率和负载
率对应的负载级别,并且在确定负载级别满足负载释放条件的情况下,将负载率和负载率对应的负载级别广播给第二进程,使得第二进程可以根据负载率和负载率对应的负载级别自行释放系统资源,而不是第一进程强制将第二进程清理掉,可以减少将不应该被清理的进程清理掉的情况,可以提升用户体验。
[0163]
在本技术实施例中,第一进程可以每隔预设时间间隔获取一次可用内存值和系统负载值,也可以是实时获取的,本技术实施例对此不做限定。
[0164]
示例性的,当第一进程每隔预设时间间隔获取一次可用内存值和系统负载值时,可以是通过定时器实现的,定时器的轮询时间间隔为预设时间间隔。或者是通过其他方式实现,本技术实施例对此不做限定。
[0165]
在本技术实施例中,第二进程根据负载率和负载率对应的负载级别释放系统资源时,第二进程可以判断负载率对应的负载级别是否满足负载释放条件,当第二进程确定负载率对应的负载级别满足负载释放条件时,第二进程根据负载率调整待执行的业务逻辑,调整后的业务逻辑占用的系统资源小于调整前的业务逻辑占用的系统资源。
[0166]
负载率可以包括第一负载率和第二负载率。负载级别可以包括第一负载率对应的第一负载级别和第二负载率对应的第二负载级别。如上述实施例所述,第一负载率是根据可用内存值确定的,第二负载率是根据系统负载值确定的。
[0167]
示例性的,第一进程的广播可以包括唯一的广播标识符,当第二进程接收到广播,并确定该广播的广播标识符为唯一的广播标识符时,第二进程可以在第一进程的广播中获取负载率和负载率对应的负载级别。
[0168]
在本技术实施例中,第二进程可以包括允许调整业务逻辑的第一目标进程。本技术实施例对于第一目标进程的数量不做限定。
[0169]
负载级别满足负载释放条件可以包括第一负载级别和/或第二负载级别满足达到某个负载级别的情况,达到不同的负载级别对应的调整待执行的业务逻辑的方式可以是不同的,可参见下述调整待执行的业务逻辑的具体方法所述的内容。
[0170]
待执行的业务逻辑包括待执行的第一业务逻辑和待执行的第二业务逻辑,其中,待执行的第一业务逻辑为占用内存的业务逻辑,待执行的第二业务逻辑为占用系统负载的业务逻辑。
[0171]
基于此,第二进程根据负载率调整待执行的业务逻辑可以包括第二进程根据第一负载率调整待执行的第一业务逻辑,和/或,第二进程根据第二负载率调整待执行的第二业务逻辑。
[0172]
这样,第二进程中允许调整业务逻辑的第一目标进程可以调整待执行的业务逻辑,而不是将该进程退出运行状态,使得第一目标进程可以正常运行,当用户需要使用该进程时,不需要重新启动,可以提升用户体验。
[0173]
下面,分别通过图3对第二进程根据第一负载率调整待执行的第一业务逻辑进行说明,通过图4对第二进程根据第二负载率调整待执行的第二业务逻辑的情况进行说明。
[0174]
图3为本技术实施例提供的一种第二进程调整业务逻辑的方法的流程图。
[0175]
如图3所示,该方法可以包括:
[0176]
s301、第二进程中的第一目标进程获取第一负载率和第一负载率对应的第一负载级别。
[0177]
示例性的,第二进程可以在第一进程的广播中获取第一负载率和第一负载率对应的第一负载级别。
[0178]
s302、第一目标进程确定第一负载率对应的第一负载级别满足负载释放条件时,第一目标进程根据第一负载率调整待执行的第一业务逻辑,调整后的进程占用的内存小于调整前的进程占用的内存。
[0179]
示例性的,第一负载级别不同时,第二进程调整待执行的第一业务逻辑的方法可以不同。第二进程根据第一负载率调整待执行的第一业务逻辑可以包括下述两种可能的实现:
[0180]
一种可能的实现中,当第一目标进程确定第一负载级别大于或等于第一预设级别时,第一目标进程根据第一负载率调整待执行的第一业务逻辑,调整后的第一业务逻辑占用的内存值小于调整前的第一业务逻辑占用的内存值,且调整前的第一业务逻辑占用的内存值与调整后的第一业务逻辑占用的内存值的差值小于或等于第一预设值。
[0181]
示例性的,根据以上述实施例所述的负载级别,第一预设级别可以是预警l1对应的负载级别或者告警l2对应的负载级别,本技术实施例对此不做限定。
[0182]
例如,第一预设级别为上述实施例所述预警l1对应的负载级别,当第一负载级别为预警l1对应的负载级别或者告警l2对应的负载级别时,第一目标进程可以确定第一负载级别大于或等于第一预设级别,第一目标进程可以根据第一负载级别调整占用内存的待执行的第一业务逻辑。
[0183]
第一预设值可以为小于第一目标进程能够释放的内存值的最大值的值,例如,第一预设值可以为最大值的二分一或者最大值的三分之一,本技术实施例对于第一预设值不做具体限定。
[0184]
例如,第一预设值为40mb,第一预设级别为预警l1对应的负载级别,当第一目标进程检测到第一负载级别为预警l1对应的负载级别,且当前占用的内存值为80mb,则第一目标进程可以调整其业务逻辑,将占用的内存值由80mb调整为60mb。
[0185]
示例性的,第一目标进程根据第一负载率调整占用内存的待执行的第一业务逻辑时,可以根据第一负载率的大小释放占用的内存,当第一负载率较小时,释放的内存值较大。
[0186]
示例性的,电子设备中可以包括预先存储的第一负载率和释放的内存值的大小的对应关系,或者包括预先存储的第一负载率和释放的内存值的比率的对应关系。这样,第一目标进程可以根据第一负载率确定对应关系,获取到该对应关系中确定的需要释放的内存值,进而调整待执行的第一业务逻辑。本技术仅以此为例进行说明,并不构成任何限定。
[0187]
这样,由于待执行的第一业务逻辑为占用内存的业务逻辑,因此,当第一负载级别大于或等于第一预设级别时,通过调整待执行的第一业务逻辑,可以实现释放可用内存值的目的,使得第二进程可以根据第一负载级别针对的调整业务逻辑,提升调整待执行的业务逻辑的有效性。
[0188]
另一种可能的实现中,当第一目标进程确定第一负载级别大于或等于第二预设级别时,第一目标进程根据第一负载率调整待执行的第一业务逻辑,调整后的第一业务逻辑占用的内存值小于调整前的第一业务逻辑占用的内存值,且调整前的第一业务逻辑占用的内存值与调整后的第一业务逻辑占用的内存值的差值大于第一预设值,第二预设级别大于
第一预设级别。
[0189]
示例性的,根据以上述实施例所述的负载级别,第二预设级别可以是告警l2对应的负载级别或者报警l3对应的负载级别,本技术实施例对此不做限定。
[0190]
在本技术实施例中,第二预设级别大于第一预设级别,当第一预设级别为预警l1对应的负载级别时,第二预设级别可以是告警l2对应的负载级别或者报警l3对应的负载级别。当第一预设级别为告警l2对应的负载级别时,第二预设级别可以是报警l3对应的负载级别。
[0191]
例如,第二预设级别为上述实施例所述告警l2对应的负载级别,当第一负载级别为告警l2对应的负载级别或者报警l3对应的负载级别时,第一目标进程可以确定第一负载级别大于或等于第二预设级别,第一目标进程可以根据第一负载率调整占用内存的待执行的第一业务逻辑。
[0192]
例如,第一预设值为40mb,第二预设级别为告警l2对应的负载级别,当第一目标进程检测到第一负载级别为告警l2对应的负载级别,且当前占用的内存值为100mb,则第一目标进程可以调整其业务逻辑,将占用的内存值由100mb调整为50mb。
[0193]
在本技术实施例中,第一负载级别大于或等于第二预设级别时释放的可用内存值,大于,第一负载级别大于或等于第二预设级别时释放的可用内存值。
[0194]
示例性的,第一目标进程根据第一负载率调整占用内存的待执行的第一业务逻辑时,可以根据第一负载率的大小释放占用的内存。由于第一负载率越小,表示可用内存值越小,因此,当第一负载率较小时,释放的内存值较大。
[0195]
示例性的,电子设备中可以包括预先存储的第一负载率和释放的内存值的大小的对应关系,或者包括预先存储的第一负载率和释放的内存值的比率的对应关系。这样,第一目标进程可以根据第一负载率确定对应关系,获取到该对应关系中确定的需要释放的内存值,进而调整待执行的第一业务逻辑。
[0196]
示例性的,第一目标进程根据第一负载率调整占用内存的待执行的第一业务逻辑时,第一目标进程可以调整待执行的第一业务逻辑,以释放能够释放的内存的最大值。
[0197]
需要说明的是,本技术仅以此为例进行说明,并不构成任何限定。
[0198]
这样,当第一负载级别大于或等于第二预设级别时,即第一负载级别的风险级别较高时,调整待执行的第一业务逻辑时,可以释放更多的可用内存值,使得第二进程可以根据第一负载级别针对的调整业务逻辑,提升调整待执行的业务逻辑的有效性。
[0199]
由此可见,本技术实施例提供的进程管理方法,第二进程可以根据与可用内存值相关的第一负载率调整待执行的业务逻辑,以减少占用的内存,释放内存。可以减少由于可用内存值较小而导致系统卡顿等情况的出现。
[0200]
图4为本技术实施例提供的一种第二进程调整业务逻辑并退出运行状态的方法的流程图。
[0201]
如图4所示,该方法可以包括:
[0202]
s401、第二进程中的第一目标进程获取第二负载率和第二负载率对应的第二负载级别。
[0203]
示例性的,第二进程可以在第一进程的广播中获取第二负载率和第二负载率对应的第二负载级别。
[0204]
s402、第一目标进程确定第二负载率对应的第二负载级别满足负载释放条件时,第一目标进程根据第二负载率调整待执行的第二业务逻辑,调整后的系统负载小于调整前的系统负载。
[0205]
示例性的,第二进程根据第二负载率调整待执行的第二业务逻辑可以包括下述两种可能的实现:
[0206]
一种可能的实现中,当第一目标进程确定第二负载级别大于或等于第三预设级别时,第一目标进程根据第二负载率调整待执行的第二业务逻辑,调整后的第二业务逻辑占用的系统负载小于调整前的第二业务逻辑占用的系统负载,且调整前的第二业务逻辑占用的系统负载与调整后的第二业务逻辑占用的系统负载的差值小于或等于第二预设值。
[0207]
第三预设级别和第一预设级别可以是相同的,也可以是不同的,本技术实施例对此不做限定。
[0208]
第二预设值可以为小于第一目标进程能够释放的系统负载的最大值的值,例如,第二预设值可以为最大值的二分一或者最大值的三分之一,本技术实施例对于第二预设值不做具体限定。
[0209]
示例性的,根据以上述实施例所述的负载级别,第三预设级别可以是预警l1对应的负载级别或者告警l2对应的负载级别,本技术实施例对此不做限定。
[0210]
例如,第三预设级别为上述实施例所述预警l1对应的负载级别,当第二负载级别为预警l1对应的负载级别或者告警l2对应的负载级别时,第一目标进程可以确定第二负载级别大于或等于第三预设级别,第二目标进程可以根据第二负载率调整占用内存的待执行的第二业务逻辑。
[0211]
示例性的,第一目标进程根据第二负载率调整占用内存的待执行的第二业务逻辑时,可以根据第二负载率的大小释放占用的内存,当第二负载率较大时,释放的内存值较大。
[0212]
示例性的,电子设备中可以包括预先存储的第二负载率和释放的系统负载的大小的对应关系,或者包括预先存储的第二负载率和释放的系统负载的比率的对应关系。这样,第一目标进程可以根据第二负载率确定对应关系,获取到该对应关系中确定的需要释放的系统负载,进而调整待执行的第二业务逻辑。
[0213]
示例性的,第一目标进程根据第二负载率调整占用系统负载的待执行的第二业务逻辑时,第一目标进程可以调整待执行的第二业务逻辑,以释放能够释放的系统负载的最大值。
[0214]
需要说明的是,本技术仅以此为例进行说明,并不构成任何限定。
[0215]
这样,由于待执行的第一业务逻辑为占用系统负载的业务逻辑,因此,当第二负载级别大于或等于第三预设级别时,通过调整待执行的第二业务逻辑,可以实现释放系统负载的目的,使得第二进程可以根据第二负载级别针对性的调整业务逻辑,提升调整待执行的业务逻辑的有效性。
[0216]
另一种可能的实现中,当第一目标进程确定第二负载级别大于或等于第四预设级别时,第一目标进程根据第二负载率调整待执行的第二业务逻辑,调整后的第二业务逻辑占用的系统负载小于调整前的第二业务逻辑占用的系统负载,且调整前的第二业务逻辑占用的系统负载与调整后的第二业务逻辑占用的系统负载的差值大于第二预设值,第四预设
级别大于第三预设级别。
[0217]
第四预设级别和第二预设级别可以是相同的,也可以是不同的,本技术实施例对此不做限定。例如,当第一负载级别和第二负载级别如上述表2-表4所示的负载级别时,第四预设级别和第二预设级别可以均为告警l2对应的负载级别,也可以分别为不同的负载级别。
[0218]
示例性的,根据以上述实施例所述的负载级别,第四预设级别可以是告警l2对应的负载级别或者报警l3对应的负载级别,本技术实施例对此不做限定。
[0219]
在本技术实施例中,第四预设级别大于第三预设级别,当第三预设级别为预警l1对应的负载级别时,第四预设级别可以是告警l2对应的负载级别或者报警l3对应的负载级别。当第三预设级别为告警l2对应的负载级别时,第四预设级别可以是报警l3对应的负载级别。
[0220]
例如,第四预设级别为上述实施例所述告警l2对应的负载级别,当第二负载级别为告警l2对应的负载级别或者报警l3对应的负载级别时,第一目标进程可以确定第二负载级别大于或等于第四预设级别,第一目标进程可以根据第二负载率调整占用系统负载的待执行的第二业务逻辑。
[0221]
示例性的,第一目标进程根据第二负载率调整占用内存的待执行的第二业务逻辑时,可以根据第二负载率的大小释放占用的内存,当第二负载率较大时,释放的内存值较大。
[0222]
示例性的,电子设备中可以包括预先存储的第二负载率和释放的系统负载的大小的对应关系,或者包括预先存储的第二负载率和释放的系统负载的比率的对应关系。这样,第一目标进程可以根据第二负载率确定对应关系,获取到该对应关系中确定的需要释放的系统负载,进而调整待执行的第二业务逻辑。本技术仅以此为例进行说明,并不构成任何限定。
[0223]
这样,当第二负载级别大于或等于第四预设级别时,即第二负载级别的风险级别较高时,调整待执行的第二业务逻辑时,可以释放更多的系统负载,使得第二进程可以根据第二负载级别针对的调整业务逻辑,提升调整待执行的业务逻辑的有效性。
[0224]
由此可见,本技术实施例提供的进程管理方法,第二进程可以根据与系统负载值相关的第二负载率调整待执行的业务逻辑,以降低系统负载,释放系统资源。可以减少由于系统负载较高而导致系统卡顿等情况的出现。
[0225]
在本技术实施例中,第二进程中还可以额包括允许退出运行状态的第二目标进程,当第二进程根据负载率和负载率对应的负载等级释放系统资源时,可能存在第二进程调整业务逻辑可能无法释放较多的系统资源的情况,第二进程中的第二目标进程可以自行退出运行状态,以释放更多的系统资源。
[0226]
本技术实施例中,当第二目标进程确定负载率对应的负载级别满足释放条件的情况时,第二目标进程退出运行状态。
[0227]
负载率对应的负载级别满足释放条件的情况可以包括负载级别为风险较高的级别的情况,例如,负载级别为上述实施例所述的报警l3对应的级别。
[0228]
这样,通过第二目标进程自行退出运行状态,而不是强制将第二目标进程退出,可以减少出现将不应该被清理的进程清理掉的情况。
[0229]
负载率对应的负载级别满足释放条件的情况可以包括多种情况,下面,对第二目标进程退出运行状态的几种可能的实现方式进行说明:
[0230]
一种可能的实现中,当第二目标进程确定第一负载级别大于或等于第二预设级别和/或第二负载级别大于或等于第四预设级别时,第二目标进程退出运行状态。
[0231]
示例性的,第二预设级别和第四预设级别均为风险较高的级别,第二预设级别和第四预设级别可参见上述实施例所述,在此不再赘述。
[0232]
这样,当可用内存或者系统负载处于较高的风险时,第二目标进程可以自行退出运行状态,能够释放更多的系统资源,减少出现系统卡顿等性能问题,提升用户体验。
[0233]
另一种可能的实现中,当第二目标进程确定第二负载级别大于或等于第二预设级别和/或第一负载级别大于或等于第二预设级别时,判断第一目标进程的数量是否小于或等于第三预设值;当第一目标进程的数量小于或等于第三预设值时,第二目标进程退出运行状态。
[0234]
第三预设值可以是表示进程数量的值,可以为2,或者3,也可以为其他数值,本技术实施例对此不做限定。
[0235]
车机系统中运行的进程是否允许调整业务逻辑可以是预先存储在车机系统中的,车机系统可以将当前运行的进程中允许调整业务逻辑的进程的数量发送给每一个进程;或者,第一进程可以获取到当前运行的进程中允许调整业务逻辑的进程的数量,并将该数量携带在广播中,与负载率和负载率对应的负载级别一起广播给第二进程。本技术实施例对于第二目标进程获取第一目标进程的数量的方法不做限定。
[0236]
例如,当第二目标进程确定第二负载级别大于或等于第二预设级别和/或第一负载级别大于或等于第二预设级别时,且第二目标进程确定第一目标进程的数量为0,或者1,第三预设值为5时,第二目标进程可以退出运行状态。
[0237]
这样,当可用内存值较小和系统负载值中的至少一个较高,且允许调整业务逻辑的第一目标进程较少时,第二目标进程自行退出运行状态,使得释放的系统资源更多,可以提升系统运行的流畅度,减少因系统资源占用较多而导致系统卡顿等性能问题。
[0238]
再一种可能的实现中,当第二目标进程确定第二负载级别大于或等于第二预设级别和/或第一负载级别大于或等于第二预设级别时,判断第一负载率是否大于或等于第四预设值,以及,第二负载率是否小于或等于第五预设值;
[0239]
当第一负载率大于或等于第四预设值,和/或,第二负载率小于或等于第五预设值时,第二目标进程退出运行状态。
[0240]
第四预设值和第五预设值可以相同也可以不相同,本技术实施例对此不做限定。
[0241]
这样,当可用内存值较小和系统负载值中的至少一个较高,且第一负载率较高和/或第二负载率较低时,第二目标进程自行退出运行状态,使得释放的系统资源更多,可以提升系统运行的流畅度,减少因系统资源占用较多而导致系统卡顿等性能问题。
[0242]
为了便于理解本技术实施例提供的进程管理方法,下面,将通过具体的实施例,对本技术实施例提供的技术方案进行详细的描述,具体的可参见图5所示,图5为本技术实施例提供的另一种进程管理方法的流程示意图。
[0243]
如图5所示,该进程管理方法可以包括:
[0244]
s501、开始。
[0245]
s502、系统开机运行。
[0246]
该系统可以为本技术实施例中的车机系统。
[0247]
s503、开启负载计算定时器。
[0248]
在本技术实施例中,当车机系统开机运行时,车机系统可以自行开启负载计算定时器,或者,车机车机系统开机运行一段时间后,自行开启负载计算定时器,或者,用户通过与车机系统连接的服务端开启负载计算定时器。本技术实施例对于开启负载计算定时器的方式不做限定。
[0249]
示例性的,服务端可参见上述图1所示的服务端,在此不再赘述。
[0250]
s504、判断是否到达定时器轮询时刻。
[0251]
定时器的轮询时间间隔可以为预先设定的时间间隔,例如,定时器的轮询时间间隔可以为30秒,或者1分钟,本技术实施例对定时器的轮询时间间隔不做限定。
[0252]
示例性的,定时器的轮询时间间隔可以是用户通过与车机系统连接的服务端设定的,也可以是其他方式设定的,本技术实施例不做限定。
[0253]
当到达定时器轮询时刻时,可以执行下述步骤s505,当未到达定时器轮询时刻时,可以执行下述步骤s509。
[0254]
s505、计算系统负载率。
[0255]
在本技术实施例中,当到达定时器轮询时刻时,车机系统中用于获取可用内存值和系统负载值的进程,可以获取可用内存值和系统负载值,用于获取可用内存值和系统负载值的进程可以是上述实施例所述的第一进程,也可以为上述图1所述的系统负载获取模块。
[0256]
示例性的,对于仅是android系统而没有qnx系统的hypervisor的情况。在android系统中,通过java的processbuilder类执行top命令可以获取系统的可用内存,例如mem free、mem buffers、以及cached。将mem free、mem buffers、以及cached对应的值相加,可以得到系统的可用内存值。
[0257]
例如,在时间节点t1的系统可用内存为s1,该s1仅可以包括top命令返回的数据中mem一栏中的free和buffers以及swap一栏中的cached,其中,free、buffers以及cached是top命令被执行后的固定输出,因此,系统负载获取模块在获取到top命令被执行后返回的数据后,可以对数据进行解析并获取到free、buffers和cache关键字的对应值。然后mem free、mem buffers、以及cached对应的值相加,得到在该时间节点t1的系统可用内存s1的值。
[0258]
示例性的,对于仅是android系统而没有qnx系统的hypervisor的情况。可以通过java的processbuilder类执行top命令获取系统的cpu负载,该值即为系统负载值。
[0259]
例如,在时间节点t1的系统cpu负载为s2,该s2包括执行top命令返回的数据中idle关键字对应的值,其中,关键字idle是top命令被执行后的固定输出。因此,系统负载获取模块在获取到top命令被执行后返回的数据后,可以对数据进行解析并获取到idle关键字的对应值,该值就是t1的系统cpu负载s2的值。
[0260]
示例性的,对于有qnx系统的hypervisor,且虚拟机系统为android系统的情况,系统负载可以为qnx系统的负载。
[0261]
例如,可以通过java编写的串口操作程序输入特定命令获得qnx的负载。qnx系统
整体负载可以为total一行中的used,通过该特定命令获取到的数据都是有固定格式的内容,因此,系统负载获取模块可以解析返回的数据,得到其中total一行所在的used列中的值,该值就是t1时刻的qnx的负载s3。
[0262]
需要说明的是,t1时刻为达到定时器的轮询时间间隔的时刻,本技术实施例对于t1时刻不做限定。
[0263]
在得到可用内存值和系统负载之后,可以计算负载率并划分负载级别。
[0264]
示例性的,针对获取到的值,例如,上述定义的s1、s2和s3的值,设定阈值,例如,与s1对应的阈值为t1,与s2对应的阈值为t2,与s3对应的阈值为t3,该阈值t1、t2、t3分别为10、1和1。根据系统任意一个值与阈值的百分比v,确定负载率,例如,通过v1=s1/t1,v2=s2/t2,v3=s3/t3,计算得到负载率。
[0265]
进一步的,可以根据负载率划分负载级别,负载率对应的负载级别可以包括无问题l0、预警l1、告警l2和报警l3。无问题l0、预警l1、告警l2和报警l3克参见上述实施例所述,在此不再赘述。
[0266]
划分的负载级别和负载级别的负载率取值范围可以参见上述表2、表3和表4所示,在此不再赘述。
[0267]
s506、发送系统负载级别的广播。
[0268]
示例性的,可以对负载率和负载率对应的负载级别进行广播,广播的内容可参见下述表5所示。
[0269]
表5
[0270][0271]
可以理解的是,负载率v1可以为上述实施例所述的第一负载率。负载率v2、负载率v3可以为上述实施例所述的第二负载率。
[0272]
s507、应用接收广播。
[0273]
示例性的,应用接收到广播之后,可以根据广播标识符确定是用户释放负载资源的广播,并获取广播中携带的负载率和负载率对应的负载级别。
[0274]
应用接收并获取负载率和负载率对应的负载级别的方法与上述实施例中第二进程接收并获取负载率和负载率对应的负载级别的方法类似,在此不再赘述。
[0275]
s508、应用负载管理。
[0276]
示例性的,应用负载管理可以包括应用进程根据负载率调整业务逻辑和/或根据负载率退出运行状态。应用负载管理可参见上述实施例关于调整业务逻辑,以及退出运行状态的描述,在此不再赘述。
[0277]
s509、结束。
[0278]
综上所述,本技术实施例提供的进程管理方法,可以通过定时自动计算系统指定的负载,并将该系统负载级别告知系统中当前运行的应用,由各个应用根据负载率和负载率对应的负载级别等信息,自行管理应用自身进程的系统负载,从而选择自动退出或者减少应用运行逻辑来降低系统负载。
[0279]
图6为本技术实施例提供的一种进程管理装置60的结构示意图,示例的,请参见图6所示,该进程管理装置60可以包括:
[0280]
获取模块601,用于获取车机系统的可用内存值和系统负载值;
[0281]
计算模块602,用于根据可用内存值和系统负载值,确定车机系统的负载率和负载率对应的负载级别;
[0282]
广播模块603,用于在确定负载级别满足负载释放条件的情况下,将负载率和负载率对应的负载级别广播至第二进程;
[0283]
调整模块604,用于根据负载率和负载率对应的负载级别释放系统资源。
[0284]
一种可能的实现中,第二进程中包括允许调整业务逻辑的第一目标进程,调整模块604,具体用于在第一目标进程确定负载率对应的负载级别满足负载释放条件的情况时,根据负载率调整待执行的业务逻辑,调整后的业务逻辑占用的系统资源小于调整前的业务逻辑占用的系统资源。
[0285]
一种可能的实现中,负载率包括第一负载率,第一负载率是根据可用内存值确定的,第一负载率对应的负载级别为第一负载级别;待执行的业务逻辑包括待执行的第一业务逻辑,待执行的第一业务逻辑为占用内存的业务逻辑。
[0286]
调整模块604,具体用于在第一目标进程确定第一负载级别大于或等于第一预设级别时,根据第一负载率调整待执行的第一业务逻辑,调整后的第一业务逻辑占用的内存值小于调整前的第一业务逻辑占用的内存值,且调整前的第一业务逻辑占用的内存值与调整后的第一业务逻辑占用的内存值的差值小于或等于第一预设值。
[0287]
一种可能的实现中,调整模块604,具体用于在第一目标进程确定第一负载级别大于或等于第二预设级别时,根据第一负载率调整待执行的第一业务逻辑,调整后的第一业务逻辑占用的内存值小于调整前的第一业务逻辑占用的内存值,且调整前的第一业务逻辑占用的内存值与调整后的第一业务逻辑占用的内存值的差值大于第一预设值,第二预设级别大于第一预设级别。
[0288]
一种可能的实现中,负载率还包括第二负载率,第二负载率是根据系统负载值确定的,第二负载率对应的负载级别为第二负载级别;待执行的业务逻辑还包括待执行的第二业务逻辑,待执行的第二业务逻辑为占用系统负载的业务逻辑。
[0289]
调整模块604,具体用于在第一目标进程确定第二负载级别大于或等于第三预设级别时,根据第二负载率调整待执行的第二业务逻辑,调整后的第二业务逻辑占用的系统负载小于调整前的第二业务逻辑占用的系统负载,且调整前的第二业务逻辑占用的系统负载与调整后的第二业务逻辑占用的系统负载的差值小于或等于第二预设值。
[0290]
一种可能的实现中,调整模块604,具体用于在第一目标进程确定第二负载级别大于或等于第四预设级别时,根据第二负载率调整待执行的第二业务逻辑,调整后的第二业务逻辑占用的系统负载小于调整前的第二业务逻辑占用的系统负载,且调整前的第二业务逻辑占用的系统负载与调整后的第二业务逻辑占用的系统负载的差值大于第二预设值,第
二预设级别大于第一预设级别。
[0291]
一种可能的实现中,第二进程中还包括允许退出运行状态的第二目标进程,调整模块604,具体用于在第二目标进程确定负载率对应的负载级别满足释放条件的情况时,第二目标进程退出运行状态。
[0292]
一种可能的实现中,负载率包括第一负载率和第二负载率,第一负载率是根据可用内存值确定的,第一负载率对应的负载级别为第一负载级别,第二负载率是根据系统负载值确定的,第二负载率对应的负载级别为第二负载级别。
[0293]
调整模块604,具体用于在第二目标进程确定第一负载级别大于或等于第二预设级别和/或第二负载级别大于或等于第四预设级别时,第二目标进程退出运行状态。
[0294]
一种可能的实现中,调整模块604,具体用于在确定第二负载级别大于或等于第二预设级别和/或第一负载级别大于或等于第二预设级别时,判断第一目标进程的数量是否小于或等于第三预设值;当第一目标进程的数量小于或等于第三预设值时,第二目标进程退出运行状态。
[0295]
一种可能的实现中,调整模块604,具体用于在确定第二负载级别大于或等于第二预设级别和/或第一负载级别大于或等于第二预设级别时,判断第一负载率是否大于或等于第四预设值,以及,第二负载率是否小于或等于第五预设值;当第一负载率大于或等于第四预设值,和/或,第二负载率小于或等于第五预设值时,第二目标进程退出运行状态。
[0296]
一种可能的实现中,车机系统中运行有虚拟机操作系统,可用内存值包括空闲内存mem free、内存缓冲mem buffers以及高速缓存cached;获取模块601,具体用于在第一数据中获取与mem free对应的值、mem buffers对应的值,和cached对应的值,第一数据为执行第一命令返回的数据;在第二数据中获取系统负载对应的系统负载值,第二数据为执行第二命令返回的数据。
[0297]
一种可能的实现中,车机系统中未运行有虚拟机操作系统,可用内存值包括空闲内存mem free、内存缓冲mem buffers以及高速缓存cached;获取模块601,具体用于在第三数据中获取与mem free对应的值、mem buffers对应的值,和cached对应的值,第三数据为执行第三命令返回的数据;在第四数据中获取系统负载对应的系统负载值,第四数据为执行第四命令返回的数据。
[0298]
一种可能的实现中,计算模块602,具体用于计算mem free、mem buffers和cached的加和,将加和与内存总量的比值确定为第一负载率;根据第一负载率所处的第一取值范围,确定第一负载率对应的负载等级为第一取值范围对应的第一负载等级;将系统负载值与系统能够允许的负载最大值的比值,确定为第二负载率;根据第二负载率所处的第二取值范围,确定第二负载率对应的负载等级为第二取值范围对应的第二负载等级。
[0299]
本技术实施例提供的进程管理装置,可以执行上述任一实施例中的进程管理方法的技术方案,其实现原理以及有益效果与进程管理方法的实现原理及有益效果类似,可参见进程管理方法的实现原理及有益效果,此处不再进行赘述。
[0300]
图7为本技术提供的一种电子设备结构示意图。如图7所示,该电子设备700可以包括:至少一个处理器701和存储器702。
[0301]
存储器702,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
[0302]
存储器702可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0303]
处理器701用于执行存储器702存储的计算机执行指令,以实现前述方法实施例所描述的进程管理方法。其中,处理器701可能是一个中央处理器(central processing unit,简称为cpu),或者是特定集成电路(application specific integrated circuit,简称为asic),或者是被配置成实施本技术实施例的一个或多个集成电路。具体的,在实现前述方法实施例所描述的进程管理方法时,该电子设备例如可以是终端、服务器等具有处理功能的电子设备。在实现前述方法实施例所描述的进程管理方法时,该电子设备例如可以是车辆上的电子控制单元。
[0304]
可选的,该电子设备700还可以包括通信接口703。在具体实现上,如果通信接口703、存储器702和处理器701独立实现,则通信接口703、存储器702和处理器701可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(industry standard architecture,简称为isa)总线、外部设备互连(peripheral component,简称为pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称为eisa)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
[0305]
可选的,在具体实现上,如果通信接口703、存储器702和处理器701集成在一块芯片上实现,则通信接口703、存储器702和处理器701可以通过内部接口完成通信。
[0306]
本技术还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。
[0307]
本技术还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得电子设备实施上述的各种实施方式提供的进程管理方法。
[0308]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
技术特征:
1.一种进程管理方法,其特征在于,应用于车机系统,所述车机系统中运行有第一进程和第二进程,所述第一进程用于管理所述第二进程,所述第二进程为除所述第一进程之外的其他进程,所述进程管理方法包括:所述第一进程获取车机系统的可用内存值和系统负载值;所述第一进程根据所述可用内存值和所述系统负载值,确定所述车机系统的负载率和所述负载率对应的负载级别;所述第一进程在确定所述负载级别满足负载释放条件的情况下,将所述负载率和所述负载率对应的负载级别广播至所述第二进程;所述第二进程根据所述负载率和所述负载率对应的负载级别释放系统资源。2.根据权利要求1所述的进程管理方法,其特征在于,所述第二进程中包括允许调整业务逻辑的第一目标进程,所述第二进程根据所述负载率和所述负载率对应的负载级别释放系统资源,包括:当所述第一目标进程确定所述负载率对应的负载级别满足负载释放条件的情况时,所述第一目标进程根据所述负载率调整待执行的业务逻辑,调整后的业务逻辑占用的系统资源小于调整前的业务逻辑占用的系统资源。3.根据权利要求2所述的进程管理方法,其特征在于,所述负载率包括第一负载率,所述第一负载率是根据所述可用内存值确定的,所述第一负载率对应的负载级别为第一负载级别;所述待执行的业务逻辑包括待执行的第一业务逻辑,所述待执行的第一业务逻辑为占用内存的业务逻辑;所述当所述第一目标进程确定所述负载率对应的负载级别满足负载释放条件的情况时,所述第一目标进程根据所述负载率调整待执行的业务逻辑,包括:当所述第一目标进程确定所述第一负载级别大于或等于第一预设级别时,所述第一目标进程根据所述第一负载率调整所述待执行的第一业务逻辑,调整后的第一业务逻辑占用的内存值小于调整前的第一业务逻辑占用的内存值,且调整前的第一业务逻辑占用的内存值与调整后的第一业务逻辑占用的内存值的差值小于或等于第一预设值。4.根据权利要求2所述的进程管理方法,其特征在于,所述负载率包括第一负载率,所述第一负载率是根据所述可用内存值确定的,所述第一负载率对应的负载级别为第一负载级别;所述待执行的业务逻辑包括待执行的第一业务逻辑,所述待执行的第一业务逻辑为占用内存的业务逻辑;所述当所述第一目标进程确定所述负载率对应的负载级别满足负载释放条件的情况时,所述第一目标进程根据所述负载率调整待执行的业务逻辑,包括:当所述第一目标进程确定所述第一负载级别大于或等于第二预设级别时,所述第一目标进程根据所述第一负载率调整所述待执行的第一业务逻辑,调整后的第一业务逻辑占用的内存值小于调整前的第一业务逻辑占用的内存值,且调整前的第一业务逻辑占用的内存值与调整后的第一业务逻辑占用的内存值的差值大于第一预设值,所述第二预设级别大于第一预设级别。5.根据权利要求2-4任一项所述的进程管理方法,其特征在于,所述负载率还包括第二
负载率,所述第二负载率是根据所述系统负载值确定的,所述第二负载率对应的负载级别为第二负载级别;所述待执行的业务逻辑还包括待执行的第二业务逻辑,所述待执行的第二业务逻辑为占用系统负载的业务逻辑;所述当所述第一目标进程确定所述负载率对应的负载级别满足负载释放条件的情况时,所述第一目标进程根据所述负载率调整待执行的业务逻辑,包括:当所述第一目标进程确定所述第二负载级别大于或等于第三预设级别时,所述第一目标进程根据所述第二负载率调整所述待执行的第二业务逻辑,调整后的第二业务逻辑占用的系统负载小于调整前的第二业务逻辑占用的系统负载,且调整前的第二业务逻辑占用的系统负载与调整后的第二业务逻辑占用的系统负载的差值小于或等于第二预设值。6.根据权利要求2-4任一项所述的进程管理方法,其特征在于,所述负载率还包括第二负载率,所述第二负载率是根据所述系统负载值确定的,所述第二负载率对应的负载级别为第二负载级别;所述待执行的业务逻辑还包括待执行的第二业务逻辑,所述待执行的第二业务逻辑为占用系统负载的业务逻辑;所述当所述第一目标进程确定所述负载率对应的负载级别满足负载释放条件的情况时,所述第一目标进程根据所述负载率调整待执行的业务逻辑,包括:当所述第一目标进程确定所述第二负载级别大于或等于第四预设级别时,所述第一目标进程根据所述第二负载率调整所述待执行的第二业务逻辑,调整后的第二业务逻辑占用的系统负载小于调整前的第二业务逻辑占用的系统负载,且调整前的第二业务逻辑占用的系统负载与调整后的第二业务逻辑占用的系统负载的差值大于第二预设值,所述第四预设级别大于第三预设级别。7.根据权利要求1或2所述的进程管理方法,其特征在于,所述第二进程中还包括允许退出运行状态的第二目标进程,所述第二进程根据所述负载率和所述负载率对应的负载级别释放系统资源,还包括:当所述第二目标进程确定所述负载率对应的负载级别满足释放条件的情况时,所述第二目标进程退出运行状态。8.根据权利要求7所述的方法,其特征在于,所述负载率包括第一负载率和第二负载率,所述第一负载率是根据所述可用内存值确定的,所述第一负载率对应的负载级别为第一负载级别,所述第二负载率是根据所述系统负载值确定的,所述第二负载率对应的负载级别为第二负载级别;所述当所述第二目标进程确定所述负载率对应的负载级别满足释放条件的情况时,所述第二目标进程退出运行状态,包括:当所述第二目标进程确定所述第一负载级别大于或等于第二预设级别和/或所述第二负载级别大于或等于第四预设级别时,所述第二目标进程退出运行状态。9.根据权利要求8所述的方法,其特征在于,所述当所述第二目标进程确定所述第二负载级别大于或等于第二预设级别和/或所述第一负载级别大于或等于第二预设级别时,所述第二目标进程退出运行状态,包括:当所述第二目标进程确定所述第二负载级别大于或等于第二预设级别和/或所述第一
负载级别大于或等于第二预设级别时,判断第一目标进程的数量是否小于或等于第三预设值;当所述第一目标进程的数量小于或等于所述第三预设值时,所述第二目标进程退出运行状态。10.根据权利要求8所述的方法,其特征在于,所述当所述第二目标进程确定所述第二负载级别大于或等于第二预设级别和/或所述第一负载级别大于或等于第二预设级别时,所述第二目标进程退出运行状态,包括:当所述第二目标进程确定所述第二负载级别大于或等于第二预设级别和/或所述第一负载级别大于或等于第二预设级别时,判断所述第一负载率是否大于或等于第四预设值,以及,所述第二负载率是否小于或等于第五预设值;当所述第一负载率大于或等于所述第四预设值,和/或,所述第二负载率小于或等于所述第五预设值时,所述第二目标进程退出运行状态。11.根据权利要求1所述的方法,其特征在于,所述车机系统中运行有虚拟机操作系统,所述可用内存值包括空闲内存mem free、内存缓冲mem buffers以及高速缓存cached;所述第一进程获取车机系统的可用内存值和系统负载值,包括:所述第一进程在第一数据中获取与所述mem free对应的值、所述mem buffers对应的值,和所述cached对应的值,所述第一数据为执行第一命令返回的数据;所述第一进程在第二数据中获取系统负载对应的所述系统负载值,所述第二数据为执行第二命令返回的数据。12.根据权利要求1所述的方法,其特征在于,所述车机系统中未运行有虚拟机操作系统,所述可用内存值包括空闲内存mem free、内存缓冲mem buffers以及高速缓存cached;所述第一进程获取车机系统的可用内存值和系统负载值,包括:所述第一进程在第三数据中获取与所述mem free对应的值、所述mem buffers对应的值,和所述cached对应的值,所述第三数据为执行第三命令返回的数据;所述第一进程在第四数据中获取系统负载对应的所述系统负载值,所述第四数据为执行第四命令返回的数据。13.根据权利要求11或12所述的方法,其特征在于,所述第一进程根据所述可用内存值和所述系统负载值,确定所述车机系统的负载率和所述负载率对应的负载级别,包括:所述第一进程计算所述mem free、所述mem buffers和所述cached的加和,将所述加和与内存总量的比值确定为第一负载率;所述第一进程根据所述第一负载率所处的第一取值范围,确定所述第一负载率对应的负载等级为所述第一取值范围对应的第一负载等级;所述第一进程将所述系统负载值与系统允许的负载最大值的比值,确定为第二负载率;所述第一进程根据所述第二负载率所处的第二取值范围,确定所述第二负载率对应的负载等级为所述第二取值范围对应的第二负载等级。14.一种进程管理装置,其特征在于,包括:获取模块,用于获取车机系统的可用内存值和系统负载值;计算模块,用于根据所述可用内存值和所述系统负载值,确定所述车机系统的负载率
和所述负载率对应的负载级别;广播模块,用于在确定所述负载级别满足负载释放条件的情况下,将所述负载率和所述负载率对应的负载级别广播至第二进程;调整模块,用于根据所述负载率和所述负载率对应的负载级别释放系统资源。15.一种电子设备,其特征在于,包括存储器和处理器;其中,所述存储器,用于存储计算机程序;所述处理器,用于读取所述存储器存储的计算机程序,并根据所述存储器中的计算机程序执行上述权利要求1-13任一项所述的一种进程管理方法。16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述权利要求1-13任一项所述的一种进程管理方法。17.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时,实现上述权利要求1-13任一项所述的一种进程管理方法。
技术总结
本申请实施例提供了进程管理方法、装置、电子设备和存储介质,应用于车机系统,车机系统中运行有第一进程和第二进程,第一进程用于管理第二进程,第二进程为除第一进程之外的其他进程,进程管理方法包括:第一进程获取车机系统的可用内存值和系统负载值;第一进程根据可用内存值和系统负载值,确定车机系统的负载率和负载率对应的负载级别;第一进程在确定负载级别满足负载释放条件的情况下,将负载率和负载率对应的负载级别广播至第二进程;第二进程根据负载率和负载率对应的负载级别释放系统资源。这样,可以减少出现将不应该清理的进程清理掉的情况,提升用户体验。提升用户体验。提升用户体验。
技术研发人员:彭琳
受保护的技术使用者:亿咖通(湖北)技术有限公司
技术研发日:2023.07.13
技术公布日:2023/10/7
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
