有效
基于组件休眠的SCA波形创建释放优化方法和装置
王晓波、范建华、成洁、赵框、胡永扬
中国人民解放军国防科技大学
摘要
本申请公开了一种基于组件休眠的SCA波形创建释放优化方法和装置,属于软件无线电技术领域。本申请所述方法和装置解决了波形创建释放时的效率优化问题,提出的方法能够在波形和平台未发生变化的情况下,通过读取波形组件的休眠配置参数,根据组件休眠策略对波形组件释放时不执行资源释放和进程终止操作,而只是将组件根据策略放入休眠池,相关进程放入后台或者运行优先级调低,当波形再次创建时则唤醒该休眠组件,避免了组件重复加卸载的时间和空间开销,有效提升了波形创建和释放效率。同时,由于其方法和装置是在核心框架平台上进行了扩展,其波形组件加载和端口连接还是使用SCA标准规范方法,因此也能保证波形部署过程的标准符合性。
1.一种基于组件休眠的SCA波形创建释放优化方法,其特征在于:包括以下步骤:波形创建:解析波形SAD配置文件信息,获取组件列表,启动组件并创建波形的管理器实例,完成波形创建,并根据波形优化需求,设置波形中各个组件休眠配置参数值为true;波形启动:启动波形实例;波形停止:停止波形实例;波形休眠:如果该波形中组件休眠参数为true,则根据波形各个组件的加卸载时间、占用资源、运行活跃度统计进行排序,依据一种策略确定波形各个组件的释放顺序,对该波形组件设置状态为休眠suspend状态,加载该组件的设备并不实际将其卸载;波形释放:如果该波形中组件休眠参数为false,或者该加载设备剩余加载容量难以满足新波形组件加载的最低需求时,调用波形组件的releaseObject()方法完成波形组件卸载;波形重新创建:判断波形各个组件是否有休眠状态,如果是休眠,则之间将其置为活跃状态,如果不是休眠状态,则在加载设备上执行组件加载操作。
2.根据权利要求1所述的基于组件休眠的SCA波形创建释放优化方法,其特征在于:所述波形创建具体包括以下步骤:波形创建准备:用户启动波形创建操作开始创建波形,并解析获取波形组件信息和平台加载设备信息;第一次组件休眠策略判断:若如果组件配置参数suspend的设置值为true,则进行组件唤醒,否则正常执行组件加载过程;组件唤醒:从组件休眠池中根据组件ID信息查找组件运行对象,如果找到休眠组件,则将其进程唤醒,运行任务优先级调至正常状态,进行组件端口注册,如果休眠组件未找到,则正常执行组件加载过程;波形组件加载:根据波形组件的加载需求和加载设备的分配关系,在对应加载设备上加载并运行组件;组件端口连接:波形所有组件注册完成后,调用组件PortAccessor接口的connectUsesPort()方法完成端口连接;波形初始化配置:根据波形配置文件查找获取波形的装配控制器组件实例,对波形进行初始化参数配置;波形创建完成:返回波形的应用管理器组件实例。
3.根据权利要求2所述的基于组件休眠的SCA波形创建释放优化方法,其特征在于:所述波形创建准备具体包含以下步骤:创建接口调用:用户调用SCA波形应用工厂组件create方法,开始创建波形,create操作的参数包含创建波形名称、组件与加载设备的分配关系;波形组件信息获取:解析波形配置文件,获取波形各个组件信息,包括组件实现代码、配置参数、组件配置文件和组件端口连接关系;平台加载设备信息获取:获取平台加载设备的类型、设备加载能力,核心框架部署波形组件时,通过读取平台加载设备的adminState、usageState、operationalState属性方法,获得设备运行状态,调用所述平台加载设备的query方法,计算加载容量。
4.根据权利要求2所述的基于组件休眠的SCA波形创建释放优化方法,其特征在于:所述波形组件加载具体包含以下步骤:加载容量分配:根据波形组件加载需求,在加载设备上调用allocateCapacity()方法,分配加载容量接口;组件加载:在加载设备上调用load()接口,载入波形组件二进制代码;组件执行:如果该组件加载类型是Executable,则需要在加载设备上调用execute()方法,执行组件的二进制代码,并保存组件进程ID;组件注册:组件加载完成后,向应用工厂组件的注册管理器注册自身对象。
5.根据权利要求2所述的基于组件休眠的SCA波形创建释放优化方法,其特征在于:所述波形释放具体包括以下步骤:波形释放准备:用户调用波形管理器组件实例的releaseObject()方法操作,开始释放波形;组件端口断连:根据波形组件的端口连接列表,调用组件PortAccessor接口的disconnectPorts()方法完成端口断连;第二次组件休眠策略判断:如果组件配置参数suspend的设置值为true,则进入组件休眠步骤,否则进入组件释放步骤;组件休眠:将组件的进程优先级设置为最低,并将组件运行对象信息保存到组件休眠池,用于波形再次创建时的组件唤醒操作;组件休眠后,进入波形释放完成步骤,等待其它组件完成释放;组件释放:释放组件对象,并释放其占用的设备资源,组件释放后,进入波形释放完成步骤,等待其它组件完成释放;波形释放完成:当波形全部组件都完成释放后,释放波形自身的应用管理器组件实例对象,完成波形的释放操作。
6.根据权利要求5所述的基于组件休眠的SCA波形创建释放优化方法,其特征在于:组件休眠时,根据策略,对休眠池内的休眠组件执行组件释放操作,其中组件休眠池释放控制包含以下策略:先进先出策略:当休眠池达到了释放条件时,根据进入休眠池的先后顺序,对最先进入休眠池的组件执行组件释放操作;基于组件活跃度的释放策略:根据组件的加载历史进行统计,如果组件经常需要加载,则活跃度较高,当休眠池达到释放条件时,通过对组件的加载次数进行排序,对加载次数最低的、活跃度最小的组件执行组件释放操作;基于组件加载资源的释放策略:根据组件加载消耗时间和消耗资源进行排序,当休眠池达到释放条件时,对加载消耗时间最小或消耗资源最小的组件执行组件释放操作。
7.根据权利要求6所述的基于组件休眠的SCA波形创建释放优化方法,其特征在于:所述释放条件具体包含:基于平台闲时运行的释放策略:根据平台运行状态来判断,如果平台运行时处理器占用率低于某设定值,则认为平台处于闲时运行状态,可以将组件进行资源释放;基于休眠池容量的释放策略:根据组件休眠池容量的设置,如果休眠池已满,则对休眠池执行释放控制操作。
8.根据权利要求5所述的基于组件休眠的SCA波形创建释放优化方法,其特征在于:所述组件释放具体包含以下步骤:组件对象释放:调用组件releaseObject()方法,将其内存对象销毁;组件进程终止:如果该组件加载类型是Executable,则根据其运行进程ID,调用terminate()方法终止组件进程;组件卸载:调用组件对应加载设备的unload()方法,卸载组件的二进制代码;加载容量回收:调用组件对应加载设备的deallocateCapacity()方法,回收分配的加载容量;组件注销:调用应用工厂组件的组件注册器unregisterComponent()方法,将波形组件从注册器上注销。
9.一种基于组件休眠的SCA波形创建释放优化装置,用于实现权利要求1~8任一所述的基于组件休眠的SCA波形创建释放优化方法,其特征在于:包括,组件休眠参数解析器模块:用于对波形休眠参数进行解析,判断其是否支持休眠;组件休眠策略器模块:用配置组件休眠策略,控制组件休眠池容量;组件休眠唤醒控制器:根据设定的组件休眠策略,以及组件休眠参数,对组件进行休眠和唤醒控制;组件休眠池模块:用于存储休眠组件的相关信息;波形组件加载模块:用于在加载设备对象上执行加载对应的组件,直到所有组件都加载完毕;组件端口连接模块:用于对波形组件的端口进行连接,调用组件PortAccessor接口的connectUsesPorts()方法完成端口连接,直到所有端口都连接完毕;组件端口断连模块:该模块获取波形组件的已连接端口列表,调用组件PortAccessor接口的disconnectPorts()方法完成端口断连;组件释放模块:用于在加载设备上对波形组件进行释放、资源回收;组件注册器模块:用于波形组件的注册和注销功能。
10.根据权利要求9所述的基于组件休眠的SCA波形创建释放优化装置,其特征在于:所述组件休眠参数解析器模块主要用于解析波形组件的.prf.xml配置描述文件,读取其simple元素的“name”值为“suspend”的“value”值,如果该值为true,则设置组件可休眠,否则该组件就正常执行加卸载操作。
11.根据权利要求9所述的基于组件休眠的SCA波形创建释放优化装置,其特征在于:所述组件休眠策略器模块用于设置组件的休眠策略,或者添加新的策略,通过配置策略器模块进行选择,策略内置或通过动态库进行加载,支持策略的扩展;其中,部分策略中依赖的组件的加载活跃度检测、组件的加载时间和资源计数检测,需要通过在所述波形组件加载模块上进行打点,来获得相关的数据;所述组件休眠策略器模块能够根据平台资源富裕程度来配置组件休眠池容量和平台处理器占用率闲时运行阈值设置。
12.根据权利要求9所述的基于组件休眠的SCA波形创建释放优化装置,其特征在于:组件释放时,如果组件能够设置休眠,则所述组件休眠唤醒控制器将组件信息放入所述组件休眠池模块并设置组件进程到后台,运行优先级调低;否则将其正常进行资源释放;组件创建时,如果组件能够设置休眠,则所述组件休眠唤醒控制器从休眠池中查找是否有该休眠组件,如果找到,则将其进程唤醒到前台,运行优先级恢复正常;如果没有找到,则执行正常组件加载过程。
13.根据权利要求9所述的基于组件休眠的SCA波形创建释放优化装置,其特征在于:所述组件休眠池模块存储的休眠组件的相关信息包括:组件ID、组件执行进程ID、组件运行对象的引用、组件对应的加载设备。
14.根据权利要求9所述的基于组件休眠的SCA波形创建释放优化装置,其特征在于:所述波形组件加载模块通过前后打点,对接所述组件休眠策略器模块,获取组件的加载活跃度检测、组件的加载时间和资源计数检测信息。



