2012-07-25 135 views
0

我有以下頁表process1的:轉換邏輯(虛擬)地址到物理地址

enter image description here

假設尋呼系統的工作原理與16bit地址和頁面大小是4k

我想將邏輯地址16000轉換爲物理地址。

我是新這個話題在一點點這樣下去容易對我道:

部分解決:地址16000適合細胞數量3頁表,所以我想 ,我需要工作與該單元格和其存儲的框架 - 2

現在如何找到偏移量和物理地址?

謝謝

回答

6

在你的情況下,進程1目前可以訪問高達4 * 4k字節的虛擬內存。
通常一個進程可以訪問最多4GB的虛擬內存(取決於實施情況)。
現在你給出的表將虛擬內存映射到實際的物理地址(在RAM上)。頁表中的每個條目都映射4k內存從虛擬物理空間到物理空間。
因此,地址16000對應於映射到從8192(3*4096) till 12288 (8192+4096)開始的物理地址的頁表的第3項的物理地址。

16000 mod 4096 = 3712(offset). 

在以物理第3頁(地址8192)的3172抵消虛擬頁2即3172字節偏移處找到相應的數據,解決16000
所有這些映射所做一個進程所進行的每個地址訪問的MMU(內存管理單元)。
理解這個概念的好鏈接是here

乾杯:)