程序虛擬位址空間的劃分

2021-07-24 11:58:38 字數 471 閱讀 5076

使用的linux作業系統32位

4gb劃分為兩大部分核心和使用者,核心

1g,使用者3g。

1g的核心位址空間可訪問全部的物理記憶體位址

,3g的使用者位址空間訪問最大

3g的物理記憶體位址

。使用者又劃分為棧空間,堆空間,(全域性)資料區,**段。

1、棧空間:儲存著區域性變數,函式形參,自動變數;

2、堆空間:存放malloc、

calloc

、realloc;

3、(全域性)資料區:分為三個部分 bss、

ordata

、靜態資料區;

(1)、

bss:

儲存未初始化的全域性變數;

(2)、

ordata:

儲存常量(不可修改的量);

(3)、靜態資料區:初始化全域性變數、

static

修飾的變數。

4、**段

程序的虛擬位址空間劃分

虛擬位址 virtual address cpu啟動保護模式後,程式執行在虛擬位址空間中。注意,並不是所有的 程式 都是執行在虛擬位址中。cpu在啟動的時候是執行在實模式的,bootloader以及核心在初始化頁表之前並不使用虛擬位址,而是直接使用實體地址的。每乙個程序被給予它的非常私有的虛擬位址空...

記憶體虛擬位址空間的劃分空間

當我們編碼的時候我們的源程式一般都放在硬碟上,然後當我們使用這個程式時電腦就會在記憶體上執行這個程式,然而電腦記憶體資源是十分緊缺的,一般電腦記憶體都是4g,8g,2g。所以當我們執行程式時並不是直接在記憶體上執行,而是在記憶體產生的虛擬位址空間上先進行,該虛擬空間一般也是4g,8g.這就涉及到了虛...

程序的虛擬位址空間

linux程序虛擬位址空間是linux記憶體管理的乙個重要部分。總的虛擬位址空間通常按3 1的比例劃分,其中1g分給核心,3g分給使用者。由低位址到高位址分別為 唯讀段 該部分空間 只能讀,不可寫 包括 段 rodata 段 c常量字串和 define定義的常量 資料段 儲存全域性變數 靜態變數 的...