VPP使用心得(十四)FIFO

2021-10-03 17:22:01 字數 812 閱讀 2947

這裡只研究了部分基於共享記憶體的fifo,大致了解了一下其結構。

fif_segment_main_t負責總管理,其下有多個fifo_segment_t  (fs),每個fs對應乙個共享記憶體檔案,其虛位址通過mmap對映,為了方便管理,這些fs的虛位址va是連續的。

fs有乙個ssvm_private_t ssvm,是用來管理共享記憶體申請以及va對映的,ssvm有乙個ssvm_shared_header_t *sh,用來儲存共享記憶體相關的引數,後面使用比較頻繁的是heap,將申請的共享記憶體的大部分都當成這個fs的私有heap。後續的一些資料申請都在這個heap上申請。

fs對使用者資料的管理是通過fifo_segment_header_t (fsh)來管理的,其中fsh內又分為多個片fifo_segment_slice_t *slices(fss)。至於片的個數,有fs中的n_slices來決定。正常情況下,1片就夠了。

fsh中,記錄了整個fs中可用的記憶體空間:n_free_bytes;正在使用的fifo數:n_active_fifos;還有一些其他的資料引數。

fss中,存有3個佇列,svm_fifo_t *fifos儲存正在使用的fifo;svm_fifo_t *free_fifos是空閒的fifo的佇列頭;svm_fifo_chunk_t **free_chunks是個十字鏈,按chunk大小儲存chunk。分為4k、8k、16k一直到heap/2,申請的chunk分別掛在對應的佇列頭上。

每次申請fifo時,可能會成批得申請,也可能因為記憶體不夠切片申請。

frameset 使用心得

欲明白本篇 html徹底剖析 之標記分類,請看 標記一覽 也請先明白圍堵標記與空標記的分別,請看 html概念 框架概念 謂框架便是網頁畫面分成幾個框窗,同時取得多個 url。只需要 即可,面所有框架標記需要放在乙個總起的 html 檔,這個檔案只記錄了該框架如何分割 不會顯示任何資料,所以不必放入...

Access使用心得

今天臨時用access做資料庫,長期用sql server開發習慣了,總結一下現在為止用到的比較大的差異,以後有新的再補了 1 返回字串長度 len s lenb s 前者返回字元數,後者返回位元組數,並且access中text型別字元統一為2位元組,與sql2000不同。2 join的使用 acc...

vmware使用心得

成功在winxp環境中安裝了vista business版本,反之,亦然。可以建立工作組網路連線了,虛擬機器也可以訪問網際網路了。安裝說明 在安裝嚮導中,無論使用哪種網路連線形式,都不影響正確安裝。安裝後,可以編輯本地機和虛擬機器之間的網路連線形式。需要注意三個細節問題 1 網絡卡要設定為 電源啟動...