掌桥专利:专业的专利平台
掌桥专利
首页

一种通信控制方法、装置、存储介质及电子设备

文献发布时间:2023-06-19 19:30:30


一种通信控制方法、装置、存储介质及电子设备

技术领域

本发明涉及通信控制领域,特别是涉及一种通信控制方法、装置、存储介质及电子设备。

背景技术

现有的基于POSIX(Portable Operating System Interface,一种目标系统标准)接口标准的多核目标系统的通信,通常是采用多子系统的设计方案。其中,各个子系统运行在不同功能的处理器上,目标系统再根据各个子系统的通信传输数据的重要程度和数据长度等信息,来设定各个子系统在通信过程中的一个固定的重发次数阈值和等待时长。并在收发数据的过程中采用阻塞的方式来进行等待。

但是在目标系统运行的过程中,随着其负载的增加,以及运行场景变化,核间的通信会受到系统内很多因素的影响。进而使得进行通信的各子系统能够完成数据收发的耗时会出现较大波动。由于,在现有的IPC通信过程中所设置的固定的重发次数阈值和等待时长并未考虑上述情况,使得所设置的固定的重发次数阈值和等待时长与目标系统的运行负载之间的适应性较低。所以,在目标系统处于高负载的情况下时,会更加容易使得目标系统出现等待超时和重发超次数的情况,进而更加容易造成系统通信失败的问题。

发明内容

针对上述技术问题,本发明提供一种通信控制方法、装置、存储介质及电子设备,至少部分解决现有技术中存在的在目标系统处于高负载的情况下时,更加容易造成系统通信失败的问题。

根据本发明的第一个方面,提供了一种通信控制方法,方法包括如下步骤:

获取目标系统在历史运行周期中的负载信息和控制参数。负载信息用于表示在历史运行周期中目标系统的资源使用情况。目标系统连接有多个子系统。

根据历史运行周期对应的负载信息和控制参数,确定初始模型中的待确定参数,得到目标模型。

将当前运行周期中的负载信息输入目标模型,以得到目标系统在当前运行周期中的目标控制参数。当前运行周期为与历史运行周期在时间上相邻的下一个运行周期。

根据目标控制参数,在当前运行周期中控制每一子系统的运行。

根据本发明的第二个方面,提供了一种通信控制装置,包括:

获取模块,用于获取目标系统在历史运行周期中的负载信息和控制参数。负载信息用于表示在历史运行周期中目标系统的资源使用情况。目标系统连接有多个子系统。

模型生成模块,用于根据历史运行周期对应的负载信息和控制参数,确定初始模型中的待确定参数,得到目标模型。

输入模块,用于将当前运行周期中的负载信息输入目标模型,以得到目标系统在当前运行周期中的目标控制参数。当前运行周期为与历史运行周期在时间上相邻的下一个运行周期。

控制模块,用于根据目标控制参数,在当前运行周期中控制每一子系统的运行。

根据本发明的第三个方面,提供了一种非瞬时性计算机可读存储介质,非瞬时性计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述的一种通信控制方法。

根据本发明的第三个方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的一种通信控制方法。

本发明至少具有以下有益效果:

本申请中通过使用历史运行周期中采集的负载信息和对应的控制参数,可以确定出初始模型中的待确定参数,以得到目标模型。然后再将当前运行周期中的负载信息输入目标模型,来确定出当前运行周中对应的目标控制参数,以控制每一子系统的运行。历史运行周期中的负载信息和对应的控制参数,负载信息可以大致反映出目标系统在对应的负载情况下对应的实际运行情况,对应的控制参数可以反映出在对应的负载情况下的实际的控制参数。由此,通过历史运行周期中的负载信息和对应的控制参数确定出来的目标模型,也可以根据对应的负载信息来大体预测到对应的控制参数。所以,通过目标模型及当前运行周期中的负载信息可以得到当前运行周期中对应的目标控制参数,以控制每一子系统的运行。由于,本发明中得到的目标控制参数为根据目标系统的实际运行中的负载情况动态确定,并非为一个固定的值,所以,可以提高目标控制参数与目标系统的运行负载之间的适应性。进而减少目标系统出现等待超时和重发超次数的情况,终而降低系统出现通信失败的情况。

同时,由于目标系统的运行负载基本为一个连续变化的过程,所以历史运行周期中目标系统的负载情况,与当前运行周期中的目标系统的负载情况基本可以保持相同。同时还可以通过调节运行周期的时长,来尽量保证两个相邻的运行周期之间的目标系统的负载情况基本可以保持相同。由此,可以提高目标模型的预测精度,进而提高得到的目标控制参数的精度。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种通信控制方法的流程图。

图2为本发明实施例提供的一种通信控制装置的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

作为本发明的第一个方面,如图1所示,提供了一种通信控制方法,该方法包括如下步骤:

步骤S100:获取目标系统在历史运行周期中的负载信息和控制参数。负载信息用于表示在历史运行周期中目标系统的资源使用情况。目标系统连接有多个子系统。

本实施例中在第一次对运行周期中的数据进行采集时,控制参数使用的目标系统初始默认设置的值,在后续的采集过程中使用对应的目标模型计算出来的值。也即为使用当前运行周期对应的目标模型根据每一负载信息计算出来的控制参数。

本实施例中历史运行周期及当前运行周期是两个相对概念。具体为,在多个运行周期中,当前运行周期即为当前时间所在的运行周期,而历史运行周期则是与当前运行周期相邻的上一个运行周期。运行周期可以为5-10S。

并且在每个运行周期中可以设置多个采集时间,并在每一个采集时间处采集对应的负载信息和控制参数。控制参数可以为实际的IPC通信过程中等待超时时间及循环查询IPC通信数据的时间间隔。也即,等待时长及间隔时长。

当运行周期为历史运行周期时,采用负载信息和控制参数来训练初始模型。当运行周期为当前运行周期时,将采集到的负载信息输入目标模型,来得到预测的对应的目标控制参数。

从系统层面来看,IPC(Inter Processor Communication,子系统间通信)是目标系统的一个核心服务,负责转发和响应各个子系统之间的通信需求。所以在系统设计中,通常也会将IPC服务和相关进程设置为较高级别。但是在此情况下,IPC服务的响应速度和处理效率依然还是会受到系统负载的影响。由此,通过采集目标系统在历史运行周期中的负载信息和控制参数,作为训练样本来对初始模型进行训练,具有更高的可靠性及准确性。

本实施例中的目标系统可以为车载系统,其中分为多个子系统,每个子系统用于分管不同的类型的业务。

步骤S200:根据历史运行周期对应的负载信息和控制参数,确定初始模型中的待确定参数,得到目标模型。

步骤S300:将当前运行周期中的负载信息输入目标模型,以得到目标系统在当前运行周期中的目标控制参数。当前运行周期为与历史运行周期在时间上相邻的下一个运行周期。

在当前运行周期中可以设置多个采集时间,并在每一采集时间处获取对应的负载信息,并将负载信息输入至目标模型后,可以得到对应的目标控制参数。通过在当前运行周期中设置多个采集时间,由此可以使当前运行周期在时间上的划分颗粒度更小,进而在一个较长的运行周期中获得更多的目标控制参数,以提高获得的目标控制参数与当前目标系统的负载情况的贴合性,进而进一步提高精度。

通常根据目标模型得到目标控制参数与负载信息成正相关。也即,在目标系统具有更高的负载时,等待时长及间隔时长均会增大。由于在目标系统处于高负载的情况下,系统的资源占用较高,对应的系统的响应时间自然会增加,由此在此情况下需要适应性的增大等待时长,来保证目标系统的正常运行。同时,由于增大间隔时长可以减少IPC通信模块发送请求的次数,进而可以避免在目标系统处于高负载的情况下进一步加剧目标系统的负载。由此,可以提高目标控制参数与目标系统的运行负载之间的适应性。进而减少目标系统出现等待超时和重发超次数的情况,终而降低系统出现通信失败的情况。

并且,现有技术中设置固定的等待时长会导致任务长时间阻塞,进而会影响到操作系统的性能,危害多核操作系统的稳定性和性能。本发明中可以提高等待时长与目标系统的运行负载之间的适应性,也即等待时长为动态变化的,由此,可以提高目标系统的的稳定性和性能。

步骤S400:根据目标控制参数,在当前运行周期中控制每一子系统的运行。

目标控制参数可以为等待时长及间隔时长。IPC通信模块可以根据获得的每一目标控制参数来控制各子系统在通信过程中的重试次数和等待超时的时间长度。

本实施例中历史运行周期中的负载信息和对应的控制参数,负载信息可以大致反映出目标系统在对应的负载情况下对应的实际运行情况,对应的控制参数可以反映出在对应的负载情况下的实际的控制参数。由此,通过历史运行周期中的负载信息和对应的控制参数确定出来的目标模型,也可以根据对应的负载信息来大体预测到对应的控制参数。所以,通过目标模型及当前运行周期中的负载信息可以得到当前运行周期中对应的目标控制参数,以控制每一子系统的运行。由于,本发明中得到的目标控制参数为根据目标系统的实际运行中的负载情况动态确定,并非为一个固定的值,所以,可以提高目标控制参数与目标系统的运行负载之间的适应性。进而减少目标系统出现等待超时和重发超次数的情况,终而降低系统出现通信失败的情况。

同时,由于目标系统的运行负载基本为一个连续变化的过程,所以历史运行周期中目标系统的负载情况,与当前运行周期中的目标系统的负载情况基本可以保持相同。同时还可以通过调节运行周期的时长,来尽量保证两个相邻的运行周期之间的目标系统的负载情况基本可以保持相同。由此,可以提高目标模型的预测精度,进而提高得到的目标控制参数的精度。

另外,本发明仅是通过对已有的数据进行二次处理后,来得到更加准确且符合目标系统运行情况的控制参数。由此,本方法并不会对已有的IPC协议框架进行改动,进而可以兼容原有的IPC通信系统框架,使得集成更加简单。

对应的,在实际使用中可以通过在应用层和驱动层部署独立的数据采集模块和IPC通信控制模块,来实现上述方法,由此即可提高IPC通信效率,解决IPC通信超时异常导致的效率和错误问题。本实施例在已有的标准方案基础上,将在高负载情况下的IPC通信处理效率提高了3倍,解决了设备在高负载情况下因为IPC通信导致的系统间通信错误问题。

作为本发明一种可能的实施例,负载信息包括CPU(central processing unit,中央处理器)负载信息。在目标系统负载较高的情况下,IPC服务的响应速度和处理效率与系统中CPU的使用情况呈现正向相关性。因此在本实施例中将CPU负载信息选入负载信息。对应的,经过CPU负载信息训练出来的目标模型,可以根据系统中CPU的使用情况,来动态确定对应的目标控制参数,由此可以提高目标控制参数与目标系统的运行负载之间的适应性。

进一步的,步骤S100:获取目标系统在历史运行周期中的负载信息,包括:

步骤S110:获取目标系统在采集时间中的每一CPU的核心占用率。采集时间属于历史运行周期。

具体的采集时间可以为等间隔设置。如一个历史运行周期为10秒。可以每2S确定一个采集时间。从系统文件/proc/loadavg中可以读取到CPU负载信息和IO负载信息。

步骤S111:根据每一CPU的核心占用率,确定目标系统在历史运行周期中的CPU负载信息。CPU负载信息与每一CPU的核心占用率正相关。

具体的,每一采集时间对应的CPU负载信息均满足如下条件:

其中,CPU负载信息为

根据本实施例中的上述公式1,可以计算出每一采集时间处对应的CPU负载信息及对应的控制参数。将采集得到多组CPU负载信息及对应的控制参数,输入初始模型中即可得到一个目标模型。

本实施例中的初始模型可以为

其中,t

由此,根据多组CPU负载信息及对应的控制参数,即可求解出对应的待确定参数α

本实施例中,经过CPU负载信息训练出来的目标模型,可以根据系统中CPU的使用情况,来动态确定对应的目标控制参数,由此可以提高目标控制参数与目标系统的运行负载之间的适应性。

作为本发明一种可能的实施例,负载信息包括内存负载信息。在目标系统负载较高的情况下,IPC服务的响应速度和处理效率与系统中内存的使用情况同样呈现正向相关性。因此在本实施例中将内存负载信息选入负载信息。对应的,经过内存负载信息训练出来的目标模型,可以根据系统中内存的使用情况,来动态确定对应的目标控制参数,由此可以提高目标控制参数与目标系统的运行负载之间的适应性。

进一步的,步骤S100:获取目标系统在历史运行周期中的负载信息,包括:

步骤S120:获取目标系统在采集时间中的内存占用率。采集时间属于历史运行周期。

具体的,采集时间的确定方式与上述实施例中的采集方式相同,在此不再赘述。另外,可以从系统文件/proc/meminfo中获取内存信息。

步骤S121:根据采集时间对应的内存占用率,确定目标系统在历史运行周期中的内存负载信息。内存负载信息与内存占用率正相关。

具体的,每一采集时间对应的内存负载信息均满足如下条件:

L

其中,L

对应的,根据采集到的多组内存负载信息及对应的控制参数,可以将初始模型t

本实施例中,经过内存负载信息训练出来的目标模型,可以根据系统中内存的使用情况,来动态确定对应的目标控制参数,由此可以提高目标控制参数与目标系统的运行负载之间的适应性。

作为本发明一种可能的实施例,负载信息包括系统中断信息。

由于在实际的系统运行中,IPC服务的运行还与目标系统中的中断信息的多少相关。由此本实施例中将系统中断信息确定为负载信息。由此可以将系统中断信息这一因素纳入到本专利的目标模型中。对应的,经过系统中断信息训练出来的目标模型,可以根据系统中系统中断信息多少的情况,来动态确定对应的目标控制参数,由此可以提高目标控制参数与目标系统的运行负载之间的适应性。

进一步的,步骤S100:获取目标系统在历史运行周期中的负载信息,包括:

步骤S130:确定历史运行周期的采集时段。

具体的,上述实施例中已确定出多个采集时间,本实施例中的每一采集时间对应一个采集时段。具体的,采集时段可以为任一两个相邻的采集时间之间的间隔时段。第一个采集时间对应的采集时段可以为该采集时间与历史运行周期起点时间之间的间隔。

示例如下:历史运行周期对应的时间段为00:00:00-00:00:10;其中有两个采集时间分别为00:00:05及00:00:10。则采集时间00:00:05对应的采集时段可以为00:00:00-00:00:05;则采集时间00:00:10对应的采集时段可以为00:00:05-00:00:10。

步骤S131:获取目标系统在采集时段中每一CPU的中断增量及权重值。

从系统文件/proc/interrupts中获取可以获取到目标系统中各个CPU的终端信息,由此,可以计算采集时段中的中断负载情况。

步骤S132:根据每一CPU的中断增量和权重值,确定目标系统在历史运行周期中的系统中断信息。系统中断信息与每一CPU的中断增量和权重的积值正相关。

具体的,每一采集时间对应的系统中断信息均满足如下条件:

其中,

对应的,根据采集到的多组系统中断信息及对应的控制参数,可以将初始模型

本实施例中,经过系统中断信息训练出来的目标模型,可以根据系统中在最近的历史时段中的系统中断信息的情况,来动态确定对应的目标控制参数,由此可以提高目标控制参数与目标系统的运行负载之间的适应性。

作为本发明一种可能的实施例,负载信息包括IPC历史响应速度信息。

由于在实际的系统运行中,IPC服务的运行还与各子系统的响应速度、消息处理量相关。由此本实施例中将IPC历史响应速度信息确定为负载信息。由此可以将各子系统响应速度发生变化、消息负载变化等因素纳入到本专利的目标模型中。对应的,经过IPC历史响应速度信息训练出来的目标模型,可以根据系统中IPC历史响应速度信息的情况,来动态确定对应的目标控制参数,由此可以提高目标控制参数与目标系统的运行负载之间的适应性。

进一步的,步骤S100:获取目标系统在历史运行周期中的负载信息,包括:

步骤S140:确定历史运行周期的采集时段。

具体的,上述实施例中已确定出多个采集时间,本实施例中的每一采集时间对应一个采集时段。具体的,采集时段可以为任一两个相邻的采集时间之间的间隔时段。第一个采集时间对应的采集时段可以为该采集时间与历史运行周期起点时间之间的间隔。

示例如下:历史运行周期对应的时间段为00:00:00-00:00:10;其中有两个采集时间分别为00:00:05及00:00:10。则采集时间00:00:05对应的采集时段可以为00:00:00-00:00:05;则采集时间00:00:10对应的采集时段可以为00:00:05-00:00:10。

步骤S141:获取目标系统在采集时段中的目标IPC通信指令。

对应的,为了能够提高获取的数据与当前的系统运行状态的一致性,通常可以将采集时段中最靠近采集时间的多个IPC通信指令作为目标IPC通信指令。

步骤S142:获取目标IPC通信指令的命令总数。

步骤S143:获取每一目标IPC通信指令的响应时长。

具体的,通过IPC系统接口log_count可以获取每次IPC的TX(Transmit,传送数据)或者RX(Receive,接收数据)的响应时间。

步骤S144:根据命令总数及每一响应时长,确定目标系统在历史运行周期中的IPC历史响应速度信息。其中,IPC历史响应速度信息与每一目标IPC通信指令的响应时长正相关,IPC历史响应速度信息与命令总数负相关。

具体的,每一采集时间对应的IPC历史响应速度信息均满足如下条件:

其中,Vipc

具体的可以根据下述方法确定MaxN:

当在采集时段中的IPC通信指令大于第一阈值时,可以将命令总数确定为第一阈值。也即为选取距离采集时间最近的10条IPC通信指令为目标IPC通信指令。

当在采集时段中的IPC通信指令小于或等于第一阈值时,可以将IPC通信指令的总数量确定为命令总数。第一阈值可以为10。

具体的,在实际的使用过程中,只有在目标系统开机的时候,log_count缓存里面的IPC通信指令的数量可能小于10个,运行一段时间后log_count缓存里面的IPC通信指令的数量会大于10个。并且,通常同一类型的IPC通信指令产生10个数据,需要的时间是在10s到1分钟。由此,本实施例中设置的目标IPC通信指令选取的方式,可以保证获取到的数据为目标系统在最近10s或者1min内的数据,进而可以提高数据的实时性,进而提高最终目标模型的预测的精度。

对应的,根据采集到的多组IPC历史响应速度信息及对应的控制参数,可以将初始模型t

本实施例中,经过IPC历史响应速度信息训练出来的目标模型,可以根据最近的历史时间段中的IPC历史响应速度信息的情况,来动态确定对应的目标控制参数,由此可以提高目标控制参数与目标系统的运行负载之间的适应性。

作为本发明一种可能的实施例,负载信息可以包括CPU负载信息、内存负载信息、系统中断信息及IPC历史响应速度信息中任一几个。优选的,负载信息可以包括CPU负载信息、内存负载信息、系统中断信息及IPC历史响应速度信息。在该情况下,随着影响因素的增加,可以获得更多的输入变量,进而使得最终得到的目标模型具有更高的精度。

具体的,本实施例中可以根据公式1至公式5,可以获得每一采集时间对应的负载信息,同时还可以得到对应的控制参数。由此,可以得到多组训练数据。

本实施例中,初始模型可以为:

由此,根据多组训练数据来确定出初始模型的的待确定参数{α

作为本发明一种可能的实施例,目标模型为线性模型。具体的,线性模型可以为公式7及公式8所示的形式。一方面,由于,在目标系统的实际运行中,本实施例中所选定的各个负载信息与目标控制参数之间就存在一种线性的变化关系,由此选用线性模型更加符合本使用场景,可以提高最终的模型预测精度。同时,线性模型在进行拟合计算时,算法更加简单,计算量也相对较小,由此可以大幅减小对系统资源的消耗。由此,即使是在目标系统处于较高负载的情况下,本实施例中对于目标模型的确定过程也不会耗费太多的系统计算资源,进而避免进一步加重系统的运行负担。

作为本发明一种可能的实施例,目标控制参数包括:等待时长及间隔时长。步骤S400:根据目标控制参数,在当前运行周期中控制每一子系统的运行,包括:

步骤S401:根据等待时长及间隔时长,确定重发次数阈值。具体的,重发次数阈值可以为等待时长及间隔时长的商。

步骤S402:根据等待时长及重发次数阈值,在当前运行周期中控制每一子系统的运行。

本实施例中,通过根据目标系统的负载情况,来动态调整现有的IPC通信模块中的等待时长及重发次数阈值的设定。由此,可以提高目标控制参数与目标系统的运行负载之间的适应性。进而减少目标系统出现等待超时和重发超次数的情况,终而降低系统出现通信失败的情况。

作为本发明的第二个方面,如图2所示,还提供了一种通信控制装置,包括:

获取模块,用于获取目标系统在历史运行周期中的负载信息和控制参数。负载信息用于表示在历史运行周期中目标系统的资源使用情况。目标系统连接有多个子系统。

模型生成模块,用于根据历史运行周期对应的负载信息和控制参数,确定初始模型中的待确定参数,得到目标模型。

输入模块,用于将当前运行周期中的负载信息输入目标模型,以得到目标系统在当前运行周期中的目标控制参数。当前运行周期为与历史运行周期在时间上相邻的下一个运行周期。

控制模块,用于根据目标控制参数,在当前运行周期中控制每一子系统的运行。

本实施例中采用动态调整方式,根据当前目标系统中各个子系统与IPC通信相关的模块的负载信息,对IPC的通信进行动态调整和控制,有效避免了在高负载场景下的IPC通信超时失败的问题,提高了系统的稳定性和可靠性。

本发明的实施例还提供了一种非瞬时性计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现方法实施例中一种方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述实施例提供的方法。

本发明的实施例还提供了一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。

本发明的实施例还提供一种计算机程序产品,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使该电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤。

虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的范围由所附权利要求来限定。

相关技术
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种即时通信的数据存储方法、装置、电子设备和介质
  • 一种智能控制方法、智能控制装置、电子设备和存储介质
  • 电子设备的显示控制方法、装置、电子设备和存储介质
  • 电子设备控制方法及装置、电子设备及存储介质
  • 通信控制方法、通信控制装置、电子设备和可读存储介质
  • 通信控制方法、通信控制装置、电子设备和可读存储介质
技术分类

06120115929636