記憶體管理

内存管理，是指软件运行时对计算机主存储器资源的分配和使用的技术。其最主要的目的是如何高效、快速的分配，并且在适当的时候释放和回收内存资源。

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

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

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

 主記憶體使用 
一個程式結構由以下兩部分而成:
 「本文區段」，也就是指令存放，提供CPU使用及執行
 「資料區段」，儲存程式內部本身設定的資料，例如常數字串，像是GUI介面內部一些文字訊息，或是程式設計時所放入的訊息資料，資料可藉由程式執行時由輸入（input）的方式加入，或者經由程式執行的流程中被移除。

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

 参考文献 

 参见 

 分頁表