通俗講解計算機記憶體及頁面置換演算法

2021-09-16 12:48:16 字數 785 閱讀 3193

先來看這張計算機儲存體系結構圖。

計算機儲存體系.png

從上圖可以看到,越在上面的訪問速度越快,但是容量越小,今天要說的就是記憶體那個環節。

現在有0xffffffff個位址,人們是怎麼利用作業系統去管理和分配這些位址給程式使用的呢?

虛擬位址到實體地址轉換過程

位址轉換.png

上圖還有個在不在位,這個位表示如果程式的頁在頁框中,那麼直接轉換,如果不在頁框中,那麼引發乙個缺頁中斷,作業系統去磁碟上把缺失的頁載入進記憶體,然後程式才繼續往下執行。這裡有個重點,執行中的程式不一定全部在記憶體中,也有可能在磁碟上,在磁碟上的那部分叫做虛擬記憶體!,那究竟程式的哪些頁面在記憶體中,哪些頁面在磁碟上,這裡就涉及到頁面置換演算法

乙個程式的部分頁面在記憶體中,部分頁面在磁碟上,究竟怎麼確定這些頁面?

我選幾個來說

最後是段頁式管理,結合了段式頁式的優缺點,把程式先分段,在每個段內再分頁,來管理記憶體,windows作業系統就是用這個方法管理的,當然實際中更加複雜,絕對沒有我說的這麼簡單,我只是通俗的說清原理,詳情請看《作業系統原理》

計算機記憶體

1.1 計算機硬體記憶體架構。計算機cpu central processing unit 和記憶體的互動是最頻繁的,記憶體是我們的快取記憶體區。使用者磁碟和cpu的互動,而cpu運轉速度越來越快,磁碟遠遠跟不上cpu的讀寫速度,才設計了記憶體,使用者快取使用者io等待導致cpu的等待成本。但是隨著...

計算機記憶體定址

摘自 1 基本概念 cpu段式管理 段式管理的基本原理是指把乙個程式分成若干個段 segment 進行儲存,每個段都是乙個邏輯實體 logical entity 乙個使用者作業或程序所包含的段對應乙個二維線形虛擬空間,程式通過分段 segmentation 劃分為多個模組,故可以對程式的各個模組分別...

計算機記憶體管理

在計算機中,儲存區域主要分為 他們的執行速率自下而上加快,與之相應的造價越高。其中,硬碟的執行效率最慢,暫存器的效率最快。在c 中,記憶體主要分為五個區,分別是 區是用來儲存程式的所有 以及字串常量等在編譯期間就能確定的值,在程式的整個生命週期內,在常量資料區的資料都是可用的。在這個區域內,所有的資...