[发明专利]向核心进程发送大量QINQ配置数据的系统及其方法在审
申请号: | 201510607247.4 | 申请日: | 2015-09-22 |
公开(公告)号: | CN105183570A | 公开(公告)日: | 2015-12-23 |
发明(设计)人: | 孙亮 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 上海硕力知识产权代理事务所 31251 | 代理人: | 郭桂峰 |
地址: | 201616 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 核心 进程 发送 大量 qinq 配置 数据 系统 及其 方法 | ||
技术领域
本发明涉及进程控制领域,尤指在Linux系统中配置进程和核心进程之间的通信控制模式。
背景技术
在Linux系统开发过程中,开发人员会遇到进程间通信问题,常用的进程间通信有消息队列、管道、Socket、信号量、内存共享。开发人员会选择其中的一种来解决进程间的通信问题。
当一般配置进程需要向核心进程发送大数据进行业务配置时,例如大量QINQ配置数据,为了快速高效地将配置进程的大数据发送给核心进程,现有技术中通常使用内存共享方案,因为内存共享是一种最为高效的进程间通信方式,进程可以直接读写内存,不需要任何数据的复制,是传送大数据的最佳选择。因为其他通信方式都需要对数据进行复制,效率较慢,显然不可行。
但是现有技术中的内存共享方案也存在以下缺陷:由于系统对核心进程要求很高,因为核心进程有很多任务去处理,而当前的内存共享是配置进程向共享内存写入数据,核心进程会轮询这个共享内存,若发现共享内存有数据写入,核心进程会从共享内存读取数据,从而达到配置进程和核心进程之间的通信;这个时候核心进程要想获取共享内存的数据,就必须花时间一直轮询共享内存的状态,这样,耗费了核心进程的大量资源,影响了核心进程的实时性,同时,配置进程也无法了解其大量配置数据是否已被核心进程读取。那怎么解决像这种普通进程向核心进程发送大数据的问题呢?
为此,本发明提供了一种新的配置进程向核心进程发送大量QINQ配置数据的技术方案,通过优化现有的内存共享机制,将轮询操作从核心进程移植到配置进程中,避免耗费核心进程的有限资源,保障核心进程的实时性,而且帮助配置进程及时了解到自己发送的大量配置数据的读取情况。
发明内容
本发明目的是提供一种向核心进程发送大量QINQ配置数据的系统及其方法,通过优化传统内存共享机制,给共享内存添加标志位,待配置进程将数据完全写入共享内存后标识位置1,配置进程向核心进程发送消息通知核心进程读取共享内存数据,同时启动定时器轮询共享内存状态标识位,若核心进程读取完后共享内存状态标识位置0,配置进程通过轮询定时器发现共享内存状态位置0,会认为大量QINQ配置数据发送成功,否者会重新向核心进程发送消息通知让其读取配置数据,从而解决了原有大量QINQ配置数据发送给核心进程带来的各项技术问题。
为了实现本发明目的,采用以下技术方案:
一种向核心进程发送大量QINQ配置数据的系统,包括:
配置进程写入模块,用于将大量QINQ配置数据写入共享内存;
配置进程发送模块,用于向核心进程发送接收数据消息;
核心进程接收读取模块,用于接收所述接收数据消息,并根据所述接收数据消息读取共享内存中的大量QINQ配置数据。
本技术方案在配置进程写入模块将大量QINQ配置数据写入共享内存之后,由配置进程发送模块主动向核心进程发送消息,提醒核心进程从共享内存中进行大量QINQ配置数据的读取,从而替代核心进程的轮询机制,减少核心进程的资源消耗,维护核心进程的实时性。
进一步优选地,所述系统还包括:
配置进程设置模块,用于在配置进程写入模块将大量QINQ配置数据写入共享内存之后,将内存状态标志位置1;
配置进程启动模块,用于在配置进程发送模块向核心进程发送接收数据消息之后,启动轮询定时器以轮询内存状态标志位;
核心进程设置模块,用于在核心进程接收读取模块读取共享内存中的大量QINQ配置数据之后,将内存状态标志位置0;
配置进程判断模块,用于在核心进程设置模块将内存状态标志位置0之后,当轮询到内存状态标志位被置为0后,删除轮询定时器,否则控制配置进程发送模块继续向核心进程发送接收数据消息。
本优选方案在配置进程发送模块向核心进程发送接收数据消息之后,增加一个内存共享读取状态标志位,启动配置进程处的对内存共享读取状态标志位的当前值的轮询,从而成功地将原先在核心进程处的轮询操作移植为配置进程的轮询操作,减少了核心进程的工作负担,解放了核心进程。
进一步优选地,所述系统还包括:
配置进程数据产生模块,用于在配置进程写入模块将大量QINQ配置数据写入共享内存之前,进行QINQ功能配置,产生大量QINQ配置数据。
本优选方案增加了产生大量QINQ配置数据的配置进程数据产生模块,属于对向核心进程发送大量QINQ配置数据的系统的结构的进一步完善。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510607247.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多数据库的监控预警方法
- 下一篇:一种存储双控制器间scsi命令同步方法