邏輯位址 線性位址 實體地址以及虛擬儲存器

2021-09-07 13:41:54 字數 656 閱讀 2804

note:本文是基於80×86微處理器進行原理總結。

記憶體控制單元(mmu)通過分段單元的硬體電路把乙個邏輯位址轉換為線性位址,接著,分頁單元的硬體電路把線性位址轉換為實體地址。

虛擬儲存器:

現在機器都會有虛擬儲存器這種機制,主要是用來解決機器實際記憶體不足的問題。計算機系統的記憶體主要由半導體儲存器組成,由於工藝和成本的原因,記憶體的容量受到限制。然而,計算機系統軟體和應用軟體的功能不斷增強,程式規模迅速擴大,要求記憶體的容量越大越好,這就產生了矛盾。為了給大的程式提供方便,使它們擺脫記憶體容量的限制,可以由作業系統把記憶體和輔存這兩級儲存系統管理起來,實現自動覆蓋。也就是說,乙個大作業在執行時,其一部分位址空間在記憶體,另一部分在輔存,當所訪問的資訊不在記憶體時,則由作業系統而不是程式設計師來安排i/o指令,把資訊從輔存調入記憶體。從效果上來看,好像為使用者提供了乙個儲存容量比實際記憶體大得多的儲存器,使用者無需考慮所程式設計序在記憶體中是否放得下或放在什麼位置等問題。我們稱這種儲存器為虛擬儲存器。

程式執行時,cpu以邏輯位址來訪問記憶體,由輔助硬體找出邏輯位址和實體地址之間的對應關係,並判斷這個邏輯位址對應的實體地址內容是否已裝入記憶體。如果已在記憶體中,則cpu可直接訪問記憶體的實際物理單元;如果不在記憶體中,則把包含這個字的乙個儲存塊從外存調入記憶體後再由cpu訪問。如果記憶體已滿,則由替換演算法從記憶體中將暫不執行的一塊調回外存,再從外存調入新的一塊到記憶體。

邏輯位址,線性位址,實體地址

邏輯位址轉線性位址 機器語言指令中出現的記憶體位址,都是邏輯位址,需要轉換成線性位址,再經過 mmu cpu中的記憶體管理單元 轉換成實體地址才能夠被訪問到。我們寫個最簡單的 hello world 程式,用 gcc 編譯,再反彙編後會看到以下指令 mov 0x80495b0 eax 這裡的記憶體位...

實體地址 虛擬位址 線性位址以及邏輯位址

是記憶體中的記憶體單元實際位址,是記憶體中每個記憶體單元的編號,這個編號是順序排好的,實體地址的大小決定了記憶體中有多少個記憶體單元,實體地址的大小由位址匯流排的位寬決定。虛擬位址是cpu保護模式下的乙個概念,保護模式是80286系列和之後的x86相容cpu操作模式,在cpu引導完作業系統核心後,作...

實體地址 虛擬位址 邏輯位址 線性位址

實際計算機的物理記憶體的位址,為32位或者64位。常見的記憶體條就是一類ram 隨機儲存儲存器,特點就是加電狀態下可任意讀寫,斷電後資訊消失 現代os都提供一技術 虛擬記憶體 virtual memory 它可以使給使用者錯覺好像自己在使用比實際物理記憶體大得多的記憶體,實際上通過對映把虛擬記憶體的...