virtual-memory

    2熱度

    1回答

    當我在我SO閱讀了大量的意見引導(特別是在C) 「動態分配永諾去堆,在堆棧上自動分配」 但是,尤其是關於爲純CI disaggree接着就,隨即。由於ISO/IEC9899甚至沒有放棄堆棧或堆棧。它只提到了三個存儲過程(靜態,自動和分配),並建議如何處理每個存儲過程。 什麼會讓編譯器的選項做到這一點,即使是相反,如果它願意。 所以我的問題是: 是堆和現有堆物理是(即使不是在C)一種標準化的語言可以

    0熱度

    2回答

    我給出的以下信息: 虛擬地址:32位 物理地址:30個比特 頁面大小:8 KB 頁表項:4字節 我想要計算頁表的大小。頁表大小是通過使用虛擬地址空間還是物理地址空間來計算的? 虛擬: 2^32/2^13 = 2^19頁* 2^2入口尺寸= 2^21頁表尺寸 物理: 2 ^二分之三十○^ 13 = 2^17頁* 2^2條目大小= 2^19頁表大小 由於地址大小的差異,我不確定物理內存地址空間是否會約

    3熱度

    3回答

    的主要原因是外部排序是數據可能比我們have.However,現在我們使用的虛擬內存的主內存大,虛擬內存將採取主內存和disk.Why之間交換的護理我們需要有外部排序呢?

    2熱度

    1回答

    超過896MB的線性地址對應於高內存區域ZONE_HIGHMEM。 因此,頁面分配器功能在這個區域不起作用,因爲它們給出ZONE_NORMAL和ZONE_DMA中直接映射的頁面幀的線性地址。 我感到困惑的Undertanding Linux內核指定的這幾行: 做什麼時,他們說,他們的意思是「在64位硬件平臺ZONE​​_HIGHMEM始終是空的。」 這是什麼突出的語句意味着:「高內存頁幀的分配是通

    0熱度

    1回答

    我目前正在學習x86虛擬內存和分頁。但是當我讀到關於更換狀態的信息時,我有一些問題。 另外,當允許多個程序存在時,需要額外的支持來跟蹤堆棧指針?

    18熱度

    3回答

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

    4熱度

    4回答

    我知道一個程序第一次啓動時,由於代碼不在內存中,所以在開始時它有大量的頁面錯誤,因此需要從磁盤加載代碼。 程序退出時會發生什麼?二進制文件是否保留在內存中?後續的程序調用是否會發現代碼已經在內存中,因此沒有頁面錯誤(假設沒有任何內容在頁面間運行,頁面填充到磁盤)? 看起來好像沒有在我的Linux機器上運行一些實驗的答案。我一遍又一遍地運行一些程序,每次都觀察到相同數量的頁面錯誤。這是一個相對安靜的

    0熱度

    1回答

    現在已經在一個項目上工作了幾個星期,我遇到了一個非常重要的障礙,我希望這裏有人能夠提供一些指導。 所有我需要做的是寫一個系統調用,進程的虛擬地址空間的報告統計數據調用時。根據分配標準,這些統計信息需要包括進程虛擬地址空間的大小,每個虛擬內存區域的訪問權限以及映射到這些虛擬內存區域的文件名稱。 前兩個我有工作,最後似乎是不可能的,從什麼我的研究至少和嘗試到目前爲止已止跌回升。我已經將它隔離到訪問進程

    4熱度

    2回答

    考慮以下CPU指令這需要存儲器地址16777386(十進制),並將其存儲在寄存器1:在編譯時 Move &0x010000AA, R1 傳統節目被轉換到組件(機器代碼)。 (讓我們忽略更復雜的現代系統,如jitting)。 但是,如果此地址分配在編譯時靜態完成,那麼操作系統如何確保兩個進程不使用相同的內存? (例如,如果你同時運行兩次相同的編譯程序)。 問: 如何,以及何時,並計劃得到分配的內存地

    1熱度

    1回答

    我想使用我的struct vm_area_struct *的頁面錯誤處理程序將物理頁面映射到用戶空間。 這是我如何着手: 我在全球分配模塊初始化期間使用alloc_page(GFP_USER)頁面(我嘗試過各種GFP)。 我創建了一個struct vm_area_struct,設置了自定義的頁面錯誤處理程序,並將vma附加到current->mm。 當發生頁面錯誤: 我設置vmf->page到我以