使用的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定義的常量 資料段 儲存全域性變數 靜態變數 的...