向核心进程发送大量qinq配置数据的系统及其方法

文档序号:9432392阅读:317来源:国知局
向核心进程发送大量qinq配置数据的系统及其方法
【技术领域】
[0001]本发明涉及进程控制领域,尤指在Linux系统中配置进程和核心进程之间的通信控制模式。
【背景技术】
[0002]在Linux系统开发过程中,开发人员会遇到进程间通信问题,常用的进程间通信有消息队列、管道、Socket、信号量、内存共享。开发人员会选择其中的一种来解决进程间的通信问题。
[0003]当一般配置进程需要向核心进程发送大数据进行业务配置时,例如大量QINQ配置数据,为了快速高效地将配置进程的大数据发送给核心进程,现有技术中通常使用内存共享方案,因为内存共享是一种最为高效的进程间通信方式,进程可以直接读写内存,不需要任何数据的复制,是传送大数据的最佳选择。因为其他通信方式都需要对数据进行复制,效率较慢,显然不可行。
[0004]但是现有技术中的内存共享方案也存在以下缺陷:由于系统对核心进程要求很高,因为核心进程有很多任务去处理,而当前的内存共享是配置进程向共享内存写入数据,核心进程会轮询这个共享内存,若发现共享内存有数据写入,核心进程会从共享内存读取数据,从而达到配置进程和核心进程之间的通信;这个时候核心进程要想获取共享内存的数据,就必须花时间一直轮询共享内存的状态,这样,耗费了核心进程的大量资源,影响了核心进程的实时性,同时,配置进程也无法了解其大量配置数据是否已被核心进程读取。那怎么解决像这种普通进程向核心进程发送大数据的问题呢?
[0005]为此,本发明提供了一种新的配置进程向核心进程发送大量QINQ配置数据的技术方案,通过优化现有的内存共享机制,将轮询操作从核心进程移植到配置进程中,避免耗费核心进程的有限资源,保障核心进程的实时性,而且帮助配置进程及时了解到自己发送的大量配置数据的读取情况。

【发明内容】

[0006]本发明目的是提供一种向核心进程发送大量QINQ配置数据的系统及其方法,通过优化传统内存共享机制,给共享内存添加标志位,待配置进程将数据完全写入共享内存后标识位置1,配置进程向核心进程发送消息通知核心进程读取共享内存数据,同时启动定时器轮询共享内存状态标识位,若核心进程读取完后共享内存状态标识位置0,配置进程通过轮询定时器发现共享内存状态位置0,会认为大量QINQ配置数据发送成功,否者会重新向核心进程发送消息通知让其读取配置数据,从而解决了原有大量QINQ配置数据发送给核心进程带来的各项技术问题。
[0007]为了实现本发明目的,采用以下技术方案:
[0008]一种向核心进程发送大量QINQ配置数据的系统,包括:
[0009]配置进程写入模块,用于将大量QINQ配置数据写入共享内存;
[0010]配置进程发送模块,用于向核心进程发送接收数据消息;
[0011]核心进程接收读取模块,用于接收所述接收数据消息,并根据所述接收数据消息读取共享内存中的大量QINQ配置数据。
[0012]本技术方案在配置进程写入模块将大量QINQ配置数据写入共享内存之后,由配置进程发送模块主动向核心进程发送消息,提醒核心进程从共享内存中进行大量QINQ配置数据的读取,从而替代核心进程的轮询机制,减少核心进程的资源消耗,维护核心进程的实时性。
[0013]进一步优选地,所述系统还包括:
[0014]配置进程设置模块,用于在配置进程写入模块将大量QINQ配置数据写入共享内存之后,将内存状态标志位置I ;
[0015]配置进程启动模块,用于在配置进程发送模块向核心进程发送接收数据消息之后,启动轮询定时器以轮询内存状态标志位;
[0016]核心进程设置模块,用于在核心进程接收读取模块读取共享内存中的大量QINQ配置数据之后,将内存状态标志位置O ;
[0017]配置进程判断模块,用于在核心进程设置模块将内存状态标志位置O之后,当轮询到内存状态标志位被置为O后,删除轮询定时器,否则控制配置进程发送模块继续向核心进程发送接收数据消息。
[0018]本优选方案在配置进程发送模块向核心进程发送接收数据消息之后,增加一个内存共享读取状态标志位,启动配置进程处的对内存共享读取状态标志位的当前值的轮询,从而成功地将原先在核心进程处的轮询操作移植为配置进程的轮询操作,减少了核心进程的工作负担,解放了核心进程。
[0019]进一步优选地,所述系统还包括:
[0020]配置进程数据产生模块,用于在配置进程写入模块将大量QINQ配置数据写入共享内存之前,进行QINQ功能配置,产生大量QINQ配置数据。
[0021]本优选方案增加了产生大量QINQ配置数据的配置进程数据产生模块,属于对向核心进程发送大量QINQ配置数据的系统的结构的进一步完善。
[0022]进一步优选地,配置进程为SrvMgr (即service manage的缩写,中文为服务器管理器)进程,核心进程为NSM(即network service module的缩写,中文为网络服务模块)核心进程,所述接收数据消息为sendMessage (sendMessage是windows系统中的功能,是应用程序和应用程序之间进行消息传递的主要手段之一)消息。
[0023]本优选方案提供了配置进程和核心进程的【具体实施方式】,属于对向核心进程发送大量QINQ配置数据的系统的结构的进一步完善。
[0024]进一步优选地,配置进程数据产生模块通过CLI或者SNMP进行QINQ功能配置,产生大量QINQ配置数据。
[0025]本优选方案提供了大量QINQ配置数据的具体产生方式,属于对向核心进程发送大量QINQ配置数据的系统的结构的进一步完善。
[0026]本发明还提供了一种向核心进程发送大量QINQ配置数据的方法,包括以下步骤:
[0027]SI配置进程将大量QINQ配置数据写入共享内存;
[0028]S3配置进程向核心进程发送接收数据消息;
[0029]S5核心进程接收所述接收数据消息,并根据所述接收数据消息读取共享内存中的大量QINQ配置数据。
[0030]优选地,在所述方法中具体包括:
[0031]S2,在SI和S3之间,配置进程将内存状态标志位置I ;
[0032]S4,在S3和S5之间,配置进程启动轮询定时器以轮询内存状态标志位;
[0033]S6核心进程将内存状态标志位置O ;
[0034]S7配置进程轮询到内存状态标志位被置为O后,删除轮询定时器,否则跳转到步骤S3 0
[0035]进一步优选地,所述升级方法还包括:S0,在SI之前,进行QINQ功能配置,产生大量QINQ配置数据。
[0036]进一步优选地,所述升级方法中,配置进程为SrvMgr (service manage)进程,核心进程为NSM(network service module)核心进程,所述接收数据消息为sendMessage消息。
[0037]进一步优选地,所述升级方法中,在SO中,通过CLI或者SNMP进行QINQ功能配置,产生大量QINQ配置数据。
[0038]本发明至少具有以下有益效果之一:
[0039]1.在高效、快速地发送大量QINQ配置数据的同时,不影响核心进程的工作效率。
[0040]2.配置进程能够及时了解其发送的大量QINQ配置数据的当前接收状态。
【附图说明】
[0041]下面结合附图和【具体实施方式】对本发明作进一步详细说明:
[0042]图1为现有技术中向核心进程发送大量QINQ配置数据的方法的一种实施例示意图;
[0043]图2为本发明向核心进程发送大量QINQ配置数据的系统的一种实施例示意图;
[0044]图中:
[0045]A配置进程子系统B核心进程子系统
【具体实施方式】
[0046]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,以下说明和附图对于本发明是示例性的,并且不应被理解为限制本发明。以下说明描述了众多具体细节以方便对本发明理解。然而,在某些实例中,熟知的或常规的细节并未说明,以满足说明书简洁的要求。
[0047]应用本发明的设备通常包括处理器,含单核处理器或多核处理器。处理器也可称为一个或多个微处理器、中央处理单元(CPU)等等。更具体地,处理器可为复杂的指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现其他指令集的处理器,或实现指令集组合的处理器。处理器还可为一个或多个专用处理器,尤其是图形处理器,或者诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、通信处理器、密码处理器、协处理器、嵌入式处理器、或能够处理指令的任何其他类型的逻辑部件。处理器用于执行本发明所讨论的操作和步骤的指令。
[0048]Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。他能运行主要的UNIX工具软件、应用程序和网络协议。他支持32位和64位硬件。Linux继承了 Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
[0049]Linux操作系统诞生于1991年10月5日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但他们都使用了 Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
[0050]严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
[0051]QinQ 技术,也称 Stacked VLAN 或 Double VLAN0 标准出自 IEEE 802.lad,其实现将用户私网VLAN Tag封装在公网VLAN Tag中,使报文带着两层VLANTag穿越运营商的骨干网络(公网)。
[0052]QinQ技术通过在以太帧中堆叠两个802.1Q报头,有效地扩展了 VLAN数目,使VLAN的数目最多可达4096x4096个。同时,多个VLAN能够被复用到一个核心VLAN中。MSP通常为每个客户建立一个VLAN模型,用通用属性注册协议/通用VLAN注册协议(GARP/GVRP)自动监控整个主干网络的VLAN,并通过扩展生成树协议(STP)来加快网络收敛速度,从而为网络提供弹性。SVLAN技术作为初始的解决方案是不错的,但随着用户数量的增加,SVLAN模型也会带来可扩展性的问题。因为有些用户可能希望在分支机构间进行数据传输时可以携带自己的VLAN ID,这就使采用QinQ技术的MSP面临以下两个问题:第一,第一名客户的VLAN标识可能与其他客户冲突;第二,服务提供商将受到客户可使用
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1