記憶體管理

內存管理 ， 是指軟件運行時對計算機內存資源的分配和使用的技術 。 其最主要的目的是如何高效 、 快速的分配 ， 並且在適當的時候釋放和回收內存資源 。 一個執行中的程式 ， 譬如網頁瀏覽器在個人電腦或是圖靈機 （ Turing machine ） 裏面 ， 爲一個進程將資料轉換於真實世界及電腦記憶體之間 ， 然後將資料存於電腦記憶體內部 （ 在電腦科學 ， 一個程式是一群指令的集合 ， 一個進程是電腦在執行中的程式 ） 。 記憶體能被實際組織在許多方法裏頭 ， 例如磁帶或是磁盤 ， 或是小陣列容量的微晶片 。 從1950年代開始 ， 計算機變的更復雜 ， 它被連線於許多種類的記憶體 。 記憶體管理的任務也變得複雜 ， 甚至必須要在同一臺機器上相同的時間執行多個進程 。 在記憶體內 ， 一個程式 （ 作業系統 ） 在每一個資料區段持續地追蹤實體位置 ， 及移動實體上的資料去改善其效能及保證可靠性 ， 對於每個用戶層 （ user - level ） 的程式 ， 作業系統分配一段虛擬記憶體空間 ， 當行程起始時 ， 不需要移動資料到實體裝置間 ， 資料存於磁碟內的虛擬記憶體空間 ， 也不需要去配置主記憶體空間給該行程 ， 當使用者有需要用到時 ， 他們纔會很自由地載入到主記憶體內 。 可以想像一個很大的程式 ， 當他執行時變成行程 ， 而大部分的記憶體空間都被存到磁碟內虛擬記憶體位址 ， 需要用到的部分才被載入到記憶體內部提供服務 。