程序控制塊(PCB)在系統記憶體中,可以和其他程序同步執行
資料段存在靜態記憶體,用於儲存程式已經初始化的變數
程式碼段緊接著資料段,也在靜態記憶體中
另外還有儲存區域性變數的棧和儲存動態分配空間的堆
在記憶體中它們如下關係:
========高地址 =======
程式棧 堆疊段
向下增長
空記憶體
向上增長
堆
------ 資料段
BSS
------
非零資料
========= =======
程式碼 程式碼段
=========低地址 =======
棧(存放著區域性變數和函式引數等資料),向下生長 (可讀可寫可執行)
堆(給動態分配記憶體是使用),向上生長 (可讀可寫可執行)
資料段(儲存全域性資料和靜態資料) (可讀可寫不可執行)
程式碼段(儲存程式碼) (可讀可執行不可寫)
程序控制塊(PCB)在系統記憶體中,可以和其他程序同步執行
資料段存在靜態記憶體,用於儲存程式已經初始化的變數
程式碼段緊接著資料段,也在靜態記憶體中
另外還有儲存區域性變數的棧和儲存動態分配空間的堆
在記憶體中它們如下關係:
========高地址 =======
程式棧 堆疊段
向下增長
空記憶體
向上增長
堆
------ 資料段
BSS
------
非零資料
========= =======
程式碼 程式碼段
========= =======
=========低地址 =======
棧(存放著區域性變數和函式引數等資料),向下生長 (可讀可寫可執行)
堆(給動態分配記憶體是使用),向上生長 (可讀可寫可執行)
資料段(儲存全域性資料和靜態資料) (可讀可寫不可執行)
程式碼段(儲存程式碼) (可讀可執行不可寫)