virtual-memory

    0熱度

    1回答

    分頁的虛擬地址轉換我有麻煩做這個小練習: 到目前爲止,我得到這個: 對於VADDR = 0x5ddb,二進制表示爲0101 1101 1101 1011,因此我們知道VPN = 101 = 5。 下一步是什麼?

    0熱度

    1回答

    我目前正試圖瞭解Linux的系統編程,並且很難理解虛擬到物理內存映射如何工作。 到目前爲止,我的理解是,兩個進程P1和P2可以引用同一個虛擬地址,例如0xf11001。現在這個內存地址被分成兩部分。 0xf11是頁碼,0x001是該頁面內的偏移量(假定使用4096頁大小)。爲了找到物理地址,MMU具有將頁面號碼映射到物理地址的硬件寄存器,可以說0xfff。最後一個階段是將0xfff與0x001組合

    2熱度

    1回答

    當啓用分頁時,某些硬件負責將虛擬內存地址轉換爲物理地址。已知的翻譯通常保存在某種緩存中,即翻譯緩存(TLB)。 假設緩存地址轉換的內存訪問,是否比沒有啓用分頁直接訪問內存慢? 我很想知道該翻譯的開銷,即使它被緩存了,因爲對該緩存的訪問可能也需要一些(儘管很短)的時間。還是那個時間計劃作爲時鐘週期的一部分? (要清楚,我的問題不是缺頁故障或TLB的高速緩存未命中)

    0熱度

    1回答

    在虛擬內存地址長度爲40位的情況下,物理內存地址長度爲28位,我們如何找到物理和虛擬內存的大小?

    1熱度

    1回答

    在線閱讀似乎對'虛擬內存'一詞有些混淆。它似乎描述了兩個概念,一個是每個進程都有自己的虛擬地址空間,另一個是能夠分頁到次要驅動器的想法。我假設幾乎所有新操作系統都實現了「兩者」。 我的問題是,這兩個概念是否必須一起實施?在網上尋找信息時,他們似乎總是一起提到,但是有可能沒有其他信息? 例如,我知道我可以在我的系統上禁用交換文件,因此每個進程仍具有自己的虛擬地址空間,並且仍在實現虛擬內存,但不會分頁

    2熱度

    2回答

    我有兩個線程和一個大的數據集。線程R連續讀取數據集並向用戶顯示數據視圖。線程W不斷接收遠程數據,對其執行一些工作並將其發佈到數據集。 線程R需要控制其接收數據集一致視圖的粒度。一種解決方案是雙緩衝;當R從另一個拷貝讀取時,W寫入一個拷貝,並且當R準備進行更新時,W的拷貝被原子地拷貝到R(禁止,因爲數據集很大並且大部分沒有變化),或者它們以原子方式交換拷貝並且W帶來R的舊通過重新應用自上次交換以來的

    -3熱度

    1回答

    物理內存爲2^20字節 邏輯地址空間爲2048頁 頁面大小爲4KB 多久頁表? 除了頁框號之外,每個頁表項都包含有效/無效位,頁表有多寬? 考慮一個只允許使用邏輯地址空間地址0到30000的進程。頁面表中有多少條目應該設置爲有效? 有沒有內部或外部碎片?說明。 如果一個系統使用反轉頁表,頁表中有多少條目? 請幫助!我的考試是明天

    6熱度

    2回答

    iOS是否支持內存交換和像Linux一樣自動運行的虛擬內存?

    0熱度

    2回答

    我知道頁表的最後一層中的每個條目都在內存中保存一個物理地址。 根據我的理解,中間頁表在其條目中包含物理地址。我對嗎?

    1熱度

    1回答

    當談到內核編程時,我有點不知所措,並且想知道是否有人能夠指引我以正確的方向開始在內核設置中實施內存管理。我目前正在研究一個玩具內核,並且正在對這個主題進行大量的研究,但是我對內存管理的主題有點困惑。它有很多不同的方面,如分頁和虛擬內存映射。是否有一個特定的順序,我應該實現的東西或任何的和不是? 我不是在尋找任何代碼或任何東西,我只需要指出正確的方向。任何幫助,將不勝感激。