[發明專利]進程啟動方法及內核、進程有效
| 申請號: | 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.17sss.com.cn/pat/books/201110308533.2/2.html,轉載請聲明來源鉆瓜專利網。





