什么是游戲服務器里面的進程映像
什么是游戲服務器里面的進程映像呢?進程映像是執行程序時所需要的可執行文件,通常會包括下面這些東西:
代碼段(codesegment/textsegment)
又稱文本段,用來存放指令,運行代碼的一塊內存空間
此空間大小在代碼運行前就已經確定
內存空間一般屬于只讀,某些架構的代碼也允許可寫
在代碼段中,也有可能包含一些只讀的常數變量,例如字符串常量等。
游戲服務器數據段(datasegment)
可讀可寫
存儲初始化的全局變量和初始化的 static 變量
數據段中數據的生存期是隨程序持續性(隨進程持續性)
隨進程持續性:進程創建就存在,進程死亡就消失
游戲服務器bss 段(bsssegment):
可讀可寫
存儲未初始化的全局變量和未初始化的 static 變量
bss 段中的數據一般默認為 0
游戲服務器Data 段
是可讀寫的,因為變量的值可以在運行時更改。此段的大小也固定。
棧(stack):
可讀可寫
存儲的是函數或代碼中的局部變量(非 static 變量)
棧的生存期隨代碼塊持續性,代碼塊運行就給你分配空間,代碼塊結束,就自動回收空間
游戲服務器堆(heap):
可讀可寫
存儲的是程序運行期間動態分配的 malloc/realloc 的空間
堆的生存期隨進程持續性,從 malloc/realloc 到 free 一直存在【艾娜】