order,clang會根據此檔案對link map檔案中的函式重新排列,程式中需要實現的關鍵函式如下:__sanitizer_cov_trace_pc_guard_init:app中有多少個函式就會有多少個符號__sanitizer_co
發現此時page fault的原因是寫一個頁表裡記錄只讀的物理地址,而vma記錄的虛擬地址又是r+w,此時,linux會申請一頁記憶體
簡化記憶體分配:在使用malloc等記憶體分配函式時,由於頁表的存在,作業系統沒必要分配連續的物理頁面給程序,而是在程序自己的虛擬地址空間找一塊連續的虛擬地址分配給程序,當實際訪問這塊新分配的虛擬地址時,缺頁相關程式碼會將其對映到實際的物理
反向對映到目前為止,我們只討論瞭如何透過虛擬地址找到對應的物理地址(透過頁表),而如果我們想要透過物理記憶體找到所有使用它的虛擬地址空間描述就很麻煩(在需要換頁時,需要修改所有使用該物理記憶體的 vm_area_struct,將換出的檔案位
實現簡單效能較差,調出的頁面可能是經常訪問的Belady現象:程序分配物理頁面數增加時,缺頁並不一定減少,例子(記憶體中能裝4頁,但實際有5頁,最優演算法為2次):很少單獨使用6