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

一种负载处理方法及相关装置与流程

2022-08-31 00:47:22 来源:中国专利 TAG:


1.本技术涉及电子技术领域,尤其涉及一种负载处理方法及相关装置。


背景技术:

2.随着技术发展,智能手机、平板电脑等电子设备支持的功能越来越多丰富,用户可以在智能终端使用各种app。为了保证电子设备的性能,进而满足用户体验,需要电子设备根据电子设备的负载情况进行资源调度。传统技术中电子设备一般是基于当前执行任务在本次已执行的前一段时间段的负载(capacity)情况,统计该任务对系统的负载贡献,并基于上述负载贡献为该任务进行资源调度。例如,调用pelt算法或walt算法基于前一段时间的负载情况统计当前执行任务的cpu负载,当前执行任务的cpu负载较大时,可以增大中央处理器(central processing unit,cpu)的频率,而当前执行任务的cpu负载较小时,可以减小cpu的频率。
3.由于用户在电子设备上的操作具有突发性,而传统技术是根据当前时刻的前一段时间段的负载情况进行资源调度,因此,负载计算和资源调度具有一定的滞后性,进而导致了电子设备响应速度慢。


技术实现要素:

4.本技术实施例提供了一种负载处理方法及相关装置,能够提高资源调度的准确性,进而有效提高电子设备的响应速度。
5.第一方面,本技术提供了一种负载处理方法,包括:响应于第一指令,第一电子设备执行第一事务,并确定第一事务的事务类型为第一事务类型;第一电子设备在执行第一事务的第j个负载周期的起始时刻,基于第一当前负载数据以及第一资源模块的第一事务类型的第一历史负载数据,预测第一资源模块在上述第j个负载周期的第一当前负载等于第一历史负载数据中第h个负载周期的历史负载值,并基于第一当前负载对第一资源模块进行资源调度;其中,第一当前负载数据包括第一资源模块在本次执行第一事务的前j-1个负载周期的当前负载,第一历史负载数据包括k个负载周期的历史负载值,j、h和k为正整数,h小于等于k。
6.实施本技术实施例,第一电子设备可以获取各资源模块的各事务类型的历史负载数据,第一电子设备执行指定事务类型的事务时,针对该事务统计第一电子设备的第一资源模块的当前负载;并基于第一资源模块的上述指定事务类型的历史负载数据和当前负载情况,对第一资源模块进行负载预测和资源调度。这样,第一电子设备执行上述指定事务类型的事务时,可以准确预测第一资源模块在本负载周期的负载,进而提高了资源调度的准确性,满足第一资源模块的性能需求,有效提高了第一电子设备的响应速度。
7.在一种实现方式中,上述第一指令是作用于第一应用的第一activity且用于触发第二应用的第二activity的第一输入操作。
8.在一种实现方式中,上述第一指令是第二电子设备发送的指令,第一指令是作用
于第一应用的第一activity且用于触发第二应用的第二activity的指令;或者,第一指令是用于触发第二应用的第二activity的指令。
9.在一种实现方式中,上述确定第一事务的事务类型为第一事务类型,包括:基于第一指令、第一指令作用的第一activity和第一指令触发的第二activity中的至少一个,第一电子设备确定第一事务的事务类型为第一事务类型。
10.在一种实现方式中,所述方法还包括:第一电子设备在执行第一事务的第j个负载周期的起始时刻,基于第二资源模块在本次执行第一事务的前j-1个负载周期的当前负载,以及第二资源模块的第一事务类型的第二历史负载数据,预测第二资源模块在第j个负载周期的第二当前负载等于第二历史负载数据中第p个负载周期的历史负载值,并基于第二当前负载对第二资源模块进行资源调度;其中,第二历史负载数据包括d个负载周期的历史负载值,p和d为正整数,p小于等于d。
11.在一种实现方式中,上述第一电子设备的资源模块包括cpu、gpu、ddr、磁盘、网卡中的至少两个。
12.在一种实现方式中,第一电子设备在每个负载周期统计第一资源模块的当前负载;上述基于第一当前负载数据以及第一资源模块的第一事务类型的第一历史负载数据,预测第一资源模块在第j个负载周期的第一当前负载等于第一历史负载数据中第h个负载周期的历史负载值,包括:第一电子设备利用动态时间规整dtw算法确定第一历史负载数据中与第一当前负载数据中的第j-1个当前负载最匹配的历史负载值为第h-1个负载周期的历史负载值;第一电子设备预测第一资源模块在上述第j个负载周期的第一当前负载等于第一历史负载数据中上述第h个负载周期的历史负载值。
13.在一种实现方式中,作用于同一activity的同一种用户操对应的事务为同一事务类型,上述确定第一事务的事务类型为第一事务类型,包括:基于第一输入操作和第一输入操作作用的第一activity,确定第一事务的事务类型为第一事务类型。
14.在一种实现方式中,触发同一activity的同一种用户操对应的事务为同一事务类型,上述确定第一事务的事务类型为第一事务类型,包括:基于第一输入操作和第一输入操作触发的第二activity,确定第一事务的事务类型为第一事务类型。
15.在一种实现方式中,触发同一activity的指令对应的事务为同一事务类型,上述确定第一事务的事务类型为第一事务类型,包括:基于第一指令触发的第二activity,确定第一事务的事务类型为第一事务类型。
16.在一种实现方式中,作用于同一activity且触发同一activity的指令对应的事务为同一事务类型,上述确定第一事务的事务类型为第一事务类型,包括:基于第一指令作用的第一activity和触发的第二activity,确定第一事务的事务类型为第一事务类型。
17.在一种实现方式中,第一电子设备的所有应用的activity包括p类activity,activity的分类是基于电子设备运行activity所需资源确定的,同一类activity所需资源类似,其中,p为大于1的正整数;确定第一事务的事务类型为第一事务类型。
18.在一种实现方式中,事务类型的划分方式包括如下多种方式中的至少一种:作用于同一类activity的同一种用户操对应的事务为同一事务类型;触发同一类activity的同一种用户操对应的事务为同一事务类型;触发同一类activity的指令对应的事务为同一事务类型;作用于同一类activity且触发同一类activity的指令对应的事务为同一事务类
型。
19.在一种实现方式中,第一资源模块为cpu,第一资源模块在每个负载周期的当前负载可以是基于该负载周期内任务队列中的各任务中处于可运行状态的时间确定的,上述基于第一当前负载对第一资源模块进行资源调度,包括:基于第一当前负载调整cpu频率、进行cpu的任务抢占和/或进行多个cpu间的cpu选核。
20.在一种实现方式中,第一资源模块为gpu,第一资源模块在每个负载周期的当前负载可以为该负载周期内处理的opengl指令数,上述基于第一当前负载对第一资源模块进行资源调度,包括:基于第一当前负载调整gpu频率。
21.在一种实现方式中,第一资源模块为ddr,第一资源模块在每个负载周期的当前负载可以为该负载周期内ddr内存占用量,上述基于第一当前负载对第一资源模块进行资源调度,包括:基于第一当前负载调整ddr的工作频率。
22.在一种实现方式中,第一资源模块为磁盘,第一资源模块在每个负载周期的当前负载可以为该负载周期内的io带宽,上述基于第一当前负载对第一资源模块进行资源调度,包括:基于第一当前负载调整磁盘i/o的预留带宽大小。
23.在一种实现方式中,第一资源模块为网卡,第一资源模块在每个负载周期的当前负载可以为该负载周期内网络i/o收发报文的字节数,上述基于第一当前负载对第一资源模块进行资源调度,包括:基于第一当前负载调整网络i/o的预留带宽。本技术实施例中,第一应用和第二应用可以是同一应用,第一activity和第二activity可以是同一应用的同一activity,也可以是同一应用的不同activity;或者,第一应用和第二应用也可以是不同应用。第一activity也可以被称为activity1,第二activity也可以被称为activity2。
24.第二方面,本技术提供了一种电子设备,包括一个或多个处理器和一个或多个存储器和触控屏。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行上述第一方面任一项可能的实现方式中的负载处理方法。
25.第三方面,本技术实施例提供了一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述任一方面任一项可能的实现方式中的负载处理方法。
26.第四方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述第一方面任一项可能的实现方式中的负载处理方法。
附图说明
27.图1为本技术实施例提供的一种电子设备的结构示意图;
28.图2a至图2f为本技术实施例提供的新闻app的相关用户界面;
29.图3为本技术实施例提供的一种用户使用新闻app的过程中的负载统计情况;
30.图4a为本技术实施例提供的一种负载处理方法的流程示意图;
31.图4b为本技术实施例提供的一种预测本负载周期的当前负载的流程示意图;
32.图5为本技术实施例提供的一种历史负载数据的曲线示意图;
33.图6为本技术实施例提供的一种用户使用新闻app的过程中的负载预测情况;
34.图7为本技术实施例提供的一种软件系统的系统架构图。
具体实施方式
35.下面将结合附图对本技术实施例中的技术方案进行清楚、详尽地描述。其中,在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,另外,在本技术实施例的描述中,“多个”是指两个或多于两个。
36.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
37.下面对本技术实施例中涉及的电子设备100进行介绍。
38.参见图1,图1示出了本技术实施例提供的示例性电子设备100的结构示意图。
39.电子设备100可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,pda)、增强现实(augmented reality,ar)设备、虚拟现实(virtual reality,vr)设备、人工智能(artificial intelligence,ai)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备,本技术实施例对该电子设备100的具体类型不作特殊限制。
40.电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
41.可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
42.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括一个或多个cpu或者包括一个cpu和一个图形处理器(graphics processing unit,gpu),或者包括一个应用处理器(application processor,ap)和一个协处理器。例如,上述协处理器可以包括gpu,图像信号处理器(image signal processor,isp),神经网络处理器(neural-network processing unit,npu),调制解调处理器,控制器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或视频编解码器等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
43.在一些实施例中,处理器是以时钟脉冲的上升沿作为执行指令的基准。因此,处理器工作的时钟频率越高,处理器单位时间内执行的指令数越多,工作速度越快。
44.本技术实施例中,电子设备100可以根据处理器(例如cpu、gpu)的负载情况进行处理器资源调度,例如,调整处理器的频率。示例性的,当电子设备100的当前执行任务的处理器负载较大时,可以增大处理器的频率,而当电子设备100的当前执行任务的处理器负载较小时,可以减小处理器的频率。
45.cpu是信息处理、程序运行的最终执行单元。cpu主要包括运算器(arithmetic logic unit,alu)、高速缓冲存储器(cache),以及及实现它们之间联系的数据(data)、控制及状态的总线(bus)。在计算机体系结构中,cpu是对所有硬件资源(如存储器、输入输出单元)进行控制调配、执行通用运算的核心硬件单元。计算机系统中所有软件层的操作,最终都将通过指令集映射为cpu的操作。cpu的工作频率作为cpu性能的重要参数,对cpu运算速度的提升非常重要。
46.gpu又可以被称显示核心、视觉处理器、显示芯片,是一种专门做图像和图形相关运算工作的微处理器。gpu所采用的核心技术可以包括硬体t&l、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素渲染引擎等。gpu的性能是由工作频率、显存、像素管线、像素填充率等多种因素决定,gpu的工作频率在一定程度上可以反映出电子设备100的显示核心的性能。
47.控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
48.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
49.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
50.i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器110可以包含多组i2c总线。处理器110可以通过不同的i2c总线接口分别耦合触摸传感器180k,充电器,闪光灯,摄像头193等。例如:处理器110可以通过i2c接口耦合触摸传感器180k,使处理器110与触摸传感器180k通过i2c总线接口通信,实现电子设备100的触摸功能。
51.i2s接口可以用于音频通信。在一些实施例中,处理器110可以包含多组i2s总线。处理器110可以通过i2s总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过i2s接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
52.pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过pcm总线接口耦合。在一些实施例中,音频模块170
也可以通过pcm接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述i2s接口和所述pcm接口都可以用于音频通信。
53.uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过uart接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过uart接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
54.mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi),显示屏串行接口(display serial interface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现电子设备100的显示功能。
55.gpio接口可以通过软件配置。gpio接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,gpio接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。gpio接口还可以被配置为i2c接口,i2s接口,uart接口,mipi接口等。
56.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如ar设备等。
57.可以理解的是,本技术实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本技术另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
58.电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
59.移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
60.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是
synchronous dynamic random access memory,ddr sdram,例如第五代ddr sdram一般称为ddr5 sdram)等;非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。快闪存储器按照运作原理划分可以包括nor flash、nand flash、3d nand flash等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,slc)、多阶存储单元(multi-level cell,mlc)、三阶储存单元(triple-level cell,tlc)、四阶储存单元(quad-level cell,qlc)等,按照存储规范划分可以包括通用闪存存储(英文:universal flash storage,ufs)、嵌入式多媒体存储卡(embedded multi media card,emmc)等。随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
70.内部存储器的内存频率通常以mhz(兆赫兹)为单位来计量,内部存储器的工作频率在一定程度上决定了内部存储器的实际性能,内部存储器的工作频率越高,说明该内部存储器在正常工作下的存储速度越快,即每秒钟读写的字节数越多。
71.本技术实施例中,电子设备100可以基于内部存储器的负载进行内部存储器的资源调度,例如调整内部存储器的工作频率。示例性的,内部存储器的负载较大时,可以增大内部存储器的工作频率,而内部存储器的负载较小时,可以减小内存的工作频率。
72.传统sdram在一个周期内只能在时钟脉冲的上升阶段进行一次数据传输,而ddr sdram为具有双倍数据传输率的sdram,在一个周期内可以在时钟脉冲的上升阶段和下降阶段各进行一次数据传输。因此,相对传统sdram,ddr sdram的工作频率扩大一倍,即时钟频率的两倍。
73.本技术实施例中,电子设备100可以通过调整ddr的时钟频率,来调整ddr的工作频率、等效频率和内存带宽。在一些实施例中,电子设备100也可以基于处理器(例如cpu)的负载,调整ddr的时钟频率和/或电压。示例性的,cpu负载较大时,可以增大ddr的时钟频率,而cpu负载较小时,可以减小ddr的时钟频率。
74.磁盘的i/o,顾名思义就是磁盘的输入输出,输入指的是对磁盘写入数据,输出指的是从磁盘读出数据。衡量磁盘性能的指标包括每秒钟输入输出量(input/output per second,iops)、带宽和响应时间。iops是指单位时间内系统能处理的i/o请求数量,i/o请求通常为读数据或写数据的操作请求。针对随机读写频繁的应用,iops是关键衡量指标,例如联机事务处理(online transaction processing,oltp)的应用。带宽指单位时间内磁盘可以成功传输的数据数量,即每秒可以读写的字节数,用于衡量存储系统的数据吞吐量(throughput)。对于大量顺序读写的应用,则更关注吞吐量指标,例如联机分析处理(on-line analytical processing,olap)的应用,视频点播(video on demand,vod)的应用。响应时间也称为时延或者服务时间,指发起磁盘i/o请求到磁盘i/o请求处理完成的时间间隔,常以毫秒(ms)为单位。
75.磁盘的带宽预留技术,是通过为指定业务的磁盘i/o预留带宽,来保障业务运行时磁盘i/o的带宽需求的一项技术。例如,磁盘支持最大的i/o速度为30mbs,磁盘此时的带宽为20mbs,为保障业务运行时磁盘i/o的带宽需求,可以设置磁盘i/o的预留带宽为10mbs。
76.本技术实施例中,可以基于磁盘的负载进行磁盘资源调度,例如调整磁盘i/o的预
留带宽。示例性的,磁盘的负载较大时,可以增大磁盘i/o的预留带宽,而磁盘的负载较小时,可以减小磁盘i/o的预留带宽。
77.网络i/o的硬件基础是网卡,网络数据到达网卡之后,终点是应用程序的内存。但是,应用程序是无法直接访问网卡的,所以需要操作系统做中转。网络i/o的过程包括两个阶段,第一阶段即等待网络上的数据分组到达,操作系统将接收到的网卡的数据分组缓存到内核的一个缓存区(buffer)中;第二阶段即应用程序调用操作系统的函数,从对应的内核缓存区中取出数据,复制到应用进程缓冲区。网络i/o的带宽预留技术,是通过为指定业务在其流量通过的网络路径上预留带宽,来保障业务运行时的网络带宽需求的一项技术。网络i/o的模型包括:同步模型(synchronous i/o)、阻塞i/o(blocking i/o)、非阻塞i/o(non-blocking i/o)、多路复用i/o(multiplexing i/o)、信号驱动式i/o(signal-driven i/o)、异步i/o(asynchronous i/o)。
78.本技术实施例中,电子设备100可以根据网卡的负载(即网络i/o的负载)进行网络资源调度,例如调整网络i/o的预留带宽等。示例性的,网络i/o的负载较大时,可以增大网络i/o的预留带宽,而网络i/o的负载较小时,可以减小网络i/o的预留带宽。
79.本技术实施例中,电子设备100可以基于当前执行任务在当前时刻前一时间段的负载情况,统计该任务此时对系统的负载,并基于统计的负载为该任务进行资源调度。
80.在本技术的一些实施例中,当前执行任务在当前时刻前一时间段的负载情况,电子设备100可以采用pelt算法或walt算法统计该任务的cpu负载。下面对pelt算法或walt算法进行介绍。
81.(1)pelt算法
82.在多处理器系统中,每个cpu各自维护一个运行队列(runqueue),每个运行队列可以包括一或多个处于睡眠(sleep)状态或者可运行(runable)状态的进程。可运行状态指正在cpu上运行或者在运行队列中等待cpu调度运行。
83.pelt算法把时间分成了以1024us为周期的序列,在每个1024us的周期中,运行队列中的一个任务对应的调度实体(即一个进程或者控制组中的一组进程)对系统负载的贡献可以根据该调度实体处于可运行状态的时间进行计算。一个任务在1024us的周期内的负载是瞬时负载,若在该周期内该任务的可运行状态的时间是t,那么该任务在该周期内的瞬时负载和(t/1024)有正比的关系。此外,不同优先级的任务对系统施加的负载也不同,该任务在该周期内的瞬时负载可以表示为w*(t/1024),其中,w为与任务优先级对应的负载权重(load weight)。在pelt算法中,在当前时间点,一个调度实体对系统负载的总贡献可以表示为:l=l0 l1*y l2*y2 l3*y3

ln*yn,其中,li表示在周期pi中该调度实体的对系统负载贡献,pi是pi 1的下一个周期,p0是最近一个周期,y为衰减因子。
84.由上述公式可知,一个调度实体对于系统的负载贡献是幂级数之和;过去的负载也会通过逐渐衰减的方式被累计,即乘上衰减因子y;当前时间点的负载贡献等于上个周期统计的总负载贡献乘以衰减因子y再加上最近一个周期的瞬时负载。在linux中,将y^32确定为0.5,这样,一个调度实体的负荷贡献经过32个1024us的周期后,对当前时间点的负载贡献会衰减一半。
85.可以理解,pelt算法针对每个任务对应的调度实体进行负载跟踪,每个cpu的运行队列的整体负载为该运行队列中所有任务对应负载的统计值(例如平均值)。
86.(2)walt算法
87.walt算法将时间按照一定的时间长度划分为多个时间窗口(window)。例如,一个时间窗口为20ms。电子设备100统计每个时间窗口的cpu负载,并在时间窗口1的起始时刻,将前n个时间窗口的负载的平均负载值、最大负载值或最小负载值作为该时间窗口的cpu负载值。电子设备100可以基于不同的系统性能、功耗需求,确定具体使用哪种取值策略(即上述平均负载值、最大负载值或最小负载值)。电子设备100可以通过用户态的配置接口对walt算法的取值策略进行配置。
88.类似于pelt算法,walt算法也考虑每个任务的负载权重,针对每个任务对应的调度实体进行负载跟踪,每个cpu的运行队列的整体负载为该运行队列中所有任务对应负载的统计值(例如平均值)。不同于pelt算法的是,walt算法采用时间窗口划分的方式,更能快速体现cpu负载的实际变化。
89.电子设备100不能预知用户行为,输入操作具有突发性和间歇性。用户对电子设备100进行操作后,电子设备100需要立即响应上述输入操作,执行相应的事务,此时,电子设备100的负载激增。上述事务实行完毕后,电子设备100的负载又大幅度下降。
90.示例性的,图2a至图2f示出了用户使用新闻应用程序(appliccation,app)的相关用户界面,相应的,图3示出了用户使用新闻app的部分过程中cpu的负载变化情况。其中:
91.图2a示出了用于展示电子设备100安装的应用程序的用户界面11。用户界面11可以包括:状态栏201,导航栏202,日历指示符203,天气指示符204,具有常用应用程序图标的托盘205以及其他应用程序图标的显示区域206。其中:
92.导航栏202可包括:返回键202a、主屏幕键202b、多任务键202c等系统导航键。当检测到用户点击返回键202a时,电子设备100可显示当前页面的上一个页面;当检测到用户点击主屏幕键202b时,电子设备100可显示主界面;当检测到用户点击多任务键202c时,电子设备100可在多任务管理界面显示用户最近打开的应用的预览图像。不限于虚拟按键,本技术实施例中,导航栏202中的各导航键也可以实现为物理按键。在一些实施例中,电子设备100还可以通过用户的手势导航实现导航栏202中的各导航键的功能。
93.其他应用程序图标的显示区域206可展示:支付应用的图标、相册的图标、音乐的图标、浏览器的图标、邮箱的图标、新闻的图标206a、备忘录的图标、设置的图标。用户界面11还可包括页面指示符207。
94.新闻的图标206a可接收输入操作(例如点击操作),响应于检测到的上述输入操作,电子设备100启动新闻app,显示图2b所示的包括一或多个新闻链接301的用户界面12。用户界面12还可以包括网址输入框302、搜索框303和菜单栏304,菜单栏304可以包括分享键304a、设置键304b、主页键304c和更多键304d。如图2b和图2c所示,电子设备100可以接收作用于上述一或多个新闻链接301中的新闻链接301a的点击操作,响应于上述点击操作,电子设备100获取上述新闻链接对应的新闻内容305并显示在用户界面13中。用户浏览电子设备100显示的新闻内容305,由于电子设备100的屏幕可以显示的内容有限,用户可以通过滑动电子设备100显示的新闻内容305以查看更多的新闻内容。如图2c和图2d所示,电子设备100可以接收作用于新闻内容305的滑动操作,响应于上述滑动操作,电子设备100在用户界面13上显示上述新闻链接对应的更多新闻内容306。如图2e和图2f所示,电子设备100还可以接收作用于返回键205a的返回操作,响应于上述返回操作,电子设备100显示上述用户界
面12。
95.图3以电子设备100接收到用户的返回操作为例,还分别示出了通过pelt算法和walt算法统计的cpu负载。如图3所示,pelt算法对于负载快速上升和负载快速下降的情况响应速度较慢,这是由于pelt算法采用衰减积累计算的方式,负载计算具有一定的滞后性,实际的负载突变需要一定周期后才能在数据上反馈出来。相对pelt算法,采用时间窗划分的walt算法数据上报更加及时,统计的负载更能直接体现现状;但是由于walt算法统计的负载仍然依赖于当前时刻的前一段时间段的负载情况,从图3可以看出针对负载突变的情况,walt算法响应速度还是较慢。对负载突变的情况响应速度较慢,会导致电子设备100不能及时基于实际负载情况进行资源调度,电子设备100对输入操作的响应速度慢,影响用户体验。
96.本技术实施例中,电子设备100可以将每个应用程序的相关事务进行类型划分,例如,上述新闻app的事务类型可以包括点击事务、滑动事务和返回事务等。鉴于电子设备100每次处理同一类型的事务导致的负载情况是类似的,本技术实施例中,电子设备100可以统计处理执行同一类型事务过程中的历史负载数据,并结合该类型事务的历史负载数据和当前负载,预测当前负载周期电子设备100执行该类型事务的当前负载,并基于预测的当前负载提前进行资源调度。其中,当前负载指电子设备100本次执行该类型事务的各负载周期的负载。这样,预测的当前负载更接近电子设备100本负载周期所承担的真实负载,有效提高了资源调度效率,进而提高了电子设备100的响应速度。
97.此外,需要说明的是,电子设备100执行事务时,不仅需要cpu资源,还需要其他资源,例如gpu资源、ddr资源、磁盘i/o资源、网络i/o资源等。
98.本技术实施例中,电子设备100的资源模块可以包括以下多个中的一或多个:cpu、gpu、ddr、磁盘、网卡。电子设备100执行同一类型的事务时,分别统计电子设备100的各资源模块的历史负载数据并存储;电子设备100执行特定类型的事务时,针对该类型事务分别统计电子设备100的各资源模块的当前负载;并基于每个资源模块的历史负载数据和当前负载情况,对该资源模块进行负载预测和资源调度这样,在电子设备100执行该类型事务时,可以针对该类型事务进行多方面的资源调度,满足各资源模块的负载需求,提高该类型事务的执行速度,即有效提高了电子设备100的响应速度。
99.需要说明的是,不限于上述几类资源模块,本技术实施例中电子设备100的资源模块还可以包括其他该类型,此处不作具体限定。例如,npu。
100.下面以cpu为例,介绍如何获取各类型事务对应的cpu历史负载数据。
101.本技术实施例中,将时间划分为连续的负载周期,电子设备100每次执行事务时,首先确定该事务的事务类型(例如第一事务类型),然后,获取本次执行第一事务类型的事务的完成时长,以及完成时长内每个负载周期的cpu负载值;电子设备100根据n次第一事务类型的事务对应的完成时长和cpu负载数据,确定第一事务类型的历史完成时长和历史负载数据。其中,第一事务类型的历史完成时长包括k个负载周期,第一事务类型的历史负载数据包括上述k个负载周期分别对应的cpu负载;电子设备100存储第一事务类型的历史完成时长和历史负载数据,以用于在执行第一事务类型的事务时预测cpu当前负载。
102.在一些实施例中,第一事务类型的历史完成时长为n次第一事务类型的事务的完成时长的最大值、平均值或加权平均值,第一事务类型的cpu历史负载数据包括:历史完成
时长内的第i个负载周期的历史负载,即上述n次第一事务类型的事务的cpu负载数据对应的n个第i个负载周期的负载的最大值、平均值或加权平均值,i为小于等于k的整数。需要说明的是,若某次第一事务类型的事务的cpu负载数据包括l个负载周期的负载数据,且l小于k,则当上述i大于l时,上述某次第一事务类型的事务的cpu负载数据的第i个负载周期的负载值可以设置为0。
103.在一些实施例中,由于相同网络条件和硬件条件下,电子设备100每次执行同类型事务的cpu负载数据相差较小,n可以取预设固定值,例如,n等于100。在一种实现方式中,上述n次第一事务类型的事务可以是电子设备100最近执行的n次第一事务类型的事务;在另一种实现方式中,上述n次第一事务类型的事务可以是电子设备100最开始执行的n次第一事务类型的事务。在一些实施例中,n为电子设备100已执行第一事务类型的事务的总次数,电子设备100每次执行第一事务类型的事务后,n值加1,电子设备100对第一事务类型的历史完成时长和历史负载数据进行更新。
104.需要说明的是,其他资源模块的历史负载数据的获取,可以参考上述cpu,此处不再赘述。
105.下面对本技术实施例提供的负载处理方法的方法流程进行介绍。图4a示出了本技术实施例中提供的一种负载处理方法。上述负载处理方法包括但不限于步骤s101至s103,其中:
106.s101、响应于第一指令,电子设备100执行第一事务。
107.在一些实施例中,第一指令为输入操作1。电子设备100接收用户的作用于第一应用的输入操作1,响应于检测到的上述输入操作,电子设备100执行第二应用的第一事务。
108.本技术实施例中,电子设备100接收作用于第一应用的activity1的输入操作1,响应于上述输入操作1,电子设备执行第一事务,第一事务包括运行第二应用的activity2。其中,第一应用和第二应用可以是同一应用,activity1和activity2可以是同一应用的同一activity,也可以是同一应用的不同activity;或者,第一应用和第二应用也可以是不同应用。
109.需要说明的是,android系统中activity是用户和应用程序之间进行交互的接口,每一个activity组件都关联有一个window对象,用来描述一个具体的应用程序窗口。由此可知,activity是一个高度抽象的用户界面组件,在android中代表了用户界面和以用户界面为中心的相应的业务逻辑,通过用户界面中的控件可以监听并处理用户触发的事件。可以理解,android应用中,一个activity可以表现为一个用户界面,一个android应用可以拥有多个activty。
110.示例性的,上述第一应用为桌面应用,activity1对应用户界面11,第二应用为新闻app,activity2对应用户界面12,上述输入操作1可以为图2a所示的作用于新闻app的图标206a的点击操作,第一事务为启动第二应用并显示用户界面12。示例性的,上述第一应用和第二应用均为新闻app。activity1对应用户界面12,activity2对应用户界面13,上述输入操作1还可以为图2b所示的作用于新闻链接301a的点击操作,第一事务为获取新闻链接301a对应的新闻内容并显示在用户界面13。或者,activity1和activity2均对应用户界面13,上述输入操作1还可以为图2c所示的作用于新闻内容305的向上滑动操作,第一事务为获取新闻链接301a对应的更多新闻内容并显示在用户界面13。或者,activity1对应用户界
面13,activity2均对应用户界面12,上述输入操作1还可以为图2e所示的作用于返回键202a的点击操作,第一事务为显示用户界面12。
111.在一些实施例中,第一指令为电子设备200发送的指令1,响应于接收到的上述指令1,电子设备100执行第二应用的第一事务。指令1也可以是电子设备100通过电子设备200间接接收的用户的输入操作。
112.本技术实施例中,电子设备100接收电子设备200发送的触发电子设备100运行第二应用的activity2的指令1,响应于上述指令1,电子设备执行第一事务,第一事务包括运行第二应用的activity2。需要说明的是,指令1也可以是作用于activity1且触发电子设备100运行activity2的指令。
113.示例性的,电子设备100为智能手机,电子设备200为智能手表,电子设备200和电子设备100建立连接后,用户可以通过电子设备200控制电子设备100。上述第二应用为音乐第一应用,activity2对应音乐第一应用的音乐播放界面,上述指令1用于指示电子设备100通过音乐第一应用播放歌曲1,第一事务为电子设备100通过音乐第一应用播放歌曲1。可以理解,若电子设备100的音乐第一应用当前未启动,第一事务还包括启动音乐第一应用;若电子设备100本地未存储歌曲1,第一事务还包括通过网络获取歌曲1的音频信息。上述指令1还可以是定闹钟、查询天气、通过视频第一应用播放电影1等等,本技术实施例对此不作具体限定。
114.可以理解,上述第一应用和第二应用可以是系统应用(例如桌面应用等),也可以是非系统应用(例如,新闻app、视频应用等),此处不作具体限定。
115.s102、电子设备100确定第一事务的事务类型为第一事务类型。
116.本技术实施例中,电子设备100可以将电子设备100执行的事务划分为多个事务类型,执行同一事务类型的两次事务,电子设备100的各资源模块的负载情况类似。
117.本技术实施例中,电子设备100基于输入操作1(或指令1)、输入操作1(或指令1)作用的activity1和输入操作1(或指令1)触发的activity2中的至少一个确定第一事务的事务类型。
118.在一些实施例中,电子设备100基于activity1和上述输入操作1确定第一事务的事务类型,即作用于同一activity(例如activity1)且输入操作相同的事务划分为同一类型的事务。
119.在一些实施例中,电子设备100基于上述输入操作1和上述输入操作1触发的activity2确定第一事务的事务类型,即触发同一activity(例如activity1)且输入操作相同的事务划分为同一类型的事务。
120.在一些实施例中,电子设备100基于activity1和上述输入操作1触发的activity2确定第一事务的事务类型,即作用于同一activity(例如activity1)且触发同一activity(例如activity2)的事务划分为同一类型的事务。
121.在一些实施例中,电子设备100基于上述输入操作1触发activity2确定第一事务的事务类型,即触发同一activity(例如activity2)的事务划分为同一类型的事务。
122.在一些实施例中,电子设备100针对每个应用对应的事务划分事务类型,两个不同应用包括的事务类型均不同。
123.示例性的,响应于针对图2a所示的新闻app的图标206a的点击操作,电子设备100
执行的事务的事务类型可以简称为新闻app的启动事务。响应于针对用户界面12显示的新闻链接的点击操作,电子设备100执行的事务的事务类型可以简称为新闻app的网络点击事务。响应于针对新闻app的新闻内容的滑动操作,电子设备100执行的事务的事务类型可以简称为新闻app的滑动事务。响应于针对返回控件205a的点击操作,电子设备100执行的事务的事务类型可以简称为新闻app的返回事务。响应于针对图2b菜单栏3047显示的控件(例如设置键304b)的点击操作,电子设备100执行的事务(例如显示新闻app的设置界面)的事务类型可以简称为新闻app的本地点击事务。可以理解,相比本地点击事务,通常执行网络点击事务造成的负载更重,所需资源更多。
124.在一些实施例中,电子设备100针对所有应用对应的事务划分事务类型,两个不同应用可以包括相同的事务类型。
125.本技术实施例中,电子设备100可以基于运行每个activity的所需资源对各应用的activity进行类型划分,电子设备100运行同一个应用中两个不同activity所需资源类似,电子设备将上述两个不同activity划分为同一类activity。
126.在一些实施例中,电子设备100将作用于同一类activity(例如activity1)且输入操作相同的事务划分为同一类型的事务。在一些实施例中,电子设备100将触发同一类activity(例如activity1)且输入操作相同的事务划分为同一类型的事务。在一些实施例中,电子设备100将作用于同一类activity(例如activity1)且触发同一类activity(例如activity2)的事务划分为同一类型的事务。在一些实施例中,电子设备100将触发同一类activity(例如activity2)的事务划分为同一类型的事务。
127.示例性的,电子设备100还安装了浏览器app,电子设备100可以将两个应用中负载情况类似的事务划分为一种事务类型。例如,浏览器app中的网络点击事务与新闻app中的网络点击事务造成的负载情况类似,电子设备100将新闻app中的网络点击事务和浏览器app中的网络点击事务划分为同一事务类型。
128.需要说明的是,本技术实施例中,对事务类型划分方式不作具体限定。
129.在一些实施例中,电子设备100可以对事务进行更粗粒度的类型划分。例如,在一种实现方式中,将针对图2b所示的网址输入框302内的网址进行搜索所执行的事务,针对图2b所示的搜索框303内的关键词进行搜索执行的事务,以及针对图2b所示的任意新闻链接的点击操作执行的事务,均划分为同一事务类型,该事务类型可以简称为在线搜索事务。例如,在一种实现方式中,将所有应用的启动对应的事务划分为启动事务,将所有应用内的点击操作触发的事务划分为点击事务,将所有应用内的滑动操作触发的事务划分为滑动事务,将所有应用内的返回操作触发事务划分为返回事务,将所有应用的关闭运行对应的事务划分为关闭事务,等等。
130.在一些实施例中,电子设备100可以对事务进行更细粒度的类型划分。例如,图2b所示的新闻链接可以包括文档新闻链接和视频新闻链接,电子设备100可以将针对文档新闻链接和视频新闻链接执行的事务划分为两种事务类型。可以理解,相比文档新闻链接,通常电子设备100执行视频新闻链接对应的事务对各资源模块造成的负载更重,所需资源更多,完成时长更长。
131.s103、在执行第一事务时,电子设备100基于电子设备100的每个资源模块的第一事务类型的当前负载和历史负载数据,预测该资源模块在当前负载周期的当前负载,并基
于该资源模块的预测负载对该资源模块进行资源调度。
132.在一些实施例中,电子设备100的资源模块包括cpu,电子设备100可以基于cpu的第一事务类型的当前负载和历史负载数据,预测cpu在当前负载周期的当前负载,并基于该预测负载进行cpu的资源调度。例如,基于cpu的预测负载调整cpu频率、进行cpu的任务抢占、多个cpu间的cpu选核等等。在一种实现方式中,cpu在每个负载周期的当前负载可以是基于cpu的运行队列中各任务的可运行时间确定的。
133.在一些实施例中,电子设备100的资源模块包括gpu,电子设备100可以基于gpu的第一事务类型的当前负载和历史负载数据,预测gpu在当前负载周期的当前负载,并基于该预测负载进行gpu的资源调度。例如,基于gpu的预测负载调整gpu频率。在一种实现方式中,gpu在每个负载周期的当前负载可以指该负载周期内处理的opengl指令数。
134.在一些实施例中,电子设备100的资源模块包括ddr,电子设备100可以基于ddr的第一事务类型的当前负载和历史负载数据,预测ddr在当前负载周期的当前负载,并基于该预测负载进行ddr的资源调度。例如,基于ddr的预测负载调整ddr的工作频率。在一种实现方式中,ddr在每个负载周期的当前负载可以指该负载周期内ddr内存占用量,ddr内存占用量决定了ddr的内存回收的大小。
135.在一些实施例中,电子设备100的资源模块包括磁盘,电子设备100可以基于磁盘的第一事务类型的当前负载和历史负载数据,预测磁盘在当前负载周期的当前负载,并基于该预测负载进行磁盘的资源调度。例如,基于磁盘的预测负载调整磁盘i/o的预留带宽大小。在一种实现方式中,磁盘在每个负载周期的当前负载可以指该负载周期内的io带宽。
136.在一些实施例中,电子设备100的资源模块包括网卡,电子设备100可以基于网卡的第一事务类型的当前负载和历史负载数据,预测网卡在当前负载周期的当前负载,并基于该预测负载进行网络i/o的资源调度。例如,基于网卡的预测负载调整网络i/o的预留带宽。在一种实现方式中,网卡在每个负载周期的当前负载可以指该负载周期内网络i/o收发报文的字节数。
137.不限于上述类型的资源模块,上述电子设备100的资源模块还可以包括其他类型的资源模块,例如,还可以是电子设备100的其他类型的处理器、电子设备100的其他类型的内部存储器等等。此处不作具体限定。
138.下面以cpu为例,对步骤s103中如何预测本负载周期的当前负载做进一步说明。
139.示例性的,如图4b所示,在一些实施例中,步骤s103可以包括s103a和s103b。
140.s103a、在执行第一事务的第i个负载周期的起始时刻,电子设备100基于本次执行第一事务的前i-1个负载周期的cpu当前负载,统计电子设备100在该负载周期的cpu当前负载,并基于统计的该负载周期的当前负载进行cpu资源调度,其中,i小于m,m为正整数。
141.具体的,在开始执行第一事务的前m个负载周期,电子设备100可以通过pelt算法或walt算法预测当前负载周期电子设备100的cpu当前负载,并基于预测的cpu当前负载进行cpu资源调度。除了pelt算法或walt算法,电子设备100还可以通过其他算法预测每个负载周期电子设备100的cpu当前负载,此处不作具体限定。
142.在一种实现方式中,负载周期的时长为n倍的1024us,n为正整数。在上述第i个负载周期内的每个1024us周期,电子设备100利用pelt算法预测该1024us周期内的cpu当前负载,并基于预测的cpu当前负载调度cpu资源。
143.在一种实现方式中,负载周期的时长为n倍的1024us,n为正整数。在第i-1个负载周期内的每个1024us周期,电子设备100利用pelt算法统计该1024us周期内的cpu负载;在上述第i个负载周期,预测该负载周期的cpu当前负载为上述第i-1个负载周期内n个1024us周期的cpu负载中的最大值、平均值或加权平均值,并基于预测的cpu当前负载进行资源调度。
144.在一种实现方式中,负载周期的时长1024us。在上述第i个负载周期,电子设备100利用pelt算法预测该负载周期内的cpu当前负载,并基于预测的cpu当前负载调度cpu资源。
145.在一种实现方式中,负载周期的时长为n倍的t,t为walt算法的时间窗口长度,n为正整数。在上述第i个负载周期内的每个时间窗口,电子设备100利用walt算法预测该时间窗口内的cpu当前负载,并基于预测的cpu当前负载调度cpu资源。
146.在一种实现方式中,负载周期的时长为n倍的t,t为walt算法的时间窗口长度,n为正整数。在第i-1个负载周期内的每个时间窗口,电子设备100利用walt算法统计该时间窗口内的cpu负载;在上述第i个负载周期,预测该负载周期的cpu当前负载为上述第i-1个负载周期内n个时间窗口的cpu负载中的最大值、平均值或加权平均值,并基于预测的cpu当前负载进行资源调度。
147.在一种实现方式中,负载周期的时长等于walt算法的时间窗口的时长。在上述第i个周期内,电子设备100利用walt算法预测该负载周期的cpu当前负载,并基于预测的cpu当前负载调度cpu资源。
148.在一种实现方式中,m为预设值。例如,m取值可以为2、3、5或8等。
149.s103b、在执行第一事务的第j个负载周期,基于前j-1个负载周期内电子设备100的cpu当前负载以及cpu的第一事务类型对应的历史完成时长1内的历史负载数据1,电子设备100利用类似动态时间规整(dynamic time warping,dtw)算法预测第j个负载周期的cpu当前负载为上述历史负载数据1中的第h个负载周期的历史负载,并基于预测的上述第j个负载周期的当前负载进行cpu资源调度,上述历史完成时长1包括k个负载周期,其中,j大于等于m,h小于k。
150.dtw算法是一种时间序列相似度度量方法,dtw距离定义了时间序列之间的匹配关系,支持不同长度的时间序列的相似度度量和时间轴的伸缩和弯曲,具有更好的鲁棒性。
151.在一些实施例中,电子设备100利用dtw算法预测第j个负载周期的cpu负载,具体可以包括步骤a1至a2。
152.需要说明的是,cpu的第一类型事务的历史负载数据1包括k个负载周期对应的k个历史负载值,电子设备100在本次执行第一事务时获取前j-1个负载周期对应的j-1个cpu当前负载值,上述j-1个cpu当前负载值构成当前负载数据1。
153.a1、电子设备100利用dtw算法确定历史负载数据1中与当前负载数据1中的第j-1个当前负载值最匹配的历史负载值,即历史负载数据1中的第h-1个历史负载值。
154.h(x)表示历史负载数据中第x个负载周期的历史负载值,c(y)表示本次执行第一事务的第y个负载周期统计到的当前负载。m(x,y)表示h(x)和c(y)之间的距离,m(x,y)可以表示如下:
155.m(x,y)=|h(x)

c(y)|,0《=y《=x《=事务的负载周期总数。
156.lmin(x,y)表示本次第一事务的前y个负载周期对应的序列1和历史的前x个负载
周期对应的序列2之间的dtw距离,其值越小,说明序列1和序列2越匹配。lmin(x,y)可以表示如下:
157.lmin(x,y)=min{lmin(x,y-1),lmin(x-1,y),lmin(x-1,y-1)} m(x,y)
158.y等于j-1时,电子设备100确定dtw距离最小的为lmin(h-1,j-1),即本次第一事务的前j-1个负载周期对应的序列1和历史的前h-1个负载周期对应的序列2之间的dtw距离最小。进而,电子设备100确定历史负载数据1中与当前负载数据1中的第j-1个负载周期的当前负载值最匹配的历史负载值,即历史负载数据1中的第h-1个负载周期的历史负载值。
159.a2、电子设备100预测第j个负载周期的cpu当前负载值即历史负载数据1中的第h个历史负载值。
160.具体的,电子设备100确定上述第j-1个负载周期的当前负载值与上述第h-1个负载周期的历史负载值最匹配后,预测下一个负载周期(即上述第j个负载周期)为上述第h-1个负载周期的下一个负载周期(即上述第h个负载周期)的历史负载值。
161.可以理解,受软件和硬件的各种因素影响,电子设备100执行两次同一类型事务的完成时长和负载变化情况存在偏差,并不完全一致。
162.示例性的,图5示出了一种cpu的第一类型事务的历史负载数据构成的曲线,以及本次执行第一事务的当前负载数据构成的曲线。如图5所示历史负载数据包括24个负载周期的负载数据,当前负载数据包括26个负载周期的负载数据。例如,电子设备100在本次执行第一事务的第11个负载周期的起始时刻,判断与当前负载数据中的第10个负载周期的当前负载最匹配的历史负载,即历史负载数据中第9个负载周期的历史负载;电子设备100预测第11个负载周期的当前负载等于历史负载数据中第10个负载周期的历史负载;在本次执行第一事务的第11个负载周期,电子基于上述第10个负载周期的历史负载进行资源调度。
163.在一些实施例中,步骤s103包括但不限于步骤s103a、s103c和s103d,其中:
164.s103c、在执行第一事务的第m个负载周期,基于前m-1个负载周期内电子设备100的cpu当前负载以及cpu的第一事务类型对应的历史完成时长1内的历史负载数据1,电子设备100利dtw算法预测第m个负载周期的cpu当前负载为上述历史负载数据1中的第h个负载周期的历史负载,并基于预测的上述第m个负载周期的当前负载进行cpu资源调度,上述历史完成时长1包括k个负载周期,h小于k。
165.s104d、在执行第一事务的第j个负载周期,若j大于m且小于等于k m-h,电子设备100预测第j个负载周期的当前负载为历史负载数据中第j-m h个负载周期的历史负载;若j大于k m-h,电子设备100预测第j个负载周期的当前负载为历史负载数据中第k m-h个负载周期的历史负载;电子设备100基于上述第j个负载周期的预测负载进行资源调度。
166.步骤s103中如何预测当前负载周期其他资源模块(例如gpu、ddr、磁盘i/o、网络i/o)的负载,可以参考s103a至s103f提供的cpu资源模块的相关实施例,此处不再赘述。
167.此外,针对非负载突变的事务类型,可以按照传统方式进行负载预测,无需历史负载数据。本技术实施例中,可以基于各3事务类型的负载变化情况,将事务类型划分为负载突变的和非负载突变的。
168.在本技术的一些实施例中,步骤s103之前还包括:电子设备100判断第一事务类型是否为负载突变的,若是负载突变的,则执行s103,若不是负载突变的,则利用传统算法进行负载预测和资源调度。例如,基于上一负载周期的当前负载进行资源调度。
169.在本技术的一些实施例中,电子设备100中存储有各事务类型对应的标识1,标识1用于表征该事务类型是否为负载突变的事务类型。
170.在一种实现方式中,标识1可以是电子设备100出厂时就已经存储的。
171.在一种实现方式中,标识1可以是电子设备100从其他设备获取的,例如,第一事务为针对新闻app的事务,第一事务类型对应的标识可以是电子设备100从新闻app对应的服务器获取的。
172.在一种实现方式中,标识1可以是电子设备100根据第一事务类型的历史负载数据确定的。
173.在本技术的一些实施例中,若电子设备100执行f次第一事务类型的事务的历史负载数据符合第一条件,则电子设备100确定该事务类型为负载突变的事务类型,电子设备100继续统计第一事务类型的历史负载数据,否则确定该事务类型不是负载突变的事务类型。例如,f等于3。在一种实现方式中,第一条件为历史负载数据中各负载周期的历史负载值的方差小于预设阈值。
174.在一些实施例中,电子设备100未执行各事务类型对应的事务,即电子设备100处于空闲状态,此时,电子设备100可以利用传统算法进行负载预测和资源调度。
175.示例性的,图6示出了采用本技术实施例提供的负载处理方法,电子设备100统计的各负载周期的当前负载。如图所示,相对于pelt算法和walt算法本技术实施例提供的负载处理方法预测的当前负载更接近电子设备100所承担的真实负载,有效提高了资源调度效率,进而提高了电子设备100的响应速度。
176.本技术实施例中,第一电子设备可以是前述电子设备100,第二电子设备可以是前述电子设备200。第一指令可以是前述输入操作1或指令1,第一用户操场可以是前述输入操作1,第一当前负载数据可以是前述当前负载数据1,第一历史负载数据可以是前述历史负载数据1,第一资源模块和第二资源模块可以是cpu、gpu、ddr、磁盘或网卡,第一资源模块和第二资源模块是不同的资源模块。不限于cpu、gpu、ddr、磁盘或网卡,第一资源模块和第二资源模块还可以是电子设备100中的其他资源模块。
177.在本技术实施例中,电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以分层架构的android系统为例,示例性说明电子设备100的软件结构。
178.参见图7,图7示出了本技术实施例示例性提供的电子设备100的软件结构框图。基于图7所示的软件结构框图,电子设备100对执行的事务进行类型划分,统计各类型事务的历史负载数据;电子设备100执行特定类型的事务时,基于该类型事务的历史负载数据和当前负载情况,进行负载预测,进而基于预测的当前负载进行资源调度。这样,提高了各类型事务的执行速度,有效提高了电子设备100的响应速度。
179.如图7所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可以将android系统从上至下分为应用程序层,应用程序框架层,硬件抽象层(hardware abstraction layer,hal)层以及内核层(kernel)。其中:
180.应用程序层包括一系列应用程序包,例如相机、图库等等。还可以包括可以启用电子设备100的前置摄像头的其他应用程序,例如微信、抖音等。
181.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
182.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。
183.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
184.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
185.如图7所示,本技术实施例中,应用程序框架层可以包括activity管理服务(activity manager service,ams)和事务类型识别模块。其中,ams是安卓(android)系统的系统服务,用于控制系统中不同的应用程序之间合理的调度与运行。ams的主要职责包括统一调度各应用程序的activity、管理应用程序的进程(process)、管理内存、调度服务(service)、调度任务(task)、查询系统当前运行状态等等。事务类型识别模块用于识别和管理电子设备100执行的事务的事务类型。事务类型识别模块用于识别电子设备100当前执行的事务的事务类型。在一些实施例中,事务类型识别模块可以通过ams获取前台运行的应用对应的activity,进而识别电子设备100执行的事务的类型。
186.在一些实施例中,应用程序框架层还可新增手势识别(gesture recognizer)模块,用于获取到的输入事件进行逻辑判断,识别输入事件对应的手势。例如,通过输入事件中包括的触摸坐标,触摸操作的时间戳等信息,判断该输入事件为指关节触摸事件或指肚触摸事件等。同时,基于输入事件对应的触摸轨迹,并判定输入事件的手势规律,根据不同的手势,响应不同的操作。在一些实施例中,事务类型识别模块可以基于手势识别模块识别的手势以及ams获取的前台运行的应用的activity,识别电子设备100执行的事务的事务类型。
187.内核层是硬件和软件之间的层。hal层及内核层(kernel)可以响应于应用程序框架层调用的功能,执行对应的操作。
188.本技术实施例中,如图7所示,内核层可以包括负载统计模块、历史负载获取模块、负载预测模块和资源调度模块。其中,负载统计模块用于在电子设备100本次执行事务时,统计电子设备100在各负载周期的当前负载。历史负载获取模块用于计算并存储各类型事务的历史完成时长和历史负载数据。负载预测模块用于基于各类型事务的当前负载和历史负载数据,预测本周期电子设备100的负载。在一些实施例中,内核层还可以包含触控芯片驱动、显示驱动、传感器驱动、摄像头驱动,音频驱动等等。
189.基于图7所示的软件结构框图,下面示例性的说明本技术实施例提供的负载处理方法。
190.在本技术的一些实施例中,触摸传感器180k接收到触控操作,相应的硬件中断被发给触控芯片,触控芯片将触摸操作的触摸信息发送给内核层的触控芯片驱动,触控芯片驱动将上述触摸信息发送给输入系统,输入系统将触控操作加工成原始输入事件(包括触摸坐标,触控操作的时间戳等信息),原始输入事件被存储在内核层。应用程序框架层从内核层的输入系统获取原始输入事件,通过手势识别模块识别原始输入事件对应的手势,并
通过ams获取前台运行的应用对应的activity 1,进而基于上述手势、activity 1、触摸坐标确定用户的输入操作。事务类型识别模块识别上述输入操作对应的第一事务的事务类型为第一事务类型。
191.例如,activity 1对应的用户界面为图2b所示新闻app的用户界面12,用户的输入操作为作用于新闻链接301a所在区域的单击操作,第一事务为获取图2c所示的新闻内容并显示。
192.内核层从事务类型识别模块获取第一事务对应的事务类型为第一事务类型。在执行第一事务的过程中,通过负载统计模块统计各资源模块在每个负载周期的当前负载;负载预测模块从历史负载获取模块中获取各资源模块的第一事务类型的历史负载数据,从负载统计模块获取各资源模块在本次已执行的各负载周期的当前负载,并基于每个资源模块的第一事务类型的历史负载数据和该资源模块的上述当前负载,预测该资源模块在本负载周期的当前负载;然后,资源调度模块基于该资源模块的预测负载对该资源模块进行资源调度。
193.示例性的,资源模块包括如图7所示的cpu、gpu、ddr、磁盘、网卡等,相应的,资源调度模块包括如图7所示的cpu资源调度模块、gpu资源调度模块、ddr资源调度模块、磁盘资源调度模块、网卡资源调度模块等。例如,cpu资源调度模块可以基于负载预测模块预测的本负载周期的cpu当前负载,调整cpu频率、实施cpu选核和/或实施cpu任务抢占等。
194.需要说明的是,图7仅是本技术实施例对软件结构框图的示例性说明,图7所示的软件结构框图的各层还可以包括其他模块,此处不作具体限定。
195.本技术实施例还提供了一种计算机可读存储介质。上述方法实施例中的全部或者部分流程可以由计算机程序来指令相关的硬件完成,该程序可存储于上述计算机存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。该计算机可读存储介质包括:只读存储器(read-only memory,rom)或随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的介质。
196.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
197.本技术实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
198.本技术实施例装置中的模块可以根据实际需要进行合并、划分和删减。
199.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

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

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

相关文献