[发明专利]进程启动方法及内核、进程有效
| 申请号: | 201110308533.2 | 申请日: | 2011-10-12 |
| 公开(公告)号: | CN102508713A | 公开(公告)日: | 2012-06-20 |
| 发明(设计)人: | 魏巍 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/46 |
| 代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 王一斌;王琦 |
| 地址: | 310053 浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 进程 启动 方法 内核 | ||
技术领域
本发明涉及进程技术领域,具体涉及进程启动方法及内核、进程。
背景技术
在使用Unix/Linux风格内核的操作系统上,大量系统服务以Daemon方式运行于用户态。进程升级而不是整机重启,可以提供更好的服务能力。
进程之间以及进程、内核之间通过各种方式进行通信,如:相同机器上的进程可以通过进程间通信(IPC,Inter process Communication)方式通信,不同机器上的进程可以通过传输控制协议(TCP,Transmission Control Protocol)/用户数据报协议(UDP,User Datagram Protocol)等机制通信,同时进程和内核之间可以通过netlink socket通信。在Unix/Linux内核的充分提炼下,这些通信实体都被抽象为文件句柄(FD,File Descriptor)。
在进程升级过程中,进程会被重启,而FD会被内核关闭。这样一方面通信对端会感知到连接中断,触发相应的处理;另一方面,通信对端的数据变化,本端无法及时感知,这就导致进程启动后,需要向对端请求一遍所有数据。
以路由器上的边际网关协议(BGP,Border Gateway Protocol)进程升级为例,BGP进程升级时,邻居会感知到连接中断,在没有使能平滑重启(GR,Graceful Restart)时,邻居会删除来源于本机的BGP路由。在使能GR时,邻居不会删除路由,但是BGP进程重启后,所有邻居需要重新发送一遍BGP路由。
上述升级过程的坏处在于,进程升级的影响太大,可能引发较大的动荡。
在实际应用中,BGP可以通过使用不中断路由(NSR,Non-Stopping Routing)技术,来实现TCP连接不中断的进程升级,但是TCP NSR技术实现复杂,需要备份大量数据,对系统性能有一定影响。另外,NSR技术除了TCP外,对于其它通信连接如:UDP、IPC、netlink等缺少相应的机制,无法做成通用机制。
发明内容
本发明提供进程启动方法及内核、进程,以在进程启动而连接不中断的前提下,降低复杂度。
本发明的技术方案是这样实现的:
一种进程启动方法,该方法包括:
进程退出前,内核接收进程发来的携带文件句柄FD的保持连接请求,对于该请求携带的每个FD,内核增加该FD对应的文件对象的引用计数,并将该文件对象放入缓存中,将该缓存位置信息返回给进程,以使得进程将该缓存位置信息与该FD指向的通信连接标识信息的对应关系放入预设存储区中;
进程启动时,内核接收进程发来的携带所述缓存位置信息的获取FD请求,从缓存中读取各文件对象,为各文件对象分配FD,将该FD返回给进程。
所述进程退出为:老版本的进程退出;
所述进程启动为:新版本的进程启动。
所述进程启动为:原进程重启。
所述内核将该文件对象放入缓存中包括:
内核为该FD分配一个索引,采用预设算法对该索引进行运算,根据运算结果选择一块缓存,将该FD对应的文件对象放入该缓存中;
所述缓存位置信息为:所述索引;
所述内核从缓存中读取各文件对象包括:
对于进程发来的获取FD请求携带的每个索引,内核采用预设算法对该索引进行运算,根据运算结果选择一块缓存,从该缓存中读取文件对象。
所述内核将该FD返回给进程之后进一步包括:
当进程启动成功后,内核接收进程发来的携带缓存位置信息的释放请求,从缓存中读取各文件对象,恢复各文件对象的引用计数,释放缓存。
一种内核,包括:
连接保持处理模块:进程退出前,接收进程发来的携带FD的保持连接请求,对于该请求携带的每个FD,增加该FD对应的文件对象的引用计数,并将该文件对象放入缓存中,将该缓存位置信息返回给进程,以使得进程将该缓存位置信息与该FD指向的通信连接标识信息的对应关系放入预设存储区中;
句柄获取模块:进程启动时,接收进程发来的携带各文件对象的缓存位置信息的获取FD请求,从缓存中读取各文件对象,为各文件对象分配FD,将该FD返回给进程。
所述进程退出为:老版本的进程退出;
所述进程启动为:新版本的进程启动。
所述进程启动为:原进程重启。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110308533.2/2.html,转载请声明来源钻瓜专利网。





