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

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 進程內存組織

主站蜘蛛池模板: 柘荣县| 徐汇区| 盐源县| 航空| 老河口市| 玉溪市| 仁怀市| 临沂市| 泉州市| 诸暨市| 全椒县| 隆林| 贡嘎县| 黄平县| 青田县| 灵石县| 拉萨市| 绵阳市| 塔城市| 苍南县| 双鸭山市| 赤水市| 南宫市| 修武县| 云龙县| 宜兴市| 内江市| 丰城市| 富源县| 富锦市| 广宁县| 旅游| 浮山县| 黄梅县| 三江| 米林县| 穆棱市| 福贡县| 奎屯市| 福海县| 宜川县|