0
我有以下頁表process1
的:轉換邏輯(虛擬)地址到物理地址
假設尋呼系統的工作原理與16bit
地址和頁面大小是4k
我想將邏輯地址16000
轉換爲物理地址。
我是新這個話題在一點點這樣下去容易對我道:
部分解決:地址16000
適合細胞數量3
頁表,所以我想 ,我需要工作與該單元格和其存儲的框架 - 2
。
現在如何找到偏移量和物理地址?
謝謝
我有以下頁表process1
的:轉換邏輯(虛擬)地址到物理地址
假設尋呼系統的工作原理與16bit
地址和頁面大小是4k
我想將邏輯地址16000
轉換爲物理地址。
我是新這個話題在一點點這樣下去容易對我道:
部分解決:地址16000
適合細胞數量3
頁表,所以我想 ,我需要工作與該單元格和其存儲的框架 - 2
。
現在如何找到偏移量和物理地址?
謝謝
在你的情況下,進程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。
乾杯:)