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

资源调度方法和电子设备与流程

2022-11-06 02:14:46 来源:中国专利 TAG:


1.本技术涉及智能终端技术领域,特别涉及资源调度方法和电子设备。


背景技术:

2.在一些针对数据流例如视频流或者图片集等的指定处理过程中,需要将数据流依次通过多个处理环节才能得到数据流对应的最终处理结果,其中,每个处理环节的处理方法可以相同或者不同。上述处理环节也可以称为节点,节点依照对数据流的处理顺序构成数据流的处理路径。
3.当电子设备需要对某一种数据流进行某一指定处理时,如果数据流的数据量较大,由于处理路径中每个节点的处理速度各不相同,处理速度较快的节点不断向其下游的节点发送数据,而处理速度较慢的节点往往得不到足够的计算资源而出现数据堆积。这种中间节点的数据堆积,会降低电子设备针对于该种数据流的数据吞吐率。


技术实现要素:

4.本技术提供了一种资源调度方法和电子设备,能够提高电子设备的数据吞吐率。
5.第一方面,本技术提供了一种资源调度方法,应用于电子设备,包括:获取待调度节点的优先级;待调度节点是预设节点中未被调度的节点;待调度节点的优先级与待调度节点在预设路径中的执行次序正相关;预设路径用于记录预设节点的执行顺序;计算预设资源池的空闲资源量;根据空闲资源量和待调度节点的优先级为待调度节点调度资源。该方法中待调度节点的优先级与其在预设路径中的执行次序正相关,从而待调度节点在预设路径中的执行次序越大,也即距离预设路径的输出端口越近,待调度节点的优先级越高,待调度节点在预设路径中的执行次序越小,也即距离预设路径的输出端口越远,待调度节点的优先级越低,从而可以优先调度距离输出端口近的节点,有利于减少数据在节点中的堆积,提高电子设备的数据吞吐率。
6.在一种可能的实现方式中,获取待调度节点的优先级,包括:获取待调度节点的缓存队列信息,缓存队列信息用于记录待调度节点的缓存队列被占用的比例和/或待调度节点的待处理数据量;根据待调度节点的执行次序以及缓存队列信息计算待调度节点的优先级;待调度节点的优先级与待调度节点的待处理数据量正相关,与待调度节点的缓存队列被占用的比例正相关。
7.在一种可能的实现方式中,计算待调度节点的优先级之前,还包括:确定待调度节点的待处理数据量不为0,并且,确定第一节点的缓存队列未被占满;第一节点是预设路径中待调度节点的下一个节点。
8.在一种可能的实现方式中,计算待调度节点的优先级之前,还包括:判断待调度节点的待处理数据的数据来源是第二节点,第二节点的执行次序小于待调度节点的执行次序。
9.在一种可能的实现方式中,还包括:判断待调度节点的待处理数据的数据来源包
括第三节点,根据第三节点的优先级确定待调度节点的优先级,第三节点的执行次序大于待调度节点的执行次序。
10.在一种可能的实现方式中,根据空闲资源量和待调度节点的优先级为待调度节点调度资源之前,还包括:从待调度节点中剔除待处理数据量为0或者第一节点的缓存队列被占满的待调度节点;第一节点是预设路径中待调度节点的下一个节点。
11.在一种可能的实现方式中,根据空闲资源量和待调度节点的优先级为待调度节点调度资源,包括:获取优先级最高的待调度节点,计算优先级最高的待调度节点需要的资源量;如果空闲资源量不少于优先级最高的待调度节点需要的资源量,为优先级最高的待调度节点调度资源,更新空闲资源量;返回获取优先级次高的待调度节点,如此循环,直到空闲资源量少于一待调度节点需要的资源量。
12.在一种可能的实现方式中,根据空闲资源量和待调度节点的优先级为待调度节点调度资源,包括:获取优先级最高的待调度节点,计算优先级最高的待调度节点需要的资源量;如果空闲资源量不少于待调度节点需要的资源量,为待调度节点的调度资源,更新空闲资源量;返回获取优先级次高的待调度节点;如果空闲资源量少于优先级最高的待调度节点需要的资源量,返回获取优先级次高的待调度节点;如此循环,直到空闲资源量为0,或者空闲资源量少于优先级最低的待调度节点需要的资源量,或者,完成优先级最低的待调度节点的资源调度。
13.第二方面,本技术实施例提供一种电子设备,包括处理器和存储器,存储器用于存储计算机程序,当处理器执行计算机程序时,使得电子设备执行第一方面任一项的方法。
14.第三方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行第一方面任一项的方法。
15.第四方面,本技术提供一种计算机程序,当计算机程序被计算机执行时,用于执行第一方面的方法。
16.在一种可能的设计中,第四方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
附图说明
17.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
18.图1为本技术路径图的一个示例图;
19.图2为本技术电子设备的结构示意图;
20.图3为本技术电子设备的软件结构示意图;
21.图4为本技术路径图的另一个示例图;
22.图5为本技术资源调度方法一个实施例的流程图;
23.图6为本技术资源调度方法的场景示意图;
24.图7为本技术资源调度方法另一个实施例的流程图;
25.图8为本技术资源调度方法又一个实施例的流程图;
26.图9a和图9b为本技术一个实例的场景示意图;
27.图10a和图10b为本技术另一个实例的场景示意图。
具体实施方式
28.本技术的实施方式部分使用的术语仅用于对本技术的具体实施例进行解释,而非旨在限定本技术。
29.在一些针对数据流的指定处理中,原始的数据流(如视频流、图片集等)往往需要经过多个处理环节(也称为节点)才能得到最终处理结果。每个节点执行的数据处理可以相同或者不同。节点依照对数据流的处理顺序可以构成针对于数据流的处理路径。
30.为了便于说明,可以将上述处理路径通过路径图的方式表示出来,例如图1所示,数据流从处理路径的输入端口input进入处理路径,经过节点a~节点e的处理,最终处理结果从处理路径的输出端口output输出。
31.当电子设备需要对某一种数据流按照某一预设处理路径进行处理时,如果数据流的数据量较大,由于处理路径中每个节点的处理速度各不相同,较快的节点不断往下游发送数据,而较慢的节点往往得不到足够的计算资源而出现数据堆积。这种中间环节的数据堆积,会增加对电子设备的计算资源和内存资源的占用,并且降低电子设备的数据吞吐率。
32.为此,需要对节点的运行进行合理的调度,以提高电子设备的数据吞吐率。
33.一种常用的调度方法是先来先服务(first come first serve,fcfs)调度,fcfs的调度原则是:预设一个调度队列,各个节点会按照接收到输入数据的先后顺序,依次进入该队列,调度器会按调度队列中节点的顺序来调度各个节点进行处理。当某个节点突然涌入大量数据时,fcfs按规则优先处理那些先到达,但未必拥挤的节点,而堆积数据的节点无法得到优先疏解,也会导致电子设备的数据吞吐率下降。而且数据的堆积也增加对计算/内存/显存资源的占用,在高性能要求的场景下产生瓶颈。
34.另一种常用的调度方法是高响应比优先调度,是一种基于“等待时间”和“服务时间”的优先级调度方案,节点的优先级计算公式是:优先级=(等待时间 要求服务时间)/要求服务时间;按照以上公式:如果两个节点的等待时间相同,则服务时间越短的节点优先级越高;如果服务时间相同,则等待时间越长的节点优先级越高。该方案同样未解决节点数据堆积的问题,当某一节点出现突发的大量数据输入时,很可能导致节点的数据堆积,降低数据吞吐率。并且,节点的数据堆积同样会造成高资源占用的问题。
35.为此,本技术提出一种资源调度方法和电子设备,能够降低节点数据堆积的机率,进而提高电子设备的数据吞吐率。
36.图2示意了一种电子设备200的结构示意图。
37.电子设备200可以包括服务器(例如云服务器)、手机、可折叠电子设备、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、蜂窝电话、个人数字助理(personal digital assistant,pda)、增强现实(augmented reality,ar)设备、虚拟现实(virtual reality,vr)设备、人工智能(artificial intelligence,ai)设备、可穿戴式设备、车载设备、智能家居设备、或智慧城市设备中的至少一种。本技术实施例对该电子设备200的具体类型不作特殊限制。
38.图2示出了电子设备200的结构示意图。
39.电子设备200可以包括处理器110,内部存储器121;可选地,还可以包括:外部存储器接口120,通用串行总线(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等。
40.可以理解的是,本发明实施例示意的结构并不构成对电子设备200的具体限定。在本技术另一些实施例中,电子设备200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
41.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
42.控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
43.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
44.在一些实施例中,处理器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)接口等。
45.i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器110可以包含多组i2c总线。处理器110可以通过不同的i2c总线接口分别耦合触摸传感器180k,充电器,闪光灯,摄像头193等。例如:处理器110可以通过i2c接口耦合触摸传感器180k,使处理器110与触摸传感器180k通过i2c总线接口通信,实现电子设备200的触摸功能。
46.i2s接口可以用于音频通信。在一些实施例中,处理器110可以包含多组i2s总线。处理器110可以通过i2s总线与音频模块170耦合,实现处理器110与音频模块170之间的通
信。在一些实施例中,音频模块170可以通过i2s接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
47.pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过pcm总线接口耦合。在一些实施例中,音频模块170也可以通过pcm接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述i2s接口和所述pcm接口都可以用于音频通信。
48.uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过uart接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过uart接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
49.mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi),显示屏串行接口(display serial interface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现电子设备200的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现电子设备200的显示功能。
50.gpio接口可以通过软件配置。gpio接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,gpio接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。gpio接口还可以被配置为i2c接口,i2s接口,uart接口,mipi接口等。
51.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为电子设备200充电,也可以用于电子设备200与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如ar设备等。
52.可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备200的结构限定。在本技术另一些实施例中,电子设备200也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
53.充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过usb接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备200的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
54.电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
55.电子设备200的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信
模块160,调制解调处理器以及基带处理器等实现。
56.天线1和天线2用于发射和接收电磁波信号。电子设备200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
57.移动通信模块150可以提供应用在电子设备200上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
58.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
59.无线通信模块160可以提供应用在电子设备200上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
60.在一些实施例中,电子设备200的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备200可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,wcdma),时分码分多址(time-division code division multiple access,td-scdma),长期演进(long term evolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。所述gnss可以包括全球卫星定位系统(global positioning system,gps),全球导航卫星系统(global navigation satellite system,glonass),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
61.电子设备200通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲
染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
62.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备200可以包括1个或n个显示屏194,n为大于1的正整数。
63.电子设备200可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
64.isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
65.摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备200可以包括1个或n个摄像头193,n为大于1的正整数。
66.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备200在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
67.视频编解码器用于对数字视频压缩或解压缩。电子设备200可以支持一种或多种视频编解码器。这样,电子设备200可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
68.npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备200的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
69.外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展电子设备200的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
70.内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备200使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行
存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备200的各种功能应用以及数据处理。
71.电子设备200可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
72.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
73.扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备200可以通过扬声器170a收听音乐,或收听免提通话。
74.受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备200接听电话或语音信息时,可以通过将受话器170b靠近人耳接听语音。
75.麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。电子设备200可以设置至少一个麦克风170c。在另一些实施例中,电子设备200可以设置两个麦克风170c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备200还可以设置三个,四个或更多麦克风170c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
76.耳机接口170d用于连接有线耳机。耳机接口170d可以是usb接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,omtp)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the usa,ctia)标准接口。
77.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180a,电极之间的电容改变。电子设备200根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备200根据压力传感器180a检测所述触摸操作强度。电子设备200也可以根据压力传感器180a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
78.陀螺仪传感器180b可以用于确定电子设备200的运动姿态。在一些实施例中,可以通过陀螺仪传感器180b确定电子设备200围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180b可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180b检测电子设备200抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备200的抖动,实现防抖。陀螺仪传感器180b还可以用于导航,体感游戏场景。
79.气压传感器180c用于测量气压。在一些实施例中,电子设备200通过气压传感器180c测得的气压值计算海拔高度,辅助定位和导航。
80.磁传感器180d包括霍尔传感器。电子设备200可以利用磁传感器180d检测翻盖皮套的开合。在一些实施例中,当电子设备200是翻盖机时,电子设备200可以根据磁传感器180d检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
81.加速度传感器180e可检测电子设备200在各个方向上(一般为三轴)加速度的大小。当电子设备200静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
82.距离传感器180f,用于测量距离。电子设备200可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备200可以利用距离传感器180f测距以实现快速对焦。
83.接近光传感器180g可以包括例如发光二极管(led)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备200通过发光二极管向外发射红外光。电子设备200使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备200附近有物体。当检测到不充分的反射光时,电子设备200可以确定电子设备200附近没有物体。电子设备200可以利用接近光传感器180g检测用户手持电子设备200贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180g也可用于皮套模式,口袋模式自动解锁与锁屏。
84.环境光传感器180l用于感知环境光亮度。电子设备200可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180l也可用于拍照时自动调节白平衡。环境光传感器180l还可以与接近光传感器180g配合,检测电子设备200是否在口袋里,以防误触。
85.指纹传感器180h用于采集指纹。电子设备200可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
86.温度传感器180j用于检测温度。在一些实施例中,电子设备200利用温度传感器180j检测的温度,执行温度处理策略。例如,当温度传感器180j上报的温度超过阈值,电子设备200执行降低位于温度传感器180j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备200对电池142加热,以避免低温导致电子设备200异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备200对电池142的输出电压执行升压,以避免低温导致的异常关机。
87.触摸传感器180k,也称“触控器件”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备200的表面,与显示屏194所处的位置不同。
88.骨传导传感器180m可以获取振动信号。在一些实施例中,骨传导传感器180m可以获取人体声部振动骨块的振动信号。骨传导传感器180m也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180m也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180m获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180m获取的血压跳动信号解析心率信息,实现心率检测功能。
89.按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。
电子设备200可以接收按键输入,产生与电子设备200的用户设置以及功能控制有关的键信号输入。
90.马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
91.指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
92.sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和电子设备200的接触和分离。电子设备200可以支持1个或n个sim卡接口,n为大于1的正整数。sim卡接口195可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。sim卡接口195也可以兼容不同类型的sim卡。sim卡接口195也可以兼容外部存储卡。电子设备200通过sim卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备200采用esim,即:嵌入式sim卡。esim卡可以嵌在电子设备200中,不能和电子设备200分离。
93.电子设备200的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以分层架构的android系统为例,示例性说明电子设备200的软件结构。
94.图3是本技术实施例的电子设备200的软件结构框图。
95.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为五层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime,art)和原生c/c 库,硬件抽象层(hardware abstract layer,hal)以及内核层。
96.应用程序层可以包括一系列应用程序包。
97.如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息等应用程序。
98.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
99.如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,资源管理器,通知管理器,活动管理器,输入管理器等。
100.窗口管理器提供窗口管理服务(window manager service,wms),wms可以用于窗口管理、窗口动画管理、surface管理以及作为输入系统的中转站。
101.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。该数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
102.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
103.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,
视频文件等等。
104.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
105.活动管理器可以提供活动管理服务(activity manager service,ams),ams可以用于系统组件(例如活动、服务、内容提供者、广播接收器)的启动、切换、调度以及应用进程的管理和调度工作。
106.输入管理器可以提供输入管理服务(input manager service,ims),ims可以用于管理系统的输入,例如触摸屏输入、按键输入、传感器输入等。ims从输入设备节点取出事件,通过和wms的交互,将事件分配至合适的窗口。
107.安卓运行时包括核心库和安卓运行时。安卓运行时负责将源代码转换为机器码。安卓运行时主要包括采用提前(ahead or time,aot)编译技术和及时(just in time,jit)编译技术。
108.核心库主要用于提供基本的java类库的功能,例如基础数据结构、数学、io、工具、数据库、网络等库。核心库为用户进行安卓应用开发提供了api。
109.原生c/c 库可以包括多个功能模块。例如:表面管理器(surface manager),媒体框架(media framework),libc,opengl es、sqlite、webkit等。
110.其中,表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。媒体框架支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。opengl es提供应用程序中2d图形和3d图形的绘制和操作。sqlite为电子设备200的应用程序提供轻量级关系型数据库。
111.硬件抽象层运行于用户空间(user space),对内核层驱动进行封装,向上层提供调用接口。
112.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
113.下面结合捕获拍照场景,示例性说明电子设备200软件以及硬件的工作流程。
114.当触摸传感器180k接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像模组193捕获静态图像或视频。
115.为了便于理解,本技术以下实施例将以具有图2和图3所示结构的电子设备为例,结合附图和应用场景,对本技术实施例提供的方法进行具体说明。
116.本技术实施例的资源调度方法可以适用于上述电子设备中,作为电子设备操作系统提供的功能或者电子设备安装的应用程序的功能存在,例如,本技术实施例的资源调度
方法可以应用于云服务器中的人工智能(artificial intelligence,ai)框架推理系统。
117.首先对本技术实施例资源调度方法的可能使用场景进行示例性而非限定性的说明。
118.本技术实施例可以适用于在以下场景中进行资源调度:电子设备对数据流(data stream)按照预设路径进行一系列预设处理,得到最终处理结果。
119.上述的数据流是一组有序、有起点和终点的字节的数据序列。例如可以是视频流、音频流、图片集等,本技术不作限定。
120.预设路径上的每一个预设处理环节可以称为节点,例如节点可以是ai算子、线程等。
121.上述预设路径的输入端口接收数据流,输出端口输出数据流的最终处理结果。预设路径的输入端口和输出端口之间存在若干个具有执行顺序的节点。每个节点的输出端可以为1个或者多个,输入端可以为1个或者多个,也即是说,上述预设路径上可以存在数据分支、回环、合并等。上述预设路径可以通过例如图1所示的路径图来表示,节点c输出的数据返回节点b,作为节点b的输入数据,可以称为数据的回环;节点c输出的数据分别返回节点b、以及输出至节点d,可以称为数据的分支;节点b和节点c分别具有2路输入数据,可以称为数据的合并。
122.电子设备为上述对数据流进行处理的过程分配的、用于支持处理过程中节点运行的资源集合称为资源池。上述资源可以包括计算资源、和/或内存资源、和/或显示资源等。上述资源池可以是线程池(threads pool),线程池一般是指由电子设备的操作系统维护的容纳线程的容器。电子设备可以为路径中的节点调度资源池中的资源,从而基于被调度的资源运行节点,对节点的输入数据进行处理。
123.对上述场景举实例说明:
124.假设电子设备需要对图片进行以下的一系列处理:从图片中检测到人体图像的轮廓,按照轮廓抠出人体图像,对人体图像进行放大处理,将放大处理后的人体图像放置回图片的原来位置,则上述对于图片的处理可以构成例如图4所示的路径图,路径图中包括唯一的一条路径,路径上包括4个节点,分别是:节点a,从图片中检测到人体图像的轮廓;节点b,按照轮廓抠出人体图像;节点c,对人体图像进行放大处理;节点d,将放大处理后的人体图像放置回图片的原来位置。
125.节点a~节点d的执行次序分别为1~4,路径的输入端口接收的数据是需要处理的图片,输出端口输出的数据是其中的人体图像被放大后的图片。
126.以上的图4仅以一张图片举例,如果电子设备需要对较大量的图片分别执行上述处理,则可以使用本技术实施例的资源调度方法,来对各个节点进行资源调度,提高电子设备对于图片的处理效率,提高数据吞吐率。
127.图5为本技术资源调度方法一个实施例的流程图,如图5所示,该方法可以包括:
128.步骤501:获取待调度节点的优先级。
129.其中,待调度节点是预设节点中未被调度的节点。本技术实施例中,预设节点可以分为:运行节点和待调度节点。如果节点被调度资源,则节点将基于被调度的资源运行,成为运行节点。运行节点在运行结束后,转为待调度节点。
130.其中,待调度节点的优先级与待调度节点在预设路径中的执行次序正相关;也即,
待调度节点在预设路径中的执行次序越大,待调度节点的优先级越高,待调度节点在预设路径中的执行次序越小,待调度节点的优先级越低。以图4举例来说,在不考虑其他影响因素的情况下,节点a的执行次序为1,节点b的执行次序为2,节点b的优先级大于节点a的优先级。
131.其中,预设路径用于记录预设节点的执行顺序。预设路径例如图1和图4所示,这里不赘述。
132.步骤502:计算预设资源池的空闲资源量。
133.步骤503:根据空闲资源量和待调度节点的优先级为待调度节点进行资源调度。
134.上述步骤501和步骤502之间的执行顺序不限制。
135.该方法中待调度节点的优先级与其在预设路径中的执行次序正相关,从而待调度节点在预设路径中的执行次序越大,也即距离预设路径的输出端口越近,待调度节点的优先级越高,待调度节点在预设路径中的执行次序越小,也即距离预设路径的输出端口越远,待调度节点的优先级越低,从而可以优先调度距离输出端口近的节点,有利于减少数据在节点中的堆积,提高电子设备的数据吞吐率。
136.以下,通过具体实例对本技术资源调度方法进行更为详细的说明。
137.如图6所示,在本技术的一个实施例中,可以在电子设备中设置以下结构:
138.若干个节点61,每个节点61具有对应的缓存队列,用于缓存节点的待处理数据,上述待处理数据即是需要节点处理的数据,也即节点的输入数据。上述若干个节点61是针对于同一数据流的不同处理环节,且节点61之间具有预设的执行顺序,构成预设路径。例如在图6所示的路径图中以包括节点a~节点d共4个节点为例。
139.对于具有数据回环的路径,某些节点可能既可以接收到下游节点输出的数据,以下称为回流数据,也可以接收到上一个节点输出的数据,以下称为正常数据。以下将这种节点称为回环节点。例如图1所示路径图中的节点b即为回环节点。
140.在本技术实施例中,为了使得回流数据能够更快的从预设路径的输出端口输出,本技术实施例的回环节点可以将接收到的回流数据放置于正常数据之前,也即将接收到的回流数据放置于缓存队列的头部,优先处理。
141.节点列表管理模块62,用于维护节点列表,节点列表用于记录待调度节点。
142.节点列表中除了记录待调度节点外,还可以为待调度节点设置指针字段和优先级字段。指针字段用于指示待调度节点的地址,优先级字段用于记录待调度节点的优先级。可选地,还可以为待调度节点设置第一字段,用于记录待调度节点是否可以被调度。对优先级字段和第一字段分别说明如下。
143.优先级字段,用于记录待调度节点的优先级。
144.可选地,待调度节点的优先级可以根据待调度节点在预设路径中的执行次序计算,待调度节点的执行次序与待调度节点的优先级正相关,也即:待调度节点的执行次序的数值越小,也即距离预设路径的输出端口越远,待调度节点的优先级越低,待调度节点的执行次序的数值越大,也即距离预设路径的输出端口越近,待调度节点的优先级越高,从而可以优先调度距离预设路径的输出端口近的节点,有利于减少数据在节点中的堆积。举例来说,对于图6所示的路径图,在不考虑其他影响因素的条件下,节点a~节点d的优先级依次升高。
145.应理解,对于例如图1所示的具有数据回环、分支等复杂结构的路径,路径中节点的执行次序可以依照距离输入端口的远近来设置,不必须考虑数据回环等因素,以图1为例,可以将节点a~节点e的执行次序依次设置为1~5。
146.可选地,为了进一步提高待调度节点的优先级的计算精确度,以便于本技术实施例的方法获得更好的资源调度效果,待调度节点的优先级还可以进一步根据:待调度节点的缓存队列被占用比例,和/或,缓存队列中待处理数据量等来计算。待调度节点的优先级与缓存队列被占用比例正相关,也即,缓存队列被占用比例越大,待调度节点的优先级相对越高,缓存队列被占用比例相对越小,待调度节点的优先级相对越低,从而优先调度缓存队列被占用比例相对较大的节点,可以降低该节点出现数据堆积的机率。待调度节点的优先级与缓存队列中待处理数据量正相关,也即缓存队列中数据量相对越大,待调度节点的优先级相对越高,缓存队列中数据量相对越小,待调度节点的优先级相对越低,从而优先调度缓存队列中数据量相对较大的节点,可以降低该节点出现数据堆积的机率。
147.如果待调度节点的优先级的计算不止根据待调度节点在预设路径中的执行次序这一个参数计算,可以为每个参数设置权重,计算每个参数值与权重的乘积,再将乘积相加得到最终的优先级。举例来说,如果待调度节点的优先级根据待调度节点的执行次序、以及待调度节点的待处理数据量计算,可以为待调度节点的执行次序以及待处理数据量分别设置权重,具体的权重值本技术实施例不作限定,此时,待调度节点的优先级x的计算公式例如下式所示:x=a*y b*z;其中,y表示待调度节点的执行次序,a是执行次序的权重值,z表示待调度节点的待处理数据量,b是待处理数据量的权重值。
148.上述节点优先级的计算方法可以适用于结构简单的路径例如图4和图6中所示的路径,也可以适用于结构相对复杂的路径例如图1所示的路径。
149.但是,对于包括数据回环的路径,为了使得回流回上游节点的数据能够更快的完成处理,从路径的输出节点输出,提高数据吞吐率,本技术实施例的方法中,可以针对上述回环节点设置对应的优先级计算方法。具体的优先级计算方法举例说明如下:
150.对于回环节点,其缓存队列中待处理数据的数据来源有至少2种,第一种是输出回流数据的下游节点,第二种是待调度节点的上一个节点。而且,其缓存队列中可能存在某一种数据来源的待处理数据,也可以2种数据来源的数据共存。
151.基于此:如果回环节点中待处理数据的数据来源是上一个节点,也即待处理数据都是上一个节点输出的正常数据,则回环节点的优先级计算方法可以参考前述优先级计算方法;如果回环节点中待处理数据的数据来源是下游节点,或者下游节点和上一个节点,也即待处理数据仅是回流数据,或者回流数据与正常数据都存在,则可以根据下游节点的优先级确定该回环节点的优先级。例如,可以将回环节点的优先级直接设置为下游节点的优先级。
152.举例来说,图1中节点b的待处理数据中如果都是回流数据,或者既有回流数据也有正常数据,则可以将节点b的优先级直接设置为节点c的优先级,例如节点c的优先级是4.8,则节点b的优先级也设置为4.8。
153.此时,节点列表中将出现优先级相同的2个节点,此时,可以优先调度执行次序的数值相对更大,也即位置更为接近预设路径输出端口的节点,也即认为执行次序数值相对更大的节点的优先级更高。
154.基于该优先级计算方法,可以优先调度在处理环节上相对更为靠后的回流数据,也即是距离输出端口更近的数据,有利于减少数据在处理过程中的堆积,提高数据吞吐率。
155.第一字段,用于指示待调度节点是否可以被调度,每个待调度节点的第一字段可以是动态变化的。
156.虽然节点列表中记录的待调度节点均是未被调度运行的节点,但是仍然可能存在一些特殊情况使得某些待调度节点不适合被调度,为了使得本技术实施例的资源调度方法的调度效率更高,从而可以在节点列表中为节点设置第一字段。
157.在一种可能的实现方式中,第一字段的取值可以包括:不可调度(inactive)、以及可调度(active)。
158.例如,如果图4中节点a的下一个节点b的缓存队列已满,那么,如果调度节点a运行,可能会造成节点a输出至节点b的数据无法缓存至节点b的缓存队列,从而造成节点b的缓存队列出现数据溢出,造成数据丢失,因此,可以将节点a的第一参数设置为不可调度,以便于调度器暂时不调度节点a,直到节点b的缓存队列不再是已满的状态,可以将节点a的第一参数设置为可调度,以便于调度器为节点a的运行调度资源。再例如,如果图4中节点c的缓存队列中没有数据,则该节点c暂时无需被调度,因此,可以将节点c的第一参数设置为:不可调度,以避免调度器为节点c调度资源,增加调度器的工作量,降低调度器的调度效率。
159.可选地,由于有多种原因可以导致节点不可调度,可以将第一字段的取值“不可调度”进一步细分为:等待(pending),用于指示待调度节点的下一个节点的缓存队列已满;空(empty),用于指示待调度节点的缓存队列中没有数据,等。以下实施例中,以第一字段取值为:pending、empty、active为例。
160.需要说明的是,上述节点列表中仅记录待调度节点,在另一个实施例中,节点列表中也可以记录运行节点,此时,可以为运行节点设置标记,以便于区分节点列表中的待调度节点和运行节点。
161.需要说明的是,在更新节点列表时,对于上述节点列表中标记为不可调度的待调度节点,可以计算其优先级,也可以不计算其优先级,本技术实施例不作限定。
162.节点列表管理模块62可以按照预设更新周期对节点列表中的数据进行更新,更新周期的具体取值本技术不作限定。
163.资源池管理模块63,用于管理资源池。资源池管理模块63管理的资源池是电子设备为若干个节点61的运行分配的资源集合。
164.调度器(scheduler)64,用于从资源池中为节点的运行调度资源。
165.调度器64可以具有预设调度周期,在每个调度周期,从资源池中为节点的运行调度资源。可选地,为了使得调度器64在为节点调度资源时,能够获取到节点的实时信息,调度器64的调度周期可以大于等于节点列表管理模块62的更新周期。优选地,调度器64的调度周期等于节点列表管理模块62的更新周期,且调度周期的触发以及更新周期的触发可以同时或者时间相近。
166.可选地,如果本技术实施例中的电子设备的软件系统采用分层架构,上述节点61、节点列表管理模块62、资源池管理模块63以及调度器64可以位于同一层或者不同层,本技术实施例不作限定。以图3所示的分层架构的android系统为例,节点61可以设置于应用程序层,节点列表管理模块62、资源池管理模块63以及调度器64可以设置于应用程序层或者
应用程序框架层。
167.基于图6所示结构,本技术资源调度方法的一个实施例的流程图如图7所示,在图7中,以更新周期的起始时刻早于调度周期的起始时刻为例,节点列表管理模块进行节点列表的更新后,调度器的调度周期到来,根据更新后的节点列表进行资源调度。如图7所示,该方法可以包括:
168.步骤701:节点列表管理模块判断更新周期到来,分别向节点列表中记录的每个待调度节点发送第一请求消息,第一请求消息用于请求待调度节点的缓存队列信息。
169.缓存队列信息可以包括待调度节点的缓存队列被占用的比例、和/或待调度节点的待处理数据量。
170.步骤702:待调度节点响应于第一请求消息,将自身的缓存队列信息发送至节点列表管理模块。
171.步骤703:节点列表管理模块根据待调度节点的缓存队列信息更新节点列表。
172.步骤704:调度器判断调度周期到来,向资源池管理模块发送第二请求消息,第二请求消息用于请求资源池的空闲资源信息。
173.空闲资源信息可以包括:空闲资源量。
174.步骤705:资源池管理模块响应于第二请求消息,将资源池的空闲资源信息发送至调度器。
175.步骤706:调度器向节点列表管理模块发送第三请求消息,第三请求消息用于请求优先级最高的待调度节点。
176.步骤707:节点列表管理模块响应于第三请求消息,查找到节点列表中第一字段为active、且优先级最高的节点,将该节点的节点信息发送至调度器。
177.节点信息可以包括:节点的地址以及运行需要的资源量。
178.节点运行需要的资源量可以由节点列表管理模块根据节点的待处理数据量计算,具体计算方法本技术不再赘述。节点的待处理数据量可以由节点在步骤702中发送至节点列表管理模块,也可以由节点列表管理模块在接收到第三请求消息后实时从节点获取,本技术实施例不作限定。
179.其中,步骤704~步骤705与步骤706~步骤707之间的执行顺序不限制,在调度器判断调度周期到来之后执行即可。
180.步骤708:调度器判断资源池的空闲资源量是否不小于上述优先级最高的节点运行需要的资源量,如果不小于,执行步骤709,否则,执行步骤711。
181.步骤709:调度器为上述优先级最高的节点调度运行需要的资源,根据上述优先级最高的节点的地址控制上述优先级最高的节点运行,向节点列表管理模块发送第一反馈消息,用于指示上述优先级最高的节点完成资源调度。
182.步骤710:节点列表管理模块响应于第一反馈消息,从节点列表中删除上述优先级最高的节点。
183.之后,调度器可以返回步骤706,重新向节点列表管理模块发送第三请求消息,此时,节点列表管理模块向调度器返回节点列表中当前第一字段为active、且优先级最高的节点,也即是排在上述优先级最高的节点之后的优先级次高的节点,如此循环,直到资源池的空闲资源量小于某一待调度节点运行需要的资源量,执行步骤711,当前调度周期的资源
调度结束。
184.举例来说,节点列表中第一字段为active的节点有节点a~节点c,优先级依次升高,则节点列表管理模块第一次接收到第三请求消息,反馈节点c的节点信息;如果调度器为节点c调度资源,控制节点c运行,重新发送第三请求消息,节点列表管理模块将反馈节点b的节点信息;如果调度器判断空闲资源不足以支持节点b的运行,则当前调度周期的资源调度结束。
185.可选地,如果节点列表中记录运行节点,则节点列表管理模块可以在节点列表中将上述优先级最高的节点标记为正在运行。
186.步骤711:调度器向节点列表管理模块发送第二反馈消息,用于指示上述优先级最高的节点调度失败;本分支流程结束。
187.应理解,图7中以步骤701~步骤703在步骤704之前执行为例,实际上,步骤701~步骤703只要在步骤707之前执行完成即可,其与步骤704~步骤706之间的执行顺序本技术不作限定。例如,在另一种可能的实现方式中,如图8所示,步骤701~步骤703在步骤706~步骤707之间执行,此时,节点列表管理模块可以不设置更新周期,相应的,在图8所示的实施例中,步骤701可以替换为:节点列表管理模块接收到第三请求消息后,分别向节点列表中记录的每个待调度节点发送第一请求消息。也即是说,节点列表管理模块的节点列表更新不再由更新周期触发,而是由接收到第三请求消息触发。图8所示实施例中其他步骤的实现可以参考图7所示实施例,这里不赘述。
188.在图7所示的实施例中,调度器如果判断资源池的空闲资源量小于上述优先级最高的节点运行需要的资源量,则执行步骤711,分支流程结束,在本技术提供的另一个实施例中,在步骤708中调度器如果判断资源池的空闲资源量小于上述优先级最高的节点运行需要的资源量,则执行步骤711,之后,返回步骤706,重新向节点列表管理模块发送第三请求消息,此时,节点列表管理模块向调度器返回的是排在上述优先级最高的节点之后、第一字段为active且优先级最高的节点的节点信息,也即是第一字段为active且优先级次高的节点的节点信息,如此循环,直到资源池的空闲资源调度完毕,或者,资源池的空闲资源满足或不满足节点列表中第一字段为active、优先级最低的待调度节点。举例来说,节点列表中第一字段为active的节点有节点a~节点c,优先级依次升高,则节点列表管理模块第一次接收到第三请求消息,反馈节点c的节点信息;如果调度器为节点c调度资源,控制节点c运行,重新发送第三请求消息,节点列表管理模块将反馈节点b的节点信息;如果空闲资源不足以支持节点b的运行,调度器重新发送第三请求消息,节点列表管理模块将反馈节点a的节点信息;如果空闲资源可以支持节点a的运行,为节点a调度资源,控制节点a运行,否则,本调度周期的资源调度结束。
189.以下通过实例对图7所示方法进行说明。
190.参见图9a,假设预设路径包括节点a~节点d共4个节点;假设节点的优先级计算方法为:优先级=节点次序 0.3*待处理数据量。缓存队列中每个小格代表待处理数据量的1个数量单位。
191.在未输入数据流之前,节点a~节点d的缓存队列a~d均为空,也即没有数据;
192.节点列表管理模块中记录有节点a~节点d,且每个节点的第一字段均为empty,优先级依次为4、3、2、1。
193.输入数据流后,开始进行资源调度,节点a的缓存队列a中开始接收到待处理数据,此时,节点列表管理模块在更新周期到来时,更新节点a的第一字段为active,优先级为:1 0.3x,x是缓存队列a中的待处理数据量;
194.相应的,调度器在调度周期到来时,首先为节点a调度资源,控制节点a运行。之后,节点b的缓存队列中开始接收到数据。
195.以此类推,经过一段时间的运行后,假设每个节点的缓存队列占用情况例如图9b所示,缓存队列a中的待处理数据为1个数量单位,缓存队列b已满,缓存队列c中没有待处理数据,缓存队列d中为3个数量单位的待处理数据。
196.则,如果当前不存在正在运行的节点,更新周期到来时,节点列表管理模块可以更新节点列表,具体节点列表例如图9b中所示。其中,节点d的第一字段为empty,优先级为4 0.3*1=4.3;节点b的第一字段为active,优先级为2 0.3*8=4.4;节点c的第一字段为active,优先级为3 0.3*0=3;节点a的第一字段为pending,优先级为1 1*0.3=1.3;
197.相应的,调度器在调度周期到来时,优先为节点b调度资源,控制节点b运行,从而可以缓解节点b中的数据堆积。
198.参见图10a,预设路径包括节点a~节点d共4个节点,且路径中存在数据的回环,具体为节点c的输出数据可以回流至节点b,作为节点b的输入数据。
199.假设节点a、c、d的优先级计算方法为:优先级=节点次序 0.3*待处理数据量。
200.节点b的优先级计算方法依照位于缓存队列头部的数据的不同来源具有不同的优先级计算方法。如果缓存队列头部的数据来自于节点c,则节点b的优先级与节点c的优先级相同。如果缓存队列头部的数据来自于节点a,则节点b的优先级按照上述计算公式计算得到。
201.在资源调度方法未运行之前,节点a~节点d的缓存队列均为空,也即没有数据;
202.节点列表管理模块中记录有节点a~节点d,且每个节点的第一字段均为empty,优先级依次为4、3、2、1。
203.开始运行后,节点a的缓存队列a中开始接收到待处理数据,此时,节点列表管理模块在更新周期到来时,更新节点a的第一字段为active,优先级为:1 0.3x,x是缓存队列a中的待处理数据量;
204.相应的,调度器在调度周期到来时,首先为节点a调度资源,控制节点a运行。
205.以此类推,经过一段时间的运行后,假设每个节点中的缓存队列占用情况例如图10b所示。
206.则,如果当前不存在被调度正在运行的节点,更新周期到来时,节点列表管理模块可以更新节点列表,具体节点列表例如图10b中所示。其中,节点d的第一字段为active,优先级为4 0.3*1=4.3;节点c的第一字段为active,优先级为3 0.3*6=4.8;节点b的第一字段为active,优先级为2 0.3*2=2.6,或者,优先级为节点c的优先级4.8;节点a的第一字段为active,优先级为1 0.3*1=1.3;
207.相应的,调度器在调度周期到来时,优先为节点c调度资源,控制节点c运行,从而可以防止节点c中的数据堆积;进而,如果仍然存在空闲资源,假设缓存队列b中头部的数据是节点c回流的数据,则节点b的优先级为4.8,调度器为节点b调度资源,控制节点b运行,从而使得从节点c回流到节点b的数据能够优先被调度处理。
208.可以理解的是,上述实施例中的部分或全部步骤或操作仅是示例,本技术实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。
209.本技术提供一种电子设备,包括一个或多个处理器;存储器;多个应用程序;以及一个或多个计算机程序。上述一个或多个计算机程序被存储在上述存储器中,上述一个或多个计算机程序包括指令,当上述指令被上述设备执行时,使得上述设备执行图5、图7或图8所示实施例提供的资源调度方法。
210.本技术还提供一种电子设备,所述设备包括存储介质和中央处理器,所述存储介质可以是非易失性存储介质,所述存储介质中存储有计算机可执行程序,所述中央处理器与所述非易失性存储介质连接,并执行所述计算机可执行程序以实现本技术图5、图7或图8所示实施例提供的方法。
211.本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行本技术图5、图7或图8所示实施例提供的方法。
212.本技术实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行本技术图5、图7或图8所示实施例提供的方法。
213.本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示单独存在a、同时存在a和b、单独存在b的情况。其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a和b,a和c,b和c或a和b和c,其中a,b,c可以是单个,也可以是多个。
214.本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
215.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
216.在本技术所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory;以下简称:rom)、随机存取存储器(random access memory;以下简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
217.以上所述,仅为本技术的具体实施方式,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献