一种解决多核系统中表项互斥的方法技术方案

技术编号:10743658 阅读:114 留言:0更新日期:2014-12-10 16:31
本发明专利技术涉及一种解决多核系统中表项互斥的方法,包括以下步骤:1)创建表项,具体为:11)当一个CPU需要查找共享表项时,先查找该CPU对应的独立CPU表;12)SHARED表先加锁,然后查找表项,该CPU申请CPU独立使用的内存,把SHARED表中的内容复制到CPU表中,并建立CPU表和SHARED表的关联,SHARED表项的引用计数加一并记录是哪个CPU引用了,SHARED表解锁;2)删除表项,具体为:21)SHARED表的表项要删除时,先加锁并查找到共享表项;22)判断共享表的引用计数是否为0;221)直接删除SHARED表的表项;222)根据表项中记录的引用CPU,逐一发消息到每个CPU,通知各个CPU删除本地表项;23)每个CPU删除表项后通知SHARED表。与现有技术相比,本发明专利技术具有高效、省时等优点。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及,包括以下步骤:1)创建表项,具体为:11)当一个CPU需要查找共享表项时,先查找该CPU对应的独立CPU表;12)SHARED表先加锁,然后查找表项,该CPU申请CPU独立使用的内存,把SHARED表中的内容复制到CPU表中,并建立CPU表和SHARED表的关联,SHARED表项的引用计数加一并记录是哪个CPU引用了,SHARED表解锁;2)删除表项,具体为:21)SHARED表的表项要删除时,先加锁并查找到共享表项;22)判断共享表的引用计数是否为0;221)直接删除SHARED表的表项;222)根据表项中记录的引用CPU,逐一发消息到每个CPU,通知各个CPU删除本地表项;23)每个CPU删除表项后通知SHARED表。与现有技术相比,本专利技术具有高效、省时等优点。【专利说明】
本专利技术涉及多核系统领域,尤其是涉及。
技术介绍
多核系统中,经常涉及到资源共享的问题,两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥,也就是说,一个进程正在访问临界资源,另一个要访问该资源的进程必须等待。 处于临界区中的数据,要访问时必须进行互斥,互斥的数据越多,越不利于多核并行处理。现有的大部分数据,都是多核共享的,当多个核同时访问时,就只能有一个核进行操作,其余核只能等待,造成了 CPU资源的浪费。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供,把互斥的数据变为独立使用的数据,减少核间等待时间,提高多核处理性能。 本专利技术的目的可以通过以下技术方案来实现: ,其特征在于,包括以下步骤: I)创建表项,具体为: 11)当一个CPU需要查找共享表项时,先查找该CPU对应的独立CPU表,如果CPU表项无法查到,则到SHARED表中查找,并执行步骤12); 12) SHARED表先加锁,然后查找表项,查到表项后,该CPU申请CPU独立使用的内存,把SHARED表中的内容复制到CPU表中,并建立CPU表和SHARED表的关联,SHARED表项的引用计数加一并记录是哪个CPU引用了,SHARED表解锁; 13)该CPU再次需要查表时,直接在CPU表中查到表项进行访问; 2)删除表项,具体为: 21) SHARED表的表项要删除时,先加锁并查找到共享表项; 22)判断共享表的引用计数是否为0,若为0,则进行步骤221),若不为0,则进行步骤 222); 221)直接删除SHARED表的表项,并执行步骤23); 222)根据表项中记录的引用CPU,逐一发消息到每个CPU,通知各个CPU删除本地表项,并执行步骤23); 23)每个CPU删除表项后通知SHARED表,显示CPU表已经删除完毕; 24)所有的CPU表项都删除后,删除SHARED表并且解锁。 所述的SHARED表项为所有CPU共享,是临界资源。 当前的所有共享表项都可作为SHARED表。 所述的CPU表为各CPU独立表项,互相不可见。 与现有技术相比,本专利技术具有以下优点: 1、只有在CPU独立表项查不到时才会触发互斥,减少了对临界资源的访问; 2、减少了 CPU等待时间,提高了 CPU的处理效率; 3、该方法运用在数据转发流程中时,转发性能大幅提升。 【专利附图】【附图说明】 图1为本专利技术的方法流程图; 图2为本专利技术多核系统的结构示意图。 【具体实施方式】 下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。 实施例 在多核系统中,经常涉及到资源共享的问题,处于临界区中的数据,要访问时必须进行互斥。互斥的数据越多,越不利于多核并行处理。本专利技术的方法主要解决互斥问题,把互斥的数据变为独立使用的数据,减少核间等待时间,提高多核处理性能。 如图1和图2所示,,包括以下步骤: SI)创建表项,具体为: Sll)当一个CPU需要查找共享表项时,先查找该CPU对应的独立CPU表,如果CPU表项无法查到,则到SHARED表中查找,并执行步骤S12); S12) SHARED表先加锁,然后查找表项,查到表项后,该CPU申请CPU独立使用的内存,把SHARED表中的内容复制到CPU表中,并建立CPU表和SHARED表的关联,SHARED表项的引用计数加一并记录是哪个CPU引用了,SHARED表解锁; S13)该CPU再次需要查表时,直接在CPU表中查到表项进行访问; S2)删除表项,具体为: S21) SHARED表的表项要删除时,先加锁并查找到共享表项; S22)判断共享表的引用计数是否为0,若为0,则进行步骤S221),若不为0,则进行步骤S222); S221)直接删除SHARED表的表项,并执行步骤S23); S222)根据表项中记录的引用CPU,逐一发消息到每个CPU,通知各个CPU删除本地表项,并执行步骤S23); S23)每个CPU删除表项后通知SHARED表,显示CPU表已经删除完毕; S24)所有的CPU表项都删除后,删除SHARED表并且解锁。 所述的SHARED表项为所有CPU共享,是临界资源。当前的所有共享表项都可作为SHARED表。所述的CPU表为各CPU独立表项,互相不可见。【权利要求】1.,其特征在于,包括以下步骤: 1)创建表项,具体为: 11)当一个CPU需要查找共享表项时,先查找该CPU对应的独立CPU表,如果CPU表项无法查到,则到SHARED表中查找,并执行步骤12); 12)SHARED表先加锁,然后查找表项,查到表项后,该CPU申请CPU独立使用的内存,把SHARED表中的内容复制到CPU表中,并建立CPU表和SHARED表的关联,SHARED表项的引用计数加一并记录是哪个CPU引用了,SHARED表解锁; 13)该CPU再次需要查表时,直接在CPU表中查到表项进行访问; 2)删除表项,具体为: 21)SHARED表的表项要删除时,先加锁并查找到共享表项; 22)判断共享表的引用计数是否为O,若为O,则进行步骤221),若不为O,则进行步骤222); 221)直接删除SHARED表的表项,并执行步骤23); 222)根据表项中记录的引用CPU,逐一发消息到每个CPU,通知各个CPU删除本地表项,并执行步骤23); 23)每个CPU删除表项后通知SHARED表,显示CPU表已经删除完毕; 24)所有的CPU表项都删除后,删除SHARED表并且解锁。2.根据权利要求1所述的,其特征在于,所述的SHARED表项为所有CPU共享,是临界资源。3.根据权利要求2所述的,其特征在于,当前的所有共享表项都可作为SHARED表。4.根据权利要求1所述的,其特征在于,所述的CPU表为各CPU独立表项,互相不可见。【文档编号】G06F9/50GK104199800SQ201410347825【公开日】2014年12月10日 申请日期:2014年7月21日 优先权日:2014年7月21日 【专利技术者】曹本文档来自技高网...

【技术保护点】
一种解决多核系统中表项互斥的方法,其特征在于,包括以下步骤:1)创建表项,具体为:11)当一个CPU需要查找共享表项时,先查找该CPU对应的独立CPU表,如果CPU表项无法查到,则到SHARED表中查找,并执行步骤12);12)SHARED表先加锁,然后查找表项,查到表项后,该CPU申请CPU独立使用的内存,把SHARED表中的内容复制到CPU表中,并建立CPU表和SHARED表的关联,SHARED表项的引用计数加一并记录是哪个CPU引用了,SHARED表解锁;13)该CPU再次需要查表时,直接在CPU表中查到表项进行访问;2)删除表项,具体为:21)SHARED表的表项要删除时,先加锁并查找到共享表项;22)判断共享表的引用计数是否为0,若为0,则进行步骤221),若不为0,则进行步骤222);221)直接删除SHARED表的表项,并执行步骤23);222)根据表项中记录的引用CPU,逐一发消息到每个CPU,通知各个CPU删除本地表项,并执行步骤23);23)每个CPU删除表项后通知SHARED表,显示CPU表已经删除完毕;24)所有的CPU表项都删除后,删除SHARED表并且解锁。

【技术特征摘要】

【专利技术属性】
技术研发人员:曹瑜张剑波王乃斯
申请(专利权)人:上海寰创通信科技股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1