page-tables

    0熱度

    1回答

    我已經看到了一些關於32位頁表的例子,並且大多數假設4字節的頁表條目。我想知道64位架構是否以相同的方式工作?如果我想在64位版本中實現2級和3級頁表,頁表大小範圍有什麼區別?

    18熱度

    3回答

    我想了解多級頁表如何節省內存。根據我的理解,多級頁表總共消耗比單級頁表更多的內存。 示例:考慮頁面大小爲64KB和32位處理器的內存系統。頁表中的每個條目都是4字節。 單級頁面表:需要16位(2^16 = 64KB)位來表示頁面偏移量。所以剩餘的16位用於索引到頁表中。所以 *頁表的大小= 2^16(#頁)* 4個字節(每個頁表項的大小)= 2^18個字節× 多級頁表:在兩級頁表的情況下,我們可以

    0熱度

    1回答

    如果我們有一臺64位地址的機器,並且每個頁表項只包含一個指向分配幀的指針。如果我們需要三級頁面表,我如何計算可能的最大幀尺寸?我很困惑3級頁表,在什麼情況下我們需要3級頁表?任何幫助,將不勝感激。

    1熱度

    1回答

    有人可以指點我的代碼或一些關於內核如何將頁表處理到內核空間的資源? 這是如何工作在32位和64位(在x86和x86_64處理器上)? 內核如何通過內核虛擬地址設置進程和內核的頁表? 似乎有雞和雞蛋的問題。你需要在內核中有一個虛擬地址來訪問一個物理頁面,但是你需要一個頁面表項來實現這個功能,它使用虛擬地址來訪問一個物理頁面。

    0熱度

    3回答

    該數字取自here。 Q1。看起來,EPT表保留了訪客頁面表的整個副本,使其成爲4級頁表。那是對的嗎? Q2302。這是不是有點浪費空間? Q3。什麼是EPT違反?是否這意味着:guest虛擬機嘗試訪問新的虛擬guest虛擬地址(gVA),EPT表還沒有記錄,因此它會陷入VMM,並將兩個gVA和gPA條目添加到EPT表中。那是對的嗎?

    2熱度

    2回答

    我正在開發我的操作系統項目。啓動器代碼已經跳轉到長模式並設置臨時頁表。我現在已經安裝並填充了自己的頁面表,並以我需要的方式完成了映射內存。現在我需要在CR3寄存器中設置PML4T的物理地址。 238 void setcr3(void * addr){ 239 uint64_t temp=(uint64_t)addr; 240 241 __asm__ ("movq %0, %%cr3;"::"

    1熱度

    1回答

    的大小我有以下提示分配: The page size for a virtual memory system is 8KB. The instruction TLB is direct-mapped with 2 sets and each block contains one translation. ^(I don't believe this is relevant for the fo

    1熱度

    1回答

    我目前正在學習虛擬內存,並且遇到了關於TLB未命中和頁面錯誤的幾個問題。我的理解是: 當你有TLB未命中時,你去PT。如果PT有一個命中,那麼很好,你將PT條目從內存複製到TLB。 當你有一個TLB未命中,而你也錯過了當你去PT時,然後你去到磁盤,並將頁面複製到PT。 此時,您已將頁面複製到PT,但是您是否更新了TLB?例如,您是否也將該頁面複製到TLB?或者你只更新PT? 謝謝!

    2熱度

    2回答

    機器有32位地址空間和8KB的頁面大小。頁表全部在 硬件中,每個條目有一個32位字。當進程被安排時,它的頁表被複制 到內存中的硬件,速率爲一個字/ 100ns。如果每個進程運行100ms (包括加載頁表的時間),那麼CPU時間的幾分之一用於加載 頁表? 是的;這是一個家庭作業問題。我研究了它,到目前爲止,我發現 pagetable的大小(字節)=條目數*條目大小。 因此 x = 32 * 8192

    0熱度

    2回答

    我想了解以下內容: 我知道頁表是專爲在某一時刻的虛擬內存和物理內存之間的翻譯虛擬內存管理器。由於在系統上運行的進程很多,即使一次只激活一個進程,我也想知道處於非活動狀態的進程的頁表是否會在任何時間點都移動到頁面文件中?鑑於較低的2 GB區域是爲Windows保留的,因此Windows將爲系統上的所有進程保留頁表是有意義的。雖然如果當前進程被切換,它們會移動到頁面文件也是有意義的。 同樣適用於可寫入