CN101980170A - 一种微内核***中软件模块的通信方法、***及装置 - Google Patents

一种微内核***中软件模块的通信方法、***及装置 Download PDF

Info

Publication number
CN101980170A
CN101980170A CN201010519996.9A CN201010519996A CN101980170A CN 101980170 A CN101980170 A CN 101980170A CN 201010519996 A CN201010519996 A CN 201010519996A CN 101980170 A CN101980170 A CN 101980170A
Authority
CN
China
Prior art keywords
information
software module
request
module
information table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201010519996.9A
Other languages
English (en)
Other versions
CN101980170B (zh
Inventor
陈宏涛
刘忠东
马晓靖
胡闽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Jiejiegao Technology Development Co ltd
Original Assignee
Beijing Star Net Ruijie Networks Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Star Net Ruijie Networks Co Ltd filed Critical Beijing Star Net Ruijie Networks Co Ltd
Priority to CN201010519996A priority Critical patent/CN101980170B/zh
Publication of CN101980170A publication Critical patent/CN101980170A/zh
Application granted granted Critical
Publication of CN101980170B publication Critical patent/CN101980170B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种微内核***中软件模块的通信方法、***及装置,用以解决微内核***中各核心软件模块之间的通信,导致***性能降低的问题。该方法接收到针对第一核心软件模块的信息请求的信息库模块,确定对信息请求提供信息的第一核心软件模块的信息表的信息,在信息表中根据该信息请求进行相应处理,并发送处理完成通告。由于在本发明实施例中在信息库模块中针对每个核心软件模块都设置了对应的信息表,在该信息表中针对该信息请求进行相应的处理,因此其他核心软件模块无需再与第一核心软件模块进行交互获取相应信息,从而降低了微内核***中核心软件模块之间的耦合程度,减小了核心软件模块在进行相应信息操作时的性能下降。

Description

一种微内核***中软件模块的通信方法、***及装置
技术领域
本发明涉及网络通信技术领域,尤其涉及一种微内核***中软件模块的通信方法、***及装置。
背景技术
由于现在处理器性能的快速提升,以及微内核***结构的改进,微内核***的可扩展性、高可用性以及自愈性优势逐渐的明显,微内核***得到了广泛的应用。
微内核***中包括建立一个***所必需的几个核心软件模块,例如线程/进程管理模块,内存模块和进程间通信模块。在微内核中每个模块都是一个独立的进程,一旦某一模块发生错误,不会影响其他模块的工作,并且当不需要某一功能时,直接将该功能对应的核心软件模块删除即可,因此模块之间的独立性使微内核***更加便于维护,并且各个模块可以独立的进行升级,减小了升级的开销。
但是,微内核***中虽然每个核心软件模块都是一个独立的进程,但是核心软件模块之间还是紧密耦合的,需要互相调用才能获取数据信息。微内核***中核心软件模块之间的通信只能通过进程间通信的机制来实现。但是由于进程间通信的方式,资源的竞争往往会拖慢某些线程对重要事件的处理,导致***性能的降低。
例如当微内核***中包括路由(ROUTING)模块、协议栈(V6STACK)模块和简单网络管理协议(Simple Network Management Protocol,SNMP)模块等核心软件模块。当ROUTING模块本身正在进行复杂的路由计算时,V6STACK模块和SNMP模块向该ROUTING模块发送路由查询请求,ROUTING模块接收到路由查询请求后,由于自身要进行复杂的路由计算,又要向V6STACK模块和SNMP模块提供路由信息,因此造成了ROUTING模块内资源的竞争,导致V6  STACK模块和SNMP模块的等待,及ROUTING模块自身路由计算速度的下降。或者,当ROUTING模块向接口(INTF)模块发送接口状态查询请求时,INTF模块向ROUTING模块发送路由查询请求,则此时由于两个模块之间通过线程间通信发包等待结果,而造成***的死锁。
另外,当微内核***中的某一核心软件模块发生故障,重启后开始运行时,该出现故障的核心软件模块需要从其他核心软件模块获取自身所需的配置信息,由于其他核心软件模块需要向该出现故障的核心软件模块反馈其所需的配置信息,因此其他核心软件模块的处理性能将会受到影响,从而影响了整个微内核***的性能。
因此由于微内核***中的各核心软件模块之间的紧密耦合,在核心软件模块在进行通信时将会影响核心软件模块的性能,从而影响整个微内核***的性能。
发明内容
有鉴于此,本发明实施例提供一种微内核***中软件模块的通信方法、***及装置,用以解决微内核***中各核心软件模块之间耦合的比较紧,导致***性能降低的问题。
本发明实施例提供的一种微内核***中软件模块的通信方法,包括:
信息库模块接收针对第一核心软件模块的信息请求;
根据自身保存的针对该第一核心软件模块的信息表的信息,在该信息表中根据所述信息请求进行相应的处理,并发送处理结果。
本发明实施例提供的一种微内核***中软件模块的通信装置,包括:
接收模块,用于接收针对第一核心软件模块的信息请求;
信息提供模块,用于根据自身保存的针对该第一核心软件模块的信息表的信息,在该信息表中根据所述信息请求进行相应的处理,并发送处理结果。
本发明实施例提供的一种微内核***,包括:
如上所述的装置,第一核心软件模块及第二核心软件模块。
一种路由设备,所述路由设备包括如上所述的微内核***。
本发明实施例提供一种微内核***中软件模块的通信方法、***及装置,该方法中,当需要对第一核心软件模块进行操作时,向信息库模块发送针对第一核心软件模块的信息请求,信息库模块根据自身保存的针对第一核心软件模块的信息表的信息,在该信息表中根据该信息请求进行相应处理,并发送处理结果。由于在本发明实施例中在信息库模块中针对每个核心软件模块都设置了对应的信息表,在该信息表中针对该信息请求进行相应的处理,因此其他核心软件模块无需再与第一核心软件模块进行交互获取相应信息,从而降低了微内核***中核心软件模块之间的耦合程度,减小了核心软件模块在进行相应信息操作时的性能下降。
附图说明
图1为本发明实施例提供的微内核***中软件模块的通信过程;
图2为本发明实施例提供的该信息请求为信息表内容修改请求时,微内核***中软件模块的通信过程;
图3为本发明实施例提供的第二核心软件模块发送的针对第一核心软件模块的获取该第二核心软件模块自身所需信息的请求时,该微内核***中软件模块的通信过程;
图4为本发明实施例提供的当该信息请求为重新启动请求时,微内核***中软件模块的通信过程;
图5为本发明实施例提供的一种微内核***的组成结构示意图;
图6为本发明实施例提供的一种微内核***中软件模块的通信装置的结构示意图。
具体实施方式
本发明实施例为了有效的降低微内核***中各核心软件模块的耦合程度,解决微内核***中各核心软件模块通信导致的***性能降低的问题,提供了一种微内核***中软件模块的通信方法,该方法中信息库模块根据接收到的针对第一核心软件模块的信息请求,确定为该信息请求提供服务的该第一核心软件模块的信息表的信息,对该信息表进行操作,并发送处理结果。由于本发明实施例信息库模块中针对每个核心软件模块都设置了对应的信息表,在需要从第一核心软件模块请求信息时,直接与信息库模块进行交互,无需再与第一核心软件模块进行交互,因此减小了对第一核心软件模块性能的影响,也降低了微内核***中各核心软件模块之间的耦合程度,从而提高了微内核***的性能。
下面结合说明书附图,对本发明实施例进行详细说明。
在本发明实施例中为了有效的降低微内核***中核心软件模块之间的耦合程度,在该微内核***中增加信息库模块,当核心软件模块之间需要进行请求信息时,将之前发送给该需要请求信息的核心软件模块的信息请求,发送到信息库模块。信息库模块为了便于向每个核心软件模块提供服务,在该信息库模块中针对每个核心软件模块保存了对应该核心软件模块的信息表,该信息表中记录有该核心软件模块重启后运行所需的恢复数据和对外提供的接口数据。
信息库模块根据接收到的针对第一核心软件模块的信息请求时,在自身保存的针对每个核心软件模块的信息表中,查找针对该第一核心软件模块的信息表的信息,在该查找到的信息表中根据该信息请求对该信息表进行相应的处理,并在处理完成后返回处理结果。
具体在本发明实施例中为了进一步提高信息库模块处理针对各核心软件模块的信息请求的处理效率,可以在该信息库模块中针对每个信息表,创建维护该信息表的子线程。在信息表中针对信息请求进行相应的处理时,可以通过对该信息表进行维护的子线程对该信息请求进行相应的处理。
图1为本发明实施例提供的微内核***中软件模块的通信过程,该过程包括以下步骤:
S101:信息库模块接收针对第一核心软件模块的信息请求。
在本发明实施例中当微内核***中的核心软件模块需要对第一核心软件模块请求信息时,例如需要从第一核心软件模块获取接口数据时,或者当该第一核心软件模块需要对信息库模块中保存的自身的信息表中的信息进行修改时,或,第一核心软件模块需要从信息库中保存的自身的信息表中获取重启后运行所需恢复数据时,向该信息库模块发送针对该第一核心软件模块的信息请求。
具体的,第一核心软件模块在确定恢复数据或接口数据变化时,向所述信息库模块发送针对第一核心软件模块的信息请求,其中该信息请求中携带变化后的恢复数据或接口数据;或,
第一核心软件模块在重启后开始运行时,向所述信息库模块发送针对第一核心软件模块的信息请求;或,
第二核心软件模块在确定需要调用第一核心软件模块的接口数据时,向所述信息库模块发送针对第一核心软件模块的信息请求。
S102:根据该信息请求,确定为该信息请求提供信息的第一核心软件模块的信息表的信息。
在本发明实施例中信息库模块针对每个核心软件模块创建并分配了对应的信息表,并且在该信息库模块中针对每个核心软件模块创建相应的子线程,每个信息表由对应的子线程维护。
例如在该信息库模块中包括核心软件模块A、核心软件模块B和核心软件模块C等,信息库模块创建第一信息表、第二信息表以及第三信息表。其中该第一信息表用于向请求该核心软件模块A的信息请求提供信息,第二信息表用于向请求核心软件模块B的信息请求提供信息,第三信息表用于向请求核心软件模块C的信息请求提供信息,而第一子线程用于维护第一信息表,第二子线程用于维护第二信息表,第三子线程用于维护第三信息表。
S103:根据该信息表的信息确定对该信息表进行维护的子线程,通过该子线程在该信息表中根据所述信息请求进行相应的处理,并发送处理结果。
具体的信息库模块将所述信息请求挂载到该信息表的请求链表上,唤醒该确定的子线程,通过唤醒的所述子线程,在该信息表中根据所述信息请求进行相应的处理,将处理结果挂载在处理结果链表上,通告所述主线程处理完成,该主线程从处理结果链表上取下处理结果并发送。
在本发明实施例中该信息库模块为独立于各核心软件模块的模块,在该信息库模块中针对每个核心软件模块,创建对应该核心软件模块的信息表,并且该创建的信息表可以为一个、两个或多个,具体根据核心软件模块的特性决定。同时该信息库模块针对每个核心软件模块创建对应的子线程,每个信息表只能由一个子线程维护,而一个子线程可以维护多个信息表。
另外,该信息库模块为独立于各核心软件模块的模块,由于该信息库模块的逻辑比较简单,其自身无须像其他核心软件模块一样进行自身逻辑的处理,因此通过信息库模块可以更加有效的解决微内核***中核心软件模块间的通信问题,提高微内核***的性能。
在本发明实施例中可以在信息库模块中创建多个信息表,其中每个信息表对应一个核心软件模块。每个信息表中保存有对应的核心软件模块重启后运行所需的恢复数据和对外提供的接口数据。即在微内核***中核心软件模块自身重启后运行所需的配置数据和在重启前运行时的状态数据,及向其他核心软件模块提供的接口数据都可以保存在对应该核心软件模块的信息表中。
例如当该核心软件模块为ROUTING模块,对应该核心软件模块创建的信息表中保存了路由信息,该路由信息为该ROUTING模块向外提供的接口数据,即该ROUTING模块需要向其他核心软件模块提供的信息,该信息为其他核心软件模块需要与ROUTING模块进行通信获取的信息。对于V6  STACK模块,对应该核心软件模块创建的信息表中保存了传输控制协议(TransmissionControl Protocol,TCP)状态信息及用户数据报文协议(User Datagram Protocol,UDP)状态信息等。对于INTF模块,对应该核心软件模块创建的信息表中保存有最大传输单元(Maximum Transmission Unit,MTU)信息及运行所需参数信息等。
根据每个核心软件模块的特性,可以针对该核心软件模块创建两个或多个信息表。例如信息库模块可以针对ROUTING模块创建第一信息表和第二信息表,其中第一信息表中可以记录V4路由信息,第二信息表中可以记录V6路由信息。
信息库模块针对每个核心软件模块创建了对应的信息表后,该信息表通过针对该核心软件模块创建的子线程维护。即信息库模块针对每个核心软件模块创建子线程,该子线程用于维护为该核心软件模块创建的信息表。
由于信息库模块针对某一核心软件模块可能创建了两个或多个信息表,该信息库模块可以针对该核心软件模块只创建一个子线程,通过创建的这一个子线程维护为该核心软件模块创建的每个信息表。或者为了提高对信息请求处理的效率,进一步提高微内核***的性能,当信息库模块针对某一核心软件模块创建了两个或多个信息表后,可以针对为该核心软件模块创建的信息表的数量,创建对应数量的子线程,每个子线程维护一个信息表。上述信息库模块为每个核心软件模块创建信息表及子线程的过程,用户可以根据自身的需要灵活的选择相应的实现方式,只要能够实现通过子线程维护信息表的实现方式都应包含在本发明的保护范围内。
本发明实施例该信息库模块中接收针对第一核心软件模块的信息请求的为该信息库模块中的主线程,该主线程当接收到每个信息请求后,根据该信息请求中携带的被请求的第一核心软件模块的信息,可以确定为该信息请求提供信息的该第一核心软件模块的信息表的信息,并且该主线程可以根据该信息表的信息,确定维护该信息表的子线程,从而可以通过该子线程根据该信息请求对该信息表进行相应的处理。并在子线程处理完成时将处理结果挂载在处理结果链表上,通告主线程处理完成,主线程接收到该通告后,从该处理结果链表上取下该处理结果,发送给发送该信息请求的核心软件模块。
由于信息库模块中针对每个核心软件模块都创建了相应的信息表,并且每个信息表都通过对应的子线程进行维护,即每个信息表只能由一个子线程进行维护,因此核心软件模块无需使用数据保护,从而可以降低核心软件模块的设计难度,并且可以有效的保证核心软件模块有效的获取到自身所需的数据信息。另外,由于核心软件模块之间无需进行直接的通信,因此避免了核心软件模块之间相互等待发包造成的死锁问题,有效的提高了核心软件模块从其他核心软件模块获取接口数据的效率,提高了微内核***的性能。
另外,在本发明实施例中由于在核心软件模块重启后开始运行时,将重新启动请求也发送到信息库模块,通过信息库模块向该核心软件模块提供该核心软件模块重启后运行所需的恢复数据,该重启后运行时所需的恢复数据包括该核心软件模块的配置数据及该核心软件模块重启前运行时的状态数据,由于其他核心软件模块无需再向该重启后需要运行的核心软件模块提供配置信息及重启前运行时的状态信息,因此减小了对其他核心软件模块处理性能的影响,从而提高了微内核处理***的整体性能。
在本发明实施例中信息库模块接收到的请求从第一核心软件模块获取信息的信息请求可以为:信息表内容修改请求、重新启动请求和获取接口数据的请求等操作,下面分别针对不同的信息请求对本发明实施例中微内核***中软件模块的通信过程进行说明。
图2为本发明实施例提供的当该信息请求为信息表内容修改请求时,微内核***中软件模块的通信过程,该过程包括以下步骤:
S201:信息库模块的主线程接收到第一核心软件模块发送的,针对第一核心软件模块的信息表内容修改请求,其中该信息表内容修改请求中携带待添加的内容信息。
S202:信息库模块的主线程根据为每个核心软件模块创建被分配的信息表,确定为信息表内容修改请求提供信息的该第一核心软件模块的信息表的信息。
由于在本发明实施例中信息库模块针对每个核心软件模块创建并分配了对应的信息表,因此当信息库模块的主线程接收到第一核心软件模块发送的针对第一核心软件模块的信息表内容修改请求后,需要确定为该第一核心软件模块的信息表内容修改请求提供信息的为哪个信息表,从而可以在该确定的该信息表中,根据该信息表内容修改请求对该信息表进行相应的处理。
S203:根据该信息表的信息确定对该信息表进行维护的子线程。
由于信息库模块针对每个核心软件模块创建分配了对应的信息表,而每个信息表由对应的子线程进行维护,因此当确定了进行信息提供的信息表的信息后,可以根据该信息表的信息,确定对该信息表进行维护的子线程。
S204:将该信息表内容修改请求挂载到该信息表的请求链表上,唤醒对该信息表进行处理的子线程。
在本发明实施例中信息库模块为每个核心软件模块分配了子线程,每个子线程用于维护为该核心软件模块创建的信息表。为了避免信息库模块在处理与每个核心软件模块进行通信的信息请求的过程中,向其他核心软件模块返回处理结果过程中的相互影响,在本发明实施例中为每个核心软件模块分配的子线程只有在存在待处理的信息请求时才被激活,否则一直处于挂起状态。由于信息库模块中为每个核心软件模块分配的子线程,在不存在待处理的信息请求时,该子线程一直处于挂起状态,因此可以有效的节省信息库模块的资源,提高信息库模块的工作效率。
S205:该被唤醒的子线程,从待处理请求链表上取下该信息表内容修改请求,根据该信息表内容修改请求携带的待添加的内容信息,在对应该第一核心软件模块的信息表中修改该内容信息。
S206:该被唤醒的子线程在写入成功时,将处理完成通告挂载在处理结果链表上并通告主线程处理完成。
S207:主线程接收到通告后,从处理结果链表上取下该处理结果,将处理结果发送给第一核心软件模块。
上述过程中以该信息表内容修改请求中携带待添加的内容信息为例进行说明,当该信息表内容修改请求中携带待更改的内容信息,或待删除的内容信息,或当核心软件模块确定恢复数据或接口数据变化,向信息库模块发送信息请求时,其处理过程与上述过程类似,在这里就不一一赘述。
当信息库模块接收到的信息请求为,第二核心软件模块发送的针对第一核心软件模块的获取接口数据的请求时,该微内核***中软件模块的通信过程如图3所示:
S301:信息库模块的主线程接收到第二核心软件模块发送的针对第一核心软件模块的获取接口数据的请求。
即第二核心软件模块在运行的过程中,需要通过与第一核心软件模块进行信息交互,获取第一核心软件模块中的接口数据,以便该第二核心软件模块能够进行后续动作时,该第二核心软件模块生成该获取接口数据的请求。
S302:信息库模块的主线程根据为每个核心软件模块创建的信息表,确定为该获取接口数据的请求提供信息的该第一核心软件模块的信息表的信息。
S303:根据该信息表的信息确定对该信息表进行维护的子线程。
S304:将该获取接口数据的请求挂载到该信息表的请求链表上,唤醒对该信息表进行处理的子线程。
S305:该被唤醒的子线程,从待处理请求链表上取下该获取接口数据的请求,根据该获取接口数据的请求在确定的该信息表中进行查找,获取相应的处理结果。
S306:该被唤醒的子线程在获取到相应的处理结果时,将获取到的相应的处理结果挂载在处理结果链表上,并通告主线程处理完成。
S307:主线程接收到通告后,从处理结果链表上取下该处理结果,将该处理结果发送给第二核心软件模块。
图4为本发明实施例提供的当该信息请求为重新启动请求时,微内核***中软件模块的通信过程,该过程包括以下步骤:
S401:信息库模块的主线程接收第一核心软件模块发送的重新启动请求。
即在第一核心软件模块在重启后开始运行时,该第一核心软件模块在需要获取重启后运行所需恢复数据时,即该第一核心软件模块在需要获取重启后运行所需的配置数据,及在重启前运行时的状态数据时,生成重新启动请求,将该重新启动请求发送到该信息库模块。
S402:信息库模块的主线程根据为每个核心软件模块创建的信息表,确定为该重新启动请求提供信息的该第一核心软件模块的信息表的信息。
S403:根据该信息表的信息确定对该信息表进行维护的子线程。
S404:将该重新启动请求挂载到该信息表的请求链表上,唤醒对该信息表进行处理的子线程。
S405:该被唤醒的子线程,从待处理请求链表上取下该重新启动请求,根据该重新启动请求,在确定的该信息表中进行查找,获取相应的处理结果。
S406:该被唤醒的子线程在获取到相应的处理结果时,将该处理结果挂载在处理结果链表上,并通告主线程处理完成。
S407:主线程接收到通告后,从处理结果链表上取下该处理结果,将该处理结果发送给第一核心软件模块。
在本发明实施例中,第一核心软件模块重启后开始运行时需要从其他核心软件模块获取的重启后运行所需的恢复数据,都保存在信息库模块针对该第一核心软件模块的信息表中,因此当该信息库模块接收到第一核心软件模块发送的重新启动请求请求时,可以从为该第一核心软件模块分配的信息表中中获取该该第一核心软件模块重启后运行所需的恢复数据,由于第一核心软件模块在获取重启后运行所需的恢复数据过程中无需直接与其他核心软件模块进行直接信息交互,从而减小了对其他核心软件模块的影响,提高了微内核***的可靠性。并且由于信息库模块的逻辑简单,处理信息请求的速度较快,还可以有效的提高核心软件模块获取重新启动所需恢复数据的效率,提高核心软件模块重启后开始运行的速度。
下面结合一个具体的实施例进行说明,图5为本发明实施例提供的一种微内核***的组成结构示意图,在该微内核***中的核心软件模块包括:ROUTING模块、V6 STACK模块和SNMP模块,并且在该微内核***中还包括信息库模块。微内核***中的每个核心软件模块在需要从外界模块中获取接口数据,以便进行后续运行时,都直接从信息库模块中获取。信息库模块为ROUTING模块创建并分配了第一信息表和第二信息表,其中第一信息表中保存V6路由信息,第二信息表中保存V4路由信息,并通过第一子线程维护该第一信息表和第二信息表,为V6 STACK模块创建并分配了第三信息表,并通过第二子线程维护该第三信息表,为SNMP模块创建并分配了第四信息表,并通过第四子线程维护该第三信息表。
当ROUTING模块由于静态配置或者接收到路由协议的通告,确定新增了一条V6路由信息时,ROUTING模块向信息库模块发送针对自身的信息表内容修改请求,其中该信息表内容修改请求中携带该待添加的V6路由信息。
信息库模块的主线程接收到ROUTING模块发送的信息表内容修改请求后,信息库模块根据该信息表内容修改请求中携带的待添加的V6路由信息,确定需要对为该ROUTING模块创建并分配的第一信息表进行操作。同时,由于该第一信息表通过第一子线程维护,因此信息库模块将该信息表内容修改请求挂载在第一信息表的请求链表上,唤醒第一子线程。
被唤醒的第一子线程从自身维护的第一信息表的请求链表上取下该信息表内容修改请求,将该信息表内容修改请求中携带的待添加的V6路由信息,写入该第一信息表中,并确定该V6路由信息的索引。第一子线程在处理完成时将处理完成的信息携带在处理结果中挂载在主线程的处理结果链表上,并通告主线程处理完成。主线程接收到通告后,从处理结果链表上取下该处理结果,将该处理结果发送给ROUTING模块。
V6 STACK模块在进行数据包的发送时,需要与ROUTING模块进行通信获取接口数据,即获取路由信息,因此该V6 STACK模块向信息库模块发送与ROUTING模块进行通信获取接口数据的请求。
信息库模块的主线程接收到V6 STACK模块发送的与ROUTING模块进行通信获取接口数据的请求后,确定需要对为该ROUTING模块创建并分配的第一信息表进行操作。同时,由于该第一信息表通过第一子线程维护,信息库模块将该获取接口数据的请求挂载在第一信息表的请求链表上,唤醒第一子线程。
被唤醒的第一子线程从自身维护的第一信息表的请求链表上取下该获取接口数据的请求,根据该获取接口数据的请求,从第一信息表中查找路由信息,并将查找到的路由信息挂载在主线程的处理结果链表上,并通告主线程处理完成。主线程接收到通告后,从处理结果链表上取下该路由信息,并发送给V6STACK模块。
图6为本发明实施例提供的一种微内核***中软件模块的通信装置的结构示意图,该装置包括:
接收模块61,用于接收针对第一核心软件模块的信息请求;
信息提供模块62,用于根据自身保存的针对该第一核心软件模块的信息表的信息,在该信息表中根据所述信息请求进行相应的处理,并发送处理结果。
所述信息提供模块62具体用于,
根据该信息表的信息,确定对该信息表进行维护的子线程,通过所述子线程在该信息表中根据所述信息请求进行相应的处理。
所述信息提供模块62具体用于,
将所述信息请求挂载到该信息表的请求链表上,唤醒该确定的子线程,通过唤醒的所述子线程,在该信息表中根据所述信息请求进行相应的处理,接收所述子线程发送的通告,取下所述子线程挂载在处理结果链表上的处理结果并发送。
所述信息提供模块62具体用于,当所述信息请求为信息表内容修改请求时,根据所述信息表内容修改请求,通过所述子线程修改该信息表。
所述信息提供模块62具体用于,当所述信息请求为重新启动请求时,根据所述重新启动信息请求,通过所述子线程在所述信息表中查找重启后运行所需恢复数据。
所述信息提供模块62具体用于,当所述信息请求为从第一核核心软件模块获取接口数据的请求时,根据所述获取接口数据的请求,通过所述子线程在所述信息表中查找所述接口数据。
所述装置还包括:
创建模块63,用于根据每个第一核心软件模块,创建针对每个核心软件模块的至少一个信息表,其中该信息表中保存该核心软件模块运行过程中产生的信息,及运行过程中所需的信息。
所述装置中,
所述接收模块61还用于,接收第一核心软件模块在确定恢复数据接口数据变化时,发送的针对第一核心软件模块的信息请求,其中该信息请求中携带变化后的恢复数据或接口数据;或,接收第一核心软件模块在重启后开始运行时,发送针对第一核心软件模块的信息请求;或,在第二核心软件模块在确定需要调用第一核心软件模块的接口数据时,发送的针对第一核心软件模块的信息请求。
本发明实施例还提供了一种微内核***,所述***包括上述微内核***中软件模块的通信装置,第一核心软件模块及第二核心软件模块。
本发明实施例提供了一种路由设备,所述路由设备包括上述所述的微内核***。
本发明实施例提供一种微内核***中软件模块的通信方法、***及装置,该方法中,当需要对第一核心软件模块进行操作时,向信息库模块发送针对第一核心软件模块的信息请求,根据自身保存的针对第一核心软件模块的信息表的信息,在该信息表中根据该信息请求进行相应处理,并发送处理完成通告。由于在本发明实施例中在信息库模块中针对每个核心软件模块都设置了对应的信息表,在该信息表中针对该信息请求进行相应的处理,因此其他核心软件模块无需再与第一核心软件模块进行交互获取相应信息,从而降低了微内核***中核心软件模块之间的耦合程度,减小了核心软件模块在进行相应信息操作时的性能下降。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (18)

1.一种微内核***中软件模块的通信方法,其特征在于,包括:
信息库模块接收针对第一核心软件模块的信息请求;
根据自身保存的针对该第一核心软件模块的信息表的信息,在该信息表中根据所述信息请求进行相应的处理,并发送处理结果。
2.如权利要求1所述的方法,其特征在于,所述在该信息表中根据所述信息请求进行相应的处理包括:
根据该信息表的信息,确定对该信息表进行维护的子线程;
通过所述子线程在该信息表中根据所述信息请求进行相应的处理。
3.如权利要求2所述的方法,其特征在于,所述发送处理结果包括:
所述子线程将所述处理结果发送给所述信息库模块的主线程,并通告所述主线程处理完成;
所述主线程根据接收的所述通告,发送处理结果。
4.如权利要求3所述的方法,其特征在于,通过所述子线程在该信息表中根据所述信息请求进行相应的处理包括:
信息库模块的主线程将所述信息请求挂载到该信息表的请求链表上,唤醒该确定的子线程;
通过唤醒的所述子线程,在该信息表中根据所述信息请求进行相应的处理;
所述发送处理结果包括:将处理结果挂载在处理结果链表上,通告所述主线程处理完成;
所述主线程接收到通告后,从处理结果链表上取下处理结果并发送。
5.如权利要求2所述的方法,其特征在于,当所述信息请求为信息表内容修改请求时,通过所述子线程在该信息表中根据所述信息请求进行相应的处理包括:
根据所述信息表内容修改请求,通过所述子线程修改该信息表。
6.如权利要求2所述的方法,其特征在于,当所述信息请求为重新启动请求时,通过所述子线程在该信息表中根据所述信息请求进行相应的处理包括:
根据所述重新启动请求,通过所述子线程在所述信息表中查找重启后运行所需恢复数据。
7.如权利要求2所述的方法,其特征在于,当所述信息请求为从第一核心软件模块获取接口数据的请求时,通过所述子线程在该信息表中根据所述信息请求进行相应的处理包括:
根据所述获取接口数据的请求,通过所述子线程在所述信息表中查找所述接口数据。
8.如权利要求1所述的方法,其特征在于,所述信息库模块接收针对第一核心软件模块的信息请求之前,所述方法进一步包括:
所述信息库模块根据每个核心软件模块,创建针对每个核心软件模块的至少一个信息表,其中该信息表中保存该核心软件模块重启后运行所需的恢复数据和对外提供的接口数据。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
第一核心软件模块在确定恢复数据或接口数据变化时,向所述信息库模块发送针对第一核心软件模块的信息请求,其中该信息请求中携带变化后的恢复数据或接口数据;或,
第一核心软件模块在重启后开始运行时,向所述信息库模块发送针对第一核心软件模块的信息请求;或,
第二核心软件模块在确定需要调用第一核心软件模块的接口数据时,向所述信息库模块发送针对第一核心软件模块的信息请求。
10.一种微内核***中软件模块的通信装置,其特征在于,所述装置包括:
接收模块,用于接收针对第一核心软件模块的信息请求;
信息提供模块,用于根据自身保存的针对该第一核心软件模块的信息表的信息,在该信息表中根据所述信息请求进行相应的处理,并发送处理结果。
11.如权利要求10所述的装置,其特征在于,所述信息提供模块具体用于,
根据该信息表的信息,确定对该信息表进行维护的子线程,通过所述子线程在该信息表中根据所述信息请求进行相应的处理,接收所述子线程发送的通告,取下所述子线程挂载在处理结果链表上的处理结果并发送。
12.如权利要求11所述的装置,其特征在于,所述信息提供模块具体用于,当所述信息请求为信息表内容修改请求时,根据所述信息表内容修改请求,通过所述子线程修改该信息表。
13.如权利要求11所述的装置,其特征在于,所述信息提供模块具体用于,当所述信息请求为重新启动请求时,根据所述重新启动请求,通过所述子线程在所述信息表中查找重启后运行所需恢复数据。
14.如权利要求11所述的装置,其特征在于,所述信息提供模块具体用于,当所述信息请求为从第一核核心软件模块获取接口数据的请求时,根据所述获取接口数据的请求,通过所述子线程在所述信息表中查找所述接口数据。
15.如权利要求10所述的装置,其特征在于,所述装置还包括:
创建模块,用于根据每个核心软件模块,创建针对每个核心软件模块的至少一个信息表,其中该信息表中保存该核心软件模块重启后运行时所需的恢复数据和对外提供的接口数据。
16.如权利要求15所述的装置,其特征在于,所述装置中,
所述接收模块还用于,接收第一核心软件模块在确定恢复数据或接口数据变化时,发送的针对第一核心软件模块的信息请求,其中该信息请求中携带变化后的恢复数据或接口数据;或,接收第一核心软件模块在重启后开始运行时,发送针对第一核心软件模块的信息请求;或,在第二核心软件模块在确定需要调用第一核心软件模块的接口数据时,发送的针对第一核心软件模块的信息请求。
17.一种微内核***,其特征在于,所述***包括:如权利要求10~16任一所述的装置,第一核心软件模块和第二核心软件模块。
18.一种路由设备,其特征在于,所述路由设备包括如权利要求17所述的微内核***。
CN201010519996A 2010-10-20 2010-10-20 一种微内核***中软件模块的通信方法、***及装置 Expired - Fee Related CN101980170B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010519996A CN101980170B (zh) 2010-10-20 2010-10-20 一种微内核***中软件模块的通信方法、***及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010519996A CN101980170B (zh) 2010-10-20 2010-10-20 一种微内核***中软件模块的通信方法、***及装置

Publications (2)

Publication Number Publication Date
CN101980170A true CN101980170A (zh) 2011-02-23
CN101980170B CN101980170B (zh) 2012-09-05

Family

ID=43600672

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010519996A Expired - Fee Related CN101980170B (zh) 2010-10-20 2010-10-20 一种微内核***中软件模块的通信方法、***及装置

Country Status (1)

Country Link
CN (1) CN101980170B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591623A (zh) * 2012-01-20 2012-07-18 周超勇 分布式模块间通信方法
CN111343107A (zh) * 2020-01-22 2020-06-26 盛科网络(苏州)有限公司 信息处理方法、以太网交换芯片以及存储介质
WO2023274376A1 (zh) * 2021-06-30 2023-01-05 阿里巴巴(中国)有限公司 微内核架构的设备驱动方法、装置、电子设备和存储介质
CN115794450A (zh) * 2023-02-13 2023-03-14 中国人民解放军国防科技大学 一种面向微内核***服务的并行性优化方法、***及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266554A (zh) * 2008-04-22 2008-09-17 中兴通讯股份有限公司 一种嵌入式终端的多媒体应用处理方法以及嵌入式终端
CN101777008A (zh) * 2009-12-31 2010-07-14 中兴通讯股份有限公司 移动终端***线程池实现方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266554A (zh) * 2008-04-22 2008-09-17 中兴通讯股份有限公司 一种嵌入式终端的多媒体应用处理方法以及嵌入式终端
CN101777008A (zh) * 2009-12-31 2010-07-14 中兴通讯股份有限公司 移动终端***线程池实现方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591623A (zh) * 2012-01-20 2012-07-18 周超勇 分布式模块间通信方法
CN111343107A (zh) * 2020-01-22 2020-06-26 盛科网络(苏州)有限公司 信息处理方法、以太网交换芯片以及存储介质
WO2023274376A1 (zh) * 2021-06-30 2023-01-05 阿里巴巴(中国)有限公司 微内核架构的设备驱动方法、装置、电子设备和存储介质
CN115794450A (zh) * 2023-02-13 2023-03-14 中国人民解放军国防科技大学 一种面向微内核***服务的并行性优化方法、***及介质

Also Published As

Publication number Publication date
CN101980170B (zh) 2012-09-05

Similar Documents

Publication Publication Date Title
CN106663028B (zh) 动态碎片分配调整
US20220391260A1 (en) Method and Apparatus for Creating Container, Device, Medium, and Program Product
CN102929834B (zh) 众核处理器及其核间通信的方法、主核和从核
CN103971316A (zh) 计算机***及其绘图处理方法
WO2005026947B1 (en) Managing processing within computing environments including initiation of virtual machines
CN103532823A (zh) 物联网消息处理方法、装置及***
CN103942178A (zh) 多核处理器上实时操作***与非实时操作***之间的通信方法
CN102662910B (zh) 基于嵌入式***的网络交互体系及网络交互方法
US20110107344A1 (en) Multi-core apparatus and load balancing method thereof
EP3869324A2 (en) Voice data processing method, apparatus, storage medium and computer program product
CN101980170B (zh) 一种微内核***中软件模块的通信方法、***及装置
CN105187327A (zh) 一种分布式消息队列中间件
CN101964763A (zh) 消息处理方法
CN104156255A (zh) 一种虚拟机迁移方法、虚拟机迁移装置及源物理主机
WO2024119823A1 (zh) Gpu计算资源的管理方法、装置、电子设备及可读存储介质
CN114936173B (zh) 一种eMMC器件的读写方法、装置、设备和存储介质
CN110532060A (zh) 一种混合网络环境数据采集方法及***
CN111294293B (zh) 一种基于用户态协议栈的网络隔离方法和装置
CN113742075A (zh) 基于云端分布式***的任务处理方法、装置及***
CN110401939B (zh) 一种低功耗蓝牙控制器链路层装置
CN104951346A (zh) 一种用于嵌入式***的进程管理方法及***
US20140245050A1 (en) Power management for host with devices assigned to virtual machines
CN102117261B (zh) 一种芯片内部处理器之间的通信方法
CN104572315A (zh) 实现子***间通信的方法、通信实体及分布式通信***
CN109634721B (zh) 一种虚拟机与主机的启动通信方法及相关装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: CHONGQING JIEJIEGAO TECHNOLOGY DEVELOPMENT CO., LT

Free format text: FORMER OWNER: BEIJING XINGWANG RUIJIE NETWORK TECHNOLOGIES CO., LTD.

Effective date: 20150716

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150716

Address after: Lang Jun Center No. 28 road 401120 Chongqing city Yubei District Huanglong longta Street Building 3 8-3

Patentee after: CHONGQING JIEJIEGAO TECHNOLOGY DEVELOPMENT CO.,LTD.

Address before: 100036 Beijing Haidian District City 29 Fuxing Road East Building 11 layer Italy Austria Peng

Patentee before: BEIJING STAR-NET RUIJIE NETWORKS Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20110223

Assignee: Beijing Ruijie Network Technology Co., Ltd.

Assignor: CHONGQING JIEJIEGAO TECHNOLOGY DEVELOPMENT CO.,LTD.

Contract record no.: 2015990000795

Denomination of invention: Communication method, system and device for software module in microkernel system

Granted publication date: 20120905

License type: Common License

Record date: 20150907

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120905

Termination date: 20211020

CF01 Termination of patent right due to non-payment of annual fee