System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 粉嫩大学生无套内射无码卡视频 ,久久午夜无码鲁丝片午夜精品,在线无码视频观看草草视频
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種跨進程的數據零拷貝方法及裝置制造方法及圖紙

    技術編號:44018603 閱讀:15 留言:0更新日期:2025-01-15 01:03
    一種跨進程的數據零拷貝方法及裝置,涉及跨進程通信技術領域,方法包括:進程啟動時,創建共享內存,將共享內存劃分為多個容量不同的內存塊;兩個進程間數據傳遞時,根據初次傳遞的數據量在共享內存中匹配對應容量的內存塊;當本次傳遞的數據量不多于上次傳遞的數據量時,更新當前使用的內存塊的使用長度和溢出標記;當本次傳遞的數據量多于上次傳遞的數據量、且不超過預設容量時,根據本次傳遞的數據量在共享內存中匹配對應容量內存塊,并將當前使用的內存塊的內容拷貝至該內存塊,隨后釋放當前使用的內存塊。本方法減少了因傳輸數據量變動而釋放和重新分配內存塊的次數,從而提高了進程間數據傳輸的速度。

    【技術實現步驟摘要】

    本申請涉及跨進程通信,具體涉及一種跨進程的數據零拷貝方法及裝置


    技術介紹

    1、在非實時操作系統中,系統分為內核空間和用戶空間,當進程間需要交換數據時,通常采用零拷貝(zero-copy)的方式,減少數據在內核空間和用戶空間之間的拷貝次數,以此來提高數據傳輸的效率。由于在進程通信時,對內核空間和用戶空間的訪問速度存在要求,因此,通常采用共享內存的方式來實現零拷貝。

    2、現有的共享內存方法通常采用分配大塊內存,再將分配的內容分成定長小內存塊的模式來進行管理,當進程通信時,根據實際情況從各內存塊中選取適合的內存塊作為共享內存,在通信結束后釋放被調用的內存塊,以便下次使用。

    3、但是,由于現有的共享內存方法在進程通信開始時就確定了內存塊的大小,當進程要傳遞的數據量發生變動時,系統需要先釋放原有內存塊后,再重新分配新的內存塊,且由于內存塊大小固定,為了滿足大數據量的傳輸需求,可能需要多次分配,這極大地降低了進程間數據傳輸的速度。


    技術實現思路

    1、本申請提供一種跨進程的數據零拷貝方法及裝置,可以減少因傳輸數據量變動而釋放和重新分配內存塊的次數,進而提高進程間數據傳輸的速度。

    2、第一方面,本申請實施例提供一種跨進程的數據零拷貝方法,所述方法包括:

    3、第一進程啟動時,創建共享內存,將所述共享內存劃分為多個容量不同的內存塊;

    4、兩個進程間數據傳遞時,根據初次傳遞的數據量在所述共享內存中匹配對應容量的內存塊;

    5、當本次傳遞的數據量不多于上次傳遞的數據量時,更新當前使用的內存塊的使用長度和溢出標記;

    6、當本次傳遞的數據量多于上次傳遞的數據量、且不超過預設的第一容量時,根據本次傳遞的數據量在所述共享內存中匹配對應容量的第一內存塊,并將當前使用的內存塊的內容拷貝至第一內存塊,隨后釋放當前使用的內存塊。

    7、結合第一方面,在一種實施方式中,所述第一進程啟動時,創建共享內存,包括:

    8、當第一進程啟動時,將第一進程切換至內核態,操作系統基于所述第一進程的id創建共享內存;

    9、將所述第一進程切換至用戶態,將所述共享內存映射至用戶空間。

    10、結合第一方面,在一種實施方式中,將所述共享內存劃分為多個容量不同的內存塊后,還包括:

    11、將所述多個容量不同的內存塊組織為環形隊列。

    12、結合第一方面,在一種實施方式中,所述根據初次傳遞的數據量在所述共享內存中匹配對應容量的內存塊,包括:

    13、遍歷所述環形隊列,判斷是否存在容量等于傳遞的數據量的第二內存塊;

    14、若是,將第二內存塊作為初次傳遞所使用的內存塊,并從所述環形隊列中移除第二內存塊;

    15、若否,向操作系統申請容量等于傳遞的數據量的第三內存塊,將第三內存塊作為初次傳遞所使用的內存塊并加入所述環形隊列。

    16、結合第一方面,在一種實施方式中,釋放內存塊的過程,包括:

    17、將內存塊添加至所述環形隊列的尾指針所指向的位置。

    18、結合第一方面,在一種實施方式中,還包括:

    19、在每次數據傳遞結束后,若兩個進程結束通信,則釋放當前使用的內存塊。

    20、結合第一方面,在一種實施方式中,還包括:

    21、當本次傳遞的數據量超過所述預設的第一容量時,向操作系統申請容量等于本次傳遞的數據量的第四內存塊;

    22、將當前使用的內存塊的內容拷貝至第四內存塊,隨后釋放當前使用的內存塊。

    23、結合第一方面,在一種實施方式中,還包括:

    24、在每次數據傳遞結束后,若當前使用的內存塊的容量超過所述預設的第一容量,操作系統回收當前使用的內存塊。

    25、結合第一方面,在一種實施方式中,所述操作系統回收當前使用的內存塊,包括:

    26、判斷當前使用的內存塊的溢出標記的值是否被更改;

    27、若是,操作系統在預設的錯誤日志上記錄本次數據傳遞的時間戳和上下文信息,隨后回收該內存塊;

    28、若否,操作系統回收該內存塊。

    29、第二方面,本申請實施例提供了一種跨進程的數據零拷貝裝置,其特征在于,所述裝置包括:

    30、構造模塊,用于第一進程啟動時,創建共享內存,將所述共享內存劃分為多個容量不同的內存塊;

    31、分配模塊,用于兩個進程間數據傳遞時,根據初次傳遞的數據量在所述共享內存中匹配對應容量的內存塊;

    32、更新模塊,用于當本次傳遞的數據量少于上次傳遞的數據量時,更新當前使用的內存塊的使用長度和溢出標記;還用于當本次傳遞的數據量多于上次傳遞的數據量且不超過預設的第一容量時,根據本次傳遞的數據量在所述共享內存中匹配對應容量的第一內存塊,并將當前使用的內存塊的內容拷貝至第一內存塊,隨后釋放當前使用的內存塊。

    33、本申請實施例提供的技術方案帶來的有益效果包括:

    34、通過在傳輸的數據量減少時,更新正在使用的內存塊的使用長度和溢出標記,減少內存的釋放次數;在傳輸的數據量增加時,直接分配適合當前數據量的內存塊,避免因大容量內存需求而多次分配固定小容量的內存。結合以上兩種方式,減少了因傳輸數據量變動而釋放和重新分配內存塊的次數,從而提高了進程間數據傳輸的速度。

    本文檔來自技高網...

    【技術保護點】

    1.一種跨進程的數據零拷貝方法,其特征在于,所述方法包括:

    2.如權利要求1所述的跨進程的數據零拷貝方法,其特征在于,所述第一進程啟動時,創建共享內存,包括:

    3.如權利要求1所述的跨進程的數據零拷貝方法,其特征在于,將所述共享內存劃分為多個容量不同的內存塊后,還包括:

    4.如權利要求3所述的跨進程的數據零拷貝方法,其特征在于,所述根據初次傳遞的數據量在所述共享內存中匹配對應容量的內存塊,包括:

    5.如權利要求3所述的跨進程的數據零拷貝方法,其特征在于,釋放內存塊的過程,包括:

    6.如權利要求1所述的跨進程的數據零拷貝方法,其特征在于,還包括:

    7.如權利要求1所述的跨進程的數據零拷貝方法,其特征在于,還包括:

    8.如權利要求1所述的跨進程的數據零拷貝方法,其特征在于,還包括:

    9.如權利要求8所述的跨進程的數據零拷貝方法,其特征在于,所述操作系統回收當前使用的內存塊,包括:

    10.一種基于權利要求1-9任一項所述方法的跨進程的數據零拷貝裝置,其特征在于,所述裝置包括:p>...

    【技術特征摘要】

    1.一種跨進程的數據零拷貝方法,其特征在于,所述方法包括:

    2.如權利要求1所述的跨進程的數據零拷貝方法,其特征在于,所述第一進程啟動時,創建共享內存,包括:

    3.如權利要求1所述的跨進程的數據零拷貝方法,其特征在于,將所述共享內存劃分為多個容量不同的內存塊后,還包括:

    4.如權利要求3所述的跨進程的數據零拷貝方法,其特征在于,所述根據初次傳遞的數據量在所述共享內存中匹配對應容量的內存塊,包括:

    5.如權利要求3所述的跨進程的數據零拷貝方法,其...

    【專利技術屬性】
    技術研發人員:孫育寧張敏梁凱淋許慶巍
    申請(專利權)人:深圳市閃聯信息技術有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 国产精品亚洲а∨无码播放麻豆| 亚洲AV永久无码精品| 亚洲另类无码专区首页| 精品韩国亚洲av无码不卡区| 久久伊人亚洲AV无码网站| 日韩欧精品无码视频无删节| 国产午夜无码片在线观看| 无码aⅴ精品一区二区三区浪潮| 国产精品爽爽V在线观看无码| 亚洲AV无码乱码国产麻豆| 国产av激情无码久久| 精品亚洲成在人线AV无码| 国产精品无码无在线观看| 用舌头去添高潮无码视频| 久久久无码精品亚洲日韩京东传媒| 亚洲成A∨人片天堂网无码| 久久无码av亚洲精品色午夜| 98久久人妻无码精品系列蜜桃| 久久精品无码一区二区三区日韩| 亚洲国产精品无码第一区二区三区| 国产成人无码一区二区三区| 亚洲AV无码乱码在线观看牲色| 亚洲av日韩av永久无码电影| 97久久精品无码一区二区| 久久精品aⅴ无码中文字字幕| 免费无码又爽又刺激网站| 人妻少妇伦在线无码| 精品一区二区三区无码免费直播 | 亚洲精品无码少妇30P| 国产精品三级在线观看无码| 成人无码一区二区三区| a级毛片免费全部播放无码| 无码任你躁久久久久久老妇| 午夜无码中文字幕在线播放 | 国产AV无码专区亚洲AV麻豆丫| 无码人妻精品一区二区三区99性 | 午夜亚洲av永久无码精品| 国产精品成人无码免费| 国产精品国产免费无码专区不卡| 无码日韩人妻AV一区免费l| 国产av无码专区亚洲国产精品|