本說明書實施例涉及計算機,特別涉及一種頁表共享方法。
背景技術:
1、隨著計算機技術的發展,為了節省操作系統的頁表開銷,頁表共享逐漸成為研究重點。頁表是一種特殊的數據結構,記錄著頁面和頁框的對應關系。頁表是內存非連續分區分配的基礎,實現從邏輯地址轉化成物理地址。
2、目前,通常通過超大頁高速緩存(huge?tlb,huge?translation?lookasidebuffer)節省頁表開銷并支持頁表共享,然而,超大頁高速緩存方法的使用過程中需要提前預留內存,預留的內存無法回收被其他應用使用,對內存擴展性影響很大,導致頁表共享普適性較低。因此,亟需一種普適性高的頁表共享方法。
技術實現思路
1、有鑒于此,本說明書實施例提供了一種頁表共享方法。本說明書一個或者多個實施例同時涉及一種缺頁異常處理方法,一種頁表共享裝置,一種缺頁異常處理裝置,一種計算設備,一種計算機可讀存儲介質以及一種計算機程序,以解決現有技術中存在的技術缺陷。
2、根據本說明書實施例的第一方面,提供了一種頁表共享方法,包括:
3、響應于第一進程訪問內存的訪問請求,為第一進程分配多個虛擬內存區域;
4、針對多個虛擬內存區域中的目標虛擬內存區域,分配影子虛擬內存區域,其中,影子虛擬內存區域用于共享第二進程的與目標虛擬內存區域相同屬性的虛擬內存區域;
5、確定影子虛擬內存區域對應的目標共享頁表。
6、根據本說明書實施例的第二方面,提供了一種缺頁異常處理方法,包括:
7、響應于第一進程在訪問內存過程中觸發的缺頁異常信息,確定發生缺頁異常的異常虛擬內存區域;
8、查找針對異常虛擬內存區域分配的影子虛擬內存區域,獲得影子虛擬內存區域對應的目標共享頁表,其中,影子虛擬內存區域用于共享第二進程的與異常虛擬內存區域相同屬性的虛擬內存區域;
9、利用目標共享頁表,為第一進程的虛擬內存映射物理內存。
10、根據本說明書實施例的第三方面,提供了一種頁表共享裝置,包括:
11、第一分配模塊,被配置為響應于第一進程訪問內存的訪問請求,為第一進程分配多個虛擬內存區域;
12、第二分配模塊,被配置為針對多個虛擬內存區域中的目標虛擬內存區域,分配影子虛擬內存區域,其中,影子虛擬內存區域用于共享第二進程的與目標虛擬內存區域相同屬性的虛擬內存區域;
13、第一確定模塊,被配置為確定影子虛擬內存區域對應的目標共享頁表。
14、根據本說明書實施例的第四方面,提供了一種缺頁異常處理裝置,包括:
15、第二確定模塊,被配置為響應于第一進程在訪問內存過程中觸發的缺頁異常信息,確定發生缺頁異常的異常虛擬內存區域;
16、查找模塊,被配置為查找針對異常虛擬內存區域分配的影子虛擬內存區域,獲得影子虛擬內存區域對應的目標共享頁表,其中,影子虛擬內存區域用于共享第二進程的與異常虛擬內存區域相同屬性的虛擬內存區域;
17、映射模塊,被配置為利用目標共享頁表,為第一進程的虛擬內存映射物理內存。
18、根據本說明書實施例的第五方面,提供了一種計算設備,包括:
19、存儲器和處理器;
20、所述存儲器用于存儲計算機可執行指令,所述處理器用于執行所述計算機可執行指令,該計算機可執行指令被處理器執行時實現上述第一方面或者第二方法所提供方法的步驟。
21、根據本說明書實施例的第六方面,提供了一種計算機可讀存儲介質,其存儲有計算機可執行指令,該指令被處理器執行時實現上述第一方面或者第二方法所提供方法的步驟。
22、根據本說明書實施例的第七方面,提供了一種計算機程序,其中,當所述計算機程序在計算機中執行時,令計算機執行上述第一方面或者第二方法所提供方法的步驟。
23、本說明書一個實施例提供的頁表共享方法,響應于第一進程訪問內存的訪問請求,為第一進程分配多個虛擬內存區域;針對多個虛擬內存區域中的目標虛擬內存區域,分配影子虛擬內存區域,其中,影子虛擬內存區域用于共享第二進程的與目標虛擬內存區域相同屬性的虛擬內存區域;確定影子虛擬內存區域對應的目標共享頁表。通過為普通共享內存引入頁表共享的設計,無需提前預留內存即可對進程使用頁表共享功能,提高了頁表共享的普適性。通過為第一進程分配多個虛擬內存區域,提高了頁表共享覆蓋率,并且,引入影子虛擬內存區域簡化了共享頁表定位,降低了共享內存的頁表開銷。
1.一種頁表共享方法,包括:
2.根據權利要求1所述的方法,所述針對所述多個虛擬內存區域中的目標虛擬內存區域,分配影子虛擬內存區域之前,還包括:
3.根據權利要求2所述的方法,所述從所述多個虛擬內存區域中篩選出目標虛擬內存區域,包括:
4.根據權利要求1所述的方法,所述確定所述影子虛擬內存區域對應的目標共享頁表,包括:
5.根據權利要求1所述的方法,所述確定所述影子虛擬內存區域對應的目標共享頁表,包括:
6.一種缺頁異常處理方法,包括:
7.根據權利要求6所述的方法,所述查找針對所述異常虛擬內存區域分配的影子虛擬內存區域,獲得所述影子虛擬內存區域對應的目標共享頁表之前,還包括:
8.根據權利要求6所述的方法,所述查找針對所述異常虛擬內存區域分配的影子虛擬內存區域,獲得所述影子虛擬內存區域對應的目標共享頁表,包括:
9.根據權利要求6所述的方法,所述查找針對所述異常虛擬內存區域分配的影子虛擬內存區域,獲得所述影子虛擬內存區域對應的目標共享頁表,包括:
10.根據權利要求9所述的方法,所述為所述影子虛擬內存區域分配目標共享頁表,包括:
11.根據權利要求9所述的方法,所述為所述影子虛擬內存區域分配目標共享頁表,包括:
12.一種計算設備,包括:
13.一種計算機可讀存儲介質,其存儲有計算機可執行指令,該計算機可執行指令被處理器執行時實現權利要求1至5任意一項或者權利要求6至11任意一項所述方法的步驟。