在計算機中,每個程式要是想先執行,首先要載入到記憶體中,但是記憶體是有限的,也就是說我程式的大小也是受到了限制的,這樣並不好。因此,發明了一種思想,這是乙個抽象概念:虛擬儲存器。當我需要資料或者程式的時候,再載入到我的記憶體中執行,否則就儲存在硬碟上,但是如果我要是想呼叫程式中的某一部分**的時候,由於我的程式原本很大,但是記憶體存不下,因此我需要把程式分隔成小塊分入記憶體中。但是我如何找到呢?對於記憶體的每個資料塊,都有乙個實體地址,這是和硬體相關的,對於每個程式,我們可以把每個資料塊也進行線性排序,這樣我們可以人工標記乙個邏輯位址。於是,當我想要呼叫程式的某些**的時候,我需要根據邏輯位址,進行轉化,到記憶體中區查詢實體地址中的資料。
這就是想了虛擬位址轉化到實體地址,而這個轉化稱作
位址翻譯
,是在mmu儲存器管理單元
中實現的。
我們可以將邏輯位址和實體地址看做是兩個空間,每個程式可以有自己很大的邏輯位址,這與硬體無關,就好像我們的個人夢想可以和現實無關一樣。當我需要呼叫程式某一塊的時候,其實虛擬儲存的思想就是乙個
對映,把邏輯對映到物理。就好像我們在實際生活中只能調取夢想中的一部分似的。這個比喻不是特別恰當,不過可以幫助理解,我認為。
實體地址和邏輯位址(虛擬位址)
1.實體地址 實體地址是載入到記憶體位址暫存器中的位址,是指記憶體中各物理儲存單元的位址從統一的基位址進行的順序編址。又稱絕對位址,它是資料在記憶體單元的真正位址。在前端匯流排上傳輸的記憶體位址都是物理記憶體位址,編號從0開始一直到可用物理記憶體的最高端。這些數字被北橋 nortbridge chi...
虛擬位址與實體地址
乙個程式編譯連線後形成的位址空間是乙個虛擬位址空間,但是程式最終還是要執行在物理記憶體中。因此,應用程式所給出的任何虛位址最終必須被轉化為實體地址,所以,虛擬位址空間必須被對映到物理記憶體空間中,這個對映關係需要通過硬體體系結構所規定的資料結構來建立。這就是我們所說的段描述符表和頁表,linux主要...
虛擬位址和實體地址的概念
虛擬位址和實體地址的概念 cpu通過位址來訪問記憶體中的單元,位址有虛擬位址和實體地址之分,如果cpu沒有mmu memory management unit,記憶體管理單元 或者有mmu但沒有啟用,cpu核在取指令或訪問記憶體時發出的位址將直接傳到cpu晶元的外部位址引腳上,直接被記憶體晶元 以下...