实时处理系统中的共享资源访问方法和实时处理系统的利记博彩app

文档序号:6426249阅读:228来源:国知局
专利名称:实时处理系统中的共享资源访问方法和实时处理系统的利记博彩app
技术领域
本发明涉及通信领域,具体而言,涉及一种实时处理系统中的共享资源访问方法和实时处理系统。
背景技术
对于实时处理系统,数据的实时处理是系统的重要考量指标。为了提高数据的并行处理效率,往往采用多线程处理机制。多线程处理过程中,可能会发生两个以上的线程同时访问相同的数据,因此需要考虑对系统中共享资源的访问处理问题。目前,在多线程访问共享数据时,通常的做法是引入信号量加锁来保证资源的互斥访问。但这种信号量加锁的方法往往容易产生漏锁或死锁等问题,使得在系统调试阶段容易发生异常挂起(即,死机)等现象,并且该异常情况的定位比较困难。
针对相关技术中信号量加锁的方式容易导致系统挂起的问题,目前尚未提出有效的解决方案。

发明内容
本发明的主要目的在于提供一种实时处理系统中的共享资源访问方法和实时处理系统,以至少解决上述信号量加锁的方式容易导致系统挂起的问题。根据本发明的一个方面,提供了一种实时处理系统中的共享资源访问方法,包括启动实时处理系统的线程;其中,该实时处理系统包括多个IPU,每个II3U包括CP线程和ICO线程,IPU内的线程的优先级关系为CP线程的优先级> ICO线程的优先级;接收用户输入的配置命令,将配置命令缓存在CDB中;其中,CDB的线程优先级< ICO线程的优先级;在每一个IPU内,根据各个线程的优先级访问共享资源。其中,根据各个线程的优先级访问共享资源包括在实时处理系统处于空闲状态时,从⑶B中读取配置命令;根据配置命令确定对应IPU的CP线程,将配置命令发送给确定的CP线程;CP线程根据配置命令对共享资源进行处理。其中,从⑶B中读取配置命令时按照FIFO原则读取。其中,根据配置命令确定对应IPU的CP线程包括根据配置命令查询命令映射表,命令映射表中保存有命令集与CP线程的对应关系;根据查询的结构确定对应IPU的CP线程。上述将配置命令发送给确定的CP线程是通过异步发送方式发送的。上述根据各个线程的优先级访问共享资源包括当ICO线程的运行时间到达时,运行ICO线程访问共享资源。上述IPU的线程运行过程中禁止调用操作系统的延时操作。其中,上述多个IPU的功能独立。如果两个ITO之间需要传输数据,上述方法还包括发起数据传输的IPU向接收数据的IPU发送通告信息。
其中,上述发起数据传输的ITO向接收数据的IPU发送通告信息包括确定发起数据传输的线程是否为ICO线程,如果是,确定接收数据的线程是否为CP线程;如果是CP线程,则调整两个IPU中的ICO线程的优先级,使第一 ICO线程的优先级小于第二 ICO线程的优先级;其中,第一 ICO线程为发起数据传输的IPU中的ICO线程,第二 ICO线程为接收数据的IPU中的ICO线程。根据本发明的另一方面,提供了一种实时处理系统,包括线程启动模块,用于启动实时处理系统的线程;其中,该实时处理系统包括多个IPU,每个IPU包括CP线程和ICO线程,IPU内的线程的优先级关系为CP线程的优先级> ICO线程的优先级;配置命令缓存模块,用于接收用户输入的配置命令,将配置命令缓存在CDB中;其中,CDB的线程优先级< ICO线程的优先级;资源访问模块,用于在每一个IPU内,根据各个线程的优先级访问共享资源。其中,上述资源访问模块包括配置命令读取单元,用于在实时处理系统处于空闲状态时,从⑶B中读取配置命令;配置命令发送单元,用于根据配置命令确定对应IPU的CP 线程,将配置命令发送给确定的CP线程;处理单元,用于通过CP线程根据配置命令对共享资源进行处理。通过本发明,根据线程的优先级访问共享资源,规避多个线程共享资源时的访问冲突,解决了因信号量加锁的方式容易导致系统挂起的问题,增强了系统的稳定性和可靠性。



此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I是根据本发明实施例I的实时处理系统中的共享资源访问方法流程图;图2是根据本发明实施例I的实时处理系统结构示意图;图3是根据本发明实施例I的共享资源访问的处理流程图;图4是根据本发明实施例I的通告信息由CP发起时的消息发送示意图;图5是根据本发明实施例I的通告信息由ICO发起时的消息发送示意图;图6是根据本发明实施例I的单板嵌入式软件系统的结构示意图;图7是根据本发明实施例2的实时处理系统的结构框图;图8是根据本发明实施例2的资源访问模块的结构框图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明实施例利用线程优先级来规避对资源共享访问时的处理,可以应用在多线程单核实时处理系统中,能够实现对共享资源的互斥访问。基于此,提供了一种实时处理系统中的共享资源访问方法和实时处理系统。实施例I本实施例提供了一种实时处理系统中的共享资源访问方法,参见图1,该方法包括以下步骤(步骤S102-106)步骤S102,启动实时处理系统的线程;其中,本实施例的实时处理系统包括多个独立处理单元(Independent ProcessUnit, IPU),每个IPU包括配置命令处理(Config Process, CP)线程和实时信息采集与运算(Information Collection and Operation, ICO)线程,IPU 内线程的优先级关系为CP线程的优先级> ICO线程的优先级;在实际实现时,一个IPU内可以设置一个CP线程和一个ICO线程,在一个IPU内的CP线程和ICO线程可以共享资源,当有多个实时信息采集与运算命令均需要访问该IPU内的共享资源时,可以设置这多个实时信息采集与运算命令均使用一个ICO线程,通过设置采集与运算命令的周期触发时刻来达到互斥访问共享资源的目的;步骤S104,接收用户输入的配置命令,将该配置命令缓存在配置分发缓存器(Config Distribution Buffer, CDB)中;其中,CDB的线程优先级< ICO线程的优先级; 步骤S106,在每一个IPU内,根据各个线程的优先级访问共享资源。本实施例可以在系统设计阶段,根据系统的关键模型分析及共享资源的分布情况确定系统中IPU的划分及CP、IC0的组成,并划分好各单元中CP和ICO的优先级,避免通过使用信号量在相应共享资源前加锁来限制访问,相当于消除因共享资源访问可能引起的故障源头,还可以改良系统的架构设计,从而提高系统的可靠性、维护性和易用性。本实施例根据线程的优先级访问共享资源,规避多个线程共享资源时的访问冲突,解决了因信号量加锁的方式容易导致系统挂起的问题,增强了系统的稳定性和可靠性。其中,上述步骤S106中的根据各个线程的优先级访问共享资源可以包括在该实时处理系统处于空闲状态时,从⑶B中读取配置命令;根据配置命令确定对应IPU的CP线程,将该配置命令发送给确定的CP线程;该CP线程根据该配置命令对共享资源进行处理。从⑶B中读取配置命令时可以按照先进先出(First In First Out,FIFO)原则读取。为了便于确定每个配置命令对应的CP线程,可以在⑶B中设置一个命令映射表,将命令集与CP的对应关系保存在该映射表中。基于此,上述根据配置命令确定对应IPU的CP线程包括根据配置命令查询命令映射表,该命令映射表中保存有命令集与CP线程的对应关系;根据查询的结构确定对应IPU的CP线程。上述将配置命令发送给确定的CP线程可以通过异步发送方式发送,该异步发送方式指发送完该配置命令后,该⑶B即可以执行后面的操作。ICO线程是执行实时信息采集与运算命令的,因此,其根据配置的时间周期决定是否运行。基于此,上述根据各个线程的优先级访问共享资源还包括当ICO线程的运行时间到达时,运行该ICO线程访问共享资源。为了避免IPU内的线程在运行过程中出现挂起现象,保证共享资源的互斥机制,本实施例的IPU的线程运行过程中禁止调用操作系统的延时操作。为了实现简单,在系统中划分ITO时,可以尽量保证多个IPU之间的系统功能关联性最小或者相互无关联,例如,使多个IPU的功能各自独立,尽量保证着多个IPU之间无共享数据信息。如果两个ITO之间需要传输数据,说明这两个ITO之间有共享数据,该情况下,上述方法还包括发起数据传输的IPU向接收数据的ITO发送通告信息。为了保证系统的效率,该通告信息可以采用异步传输方式。进行通告时可以遵循下述原则如果两个IPU之间需要传输数据(例如,两个IPU之间需要共同的配置信息或者两个ITO之间需要数据交互)时,为了避免出现共享资源的访问冲突,上述方法还包括确定发起数据传输的线程是否为ICO线程,如果是,确定接收数据的线程是否为CP线程;如果是CP线程,则调整两个IPU中的ICO线程的优先级,使第一 ICO线程的优先级小于第二 ICO线程的优先级;其中,第一 ICO线程为发起数据传输的IPU中的ICO线程,第二 ICO线程为接收数据的IPU中的ICO线程。为了描述方便,上述CP线程有时也可以简称为CP,ICO线程也可以简称为ICO ;下面根据上述方法,简单描述一下系统的设计与运行过程对于实时处理系统,需要接收用户的配置和查询处理,同时还需要进行一些数据的实时采集和运算。如图2所示的实时处理系统结构示意图,在该系统中设置一个优先级较低的线程,本实施例将该线程称为配置分发缓存器,即上述CDB,该CDB负责接收输入系统的相关命令,并分发给不同的独立处理单元IPU进行处理。
将实时采集及运算的内容与用户配置命令集按是否需要共享数据进行分类归整,分成若干IPU,IPU内部的线程可以有直接的数据共享,IPU之间尽量保证不存在共享数据需要访问。在IPU中,配置命令处理CP用高优先级线程完成处理,即由CP负责接收处理外部对本IPU的配置;相关的信息采集和运算ICO由优先级相对低一些的若干线程负责实时处理,即ICO执行本IPU的实时处理(要求IPU内的ICO之间无共享资源,IPU内的ICO与CP可以共享资源)。参见图3,本实施例的处理流程包括以下几个步骤步骤S302,启动系统中的线程,包括I)启动优先级为M(M值对应的优先级较小)的线程作为CDB,负责缓存配置命令;2)启动各IPU内部的CP,其优先级高于M,并将CP处理的命令集与CP的对应关系注册到CDB中的命令映射表CmdMap中;3)启动各IPU内部的IC0,其线程优先级要大于M且小于其IPU内部的CP的优先级;步骤S304,接收用户向系统输入的配置命令,将该配置命令缓存在⑶B中;步骤S306,ICO在信息采集和运算时,对共享资源进行信息采集和运算;ICO在信息采集和运算时,因ICO的优先级高于⑶B的优先级,⑶B得不到调度,配置命令将在⑶B中缓存,故对应的CP不会得到执行,ICO可以安全地访问共享资源。步骤S308,当系统空闲时,判断⑶B缓存的配置命令列表是否为空,如果是,则返回步骤S304 ;否则,执行步骤S310 ;步骤S310,⑶B按FIFO原则弹出缓存的配置命令,查询命令映射表CmdMap,确定对应IPU的CP,将命令异步发送到该CP处理;步骤S312,CP根据命令配置完成对共享资源的处理,返回步骤S310继续处理缓存的其他配置命令。该系统中不同的ITO之间,由于其无数据共享问题,故不需要考虑其线程间优先级关系设置。如果各IPU之间需要共同的配置信息或者IPU之间需要数据交互时,可通过在IPU之间以异步方式进行信息通告,这时需要考虑不同场景下的限制条件,当通告信息由CP发起时,接收通告的IPU中的线程优先级不需要附加新的限制条件,通告信息由CP发起时的消息发送示意图如图4所示这里称发送IPU的CP为CP1,接收IPU的CP和ICO分别为CP2、IC02。因CDB的作用,CPl和CP2的调度关系是互斥的,故只需要考虑CPl与IC02的优先级关系。线程优先级关系为CPl > IC02,CPl执行不会被IC02打断,故没有问题;线程优先级关系为CPl <= IC02, IC02可能会打断CPl的执行,但CPl只在IC02空闲时才有机会将信息通告给CP2或IC02,故CP2和IC02之间对共享资源的访问没有问题;当通告信息需要由ITO的ICO发起时,即通告信息是实时运算的数据,通告信息由ICO发起时的消息发送示意图如图5所示这里称发送IPU的ICO为ICOl,接收IPU的CP和ICO分别为CP2、IC02。只有当 ICOl的线程优先级大于IC02时,ICOl会打断IC02,这时如果通告发给CP2,CP2的执行将可能引起共享资源访问的冲突。因此,当IPU需要由ICO发送通告信息给接收IPU的CP时,可以设置发送端ICO的线程优先级小于接收端ICO的线程优先级。而如果通告信息由接收IPU的ICO处理时,则没有问题。同时可以看出,当接收端将ICO和CP合二而一时,则不受此处描述的条件限制。下面以实际通信系统中某单板嵌入式软件系统为例,该系统框图如图6所示,主控单元通过某通讯协议配置相关信息到此单板系统执行,该单板实时检测处理告警性能数据,并上报主控单元,同时单板系统还有业务协议相关的实时处理。假设本系统线程优先级的等级是值越大优先级越高。共享资源访问方法包括以下步骤第一步启动单板系统的线程,包括启动⑶B线程,优先级为2;启动告警性能单元AlmPerfIPU的线程AlmPerfCP和AlmPerfICO,其线程的优先级分别为5、3,将告警性能命令集与AlmPerfCP的对应关系注册到CDB中的命令映射表CmdMap 中;启动业务单元ServiceIPU相关的线程ServiceCP和ServiceICO,其优先级分别为8、6,将处理的告警性能命令集与ServiceCP的对应关系注册到⑶B中的命令映射表CmdMap中;第二步用户向系统输入业务配置和告警性能配置命令,该命令在⑶B中缓存;第三步当ServiceICO或AlmPerfICO执行时,跳转第六步;当系统空闲时,CDB按FIFO (First In First Out)原则先将业务配置命令弹出,查询命令映射表CmdMap,将该命令异步发送到ServiceCP处理;第四步=ServiceCP完成业务配置处理,然后向AlmPerfIPU的AlmPerfCP异步通告相关的业务增删信息;第五步=AlmPerfCP根据通告的业务增删信息,完成与增删业务对应的告警性能节点的处理;第六步⑶B弹出告警性能配置命令,将其异步发送到AlmPerfCP处理;
第七步AlmPerfCP根据告警性能配置命令进行处理;第八步=ServiceICO周期查询业务实时信息,执行业务协议的处理,假设业务有保护倒换发生,这时异步通告倒换动作给AlmPerflCO,AlmPerfICO完成告警性能检测的切换;第九步当AlmPerfICO周期定时到,查询告警性能信息,执行告警性能的上报。第十步返回第二步,继续接收用户配置命令处理。本实施例在系统设计阶段,根据系统的关键模型分析及共享资源的分布情况就确定好系统中IPU的划分及CP、ICO的组成,并划分好各单元的优先级,避免再使用信号量在相应共享资源前加锁来进行访问限制,相当于消除因共享资源访问可能引起的故障源头,还可以改良系统的架构设计,从而提高系统的可靠性、维护性和易用性。实施例2 本实施例提供了一种实时处理系统,参见图7,该系统包括以下模块线程启动模块72,用于启动实时处理系统的线程;其中,实时处理系统包括多个IPU,每个IPU包括CP线程和ICO线程,IPU内的线程的优先级关系为CP线程的优先级>ICO线程的优先级;配置命令缓存模块74,与线程启动模块72相连,用于接收用户输入的配置命令,将配置命令缓存在CDB中;其中,CDB的线程优先级< ICO线程的优先级;资源访问模块76,与配置命令缓存模块74相连,用于在每一个IPU内,根据各个线程的优先级访问共享资源。本实施例根据线程的优先级访问共享资源,规避多个线程共享资源时的访问冲突,解决了因信号量加锁的方式容易导致系统挂起的问题,增强了系统的稳定性和可靠性。参见图8,资源访问模块76包括配置命令读取单元762,用于在实时处理系统处于空闲状态时,从⑶B中读取配置命令;配置命令发送单元764,与配置命令读取单元762相连,用于根据上述配置命令确定对应IPU的CP线程,将配置命令发送给确定的CP线程;处理单元766,与配置命令发送单元764相连,用于通过CP线程根据配置命令对共享资源进行处理。其中,配置命令读取单元762从⑶B中读取配置命令时可以按照FIFO原则读取。为了便于确定每个配置命令对应的CP线程,可以在⑶B中设置一个命令映射表,将命令集与CP的对应关系保存在该映射表中。基于此,上述配置命令发送单元764根据配置命令确定对应IPU的CP线程包括根据配置命令查询命令映射表,该命令映射表中保存有命令集与CP线程的对应关系;根据查询的结构确定对应IPU的CP线程。上述配置命令发送单元764将配置命令发送给确定的CP线程可以通过异步发送方式发送,该异步发送方式指发送完该配置命令后,该⑶B即可以执行后面的操作。上述ICO线程是执行实时信息采集与运算命令的,因此,其根据配置的时间周期决定是否运行。基于此,上述资源访问模块76还包括IC0线程访问单元,用于当ICO线程的运行时间到达时,运行该ICO线程访问共享资源。为了避免IPU内的线程在运行过程中出现挂起现象,保证共享资源的互斥机制,本实施例的IPU的线程运行过程中禁止调用操作系统的延时操作。为了实现简单,在系统中划分ITO时,可以尽量保证多个IPU之间的系统功能关联性最小或者相互无关联,例如,使多个IPU的功能独立,保证这多个IPU之间无共享数据。如果两个IPU之间需要传输数据(例如,两个IPU之间需要共同的配置信息或者两个IPU之间需要数据交互),则发起数据传输的IPU向接收数据的ITO发送通告信息。为了避免出现共享资源的访问冲突,上述系统还包括第一确定模块,用于确定发起数据传输的线程是否为ICO线程;第二确定模块,用于第一确定模块的确定结果为是时,确定接收数据的线程是否为CP线程;优先级调整模块,用于第二确定模块的确定结果为CP线程时,调整两个IPU中的ICO线程的优先级,使第一 ICO线程的优先级小于第二 ICO线程的优先级;其中,第一 ICO线程为发起数据传输的IPU中的ICO线程,第二 ICO线程为接收数据的IPU中的ICO线程。本实施例根据线程的优先级访问共享资源,规避多个线程共享资源时的访问冲 突,解决了因信号量加锁的方式容易导致系统挂起的问题,增强了系统的稳定性和可靠性。从以上的描述中可以看出,以上实施例可以在系统设计阶段,根据系统的关键模型分析及共享资源的分布情况确定系统中IPU的划分及CP、IC0的组成,并划分好各单元中CP和ICO的优先级,避免通过使用信号量在相应共享资源前加锁来限制访问,相当于消除因共享资源访问可能引起的故障源头,还可以改良系统的架构设计,从而提高系统的可靠性、维护性和易用性。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实时处理系统中的共享资源访问方法,其特征在于,包括 启动实时处理系统的线程;其中,所述实时处理系统包括多个独立处理单元IPU,每个IPU包括配置命令处理CP线程和实时信息采集与运算ICO线程,所述IPU内的线程的优先级关系为所述CP线程的优先级>所述ICO线程的优先级; 接收用户输入的配置命令,将所述配置命令缓存在配置分发缓存器CDB中;其中,所述CDB的线程优先级<所述ICO线程的优先级; 在每一个IPU内,根据各个线程的优先级访问共享资源。
2.根据权利要求I所述的方法,其特征在于,所述根据各个线程的优先级访问共享资源包括 在所述实时处理系统处于空闲状态时,从所述CDB中读取所述配置命令; 根据所述配置命令确定对应IPU的CP线程,将所述配置命令发送给确定的所述CP线程; 所述CP线程根据配置命令对共享资源进行处理。
3.根据权利要求2所述的方法,其特征在于,从所述CDB中读取所述配置命令时按照先进先出FIFO原则读取。
4.根据权利要求2所述的方法,其特征在于,所述根据所述配置命令确定对应IPU的CP线程包括 根据所述配置命令查询命令映射表,所述命令映射表中保存有命令集与CP线程的对应关系; 根据查询的结构确定对应IPU的CP线程。
5.根据权利要求2所述的方法,其特征在于,将所述配置命令发送给确定的所述CP线程是通过异步发送方式发送的。
6.根据权利要求I所述的方法,其特征在于,所述根据各个线程的优先级访问共享资源包括 当所述ICO线程的运行时间到达时,运行所述ICO线程访问共享资源。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述IPU的线程运行过程中禁止调用操作系统的延时操作。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述多个IPU的功能独立。
9.根据权利要求I所述的方法,其特征在于,如果两个IPU之间需要传输数据,所述方法还包括 发起数据传输的IPU向接收数据的IPU发送通告信息。
10.根据权利要求9所述的方法,其特征在于,所述发起数据传输的IPU向接收数据的IPU发送通告信息包括 确定发起数据传输的线程是否为ICO线程,如果是,确定接收所述数据的线程是否为CP线程; 如果是CP线程,则调整所述两个IPU中的ICO线程的优先级,使第一 ICO线程的优先级小于第二 ICO线程的优先级;其中,所述第一 ICO线程为发起数据传输的IPU中的ICO线程,所述第二 ICO线程为接收数据的IPU中的ICO线程。
11.一种实时处理系统,其特征在于,包括线程启动模块,用于启动实时处理系统的线程;其中,所述实时处理系统包括多个独立处理单元IPU,每个IPU包括配置命令处理CP线程和实时信息采集与运算ICO线程,所述IPU内的线程的优先级关系为所述CP线程的优先级>所述ICO线程的优先级; 配置命令缓存模块,用于接收用户输入的配置命令,将所述配置命令缓存在配置分发缓存器CDB中;其中,所述CDB的线程优先级<所述ICO线程的优先级; 资源访问模块,用于在每一个IPU内,根据各个线程的优先级访问共享资源。
12.根据权利要求11所述的系统,其特征在于,所述资源访问模块包括 配置命令读取单元,用于在所述实时处理系统处于空闲状态时,从所述CDB中读取所述配置命令; 配置命令发送单元,用于根据所述配置命令确定对应IPU的CP线程,将所述配置命令发送给确定的所述CP线程; 处理单元,用于通过所述CP线程根据配置命令对共享资源进行处理。
全文摘要
本发明公开了一种实时处理系统中的共享资源访问方法和实时处理系统。其中,该方法包括启动实时处理系统的线程;其中,该实时处理系统包括多个IPU,每个IPU包括CP线程和ICO线程,IPU内的线程的优先级关系为CP线程的优先级>ICO线程的优先级;接收用户输入的配置命令,将配置命令缓存在CDB中;其中,CDB的线程优先级<ICO线程的优先级;在每一个IPU内,根据各个线程的优先级访问共享资源。通过本发明,解决了因信号量加锁的方式容易导致系统挂起的问题,增强了系统的稳定性和可靠性。
文档编号G06F9/48GK102831007SQ20111015927
公开日2012年12月19日 申请日期2011年6月14日 优先权日2011年6月14日
发明者吴青 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1