内存释放方法和路由系统的利记博彩app

文档序号:7940087阅读:183来源:国知局
专利名称:内存释放方法和路由系统的利记博彩app
技术领域
本发明涉及数据通信技术,特别涉及内存释放方法和路由系统。
背景技术
随着物理接口速率的不断提升,路由系统中CPU的转发核(core)数也随之增加。 在路由系统中,CPU的各个转发核通过并行工作方式并行处理报文转发,以期提高报文转发性能。但是,当多个转发核同时对同一代码区(记为共享资源)访问时,为避免冲突,需要实现多个转发核对共享资源的互斥访问,该互斥访问不能体现出多核并行执行的优点。为了体现出多核并行执行的优点,就需要避免共享资源的互斥访问。现有技术提供了以下方法来取代共享资源的互斥访问通过资源指针控制共享资源的访问。该通过资源指针控制共享资源的访问具体实现时可为在读共享资源时不用互斥,可以通过资源指针直接访问;而在写共享资源时也不用互斥,即首先拷贝一份共享资源,然后在拷贝的共享资源上进行写操作,写操作完成后更新资源指针,让其指向新拷贝的共享资源。至于原来的共享资源,其需要释放。其中,该释放资源是基于时间的内存延迟释放方法,即从上述更新资源指针的时间点算起,在延迟一段时间后,释放原始的共享资源。该延迟的时间是静态指定的,如1秒或10秒等。但是,这种基于时间的内存延迟释放方法是低效、甚至是不可靠的,因为延迟的时间是静态指定的,如果指定的延迟时间过短,那么在该延迟时间到达时,还会存在该待释放的资源还有被访问的可能,这影响资源访问;如果指定的延迟时间过长,那么势必会在一段时间内减小系统可提供的空闲内存的数量,造成资源的浪费。

发明内容
本发明提供了内存释放方法和路由系统,以避免基于时间的内存延迟释放方法所带来的低效、甚至不可靠的缺陷。本发明提供的技术方案包括一种内存释放方法,包括对路由系统中的所有转发核按照设定的规则依次进行组织;每个转发核在更新资源指针指向的资源后,将该资源指针在更新之前指向的资源作为需要释放的资源,存放至下一个转发核被分配的资源释放队列中;每个转发核检查自身被分配的资源释放队列是否存在需要释放的资源,如果是, 则依次取出每一需要释放的资源,并判断该资源是否为由于自身更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续作为需要释放的资源存放至下一个转发核被分配的资源释放队列中。一种路由系统,包括组织单元、配置单元和多个转发核,其中,所述组织单元,用于对路由系统中的所有转发核按照设定的规则进行组织;所述配置单元,用于为每个转发核分配独立的资源释放队列;
每一转发核包括第一处理单元和第二处理单元,其中,所述第一处理单元,用于在其所处的转发核更新资源指针指向的资源后,将该资源指针在更新之前指向的资源作为需要释放的资源,存放至该转发核的下一个转发核被分配的资源释放队列中;所述第二处理单元,用于检查其所处的转发核被分配的资源释放队列是否存在需要释放的资源,如果是,则依次取出每一需要释放的资源,并判断该资源是否为由于其所处的转发核更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续作为需要释放的资源存放至该转发核的下一个转发核被分配的资源释放队列中。由以上技术方案可以看出,本发明中,每个转发核在其由于更新资源指针指向的资源而确定的需要释放的资源经过所有转发核之后才释放该资源,即在所有转发核都不访问该资源时才及时释放该资源,这一方面不会影响资源访问,另一方面也能及时释放资源, 不会造成资源的浪费,避免基于时间的内存延迟释放方法所带来的低效、甚至不可靠的缺陷,完全避免了基于时间的内存延迟释放方法所带来的低效、甚至不可靠的缺陷。


图1为本发明实施例提供的基本流程图;图2为本发明实施例提供的环结构示意图;图3为本发明实施例提供的环结构另一示意图;图4为本发明实施例提供的路由系统结构图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。参见图1,图1为本发明实施例提供的基本流程图。如图1所示,该流程可包括以下步骤步骤101,对路由系统中的所有转发核按照设定的规则依次进行组织。本步骤101具体实现时可为将所有转发核按照设定的顺序依次组成一个环。其中,将所有转发核按照设定的顺序依次组成一个环具体可为对路由系统中的所有转发核按照顺序编号,假如路由系统中的所有转发核为COre-l,core-2, . . . core-N, 则可从一个预先设定的初始值比如1开始对该所有转发核按照顺序编号,比如,编号为从1 至N,之后将所有转发核按照编号大小依次组成一个环。其中,将所有转发核按照编号大小依次组成一个环可包括以下任一情况情况1 按照转发核的编号由小到大的顺序顺时针将所有转发核组成一个环。 以路由系统中的所有转发核为core-1,core-2, . . . core-N,该各个转发核的编号为1, 2,...N,基于此,按照编号由小到大的顺序顺时针将所有转发核组成一个环即可如图2所
示 ο情况2 按照转发核的编号由大到小的顺序顺时针将所有转发核组成一个环。 以路由系统中的所有转发核为core-1,core-2, . . . core-N,该各个转发核的编号为1,2, ... N,基于此,按照编号由大到小的顺序顺时针将所有转发核组成一个环即可如图3所
7J\ ο步骤102,每个转发核在更新资源指针指向的资源后,将该资源指针在更新之前指向的资源作为需要释放的资源,存放至下一个转发核被分配的资源释放队列中。基于上面描述的对路由系统中的所有转发核按照设定的规则进行组织,是将所有转发核按照设定的顺序依次组成一个环,可以得到,本步骤102中的下一个转发核为当前转发核在环中沿顺时针方向或者逆时针方向的相邻的转发核。另外,本步骤102中,转发核被分配的资源释放队列是预先分配的,资源释放队列用于存放需要释放的资源,并按照先进先出(FIFO :First In First Out)组织其存放的需要释放的资源。其中,各个转发核被分配的资源释放队列相互独立。以图2为例,假如本步骤102中,core-Ι更新资源指针指向的资源,则该core-1将该资源指针在更新之前指向的资源作为需要释放的资源存放至图2所示的core-2所被分配的资源释放队列中。步骤103,每个转发核检查自身被分配的资源释放队列是否存在需要释放的资源, 如果是,则依次取出每一需要释放的资源,并判断该资源是否为由于自身更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续作为需要释放的资源存放至下一个转发核被分配的资源释放队列中。本步骤103中,每个转发核检查自身被分配的资源释放队列是否存在需要释放的资源的操作,是在处理报文之前或者处理报文之后执行,本发明并不具体限定。至此,完成图1所示的流程。从图1所示的流程可以看出,本发明中,每个转发核在其由于更新资源指针指向的资源而确定的需要释放的资源经过所有转发核之后才释放该资源,即在所有转发核都不访问该资源时才及时释放该资源,这一方面不会影响资源访问,另一方面也能及时释放资源,不会造成资源的浪费,避免基于时间的内存延迟释放方法所带来的低效、甚至不可靠的缺陷。至此,完成本发明提供的方法描述,下面对本发明提供的路由系统进行描述参见图4,图4为本发明实施例提供的路由系统结构图。如图4所示,该路由系统包括组织单元、配置单元和多个转发核,其中,所述组织单元,用于对路由系统中的所有转发核按照设定的规则进行组织;所述配置单元,用于为每个转发核分配独立的资源释放队列;具体地,每一资源释放队列是按照FIFO的方式组织存放的需要释放的资源。每一转发核包括第一处理单元和第二处理单元,其中,所述第一处理单元,用于在其所处的转发核更新资源指针指向的资源后,将该资源指针在更新之前指向的资源作为需要释放的资源,存放至该转发核的下一个转发核被分配的资源释放队列中;所述第二处理单元,用于检查其所处的转发核被分配的资源释放队列是否存在需要释放的资源,如果是,则依次取出每一需要释放的资源,并判断该资源是否为由于其所处的转发核更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续作为需要释放的资源存放至该转发核在的下一个转发核被分配的资源释放队列中。其中,所述第二处理单元是在处理报文之前或者处理报文之后检查其所处的转发核被分配的资源释放队列是否存在需要释放的资源。具体地,本发明中,所述组织单元对路由系统中的所有转发核按照设定的规则进行组织,是将所有转发核按照设定的顺序依次组成一个环;相应地,所述下一个转发核为当前转发核在环中沿顺时针方向或者逆时针方向的相邻的转发核。优选地,本发明中,所述组织单元对路由系统中的所有转发核按照设定的规则进行组织,是指按照转发核的编号由小到大的顺序顺时针将所有转发核组成一个环;或者,按照转发核的编号由大到小的顺序顺时针将所有转发核组成一个环。至此,完成本发明提供的路由系统结构描述。由以上技术方案可以看出,本发明中,环中的每个转发核在其由于更新资源指针指向的资源而确定的需要释放的资源经过整个环的所有转发核之后才释放该资源,即在所有转发核都不访问该资源时才及时释放该资源,这一方面不会影响资源访问,另一方面也能及时释放资源,不会造成资源的浪费,避免基于时间的内存延迟释放方法所带来的低效、 甚至不可靠的缺陷。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种内存释放方法,其特征在于,该方法包括对路由系统中的所有转发核按照设定的规则依次进行组织;每个转发核在更新资源指针指向的资源后,将该资源指针在更新之前指向的资源作为需要释放的资源,存放至下一个转发核被分配的资源释放队列中;每个转发核检查自身被分配的资源释放队列是否存在需要释放的资源,如果是,则依次取出每一需要释放的资源,并判断该资源是否为由于自身更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续作为需要释放的资源存放至下一个转发核被分配的资源释放队列中。
2.根据权利要求1所述的方法,其特征在于,所述对路由系统中的所有转发核按照设定的规则进行组织,是将所有转发核按照设定的顺序依次组成一个环;所述下一个转发核为当前转发核在环中沿顺时针方向或者逆时针方向的相邻的转发核。
3.根据权利要求1或2所述的方法,其特征在于,对路由系统中的所有转发核按照设定的规则进行组织,是指按照转发核的编号由小到大的顺序顺时针将所有转发核组成一个环;或者,按照转发核的编号由大到小的顺序顺时针将所有转发核组成一个环。
4.根据权利要求1所述的方法,其特征在于,资源释放队列按照先进先出FIFO的方式组织存放的需要释放的资源。
5.根据权利要求1所述的方法,其特征在于,所述每个转发核检查自身被分配的资源释放队列是否存在需要释放的资源的操作,是在处理报文之前或者处理报文之后执行。
6.一种路由系统,其特征在于,该路由系统包括组织单元、配置单元和多个转发核, 其中,所述组织单元,用于对路由系统中的所有转发核按照设定的规则进行组织;所述配置单元,用于为每个转发核分配独立的资源释放队列;每一转发核包括第一处理单元和第二处理单元,其中,所述第一处理单元,用于在其所处的转发核更新资源指针指向的资源后,将该资源指针在更新之前指向的资源作为需要释放的资源,存放至该转发核的下一个转发核被分配的资源释放队列中;所述第二处理单元,用于检查其所处的转发核被分配的资源释放队列是否存在需要释放的资源,如果是,则依次取出每一需要释放的资源,并判断该资源是否为由于其所处的转发核更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续作为需要释放的资源存放至该转发核的下一个转发核被分配的资源释放队列中。
7.根据权利要求6所述的路由系统,其特征在于,所述组织单元对路由系统中的所有转发核按照设定的规则进行组织,是将所有转发核按照设定的顺序依次组成一个环;所述下一个转发核为当前转发核在环中沿顺时针方向或者逆时针方向的相邻的转发核。
8.根据权利要求6所述的路由系统,其特征在于,所述配置单元为每个转发核分配的资源释放队列按照先进先出FIFO的方式组织存放的需要释放的资源。
9.根据权利要求6所述的路由系统,其特征在于,所述第二处理单元是在处理报文之前或者处理报文之后检查其所处的转发核被分配的资源释放队列是否存在需要释放的资源。
10.根据权利要求6或7所述的路由系统,其特征在于,所述组织单元对路由系统中的所有转发核按照设定的规则进行组织,是指按照转发核的编号由小到大的顺序顺时针将所有转发核组成一个环;或者, 按照转发核的编号由大到小的顺序顺时针将所有转发核组成一个环。
全文摘要
本发明提供了内存释放方法和路由系统。其中,该方法包括对路由系统中的所有转发核按照设定的规则依次进行组织;每个转发核在更新资源指针指向的资源后,将该资源指针在更新之前指向的资源作为需要释放的资源,存放至下一个转发核被分配的资源释放队列中;每个转发核检查自身被分配的资源释放队列是否存在需要释放的资源,如果是,则依次取出每一需要释放的资源,并判断该资源是否为由于自身更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续作为需要释放的资源存放至下一个转发核被分配的资源释放队列中。
文档编号H04L12/56GK102325091SQ201110314529
公开日2012年1月18日 申请日期2011年10月17日 优先权日2011年10月17日
发明者曹淋 申请人:迈普通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1