inverse map 頁框逆對映

2021-08-22 19:26:52 字數 657 閱讀 3916

在頁**中,逆對映是乙個有意思,並且很有技巧的乙個功能.

逆對映:就是從給定的page來找到所有的引用者,特別的是pte頁表項.

有了逆對映就能安心釋放指定page了.不然就會杯具了.

逆對映的場景:共享頁框最常見的是共享庫,c庫基本上對映到所有的使用者程序了.其次比如共享記憶體.

**kernel的演進:**

1. 2.4時代是遍歷所有的程序要找到此page的引用者的pte.簡單粗暴.

效率上有點弱,功能上還是達到的.

2. 2.5時代改進了,犧牲了空間換效率,為每個頁分配乙個list來記錄引用者.因為每個page都要增加了size空間,其實大部分頁是不存在共享的.據說被抱怨.

3. 2.6又改進了,提出所謂的基於物件的方法.

**2種共享頁,或者是2種物件**

1. anonymous 匿名頁,這個名字其實真取得不好.map_private, stack * or brk vma (with null file) 

2. file map 檔案對映頁.

**page/anon_vma/address_space**

頁表自對映

今天查詢頁表對映資料時,無意發現乙個有趣的概念,就是頁表自對映。頁目錄基址記為pdt,頁目錄項記為pde,頁表項記為pte。bits m,n,value 表示取value從高m位到高n位的值。32位系統下,所有的pte所佔的空間剛好是4mb。如果將這些pte連續地放在記憶體中,那麼這4mb記憶體空間...

linux對映 Linux 匿名頁的反向對映

我們知道linux的記憶體管理系統中有 反向對映 這一說,目的是為了快速去查詢出乙個特定的物理頁在哪些程序中被對映到了什麼位址,這樣如果我們想把這一頁換出 swap 或是遷移 migrate 的時候,就能相應該更改所有相關程序的頁表來達到這個目的。物理記憶體的分頁機制,乙個pte page tabl...

spring 整合 Orika Bean對映框架

前文介紹了orika,本文介紹如何在spring框架中整合使用。package com.mytutorial import org.springframework.stereotype.component component public class extends protected void f...