記憶體管理,記憶體管理軟體

來源:互聯網
上載者:User

記憶體管理,記憶體管理軟體

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

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

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

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

主存使用

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

  • “本文區塊”,也就是指令存放,提供CPU使用及運行
  • “資料區塊”,儲存程式內部本身設定的資料,例如常數字串,像是GUI介面內部一些文字訊息,或是程式設計時所放入的訊息資料,資料可藉由程式運行時由輸入(input)的方式加入,或者經由程式啟動並執行流程中被移除。

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

 

我們的公用號

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.