一种基于DBus信号管理线程的方法及系统与流程

文档序号:18884234发布日期:2019-10-15 20:37阅读:329来源:国知局
一种基于DBus信号管理线程的方法及系统与流程

本发明涉及计算机通信技术领域,具体涉及一种基于dbus信号管理线程的方法及系统。



背景技术:

dbus是一种高级的进程间通信机制,它由freedesktop.org项目提供,使用gpl许可证发行。dbus最主要的用途是在linux桌面环境为进程提供通信,同时能将linux桌面环境和linux内核事件作为消息传递到进程。dbus的主要概念为总线,注册后的进程可通过总线接收或传递消息,进程也可注册后等待内核事件响应,例如等待网络状态的转变或者计算机发出关机指令。目前,dbus已被大多数linux发行版所采用,开发者可使用dbus实现各种复杂的进程间通信任务。

dbus是一个消息总线系统,其功能已涵盖进程间通信的所有需求,并具备一些特殊的用途。dbus是三层架构的进程间通信系统,其中包括:

接口层:接口层由dbus函数库提供,进程可通过该库使用dbus的能力。

总线层:总线层实际上是由dbus总线守护进程提供的。它在linux系统启动时运行,负责进程间的消息路由和传递,其中包括linux内核和linux桌面环境的消息传递。

包装层:包装层一系列基于特定应用程序框架的wrapper库,wrapper是一种java服务。

dbus具备自身的协议,协议基于二进制数据设计,与数据结构和编码方式无关。该协议无需对数据进行序列化,保证了信息传递的高效性。无论是dbus函数库,还是dbus总线守护进程,均不需要太大的系统开销。

总线是dbus的通信机制,一个系统中通常存在多条总线,这些总线由dbus总线守护进程管理。最重要的总线为系统总线(systembus),linux内核引导时,该总线就已被装入内存。只有linux内核、linux桌面环境和权限较高的程序才能向该总线写入消息,以此保障系统安全性,防止有恶意进程假冒linux发送消息。

然而,在已有进程间通信的阻塞环境下,线程控制中不可避免的存在延时,线程滞后将造成进程相关功能单方面挂死或者过长延时等待,影响进程功能。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种基于dbus信号管理线程的方法及系统,解决线程控制中所产生的延时问题,避免线程滞后导致影响进程功能问题。

为达到以上目的,本发明采取的技术方案是:一种基于dbus信号管理线程的方法,包括以下步骤:

进程模块中启动线程时,根据预设的进程模块优先级权重和线程优先级权重计算出的各线程的权重特征属性,采用所述权重特征属性生成线程dbus信号并发送到dbus总线;

通过dbus方式注册监听线程dbus信号,收到线程dbus信号时,根据各线程的线程dbus信号中权重特征属性,配置线程执行策略。

在上述方案的基础上,根据各线程的线程dbus信号中权重特征属性,配置线程执行策略,包括以下步骤:

根据各线程的线程dbus信号中权重特征属性的由高至低排序,配置线程执行策略;

线程执行完成后,删除该线程对应的权重特征属性,重新配置线程执行策略。

在上述方案的基础上,所述根据各线程的线程dbus信号中权重特征属性的由高至低排序,配置线程执行策略,具体包括以下步骤:先收到线程dbus信号的线程执行策略排序靠前,且权重特征属性高的线程执行策略排序靠前。

在上述方案的基础上,根据各线程的线程dbus信号中权重特征属性,配置线程执行策略,还包括以下步骤,某一进程模块中所有线程均执行完成后,重置该进程模块的线程执行策略至初始状态。

在上述方案的基础上,所述方法还包括以下步骤:采用所述权重特征属性生成dbus信号时,对同一个进程模块产生的线程的线程dbus信号设置共同属性。

本发明还提供一种基于dbus信号管理线程的系统,包括:

dbus信号生成模块,其用于:进程模块中启动线程时,根据预设的进程模块优先级权重和线程优先级权重计算出的各线程的权重特征属性,采用所述权重特征属性生成线程dbus信号并发送到dbus总线;

策略配置模块,其用于:通过dbus方式注册监听线程dbus信号,收到线程dbus信号时,根据各线程的线程dbus信号中权重特征属性,配置线程执行策略。

在上述方案的基础上,策略配置模块根据各线程的线程dbus信号中权重特征属性,配置线程执行策略,包括以下步骤:

根据各线程的线程dbus信号中权重特征属性的由高至低排序,配置线程执行策略;

线程执行完成后,删除该线程对应的权重特征属性,重新配置线程执行策略。

在上述方案的基础上,所述策略配置模块根据各线程的线程dbus信号中权重特征属性的由高至低排序,配置线程执行策略,具体包括以下步骤:先收到线程dbus信号的线程执行策略排序靠前,且权重特征属性高的线程执行策略排序靠前。

在上述方案的基础上,所述策略配置模块根据各线程的线程dbus信号中权重特征属性,配置线程执行策略,还包括以下步骤,某一进程模块中所有线程均执行完成后,重置该进程模块的线程执行策略至初始状态。

在上述方案的基础上,所述dbus信号生成模块还用于:采用所述权重特征属性生成dbus信号时,对同一个进程模块产生的线程的线程dbus信号设置共同属性。

与现有技术相比,本发明的优点在于:

本发明根据预设的进程模块优先级权重和线程优先级权重计算出的各线程的权重特征属性并生成线程dbus信号;通过dbus方式注册监听线程dbus信号,收到线程dbus信号时,根据各线程的线程dbus信号中权重特征属性,配置线程执行策略。利用dbus信号高效性和并发性,解决线程控制中所产生的延时问题,避免线程滞后导致影响进程功能问题。

附图说明

图1为本发明实施例的基于dbus信号管理线程的方法的流程示意图;

图2为本发明实施例的基于dbus信号管理线程的方法的线程执行策略的方案顺序示意图。

具体实施方式

术语说明:

进程(process),计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。

线程(thread),进程中所包含的一个或多个执行单元称为线程(thread)。

以下结合附图对本发明的实施例作进一步详细说明。

本发明实施例提供一种基于dbus信号管理线程的方法,包括以下步骤:

进程模块中启动线程时,根据预设的进程模块优先级权重和线程优先级权重计算出的各线程的权重特征属性,采用所述权重特征属性生成线程dbus信号并发送到dbus总线;

通过dbus方式注册监听线程dbus信号,收到线程dbus信号时,根据各线程的线程dbus信号中权重特征属性,配置线程执行策略。

在网关设备启动时,先运行dbus库,再注册dbus对象和dbus接口到dbus总线上。网关设备运行的过程中,各个模块功能交互,会通过进程间通信传递携带的预设的进程模块优先级权重和线程优先级权重。预设的进程模块优先级权重和线程优先级权重是由开发者根据模块需求定制设置的。

作为优选的实施方式,根据各线程的线程dbus信号中权重特征属性,配置线程执行策略,包括以下步骤:

根据各线程的线程dbus信号中权重特征属性的由高至低排序,配置线程执行策略;

执行线程执行策略中最靠前的线程;

线程执行完成后,删除该线程对应的权重特征属性,重新配置线程执行策略。

作为优选的实施方式,所述根据各线程的线程dbus信号中权重特征属性的由高至低排序,配置线程执行策略,具体包括以下步骤:先收到线程dbus信号的线程执行策略排序靠前,且权重特征属性高的线程执行策略排序靠前。

优选的,根据各线程的线程dbus信号中权重特征属性,配置线程执行策略,还包括以下步骤,某一进程模块中所有线程均执行完成后,重置该进程模块的线程执行策略至初始状态,节省开支,直到下个信号发送。

优选的,所述方法还包括以下步骤:采用所述权重特征属性生成dbus信号时,对同一个进程模块产生的线程的线程dbus信号设置共同属性。线程dbus信号是根据线程特征生成的信号,对同一个进程模块所产生的线程总线信号设置共同属性,用于标识来自共同模块、是否需要调度等。不同进程间的线程调用时有低延时策略调度。

如图1所示,本发明实施例的基于dbus信号管理线程的方法,其具体步骤如下:

步骤s101:单一进程模块在生成线程时,写入包含进程模块优先级权重、线程优选级权重的特征属性,根据预设的进程模块优先级权重和线程优先级权重计算出的各线程的权重特征属性,采用权重特征属性生成线程dbus信号;

以下用具体实施例说明如何根据预设的进程模块优先级权重和线程优先级权重计算出的各线程的权重特征属性:

进程a属于重要进程,进程b属于次重要进程,进程c属于非重要进程,因此,预设进程a权重为1.2,进程b权重为1.1,进程c权重为1;x线程属于第一优先线程,y线程属于次优先级线程,z线程属于低优先级线程,因此,预设线程x权重为x,线程y权重为y,线程z权重为z,且x>y>z。

初始进程a的x线程,进程a的x线程的权重特征属性为1.2*log(x),初始进程b的y线程,进程b的y线程的权重特征属性为1.1*log(y);由于1.2*log(x)>1.1*log(y),故进程a的x线程的优先于进程b的y线程执行。进程a的x线程执行后,进程b的y线程的权重特征属性会变成1.1*log(y)+n,n为线程执行时间维度参数(线程每等待了一个线程执行就进行一次+n)。

依此类推,初始进程c的z线程,进程c的z线程的权重特征属性值为1*log(z),由于1.1*log(y)>1*log(z),故进程b的y线程优先于进程c的z线程执行。进程b的y线程执行后,进程c的z线程的权重特征属性值变为1*log(z)+n。

步骤s102:产生的线程dbus信号发到dbus总线。

步骤s103:策略配置模块通过dbus方式注册监听线程dbus信号。

步骤s104:策略配置模块收到线程dbus信号之后,对线程dbus信号进行回调处理,对已知的线程通过权重特征属性的高低进行调度,配置线程执行策略。

图2为本发明实施例的基于dbus信号管理线程的方法的线程执行策略的方案顺序示意图,步骤s104具体执行顺序按4个阶段阐述:

阶段一:进程模块一的线程一进来为默认权重属性,此默认权重属性是第一个线程所属模块的优先级权重和线程优先级权重所得出的权重特征属性。

阶段二:进程模块一的线程一、二和进程模块二的线程一的信号同时被收到,由于进程模块一的线程的权重特征属性大于进程模块二线程的权重特征属性,故配置线程执行策略:后收到线程后出,低权重特征属性线程后出。

阶段三:进程模块一的线程一执行完毕,线程进行释放,线程释放后,根据线程执行策略的顺序执行其他两个线程。

阶段四:在全执行完毕后,也并无新线程信号时,线程执行策略不占用开销。

本发明实施例还提供一种基于dbus信号管理线程的系统,包括:

dbus信号生成模块,其用于:进程模块中启动线程时,根据预设的进程模块优先级权重和线程优先级权重计算出的各线程的权重特征属性,采用所述权重特征属性生成线程dbus信号并发送到dbus总线;

策略配置模块,其用于:通过dbus方式注册监听线程dbus信号,收到线程dbus信号时,根据各线程的线程dbus信号中权重特征属性,配置线程执行策略。

优选的,策略配置模块根据各线程的线程dbus信号中权重特征属性,配置线程执行策略,包括以下步骤:

根据各线程的线程dbus信号中权重特征属性的由高至低排序,配置线程执行策略;

线程执行完成后,删除该线程对应的权重特征属性,重新配置线程执行策略。

优选的,所述策略配置模块根据各线程的线程dbus信号中权重特征属性的由高至低排序,配置线程执行策略,具体包括以下步骤:先收到线程dbus信号的线程执行策略排序靠前,且权重特征属性高的线程执行策略排序靠前。

作为优选的实施方式,所述策略配置模块根据各线程的线程dbus信号中权重特征属性,配置线程执行策略,还包括以下步骤,某一进程模块中所有线程均执行完成后,重置该进程模块的线程执行策略至初始状态。

作为优选的实施方式,所述dbus信号生成模块还用于:采用所述权重特征属性生成dbus信号时,对同一个进程模块产生的线程的线程dbus信号设置共同属性。

本发明实施例优选的适用于openwrt系统。openwrt系统是嵌入式设备上运行的linux系统。

基于同一发明构思,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现基于dbus信号管理线程的方法的所有方法步骤或部分方法步骤。

本发明实现上述基于dbus信号管理线程的方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

基于同一发明构思,本申请实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现基于dbus信号管理线程的方法中的所有方法步骤或部分方法步骤。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。

存储器可用于存储计算机程序和/或进程模块,处理器通过运行或执行存储在存储器内的计算机程序和/或进程模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、服务器或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、服务器和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1