官术网_书友最值得收藏!

2.3.4 進程內存組織

進程

已載入內存并受操作系統管理的程序實例。

如圖2.5的(a)列所示,進程的內存一般分為code(代碼段)、data(數據段)、heap(堆)以及stack(棧)。

code和text段包含了程序的指令和只讀數據。它們可以被標記為只讀,從而當試圖對其對應的內存進行修改時,就會引發錯誤。(把內存標記為只讀有兩種方法,一是使用支持該功能的計算機硬件平臺的內存管理硬件,二是安排內存,使可寫的數據和只讀數據存儲在不同的頁面。)data段包含了初始化數據、未初始化數據、靜態變量以及全局變量。heap則用于動態地分配進程內存。stack是一個后進先出(last-in,first-out,LIFO)數據結構,用于支持進程的執行。

進程內存的精確組織形式依賴于操作系統、編譯器、鏈接器以及載入器—換言之,依賴于編程語言的實現。圖2.5的(b)列和(c)列展示了UNIX和Win32上可能的進程內存組織形式。

圖2.5 進程內存組織

主站蜘蛛池模板: 乐亭县| 久治县| 宝鸡市| 兴山县| 桐梓县| 阿图什市| 谷城县| 健康| 凯里市| 北川| 孝昌县| 罗定市| 临澧县| 屯门区| 青浦区| 乐安县| 邢台县| 滨海县| 疏勒县| 玛沁县| 禹州市| 壶关县| 绿春县| 道真| 平塘县| 盐边县| 阳曲县| 南召县| 寿阳县| 山阳县| 嵩明县| 庆安县| 青州市| 涟源市| 来宾市| 邮箱| 东乡| 德江县| 克什克腾旗| 邢台市| 镇沅|