任务间异步通信的处理方法及多任务异步通信处理系统的制作方法

文档序号:6599802阅读:327来源:国知局
专利名称:任务间异步通信的处理方法及多任务异步通信处理系统的制作方法
技术领域
本发明涉及计算机程序的多任务通信的实现方法,特别涉及嵌入式实时操作系统下多任务通信的实现方法。
背景技术
在计算机通信领域中一个复杂的多任务系统下,任务之间需要交互一些必要的信息,这涉及到任务间的通信技术。任务间信息交互通常采用异步的处理方式如内存共享, socket (套接字)等方式。独立采取任何一种方式都存在某些性能上的缺陷或者增加了实现的复杂性等。比如采用socket通信,需要任务之间建立socket连接并且定义通信的消息包,在某些系统上这个实现过于复杂。采用内存共享的方式,存在对共享内存的读写保护问题,会降低任务的实时性,影响性能,对于实时性要求很高的系统也不适合。任务间的异步信息交互,涉及到任务对公共资源的保护等操作,处理不当往往造成任务间耦合性大,一个任务的异常状态会导致其他关联任务出现阻塞异常等问题;或者一个任务的运行状态会影响另外一个任务的运行状态,比如一个任务在操作公共资源时,导致另外一个任务因为得不到公共资源的操作权限而长时间等待;或者出现由于多个任务对同一块公共资源的访问造成公共资源被破坏;或者出现由于对公共资源的不适当保护造成死锁等严重情况,给系统的稳定运行造成不良影响。所以,提供一套任务间异步通信的有效机制,降低任务间的耦合性、关联性,是非常必要的。

发明内容
本发明所要解决的技术问题是克服以上现有技术的不足,提供避免任务间相互影响的异步通信的处理方法及多任务异步通信处理系统。本发明为解决上述技术问题所采用的技术方案是,任务间异步通信的处理方法, 包括以下步骤;a、通知任务的主体流程将信息存储至被通知任务的外部信息结构中;所述被通知任务的外部信息结构仅用于存储通知任务针对该被通知任务而发送的信息;b、被通知任务的主体流程读取其外部信息结构,将外部信息结构中的信息转存至内部信息结构中;c、被通知任务的主体流程执行、处理内部信息结构中的信息。被通知任务与通知任务的互操作仅局限在对被通知任务的外部信息结构的读写上,不关联各自任务的主体流程与内部信息结构,减少了任务间的相互影响;由于不涉及类似内存共享这样多个被通知任务的信息存于一个物理内存的情况,避免了多任务对公共资源不恰当的访问。主体流程在读取外部信息模块时,不立即对信息进行处理,而是先将信息转存至内部信息结构中,减少对公共的外部信息结果的访问占用时间。具体的,步骤a包括以下步骤
al、通知任务的主体流程获取被通知任务的外部信息结构的访问权限;a2、通知任务的主体流程将信息打包,依次存储至被通知任务的外部信息结构的信息队列中;a3、通知任务的主体流程采用被通知任务对应的唤醒机制唤醒被通知任务的主体流程处理外部信息结构;a4、通知任务的主体流程释放被通知任务的外部信息结构的访问权限。具体的,步骤b包括以下步骤bl、被通知任务的主体流程获取被通知任务的外部信息结构与内部信息结构的访问权限;b2、被通知任务的主体流程从其外部信息结构的信息队列中依次取出信息并转存至被通知任务的内部信息结构中;b3、被通知任务的主体流程释放其外部信息结构与内部信息结构的访问权限。具体的,外部信息结构属于多任务操作的公共资源,需要采用有效的读写保护机制,可以采用系统提供的任何合适的保护机制,比如信号量,中断锁。外部信息结构中的信息存储方式,可以采用系统提供的任何存储方式,比如先入先出队列,动态链表。外部信息结构中的任务唤醒机制,可以采用系统提供的任何合适的唤醒机制。外部信息结构的任务唤醒机制,可以采用操作系统提供的任何任务唤醒机制,比如释放通信二进制信号量,管道通信。为实现上述方法,本发明还提供一种多任务异步通信处理系统,包括若干任务模块,所述任务模块包括主体流程处理单元,所述主体流程处理单元中包括有内部信息结构, 所述任务模块包括还包括外部信息结构,所述外部信息结构独立于主体流程处理单元;所述外部信息结构,用于存储其它任务模块通知的信息;所述主体流程处理单元,用于当其所在的任务模块作为被通知任务模块时,读取其外部信息结构,将外部信息结构中的信息转存至内部信息结构中,执行、处理内部信息结构中的信息;当其所在的任务模块作为通知任务模块时,将信息存储至被通知任务的外部信息结构中;所述内部信息结构,用于存储从外部信息结构中转存的信息,供主体流程处理单元读取。进一步的,所述外部处理结构包括信息队列模块、读写保护模块、唤醒模块;所述信息队列模块,用于存储其它任务模块通知的信息;所述读写保护模块,用于当信息队列模块被获取访问权限时,对信息队列进行读写保护;当信息队列模块被释放访问权限时,取消对信息队列进行读写保护;所述唤醒模块,用于唤醒主体流程处理单元处理信息队列模块中的信息。本发明的有益效果是,保证了任务间信息交互的及时准确,降低任务模块之间的耦合性,使得系统更加稳定可靠。


图1任务模块B与任务模块A的信息交互示意图。
具体实施例方式下面结合具体实施方式
,详细描述本发明的技术方案。将各任务单独分离出一套通用的外部信息结构,任务间的信息交互主要通过对外部信息结构的处理,不涉及任务的主体流程及任务的内部信息结构。多任务异步通信处理系统中,当任务模块A作为被通知任务模块,任务模块B作为通知任务模块,任务模块A与任务模块B的结构相同,包括主体流程处理单元、外部信息结构,所述主体流程处理单元中包括有内部信息结构,外部信息结构独立于主体流程处理单元。主体流程处理单元需处理的信息存储至内部信息结构中。外部信息结构提供的外部交互信息。如图1所示,作为被通知任务模块的任务模块A先通过其主体流程处理单元向作为通知任务模块的任务模块B 的外部信息结构中存入信息(1);任务模块B的主体流程处理单元将任务模块B的外部信息结构中的信息转存在内部信息结构中O);任务模块B的主体流程处理单元读取内部信息结构中的信息(3),从而实现了两个任务模块之间的信息交互。任务模块B向任务模块A通知信息的具体实施步骤如下1.任务模块A提供其外部信息结构任务模块A属于被通知任务模块。外部信息结构包括三个组成部分存储外部任务模块通知信息的信息队列模块,比如先入先出队列;对信息队列模块进行访问控制的读写保护模块,读写保护模块可采用互斥信号量机制;触发任务模块A的体处理外部信息结构的唤醒模块,唤醒模块可采用管道机制。2.任务模块B通知任务模块A时只操作任务模块A的外部信息结构通知流程主要包括四个流程任务模块B取到访问任务模块A的外部信息结构的访问权限;任务模块B将信息打包存储到任务模块A的外部信息结构中;任务模块B采用任务模块A的唤醒机制唤醒任务模块A异步处理其外部信息结构;任务模块B释放任务模块A的外部信息结构的访问权限。3.任务模块A把其外部信息结构中的信息转换为内部信息结构中的信息任务模块A被唤醒后,在任务模块A的主体流程处理模块需要将接收的外部信息转换为内部信息,主要包含五个流程任务模块A取到其内部信息结构的访问权限,比如取到内部信息结构的内部信号量;任务模块A取到其外部信息结构的访问权限,比如取到外部信息结构的信号量;任务模块A把存储在信息队列模块中的信息节点依次取出,转存在内部信息队列模块中;任务模块A释放其外部信息结构的访问权限,比如释放任务A的外部信号量;任务模块A释放其内部信息结构的访问权限,比如释放任务A的内部信号量。4.任务模块A的主体流程处理模块异步处理转换后的内部信息任务模块A的外部信息结构中的信息转存在内部信息结构后,任务模块A的主体流程就可以异步处理内部信息结构中的信息。
整个通信流程中,任务模块A和任务模块B的主体流程不存在任何直接关联关系。 任务模块B有事件产生需要通知任务模块A时,只获取到任务模块A的外部信息结构的操作权限,不操作任务模块A的内部信息结构,即不需要获取到任务模块A主流程处理单元中的内部信息结构的访问权限。任务模块A有一个外部事件转换子流程,需要获取到任务A主体流程处理单元的操作权限,比如获取到内部信号量,同时需要短暂的获取到任务A外部信息结构的操作权限,比如外部信号量,完成把外部信息结构的内容转换为任务A的内部信息结构。内部信息结构属于任务A主体流程处理单元的一部分。这里只是转换,并不立即对转换后的内部信息结构进行处理。减少了对公共的外部信息结构的访问时间。任务A的主流程处理,不涉及操作任务A的外部信息结构,不需要取到任务A的外部信息结构操作权限。任务A仅取得任务主体流程处理单元的操作权限,对转换后的内部信息结构进行处理,即异步处理任务B 通知的信息。
权利要求
1.任务间异步通信的处理方法,其特征在于,包括以下步骤;a、通知任务的主体流程将信息存储至被通知任务的外部信息结构中;所述外部信息结构仅用于存储通知任务针对该被通知任务而发送的信息;b、被通知任务的主体流程读取其外部信息结构的信息,转存至其内部信息结构中;c、被通知任务的主体流程执行、处理内部信息结构中的信息。
2.如权利要求1所述任务间异步通信的处理方法,其特征在于,步骤a包括 al、通知任务的主体流程获取被通知任务的外部信息结构的访问权限;a2、通知任务的主体流程将信息打包,依次存储至被通知任务的外部信息结构的信息队列中;a3、通知任务的主体流程采用被通知任务对应的唤醒机制触发被通知任务的主体流程处理外部信息结构;a4、通知任务的主体流程释放被通知任务的外部信息结构的访问权限。
3.如权利要求2所述任务间异步通信的处理方法,其特征在于,所述唤醒机制通过释放通信二进制信号量或管道通信来实现。
4.如权利要求1所述任务间异步通信的处理方法,其特征在于,步骤b包括bl、被通知任务的主体流程获取被通知任务的外部信息结构与内部信息结构的访问权限;b2、被通知任务的主体流程从其外部信息结构的信息队列中依次取出信息并转存至被通知任务的内部信息结构中;b3、被通知任务的主体流程释放其外部信息结构与内部信息结构的访问权限。
5.如权利要求2或4所述任务间异步通信的处理方法,其特征在于,对访问权限的控制采用信号量机制或中断锁机制。
6.如权利要求2或4所述任务间异步通信的处理方法,其特征在于,外部信息结构中的信息存储采用先入先出队列机制或动态链表机制。
7.多任务异步通信处理系统,至少包括2个任务模块,所述任务模块包括主体流程处理单元,所述主体流程处理单元中包括有内部信息结构,其特征在于,所述任务模块还包括外部信息结构,所述外部信息结构独立于主体流程处理单元;所述外部信息结构,用于存储其它任务模块通知的信息;所述主体流程处理单元,当其所在的任务模块作为被通知任务模块时,用于读取外部信息结构并将外部信息结构中的信息转存至内部信息结构中,执行、处理内部信息结构中的信息;当其所在的任务模块作为通知任务模块时,用于将信息存储至被通知任务的外部信息结构中;所述内部信息结构,用于存储从外部信息结构中转存的信息,供主体流程处理单元读取。
8.如权利要求7所述多任务异步通信处理系统,所述外部处理结构包括信息队列模块、读写保护模块、唤醒模块;所述信息队列模块,用于存储其它任务模块通知的信息;所述读写保护模块,用于当信息队列模块被获取访问权限时,对信息队列进行读写保护;当信息队列模块被释放访问权限时,取消对信息队列进行读写保护;所述唤醒模块,用于唤醒主体流程处理单元处理信息队列模块中的信息。
全文摘要
本发明涉及嵌入式实时操作系统下多任务通信的实现方法。本发明提供一种避免任务间相互影响的异步通信的处理方法及多任务异步通信处理系统。通知任务的主体流程将信息存储至被通知任务的外部信息结构中;被通知任务的外部信息结构仅用于存储通知任务针对该被通知任务而发送的信息;被通知任务的主体流程读取其外部信息结构,将外部信息结构中的信息转存至内部信息结构中;被通知任务的主体流程执行、处理内部信息结构中的信息。保证了任务间信息交互的及时准确,降低任务模块之间的耦合性,使得系统更加稳定可靠。
文档编号G06F9/54GK102200929SQ201010133268
公开日2011年9月28日 申请日期2010年3月26日 优先权日2010年3月26日
发明者徐海兵, 李永合, 胡祖松 申请人:迈普通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1