一种网络设备释放共享内存的方法及系统技术方案

技术编号:10190500 阅读:97 留言:0更新日期:2014-07-09 10:39
本发明专利技术提供一种网络设备释放共享内存的方法,包括:S1:网络设备的多核开始收报文前,记录各自的count值,且从零开始累加。S2:核在处理报文的过程中,若检测到某个共享数据内存需要释放,则将该共享数据加入该核的某个链表下;S3:该核将报文发送出去之后,获取其他核的count值,并进行记录,若其他核的count值与上次的记录值均不同,则转入步骤S4,否则转入步骤S1;S4:将链表下共享数据的内存释放。本发明专利技术还提供了一种网络设备释放共享内存的系统,该系统包括计数模块、检测模块、读取模块以及内存释放模块。本发明专利技术能够实现在释放共享内存时不需要锁的保护,从而达到提高网络设备性能的目的。

【技术实现步骤摘要】
【专利摘要】本专利技术提供一种网络设备释放共享内存的方法,包括:S1:网络设备的多核开始收报文前,记录各自的count值,且从零开始累加。S2:核在处理报文的过程中,若检测到某个共享数据内存需要释放,则将该共享数据加入该核的某个链表下;S3:该核将报文发送出去之后,获取其他核的count值,并进行记录,若其他核的count值与上次的记录值均不同,则转入步骤S4,否则转入步骤S1;S4:将链表下共享数据的内存释放。本专利技术还提供了一种网络设备释放共享内存的系统,该系统包括计数模块、检测模块、读取模块以及内存释放模块。本专利技术能够实现在释放共享内存时不需要锁的保护,从而达到提高网络设备性能的目的。【专利说明】一种网络设备释放共享内存的方法及系统
本专利技术涉及网络
,具体涉及一种网络设备释放共享内存的方法及系统。
技术介绍
多核处理器代表了计算技术的一次创新。由于数字数据和互联网的全球化,商业和消费者开始要求多核处理器带来性能改进,这个重要创新就开始了 ;因为多核处理器比单核处理器具有性能和效率优势,多核处理器将会成为被广泛采用的计算模型。然而多核的网络设备会存在大量的共享数据,多核在处理报文时会对共享数据进行添加、删除、修改以及共享内存释放。由于是多核环境,每个核在同一时刻做的事情不尽相同,因此可能核I正在释放数据A的内存,但是核2可能正在访问数据A,这就导致了冲突。现有的技术中,使用锁来处理这个问题,对某个共享数据的读、写、删除、内存释放等操作前都会先加锁,保证没有其他核能操作该数据,在操作完成之后,会将锁释放,以便其他核能够继续访问该数据。然而大量的使用锁必然会导致性能下降,使得数据的读写及处理的效率降低。
技术实现思路
(一)解决的技术问题针对现有技术的不足,本专利技术提供了一种网络设备释放共享内存的方法及系统,能够实现在释放共享内存时不需要锁的保护,从而达到提高网络设备性能的目的。(二)技术方案为了达到以上目的,本专利技术通过以下技术方案予以实现:一种网络设备释放共享内存的方法,该方法包括:S1:网络设备在多核开始收发报文前,记录各自的count值,且从零开始累加。S2:核在处理报文的过程中,若检测到某个共享数据内存需要释放,则将该共享数据加入该核的某个链表下;S3:该核将报文发送出去之后,获取其他核的count值,并进行记录,若其他核的count值与上次的记录值均不同,则转入步骤S4,否则转入步骤SI ;S4:将链表下共享数据的内存释放。其中,所述从零开始累加具体包括:初始化所述count值为0,且每个核在每次收取报文之前,各自的count值加I。其中,所述将该共享数据加入该核的某个链表下后,若存在正在访问该共享数据的核,将继续访问该数据,而其他核则将不能对该共享数据进行访问。优选地,所述获取其他核的count值的方法包括直接读取。一种网络设备释放共享内存的系统,该系统包括:计数模块、检测模块、读取模块以及内存释放模块;计数模块,用于在多核开始收发报文前,记录各自的count值,且从零开始累加;检测模块,用于当核在处理报文的过程中,若检测到某个共享数据内存需要释放,将该共享数据加入该核的某个链表下;读取模块,用于当该核将报文发送出去之后,获取其他核的count值,并进行记录,若其他核的count值与上次的记录值均不同,则转入内存释放模块,否则转入开始收取下一个报文; 内存释放模块,用于将链表下共享数据的内存释放。(三)有益效果本专利技术至少有如下有益效果:本专利技术提供的方法中,共享内存释放前先将其加入本核的链表中,避免了其他核的干扰;本核获取其他所有核的count值时,可以直接读取;而且共享内存释放时由于只有本核才能访问到该内存,则可以安全释放。由于上述步骤都避免的其他核的干扰,因此本专利技术提供的方法能够实现在释放共享内存时不需要锁的保护,从而达到提高网络设备性能的目的。【专利附图】【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。图1是本专利技术实施例提供的一种网络设备释放共享内存的方法的流程图;图2是本专利技术一个较佳的实施例提供了一种网络设备释放共享内存的方法的流程图;图3是本专利技术实施例将需要释放内存的共享数据加入某核链表下的示意图。【具体实施方式】下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参见图1,本专利技术实施例提供了 一种网络设备释放共享内存的方法,该方法包括如下步骤:步骤101:网络设备的多核开始收报文前,记录各自的count值,且从零开始累加。步骤102:核在处理报文的过程中,若检测到某个共享数据内存需要释放,则将该共享数据加入该核的某个链表下;如图3所示,为共享数据加入某核链表下的示意图,图中核I在处理报文过程中,发现共享数据Y需要释放内存,那么核I就将共享数据Y放到自己的链表里面。此时核2也在访问共享数据Y,但是由于只是放到了核I的链表里面,并没有对该数据内存进行释放,因此核2可以正常访问数据Y。由于共享数据Y已经放到了核I自己的链表里面了,那么后续的核3就无法访问到该数据了。这样就达到了一个目的:已经访问该共享数据的核还能继续访问,还没有访问该数据的核将永远无法访问,这对于数据来说是安全的。步骤103:该核将报文发送出去之后,获取其他核的count值,并进行记录,判断其他核的count值与上次的记录值是否均不同,若是则转入步骤104,否则转入步骤101 ;本步骤中,获取其他核的count值的方法包括直接读取。步骤104:将链表下共享数据的内存释放。本步骤中,由于所有核当前的count与上次的记录值都不一样,说明这些核都至少经过了一次报文收取、处理以及发送的过程,也就是对于图3所示的共享数据Y来说,没有其他核能够访问到了(除了本核通过自己的链表),这个时候共享数据Y可以安全释放。下面,通过一个具体的例子,来更为详细的说明本专利技术一个较佳实施例的实现过程。参见图2,该过程包括如下步骤:步骤201:初始化所有核的count值,使其均为O ;步骤202:网络设备中的任一核收取报文;步骤203:该核处理报文;步骤204:判断是否检测到某个共享数据内存需要释放,若是则转至步骤205,否则转至步骤206 ;步骤205:将该共享数据加入该核的某个链表之下;步骤206:该核发送报文;步骤207:判断该核某链表下是否有待释放内存的共享数据,若有则转至步骤208,否则转至步骤211 ;步骤208:读取其他核的count值,并记录下来;步骤209:判断其他核的count值是否与记录的上次的count值不同,若是则转至步骤210,否则转至步骤211 ;步骤210:将链表下的共享数据的内存释放;该步骤执行完之后,转至步骤211。步骤211:count 值加 I。 本专利技术实施例提供的方本文档来自技高网
...

【技术保护点】
一种网络设备释放共享内存的方法,其特征在于,该方法包括:S1:网络设备的多核开始收报文前,记录各自的count值,且从零开始累加;S2:核在处理报文的过程中,若检测到某个共享数据内存需要释放,则将该共享数据加入该核的某个链表下;S3:该核将报文发送出去之后,获取其他核的count值,并进行记录,若其他核的count值与上次的记录值均不同,则转入步骤S4,否则转入步骤S1;S4:将链表下共享数据的内存释放。

【技术特征摘要】

【专利技术属性】
技术研发人员:李鹏
申请(专利权)人:汉柏科技有限公司
类型:发明
国别省市:天津;12

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

1