[發明專利]一種加速多路星上載荷文件存儲的方法有效
| 申請號: | 202010008656.3 | 申請日: | 2020-01-02 |
| 公開(公告)號: | CN111209228B | 公開(公告)日: | 2023-05-26 |
| 發明(設計)人: | 韋杰;劉偉亮;白亮;田文波;滕樹鵬;胡浩;雙小川 | 申請(專利權)人: | 上海航天計算機技術研究所 |
| 主分類號: | G06F12/0853 | 分類號: | G06F12/0853;G06F12/0895 |
| 代理公司: | 上海漢聲知識產權代理有限公司 31236 | 代理人: | 胡晶 |
| 地址: | 201109 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 加速 多路星上 載荷 文件 存儲 方法 | ||
1.一種加速多路星上載荷文件存儲的方法,其特征在于,包括:
運用兩級緩存和多線程流水作業的處理方法進行載荷數據的存儲加速過程,其中,第一級緩存采用循環緩存隊列和計數信號量相配合的方式,不做區分的接收各路載荷數據;第二級緩存為每路載荷數據配備了雙緩存,在緩存狀態機的控制下乒乓操作,交替讀寫,一個緩存用來接收第一級緩存解析出的載荷數據,一個緩存用來將其緩存中的數據寫入文件中存儲;
運用兩級緩存和多線程流水作業的處理方法進行載荷數據的存儲加速過程,包括:
步驟一,在載荷數據接收線程中,當有載荷數據進來時,在獲取到寫計數信號量后,將數據包存放到循環緩存隊列的寫指針指向的內存中,寫入數據后更新寫指針,同時釋放讀計數信號量;
步驟二,在載荷數據處理線程中,當獲取到讀計數信號量時,從循環緩存隊列讀指針所指向的內存地址處取出數據包,當載荷數據處理成功后,更新讀指針同時釋放寫計數信號量;
步驟三,在載荷數據處理線程中,當從第一級緩存的循環緩存隊列中將載荷數據包取出后,解析數據特征提取出有效數據,將有效數據存放到對應載荷數據的雙緩存中狀態為接收或空的緩存里;
步驟四,在載荷數據處理線程中,當雙緩存中狀態為接收的緩存里存放的載荷數據達到了緩存上限時,將該緩存的狀態轉為存儲狀態,并通過unix域的socket通信,將對應的載荷數據類型和裝滿數據的緩存號發送到載荷數據存儲線程中;
步驟五,在載荷數據存儲線程中,當收到來自載荷數據處理線程的unix域的socket發送的信息后,存儲線程被喚醒開始分析接收到的數據,以從中提取出載荷數據類型和對應的緩存地址;
步驟六,在載荷數據存儲線程中,判斷對應的載荷數據是否存在打開的文件,若不存在,則根據對應載荷數據的屬性創建新的文件,將獲取到的緩存中的數據按照存儲器的頁大小寫入文件中存儲,數據寫完后將該緩存的狀態轉為空狀態;
步驟七,在載荷數據存儲線程中,當對應載荷雙緩存中的數據寫入文件存儲后,判斷文件當前屬性是否滿足形成關閉條件,若滿足,則將該打開的文件關閉,形成一個指定要求的文件。
2.如權利要求1所述的加速多路星上載荷文件存儲的方法,其特征在于,所述多線程流水作業,包括:
載荷數據接收線程,負責將各路載荷數據不做區分的從外部接口接收下來;
載荷數據處理線程,負責解析收到的星上各路載荷數據;
載荷數據存儲線程,負責將處理后的數據寫入文件中存儲,形成指定要求的文件。
3.如權利要求1所述的加速多路星上載荷文件存儲的方法,其特征在于,所述循環緩存隊列有讀寫指針,計數信號量配有對應的讀、寫計數信號量,讀、寫指針初始化為循環緩存隊列的起始位置,讀計數信號量初始化為零,寫計數信號量初始化為循環緩存隊列容納的載荷數據包的個數。
4.如權利要求3所述的加速多路星上載荷文件存儲的方法,其特征在于,所述循環緩存隊列和計數信號量相配合的方式,還包括:
在載荷數據接收線程和載荷數據處理線程之間,利用所述讀計數信號量維護循環緩存隊列的已用空間,利用寫計數信號量維護循環緩存隊列的未用空間,而讀指針維護循環緩存中待處理的載荷數據地址,寫指針維護外部數據寫入循環緩存隊列的地址。
5.如權利要求1所述的加速多路星上載荷文件存儲的方法,其特征在于,所述循環緩存隊列和計數信號量相配合的方式,還包括:
在載荷數據接收線程中,每獲取一個寫計數信號量,對應的釋放一個讀計數信號量,成功向循環緩存隊列中寫入一包載荷數據,對應的更新一次寫指針;
同樣在載荷數據處理線程中,每獲取一個讀計數信號量,對應的釋放一個寫計數信號量,每成功從循環緩存隊列中讀出一包載荷數據,對應的更新讀指針。
6.如權利要求1所述的加速多路星上載荷文件存儲的方法,其特征在于,所述每路載荷數據配備了雙緩存,還包括:
雙緩存中的緩存狀態都初始化為空狀態,當有數據存入時,將其狀態更新為接收狀態;
當寫入緩存中的數據達到緩存上限時,更新其狀態為存儲狀態;
當將緩存中的數據全部寫入文件中存儲時,將其狀態更新為空狀態。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海航天計算機技術研究所,未經上海航天計算機技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010008656.3/1.html,轉載請聲明來源鉆瓜專利網。





