[發明專利]一種用于實現在進程間進行數據交互訪問的方法及其裝置有效
| 申請號: | 201210001254.6 | 申請日: | 2012-01-04 |
| 公開(公告)號: | CN103197979B | 公開(公告)日: | 2017-05-03 |
| 發明(設計)人: | 李曉波;李永亮 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 隆天知識產權代理有限公司72003 | 代理人: | 張浴月,張龍哺 |
| 地址: | 開曼群島大開曼*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用于 實現 進程 進行 數據 交互 訪問 方法 及其 裝置 | ||
技術領域
本申請涉及進程間數據訪問,尤其涉及一種用于實現在進程間進行數據交互訪問的方法及其裝置。
背景技術
在實際應用中,為了提高設備處理復雜數據的能力和速度,經常需要進程間相互協作,共同完成任務,例如,完成特定的數據傳輸、數據共享、事件通知、資源共享、進程控制等任務。
在已知技術中,由于各進程的用戶空間(即各進程私有的虛擬內存地址空間)是相互獨立的,不能直接相互訪問,因此,進程間進行數據交換的常用方式只有通過共享文件、匿名管道、信號量、消息隊列和共享內存等技術手段來進行,它們所使用的數據交換方式都是由一個進程向特定的區域寫入數據,然后,另一個進程從這些區域讀出上一個進程所寫入的數據,從而達到進程間相互協作的目的。
然而上述已有的實現方案僅僅是實現了進程間數據的共享,而不能提供進程間數據之間關系的共享,即不能實現進程間數據的交互訪問。例如專利申請編號200610067532.2的專利中就描述了進程間數據共享的一種實現,但不能提供進程間數據的交互式訪問,尤其不能提供進程間數據的直接的實時交互式訪問。
其次,在目前的實現進程間相互協作的方案中,對共享內存的管理大多采用簡單的鏈式管理,即在共享內存中簡單地創建一個鏈式存儲結構的鏈表來存儲進程在運行中產生的一些結果數據。因此目前的實現進程間相互協作的方案既不能提供進程間數據的直接的實時交互式訪問,也不能對共享內存進行高效的利用。
發明內容
本申請提供了一種用于實現在進程間進行數據交互訪問的方法,所述方法包括:步驟1,將需要交互訪問的多個進程連接到同一個共享內存段;以及步驟2,將所述多個進程中需要共享的數據結構分配到所述共享內存段,以使所述多個進程之間共享所述數據結構包含的成員變量的狀態關系,和/或所述數據結構產生的結果數據之間的關系。
本申請還提供了一種用于實現在進程間進行數據交互訪問的裝置,所述裝置包括:連接模塊,用于將需要交互訪問的多個進程連接到同一個共享內存段;以及分配模塊,用于將所述多個進程中需要共享的數據結構分配到所述共享內存段,以使所述多個進程之間共享所述數據結構包含的成員變量的狀態關系,和/或所述數據結構產生的結果數據之間的關系。
根據本申請的用于實現在進程間進行數據交互訪問的方法和裝置,不但為進程間數據的直接的實時交互式訪問提供了一種可能的實現,而且,本申請可以是跨操作系統平臺的。另外,如前所述,由于本申請所采用的共享內存管理方式類似于Linux內核的slab管理方式,因此,本申請還能夠實現對共享內存的高效管理。
附圖說明
下面將參照所附附圖來描述本申請的實施例,其中:
圖1示例性示出了在本申請的用于實現在進程間進行數據交互訪問的方法中進程獲取共享內存的一個實施例的示意圖;
圖2示例性示出了在本申請的用于實現在進程間進行數據交互訪問的方法中共享內存初始化后的內存池結構的一個實施例的示意圖;
圖3示例性示出了在本申請的用于實現在進程間進行數據交互訪問的方法中使用一段時間后的slab結構的一個實施例的示意圖;
圖4示例性示出了在現有技術的用于實現進程間相互協作的方法中進程共享數據的示意圖;
圖5示例性示出了在本申請的用于實現在進程間進行數據交互訪問的方法中進程共享數據與數據之間的關系的示意圖;以及
圖6示例性示出了本申請的用于實現在進程間進行數據交互訪問的裝置的示意圖。
具體實施方式
下面將結合圖1-圖5詳細描述本申請,其中,結合圖1-圖3將描述本申請如何對共享內存進行高效管理,結合圖4-圖5將描述本申請如何實現在進程間進行數據交互訪問。
圖1-圖3所描述的對共享內存的高效管理是基于如Linux操作系統平臺等在一定程度上采用了buddy內存分配原則的任何操作系統平臺。
以Linux操作系統平臺上運行的任何一個用戶進程為例,圖1示例性示出了在本申請的用于實現在進程間進行數據交互訪問的方法中進程獲取共享內存的一個實施例的示意圖。
首先,對應于所述用戶進程的用戶類(User Class)100向一個公用的或為管理內存而編寫的內存管理器類(MEM_manager類)110注冊所要使用的共享內存的名稱與大小。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210001254.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種聚乳酸微球及其制備方法
- 下一篇:一種無攪拌運動件的溶液攪拌方法及裝置





