首頁 > 運維 > linux運維 > 記憶體管理與使用實例

記憶體管理與使用實例

PHP中文网
發布: 2017-06-21 10:33:47
原創
1832 人瀏覽過

記憶體管理,是指軟體運行時對電腦記憶體資源的分配和使用的技術。其最主要的目的是如何高效,快速的分配,並在適當的時候釋放和回收記憶體資源。

一個運作中的程序,譬如網頁瀏覽器在個人電腦或是圖靈機(Turing machine)裡面,為一個進程將資料轉換於真實世界及電腦記憶體之間,然後將資料存於電腦記憶體內部(在電腦科學,一個程式是一群指令的集合,一個行程是電腦在運作中的程式)。記憶體能被實際組織在許多方法裡頭,例如磁帶或是磁碟,或是小數組容量的微晶片。 從1950年代開始,電腦變的更複雜,它被連接到許多種類的記憶體。記憶體管理的任務也變得複雜,甚至必須在同一台機器上相同的時間運行多個進程。

在記憶體內,一個程式(作業系統)在每一個資料區塊持續追蹤實體位置,及行動實體上的資料去改善其效能及保證可靠性,對於每個使用者層(user -level)的程序,作業系統分配一段虛擬記憶體空間,當進程起始時,不需要移動資料到實體裝置間,資料存於磁碟內的虛擬記憶體空間,也不需要去配置主存空間給該行程,當使用者有需要用到時,他們才會很自由地載入到主存內。

可以想像一個很大的程序,當他運行時變成進程,而大部分的記憶體空間都被存到磁碟內虛擬記憶體位址,需要用到的部分才被載入到記憶體內部提供服務。

主記憶體使用

一個程式結構由以下兩部分而成:

  • “本文區塊”,也就是指令存放,提供CPU使用及運行

  • “數據區塊”,儲存程式內部本身設定的數據,例如常數字串,像是GUI介面內部一些文字訊息,或是程式設計時所放入的訊息數據,數據可藉由程式運作時由輸入(input)的方式加入,或是經由程式運作的流程中移除。

當一個程式運行,作業系統將程式的資料區塊及本文區塊映射到虛擬記憶體空間內部,然後在記憶體運行程式的指令,無論如何,當程式運行時就必須去儲存暫時性的數據,或更重要的,它會呼叫一些函數(function)或是例程(subroutine),並且儲存當前函數的狀態,最好的數據結構方法,數據由堆疊(stack )的方式存儲,當我們完成這個函數,資料會由堆疊的pop方式取出,堆疊將會在函數的生命週期內動態的成長,作業系統提供區分本文區塊及資料區塊,而堆疊區塊則在一個行程的最頂端,這種方式稱為段式結構(segments)或「分段

以上是記憶體管理與使用實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板