1、虛擬位址和實體地址之間的對映是以頁(4kb)為單位進行對映的;
2、每乙個程序中都有乙個程序控制塊(pcb),裡面包含了一些程序的資訊(頁目錄,狀態,控制代碼表,id,pid……);
3、對映過程(32位系統下):
首先pcb中有乙個指向一級分頁表的指標,每乙個頁表的大小均為4096b(4kb),可以儲存1024個位址。其中一級頁表中每乙個位址對應著乙個二級頁表的首位址,二級頁表中也儲存著1024個位址,其中每個位址分別對應著物理記憶體上面的每乙個頁的首位址。這樣一來,虛擬位址空間所能夠訪問的位址有1024 * 1024 * 4096b = 2^32b = 4gb;正好是4g。perfect!!!!
我們知道程序的虛擬位址稱為線性位址,每乙個線性位址都由第一級頁表、第二級頁表以及該位址相對於該頁首位址的偏移量三部分組成,即10-10-12的形式:如圖2
虛擬位址和實體地址及其對映
原文 前一段時間在面試總監的時候,總監問了我這樣的乙個問題 你個我說說物理記憶體和虛擬記憶體到底是怎麼一回事?其實之前我看過這個問題,據我理解的,當時是這麼回答的 程序在執行的時候,作業系統都為其分配乙個4gb的位址空間,即所謂的虛擬位址空間,一般情況下,當我們的程式很大的時候,實際的物理記憶體根本...
虛擬位址和實體地址及其對映
其實之前我看過這個問題,據我理解的,當時是這麼回答的 程序在執行的時候,作業系統都為其分配乙個4gb的位址空間,即所謂的虛擬位址空間,一般情況下,當我們的程式很大的時候,實際的物理記憶體根本不能滿足我們的需求的時候,這個時候作業系統就會借助磁碟空間來做虛擬的記憶體空間,把當前程序不需要的資料放在磁碟...
虛擬位址與實體地址的對映
對於dsp的每個cpu而言,當由cpu發起的對corepac內部記憶體 l1,l2記憶體,片上暫存器位址 的訪問 通過store或load指令 時,所訪問記憶體的位址就是實體地址 但當cpu訪問corepac外部的記憶體 如msm,即多核共享記憶體或ddr 時,cpu所訪問的32位位址就是虛擬位址了...