在linux系統中,使用者空間和核心空間所佔的比例為3:1
在windows系統中,使用者空間和核心空間所佔的比例為2:2
下面以linux系統為例:
.text 指令段,也叫**段,區域性變數也是指令,但區域性變數儲存在棧上,當**執行時才在棧中預留好的區域中開闢。
.data 資料段儲存**中的各種資料,包括已初始化且初始化不為0的全域性變數、靜態變數。
.bss 資料段儲存**中的各種資料,包括未初始化或初始化為0的全域性變數、靜態變數。
堆 動態申請空間時在堆中申請,需要手動釋放,不釋放會造成記憶體洩露。
棧 儲存所有區域性變數,函式的執行也需要在棧中開闢,由系統釋放空間。
4G虛擬位址空間布局
一 其中,使用者程序部分分段儲存內容如下表所示 按位址遞增順序 名稱儲存內容 段 text 可執行 字串字面值 唯讀變數 資料段 data 已初始化且初始值為非0的全域性變數和靜態區域性變數 bss段 未初始化或初始值為0的全域性變數和靜態區域性變數 棧區域性變數 函式引數 返回位址等 堆動態分配的...
程序的虛擬位址空間4G劃分
當乙個程 序執行的時候 而這4g也劃分成了兩大塊。第一塊1g要分給核心,我們使用者是看不見也進不去的。第二塊3g是給使用者使用的。就像地拿到手了,還要蓋房裝修,我們使用者拿到這3g也要做同樣的事,這3g也要分成好幾塊。3g 棧空間 特點是由系統管理,先進後出,裡面放了區域性變數 函式形參 自動變數。...
程序虛擬位址為什麼是4G大小?
1 建立乙個程序時,作業系統會為該程序分配乙個 4gb 大小的虛擬 程序位址空間。之所以是 4gb 是因為在 32 位的作業系統中,乙個指標長度是 4 位元組 32位 2的32次 方個位址定址能力是從 0x00000000 0xffffffff 即為 4gb 大小的容量。4g 指的是最大的定址空間為...