linux进程映像由哪些构成,Linux编程开发进程映像类型分析
進程與線程問題是程序員在學(xué)習(xí)編程開發(fā)語言需要重點掌握的編程知識之一,而今天我們就一起來了解一下,Linux編程開發(fā)中進程映像的執(zhí)行標(biāo)準(zhǔn)。
什么是進程映像呢?進程映像是執(zhí)行程序時所需要的可執(zhí)行文件,通常會包括下面這些東西
代碼段(codesegment/textsegment)
又稱文本段,用來存放指令,運行代碼的一塊內(nèi)存空間
此空間大小在代碼運行前就已經(jīng)確定
內(nèi)存空間一般屬于只讀,某些架構(gòu)的代碼也允許可寫
在代碼段中,也有可能包含一些只讀的常數(shù)變量,例如字符串常量等。
數(shù)據(jù)段(datasegment)
可讀可寫
存儲初始化的全局變量和初始化的static變量
數(shù)據(jù)段中數(shù)據(jù)的生存期是隨程序持續(xù)性(隨進程持續(xù)性)
隨進程持續(xù)性:進程創(chuàng)建就存在,進程死亡就消失
bss段(bsssegment):
可讀可寫
存儲未初始化的全局變量和未初始化的static變量
bss段中的數(shù)據(jù)一般默認(rèn)為0
Data段
是可讀寫的,因為變量的值可以在運行時更改。此段的大小也固定。
棧(stack):
可讀可寫
存儲的是函數(shù)或代碼中的局部變量(非static變量)
棧的生存期隨代碼塊持續(xù)性,代碼塊運行就給你分配空間,代碼塊結(jié)束,就自動回收空間
堆(heap):
可讀可寫
存儲的是程序運行期間動態(tài)分配的malloc/realloc的空間
堆的生存期隨進程持續(xù)性,從malloc/realloc到free一直存在
【免責(zé)聲明】本文系本網(wǎng)編輯部分轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請在30日內(nèi)與管理員聯(lián)系,我們會予以更改或刪除相關(guān)文章,以保證您的權(quán)益!更多內(nèi)容請在707945861群中學(xué)習(xí)了解。
總結(jié)
以上是生活随笔為你收集整理的linux进程映像由哪些构成,Linux编程开发进程映像类型分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 解释 游标赋值_Mysql_
- 下一篇: jq如何在打开新的页面 关闭之前同链接的