- C和C++安全編碼(原書第2版)
- (美)Robert C.Seacord
- 354字
- 2020-10-30 17:56:40
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 進程內存組織
推薦閱讀
- Getting Started with React
- Arduino開發實戰指南:LabVIEW卷
- Mastering Articulate Storyline
- 微服務設計原理與架構
- MATLAB應用與實驗教程
- Interactive Applications Using Matplotlib
- R大數據分析實用指南
- Unreal Engine 4 Shaders and Effects Cookbook
- Expert Data Visualization
- 微信小程序入門指南
- 區塊鏈底層設計Java實戰
- Learning Probabilistic Graphical Models in R
- ElasticSearch Cookbook(Second Edition)
- 算法圖解
- Learning Concurrency in Python