在virtual的知識裡摸爬滾打好幾天,最近大腦有些不夠用了,現在整理一下
非考慮記憶體對齊時各個結構的大致模型
至於考綠記憶體的在前面幾張已經敘述過了,為了方便,我再紙上畫了整體的流程,,
記憶體分配要注意對齊引數=min(pack,最大位元組的型別); 虛函式指標和虛函式表指標跨越的大小一定是對齊引數的整數倍,即使中間會造成不必要的填充浪費,
本人已經上傳到相簿,共11張
(相簿1)
(相簿2)
類的實部位元組對齊細則:
類分為實部和虛部,而實部作為乙個整體的結構自然也需要位元組對齊。又因為是類的乙個部分所以位元組對齊也有點特殊。總的來說可以描述如下:
1. 有虛部的類不需要整體進行自身位元組對齊,但是對於外部來講有虛部的類的有效對齊是他的各個基類,包括實基類和虛基類,和成員變數中有效對齊引數最大的那個。
2. 實部的有效對齊引數是實繼承的各個基類和各個成員變數(也包括隱藏成員變數)中有效對齊引數最大的那個,實部按照這個有效對齊引數進行自身對齊。
3. 實部的起始位址代表了類的起始位址,所以在該類作為其他派生類的子基類的時候,實部的起始位址相對於總的類的起始位址的偏移要是類的有效對齊的整數倍。
記憶體管理簡便複習總結
在virtual的知識裡摸爬滾打好幾天,最近大腦有些不夠用了,現在整理一下 非考慮記憶體對齊時各個結構的大致模型 至於考綠記憶體的在前面幾張已經敘述過了,為了方便,我再紙上畫了整體的流程,記憶體分配要注意對齊引數 min pack,最大位元組的型別 虛函式指標和虛函式表指標跨越的大小一定是對齊引數的...
linux C複習 記憶體管理
1 虛擬記憶體位址 每個程序都有4g的虛擬記憶體位址,當程序需要真正的物理空間時,向系統申請,系統會分配給程序相應的物理記憶體空間。系統會將程序的一部分虛擬記憶體位址和分配好的物理記憶體之間一 一對應起來,這個過程叫記憶體對映。2 產生段錯誤的原因 1 當程式訪問或修改沒有許可權訪問或修改的記憶體空...
複習 linux記憶體管理
頁 page 是核心的記憶體管理基本單位。linux mm types.h struct page 儘管處理器的最小可定址單位通常為字或位元組,但記憶體管理單元 mmu,把虛擬位址轉換為實體地址的硬體裝置 通常以頁為單位處理。核心用struct page結構體表示每個物理頁,struct page結...