確定共享虛擬內(nèi)存頁面管理模式的方法和相關(guān)設(shè)備的制作方法
【專利摘要】本發(fā)明實施例公開了一種確定共享虛擬內(nèi)存頁面管理模式的方法和相關(guān)設(shè)備。其中,一種確定共享虛擬內(nèi)存頁面管理模式的方法,可包括:監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性;若監(jiān)測出的訪問特性符合第一設(shè)定條件,且共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式。本發(fā)明實施例提供的技術(shù)方案有利于提升共享虛擬內(nèi)存的訪問性能。
【專利說明】確定共享虛擬內(nèi)存頁面管理模式的方法和相關(guān)設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機【技術(shù)領(lǐng)域】,具體涉及一種確定共享虛擬內(nèi)存頁面管理模式的方法和相關(guān)設(shè)備。
【背景技術(shù)】
[0002]Intel創(chuàng)始人之一的戈登.摩爾(Gordon Moore)提出的摩爾定律,在近半個世紀以來一直指引著半導體產(chǎn)業(yè)的發(fā)展和信息技術(shù)進步的速度。從Intel披露的信息來看,摩爾定律在未來10年仍將繼續(xù)有效,預(yù)計在2022年在單chip上將集成超過1.024 X IO12個的晶體管。
[0003]然而,目前單純依靠提高主頻來提高計算性能的時代已經(jīng)過去了,中央處理器(CPU, Central Processing Unit)性能的增長遇到了功耗、互連線延時和設(shè)計復雜度等物理規(guī)律的限制。從單核到多核(Mult1-core,傳統(tǒng)上認為少于8個核叫做多核)乃至眾核(Many-core)的變化,是物理規(guī)律限制的情況下必然走上的道路,是摩爾定律與這三個物理規(guī)律限制相互作用的結(jié)果,眾核將成為未來CPU架構(gòu)的主要趨勢。
[0004]多核/眾核處理器場景需考慮緩存一致性問題,解決機制包括軟件緩存一致性機制和硬件緩存一致性機制。其中,軟件緩存一致性機制主要涉及如下兩種可能模式,即分布式共享內(nèi)存(DSM,Distributed Shared Memory)模式和共享物理內(nèi)存(SPM,Shared Physical Memory)模式。DSM模式/SPM模式可應(yīng)用于非緩存一致性(NCC,Non-Cache-Coherent)眾核系統(tǒng)解決緩存一致性問題。Intel開發(fā)的單片云計算機(SCC,Single-chip Cloud Computer)中的軟件緩存一致性協(xié)議(SMC, Software Managed CacheCoherence)即米用了 SPM模式。
[0005]現(xiàn)有技術(shù)中共享虛擬內(nèi)存頁面固定采用DSM模式或SPM模式。在研究和實踐過程中發(fā)明人發(fā)現(xiàn),在有些應(yīng)用場景下,固定采用DSM模式作為其管理模式的共享虛擬內(nèi)存頁面的訪問性能并不能很好的滿足實際的需求,而在另些應(yīng)用場景下,固定采用SPM模式作為其管理模式的共享虛擬內(nèi)存頁面的訪問性能也不能很好的滿足實際需求。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實施例提供確定共享虛擬內(nèi)存頁面管理模式的方法和相關(guān)設(shè)備,以期提升共享虛擬內(nèi)存的訪問性能。
[0007]本發(fā)明第一方面提供一種確定共享虛擬內(nèi)存頁面管理模式的方法,包括:
[0008]監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性;
[0009]若監(jiān)測出的所述訪問特性符合第一設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式。
[0010]結(jié)合第一方面,在第一種可能的實施方式中,所述方法還包括:
[0011]若監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
[0012]結(jié)合第一方面或第一方面的第一種可能的實施方式,在第二種可能的實施方式中,所述將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式,包括:
[0013]在第一物理內(nèi)存空間中為所述共享虛擬內(nèi)存頁面分配第一物理內(nèi)存頁面;
[0014]將第二物理內(nèi)存頁面中存儲的數(shù)據(jù)拷貝到所述第一物理內(nèi)存頁面,其中,所述第二物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間,所述第二物理內(nèi)存頁面為所述共享虛擬內(nèi)存頁面當前所映射的物理內(nèi)存頁面;
[0015]建立所述共享虛擬內(nèi)存頁面和第一物理內(nèi)存頁面之間的映射關(guān)系;
[0016]將分布式共享內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄。
[0017]結(jié)合第一方面或第一方面的第一種可能的實施方式或第一方面的第二種可能的實施方式,在第三種可能的實施方式中,所述第一設(shè)定條件包括:訪問頻率小于或等于第一閾值、或者訪問方式為讀寫訪問或?qū)懺L問、或者寫訪問的頻率大于第三閾值、或者寫訪問的比例大于第四閾值。
[0018]結(jié)合第一方面或第一方面的第一種可能的實施方式或第一方面的第二種可能的實施方式或第一方面的第三種可能的實施方式,在第四種可能的實施方式中,所述第二設(shè)定條件包括:
[0019]訪問頻率大于第二閾值、或者訪問方式為只讀訪問、或者讀訪問的頻率大于第五閾值、或者讀訪問的比例大于第六閾值,所述第二閾值大于或等于第一閾值。
[0020]結(jié)合第一方面或第一方面的第一種可能的實施方式或第一方面的第二種可能的實施方式或第一方面的第三種可能的實施方式或第一方面的第四種可能的實施方式,在第五種可能的實施方式中,所述將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式,包括:
[0021]建立所述共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,所述第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間;將共享物理內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,所述共享虛擬內(nèi)存頁面之前映射的物理內(nèi)存頁面所存儲數(shù)據(jù)未被修改。
[0022]結(jié)合第一方面或第一方面的第一種可能的實施方式或第一方面的第二種可能的實施方式或第一方面的第三種可能的實施方式或第一方面的第四種可能的實施方式,在第六種可能的實施方式中,所述將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式,包括:
[0023]將第四物理內(nèi)存頁面所存儲數(shù)據(jù)中的被修改數(shù)據(jù)同步到第三物理內(nèi)存頁面;建立所述共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,所述第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間;將共享物理內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,所述第四物理內(nèi)存頁面為共享虛擬內(nèi)存頁面之前映射的物理內(nèi)存頁面。
[0024]結(jié)合第一方面或第一方面的第一種可能的實施方式,在第七種可能的實施方式中,若所述進程包括多個進程,則若監(jiān)測出的所述訪問特性符合第一設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式,包括:[0025]將分別監(jiān)測出的所述多個進程中的每個進程對所述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性;或者,將監(jiān)測出的所述多個進程中的其中一個進程對所述共享虛擬內(nèi)存頁面的訪問特性,作為所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性,若所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性符合第一條件,且所述共享虛擬內(nèi)存頁面當前對應(yīng)所述多個進程的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面對應(yīng)所述多個進程的管理模式修改為共享物理內(nèi)存模式。
[0026]結(jié)合第一方面的第一種可能的實施方式,在第八種可能的實施方式中,
[0027]若所述進程包括多個進程,則若監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式,包括:
[0028]將分別監(jiān)測出的所述多個進程中的每個進程對所述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性;或者,將監(jiān)測出的所述多個進程中的其中一個進程對所述共享虛擬內(nèi)存頁面的訪問特性,作為所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性,若所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性符合第二條件,且所述共享虛擬內(nèi)存頁面當前對應(yīng)所述多個進程的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面對應(yīng)所述多個進程的管理模式修改為分布式共享內(nèi)存模式。
[0029]本發(fā)明第二方面提供一種確定共享虛擬內(nèi)存頁面管理模式的方法,包括:
[0030]監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性;
[0031]若監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
[0032]結(jié)合第二方面,在第一種可能的實施方式中,所述將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式,包括:
[0033]在第一物理內(nèi)存空間中為所述共享虛擬內(nèi)存頁面分配第一物理內(nèi)存頁面;
[0034]將第二物理內(nèi)存頁面中存儲的數(shù)據(jù)拷貝到所述第一物理內(nèi)存頁面,其中,所述第二物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間,所述第二物理內(nèi)存頁面為所述共享虛擬內(nèi)存頁面當前所映射的物理內(nèi)存頁面;
[0035]建立所述共享虛擬內(nèi)存頁面和第一物理內(nèi)存頁面之間的映射關(guān)系;
[0036]將分布式共享內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄。
[0037]結(jié)合第二方面,在第二種可能的實施方式中,若所述進程包括多個進程,則若監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式,包括:
[0038]將分別監(jiān)測出的所述多個進程中的每個進程對所述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性;或者,將監(jiān)測出的所述多個進程中的其中一個進程對所述共享虛擬內(nèi)存頁面的訪問特性,作為所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性,若所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性符合第二條件,且所述共享虛擬內(nèi)存頁面當前對應(yīng)所述多個進程的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面對應(yīng)所述多個進程的管理模式修改為分布式共享內(nèi)存模式。
[0039]結(jié)合第二方面或第二方面的第一種可能的實施方式或第二方面的第二種可能的實施方式,在第三種可能的實施方式中,所述第二設(shè)定條件包括:
[0040]訪問頻率大于第二閾值、或者訪問方式為只讀訪問、或者讀訪問的頻率大于第五閾值、或者讀訪問的比例大于第六閾值。
[0041]本發(fā)明第三方面提供一種確定共享虛擬內(nèi)存頁面管理模式的裝置,包括:
[0042]監(jiān)控單元,用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性;
[0043]與所述監(jiān)控單元連接的第一重映射單元,用于若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第一設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式。
[0044]結(jié)合第三方面,在第一種可能的實施方式中,所述裝置還包括:
[0045]與所述監(jiān)控單元連接的第二重映射單元,用于若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
[0046]結(jié)合第三方面的第一種可能的實施方式,在第二種可能的實施方式中,
[0047]所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,則在第一物理內(nèi)存空間中為所述共享虛擬內(nèi)存頁面分配第一物理內(nèi)存頁面;將第二物理內(nèi)存頁面中存儲的數(shù)據(jù)拷貝到所述第一物理內(nèi)存頁面,其中,所述第二物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間,所述第二物理內(nèi)存頁面為所述共享虛擬內(nèi)存頁面當前所映射的物理內(nèi)存頁面;建立所述共享虛擬內(nèi)存頁面和第一物理內(nèi)存頁面之間的映射關(guān)系;將分布式共享內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄。
[0048]結(jié)合第三方面或第三方面的第一種可能的實施方式或第三方面的第二種可能的實施方式,在第三種可能的實施方式中,
[0049]所述第一設(shè)定條件包括:訪問頻率小于或等于第一閾值、或者訪問方式為讀寫訪問或?qū)懺L問、或者寫訪問的頻率大于第三閾值、或者寫訪問的比例大于第四閾值;
[0050]所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問頻率;
[0051]其中,所述第一重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的進程對共享虛擬內(nèi)存頁面的訪問頻率小于或等于第一閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式;
[0052]或者,
[0053]所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問方式;
[0054]所述第一重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的進程對共享虛擬內(nèi)存頁面的訪問方式為讀寫訪問或?qū)懺L問,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式;
[0055]或者,
[0056]所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的寫訪問的頻率;
[0057]所述第一重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的進程對共享虛擬內(nèi)存頁面的寫訪問的頻率大于第三閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式;
[0058]或者,
[0059]所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的寫訪問的比例;
[0060]所述第一重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的進程對共享虛擬內(nèi)存頁面的寫訪問的比例大于第四閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式。
[0061]結(jié)合第三方面的第三種可能的實施方式,在第四種可能的實施方式中,
[0062]所述第二設(shè)定條件包括:
[0063]訪問頻率大于第二閾值、或者訪問方式為只讀訪問、或者讀訪問的頻率大于第五閾值、或者讀訪問的比例大于第六閾值,所述第二閾值大于或等于第一閾值;
[0064]其中,
[0065]所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問頻率;
[0066]所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的訪問頻率大于第二閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式;
[0067]或者,
[0068]所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問方式;
[0069]所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的訪問方式為只讀訪問,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式;
[0070]或者,
[0071]所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的讀訪問的頻率;
[0072]所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的讀訪問的頻率大于第五閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式;
[0073]或者,
[0074]所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的讀訪問的比例;
[0075]所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的讀訪問的比例大于第六閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
[0076]結(jié)合第三方面或第三方面的第一種可能的實施方式或第三方面的第二種可能的實施方式或第三方面的第三種可能的實施方式或第三方面的第三種可能的實施方式,在第五種可能的實施方式中,所述第一重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第一設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,建立所述共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,所述第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間;將共享物理內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,所述共享虛擬內(nèi)存頁面之前映射的物理內(nèi)存頁面所存儲數(shù)據(jù)未被修改。
[0077]結(jié)合第三方面或第三方面的第一種可能的實施方式或第三方面的第二種可能的實施方式或第三方面的第三種可能的實施方式或第三方面的第四種可能的實施方式,在第六種可能的實施方式中,
[0078]所述第一重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第一設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將第四物理內(nèi)存頁面所存儲數(shù)據(jù)中的被修改數(shù)據(jù)同步到第三物理內(nèi)存頁面;建立所述共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,所述第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間;將共享物理內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,所述第四物理內(nèi)存頁面為共享虛擬內(nèi)存頁面之前映射的物理內(nèi)存頁面。
[0079]結(jié)合第三方面或第三方面的第一種可能的實施方式,在第七種可能的實施方式中,若所述進程包括多個進程,則所述第一重映射單元具體用于,將所述監(jiān)控單元分別監(jiān)測出的所述多個進程中的每個進程對所述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性;或者,將所述監(jiān)控單元監(jiān)測出的所述多個進程中的其中一個進程對所述共享虛擬內(nèi)存頁面的訪問特性,作為所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性,若所述監(jiān)測出的所述進程對共享虛擬內(nèi)存頁面的訪問特性符合第一條件,且所述共享虛擬內(nèi)存頁面當前對應(yīng)所述多個進程的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面對應(yīng)所述多個進程的管理模式修改為共享物理內(nèi)存模式。
[0080]結(jié)合第三方面的第一種可能的實施方式,在第八種可能的實施方式中,
[0081]若所述進程包括多個進程,則所述第二重映射單元具體用于,將所述監(jiān)控單元分別監(jiān)測出的所述多個進程中的每個進程對所述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性;或者,將所述監(jiān)控單元監(jiān)測出的所述多個進程中的其中一個進程對所述共享虛擬內(nèi)存頁面的訪問特性,作為所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性,若所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性符合第二條件,且所述共享虛擬內(nèi)存頁面當前對應(yīng)所述多個進程的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面對應(yīng)所述多個進程的管理模式修改為分布式共享內(nèi)存模式。
[0082]本發(fā)明第四方面提供一種確定共享虛擬內(nèi)存頁面管理模式的裝置,可包括:監(jiān)控單元,用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性;
[0083]與所述監(jiān)控單元連接的第二重映射單元,用于若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
[0084]結(jié)合第四方面,在第一種可能的實施方式中,所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,則在第一物理內(nèi)存空間中為所述共享虛擬內(nèi)存頁面分配第一物理內(nèi)存頁面;將第二物理內(nèi)存頁面中存儲的數(shù)據(jù)拷貝到所述第一物理內(nèi)存頁面,其中,所述第二物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間,所述第二物理內(nèi)存頁面為所述共享虛擬內(nèi)存頁面當前所映射的物理內(nèi)存頁面;建立所述共享虛擬內(nèi)存頁面和第一物理內(nèi)存頁面之間的映射關(guān)系;將分布式共享內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄。
[0085]結(jié)合第四方面或第四方面的第一種可能的實施方式,在第二種可能的實施方式中,所述第二設(shè)定條件包括:
[0086]訪問頻率大于第二閾值、或者訪問方式為只讀訪問、或者讀訪問的頻率大于第五閾值、或者讀訪問的比例大于第六閾值;
[0087]其中,
[0088]所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問頻率;
[0089]所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的訪問頻率大于第二閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式;
[0090]或者,
[0091]所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問方式;
[0092]所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的訪問方式為只讀訪問,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式;
[0093]或者,
[0094]所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的讀訪問的頻率;
[0095]所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的讀訪問的頻率大于第五閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式;
[0096]或者,
[0097]所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的讀訪問的比例;
[0098]所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的讀訪問的比例大于第六閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
[0099]結(jié)合第四方面或第四方面的第一種可能的實施方式或第四方面的第二種可能的實施方式,在第三種可能的實施方式中,若所述進程包括多個進程,則所述第二重映射單元具體用于,將所述監(jiān)控單元分別監(jiān)測出的所述多個進程中的每個進程對所述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性;或者,將所述監(jiān)控單元監(jiān)測出的所述多個進程中的其中一個進程對所述共享虛擬內(nèi)存頁面的訪問特性,作為所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性,若所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性符合第二條件,且所述共享虛擬內(nèi)存頁面當前對應(yīng)所述多個進程的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面對應(yīng)所述多個進程的管理模式修改為分布式共享內(nèi)存模式。
[0100]本發(fā)明第五方面提供一種計算機系統(tǒng),包括:
[0101]總線、
[0102]與所述總線相連的處理器、
[0103]與所述總線相連的存儲器、
[0104]其中,所述處理器通過所述總線調(diào)用所述存儲器中存儲的代碼,以用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性;若監(jiān)測出的所述訪問特性符合第一設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式。
[0105]本發(fā)明第六方面提供一種計算機系統(tǒng),包括:
[0106]總線、
[0107]與所述總線相連的處理器、
[0108]與所述總線相連的存儲器、
[0109]其中,所述處理器通過所述總線調(diào)用所述存儲器中存儲的代碼,以用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性;若監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
[0110]可以看出,本發(fā)明實施例中通過監(jiān)測共享虛擬內(nèi)存頁面的訪問特性;若監(jiān)測出的上述訪問特性符合第一設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式;或若監(jiān)測出的上述訪問特性符合第二設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。由于提出了根據(jù)訪問特性監(jiān)測結(jié)果重置共享虛擬內(nèi)存頁面的管理模式的機制,這樣有利于管理模式和訪問特性更相宜匹配,進而有利于更好發(fā)揮DSM模式或SPM模式的優(yōu)勢,為提升共享虛擬內(nèi)存的訪問性能奠定了機制基礎(chǔ)。
【專利附圖】
【附圖說明】
[0111]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0112]圖1是本發(fā)明實施例提供了一種確定共享虛擬內(nèi)存頁面管理模式的方法的流程示意圖;
[0113]圖2-a是本發(fā)明實施例提供了一種DSM模式下的共享虛擬地址空間示意圖;
[0114]圖2-b是本發(fā)明實施例提供了一種DSM模式下的私有物理內(nèi)存空間示意圖;
[0115]圖3是本發(fā)明實施例提供了另一種確定共享虛擬內(nèi)存頁面管理模式的方法的流程不意圖;
[0116]圖4是本發(fā)明實施例提供了另一種確定共享虛擬內(nèi)存頁面管理模式的方法的流程不意圖;
[0117]圖5_a是本發(fā)明實施例提供了一種確定共享虛擬內(nèi)存頁面管理模式的裝置的示意圖;
[0118]圖5_b是本發(fā)明實施例提供了一種確定共享虛擬內(nèi)存頁面管理模式的裝置的示意圖;
[0119]圖5-c是本發(fā)明實施例提供了一種確定共享虛擬內(nèi)存頁面管理模式的裝置的示意圖;
[0120]圖6為本發(fā)明提供的一種計算機系統(tǒng)的結(jié)構(gòu)示意圖;
[0121]圖7是本發(fā)明實施例提供了另一種計算機系統(tǒng)的示意圖。【具體實施方式】
[0122]本發(fā)明實施例提供確定共享虛擬內(nèi)存頁面管理模式的方法和相關(guān)設(shè)備,以期提升共享虛擬內(nèi)存的訪問性能。
[0123]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當屬于本發(fā)明保護的范圍。
[0124]以下分別進行詳細說明。
[0125]本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”、“第三” “第四”等(如果存在)是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例例如能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是還可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0126]本發(fā)明確定共享虛擬內(nèi)存頁面管理模式的方法的一個實施例,一種確定共享虛擬內(nèi)存頁面管理模式的方法可以包括:監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性;若監(jiān)測出的上述訪問特性符合第一設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為DSM模式,則將上述共享虛擬內(nèi)存頁面的管理模式修改為SPM模式;和/或,若監(jiān)測出的上述訪問特性符合第二設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為SPM模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為DSM模式。
[0127]請參見圖1,圖1為本發(fā)明實施例提供的一種確定共享虛擬內(nèi)存頁面管理模式的方法的流程示意圖。如圖1所示,本發(fā)明實施例提供的一種確定共享虛擬內(nèi)存頁面管理模式的方法可包括以下內(nèi)容:
[0128]101、監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性。
[0129]在本發(fā)明的一些實施例中,例如可監(jiān)測N個進程對共享虛擬內(nèi)存頁面(為便于引述,下面可稱之為第一共享虛擬內(nèi)存頁面)的訪問特性,其中,N為正整數(shù)。例如,若N等于1,則上述N個進程可指系統(tǒng)當前存在的任意一個進程或特定的某一個進程;gN大于1,則上述N個進程可指系統(tǒng)當前存在的部分進程或全部進程,例如N個進程可指系統(tǒng)當前存在的,可能訪問第一共享虛擬內(nèi)存頁面的部分進程或全部進程。在本發(fā)明的一些實施例中,例如可利用CPU的性能計數(shù)器(performance counters)或其它硬件或程序來監(jiān)控共享虛擬內(nèi)存頁面訪問特性。
[0130]在本發(fā)明的一些實施例中,例如可以監(jiān)測進程對共享虛擬內(nèi)存頁面的各種訪問特性,訪問特性例如可包括:訪問頻率和/或訪問方式等,其中,訪問方式可能包括:只讀訪問、讀寫訪問(其中,讀寫訪問指既有讀訪問又有寫訪問)或?qū)懺L問等。也就是說,可監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問頻率和/或訪問方式等訪問特性。
[0131]在本發(fā)明的一些實施例中,進程對第一共享虛擬內(nèi)存頁面的訪問頻率可以指單位時間內(nèi)進程對第一共享虛擬內(nèi)存頁面訪問次數(shù)。舉例來說,某個進程對第一共享虛擬內(nèi)存頁面的訪問頻率,可以指單位時間內(nèi)該某個進程對第一共享虛擬內(nèi)存頁面訪問的次數(shù)。同理,多個進程對第一共享虛擬內(nèi)存頁面的訪問頻率可以指,單位時間內(nèi)該多個進程對第一共享虛擬內(nèi)存頁面訪問次數(shù)。
[0132]在本發(fā)明的另一些實施例中,進程對第一共享虛擬內(nèi)存頁面的訪問頻率也可指某時長內(nèi)(如單位時長內(nèi)),進程對第一共享虛擬內(nèi)存頁面訪問次數(shù)占進程對NI個共享虛擬內(nèi)存頁面訪問總次數(shù)的比例,其中,該NI個共享虛擬內(nèi)存頁面包括第一共享虛擬內(nèi)存頁面,NI為大于I的正整數(shù)。舉例來說,某個進程對第一共享虛擬內(nèi)存頁面的訪問頻率,可以指某時長內(nèi)該某個進程對第一共享虛擬內(nèi)存頁面訪問的次數(shù),占該某個進程對NI個共享虛擬內(nèi)存頁面訪問總次數(shù)的比例;而多個進程對第一共享虛擬內(nèi)存頁面的訪問頻率可以指,某時長內(nèi)該多個進程對第一共享虛擬內(nèi)存頁面的總訪問次數(shù),占該多個進程對NI個共享虛擬內(nèi)存頁面訪問總次數(shù)的比例。
[0133]當然,訪問頻率的計算方式也不限于上述舉例,還可根據(jù)需要定義出符合自然規(guī)律的其它計算方式。
[0134]102、若監(jiān)測出的上述訪問特性符合第一設(shè)定條件,且第一共享虛擬內(nèi)存頁面當前的管理模式為DSM模式,則將第一共享虛擬內(nèi)存頁面的管理模式修改為SPM模式;和/或,若監(jiān)測出的上述訪問特性符合第二設(shè)定條件,且第一共享虛擬內(nèi)存頁面當前的管理模式為SPM模式,將第一共享虛擬內(nèi)存頁面的管理模式修改為DSM模式。
[0135]可以理解的是,監(jiān)測的訪問特性不同,第一設(shè)定條件和第二設(shè)定條件也可能隨之不同。例如若監(jiān)測的訪問特性為訪問頻率,則第一設(shè)定條件和第二設(shè)定條件可包括與訪問頻率相關(guān)的設(shè)定條件;若監(jiān)測的訪問特性為訪問方式,則第一設(shè)定條件和第二設(shè)定條件可包括與訪問方式相關(guān)的設(shè)定條件,若監(jiān)測的訪問特性包括訪問頻率和訪問方式,則第一設(shè)定條件和第二設(shè)定條件可包括與訪問頻率和訪問方式都相關(guān)的設(shè)定條件。
[0136]在本發(fā)明的一些實施例中,若監(jiān)測的訪問特性包括進程對第一共享虛擬內(nèi)存頁面的訪問頻率,則第一設(shè)定條件可包括:訪問頻率小于或等于第一閾值(第一閾值例如可為1000次/秒、2000次/秒、5000次/秒或其它頻率值)。第二設(shè)定條件可包括:訪問頻率大于第二閾值,其中,第一閾值可小于或者等于第二閾值,其中第二閾值例如可為1000次/秒、2000次/秒、3000次/秒、5000次/秒或其它頻率值)。其中,第二閾值大于或等于第一閾值。在此場景下,若監(jiān)測出的訪問頻率小于或等于第一閾值,且第一共享虛擬內(nèi)存頁面當前的管理模式為DSM模式,可將第一共享虛擬內(nèi)存頁面的管理模式修改為SPM模式。和/或若監(jiān)測出的訪問頻率大于第二閾值,且第一共享虛擬內(nèi)存頁面當前的管理模式為SPM模式,可將第一共享虛擬內(nèi)存頁面的管理模式修改為DSM模式。
[0137]可以理解,這種策略可看做是根據(jù)訪問數(shù)據(jù)的消耗選擇策略。
[0138]在本發(fā)明的另一些實施例中,若監(jiān)測的訪問特性包括進程對共享虛擬內(nèi)存頁面的訪問方式,則第一設(shè)定條件可包括寫訪問或讀寫訪問(或?qū)懺L問比例超過第四閾值或?qū)懺L問頻率超過第三閾值),其中,只有寫訪問的情況可認為是寫訪問次數(shù)的占讀寫訪問總次數(shù)的比例為100% ;第二設(shè)定條件可包括只讀訪問或讀訪問比例超過第六閾值或讀訪問頻率超過第五閾值,其中,第四閾值與第六閾值之和可大于或等于I。在此場景下,若監(jiān)測出的訪問方式為,寫訪問或讀寫訪問(或?qū)懺L問比例超過第四閾值或?qū)懺L問頻率超過第三閾值),且第一共享虛擬內(nèi)存頁面當前的管理模式為DSM模式,可將第一共享虛擬內(nèi)存頁面的管理模式修改為SPM模式。和/或,若監(jiān)測出的訪問方式為只讀訪問(或讀訪問比例超過第六閾值或讀訪問頻率超過第五閾值),且第一共享虛擬內(nèi)存頁面當前的管理模式為SPM模式,可將第一共享虛擬內(nèi)存頁面的管理模式修改為DSM模式,其中,只讀訪問的情況可認為是讀訪問次數(shù)的占讀寫訪問總次數(shù)的比例為100%。寫訪問比例指寫訪問次數(shù)的占讀寫訪問總次數(shù)的比例,讀訪問比例指讀訪問次數(shù)的占讀寫訪問總次數(shù)的比例。其它情況以此類推??梢岳斫?,這種策略可看做是根據(jù)訪問同步的消耗選擇策略。
[0139]可以理解的是,在不同的多核或眾核系統(tǒng)中,將第一共享虛擬內(nèi)存頁面的管理模式修改為DSM模式的方式可能不盡相同。
[0140]在本發(fā)明的一些實施例中,將第一共享虛擬內(nèi)存頁面的管理模式修改為DSM模式可包括:在第一物理內(nèi)存空間中為第一共享虛擬內(nèi)存頁面分配第一物理內(nèi)存頁面;將第二物理內(nèi)存頁面中存儲的數(shù)據(jù)拷貝到第一物理內(nèi)存頁面,其中,第二物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間(共享物理內(nèi)存空間是幾個核可共享的物理內(nèi)存空間),所述第二物理內(nèi)存頁面為第一共享虛擬內(nèi)存頁面當前所映射的物理內(nèi)存頁面;建立第一共享虛擬內(nèi)存頁面和第一物理內(nèi)存頁面之間的映射關(guān)系;將DSM模式作為第一共享虛擬內(nèi)存頁面的管理模式進行記錄。
[0141]在本發(fā)明的一些實施例中,將上述共享虛擬內(nèi)存頁面的管理模式修改為SPM模式可包括:建立第一共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,其中,第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間(共享物理內(nèi)存空間是幾個核可共享的物理內(nèi)存空間);將SPM模式作為第一共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,第一共享虛擬內(nèi)存頁面之前所映射的物理內(nèi)存頁面所存儲數(shù)據(jù)未被修改。
[0142]在本發(fā)明的一些實施例中,將上述共享虛擬內(nèi)存頁面的管理模式修改為SPM模式可包括:將第四物理內(nèi)存頁面所存儲數(shù)據(jù)中的被修改數(shù)據(jù)同步到第三物理內(nèi)存頁面,建立第一共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,其中,第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間(共享物理內(nèi)存空間是幾個核可共享的物理內(nèi)存空間);將SPM模式作為第一共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,第四物理內(nèi)存頁為第一共享虛擬內(nèi)存頁面之前所映射的物理內(nèi)存頁面。
[0143]其中,第四物理內(nèi)存頁面所存儲數(shù)據(jù)中的被修改數(shù)據(jù)(數(shù)據(jù)可能被某個進程所修改),可指第四物理內(nèi)存頁面所存儲的取值發(fā)生變化的變量,例如第三物理內(nèi)存頁面存儲的變量y 1、變量12和變量y3被拷貝到第四物理內(nèi)存頁面,第四物理內(nèi)存頁面存儲變量y 1、變量12和變量y3后,變量yl和變量y2的取值未發(fā)生變化,而變量y2的取值相對與原始拷貝由O變?yōu)?,則第四物理內(nèi)存頁面所存儲數(shù)據(jù)中的被修改數(shù)據(jù)包括變量y2,變量y2即為被修改數(shù)據(jù),其它情況可以此類推。
[0144]其中,將DSM模式/SPM模式作為第一共享虛擬內(nèi)存頁面的管理模式進行記錄的方式可以是多種多樣的,例如針對第一共享虛擬內(nèi)存頁面設(shè)置一個管理模式標志位,通過將該管理模式標志位設(shè)置為不同取值,來標識第一共享虛擬內(nèi)存頁面的管理模式為DSM模式/SPM模式。又或者,也可將某個進程(或多個進程或全部進程)的頁面信息結(jié)構(gòu)體中記錄的第一共享虛擬內(nèi)存頁面的管理模式記錄為DSM模式/SPM模式,其它方式不再舉例。
[0145]在本發(fā)明的一些實施例中,可以針對每個共享虛擬內(nèi)存頁面(如第一共享虛擬內(nèi)存頁面)來設(shè)置管理模式(如DSM模式或SPM模式),此場景下,對于所有訪問第一共享虛擬內(nèi)存頁面的進程而言,第一共享虛擬內(nèi)存頁面的管理模式是相同的。當然,也可針對每個共享虛擬內(nèi)存頁面(如第一共享虛擬內(nèi)存頁面)對應(yīng)每個進程,分別設(shè)置管理模式(如DSM模式或SPM模式),此場景下對于所有訪問第一共享虛擬內(nèi)存頁面的進程而言,第一共享虛擬內(nèi)存頁面的管理模式可能是相同或不同的,舉例來說,假設(shè)存在進程A和進程B,第一共享虛擬內(nèi)存頁面對應(yīng)進程A的管理模式可能是DSM模式,而第一共享虛擬內(nèi)存頁面對應(yīng)進程B的管理模式可能是SPM模式。
[0146]在本發(fā)明的一些實施例中,可監(jiān)測第一進程對第一共享虛擬內(nèi)存頁面的訪問特性,其中,第一進程可包括Ml個進程,其中,Ml為正整數(shù);若監(jiān)測出的上述訪問特性符合第一設(shè)定條件,且第一共享虛擬內(nèi)存頁面當前對應(yīng)第一進程的管理模式為DSM模式,可將第一共享虛擬內(nèi)存頁面對應(yīng)第一進程的管理模式修改為SPM模式。和/或,若監(jiān)測出的訪問特性符合第二設(shè)定條件,且第一共享虛擬內(nèi)存頁面當前對應(yīng)第一進程的管理模式為SPM模式,可將第一共享虛擬內(nèi)存頁面對應(yīng)第一進程的管理模式修改為DSM模式。在這種場景下,若第一進程包括多個進程,則第一共享虛擬內(nèi)存頁面對應(yīng)這多個進程的管理模式是相同的(DSM模式或SPM模式)。
[0147]進一步的,還可監(jiān)測第二進程對第一共享虛擬內(nèi)存頁面的訪問特性,其中第二進程包括M2個進程,M2為正整數(shù),第二進程不同于第一進程;若監(jiān)測出的第二進程對第一共享虛擬內(nèi)存頁面的訪問特性符合第三設(shè)定條件,且第一共享虛擬內(nèi)存頁面當前對應(yīng)第二進程的管理模式為DSM模式,可將第一共享虛擬內(nèi)存頁面對應(yīng)第二進程的管理模式修改為SPM模式;和/或,若監(jiān)測出的第二進程對第一共享虛擬內(nèi)存頁面的訪問特性符合第四設(shè)定條件,且第一共享虛擬內(nèi)存頁面當前對應(yīng)第二進程的管理模式為SPM模式,可將第一共享虛擬內(nèi)存頁面對應(yīng)第二進程的管理模式修改為DSM模式。其中,第三設(shè)定條件與第一條件相同或不同。第四設(shè)定條件與第二條件相同或不同。
[0148]在這種場景下,第一共享虛擬內(nèi)存頁面對應(yīng)第一進程的管理模式,與第一共享虛擬內(nèi)存頁面對應(yīng)第二進程的管理模式可能相同或不同,即,同一享虛擬內(nèi)存頁面對應(yīng)不同進程的管理模式可能是相同或不同的,這種方式可稱異步映射方式。當然,對于第二進程而言,如果直接使用通過監(jiān)測第一進程對第一共享虛擬內(nèi)存頁面的訪問特性而確定的第一共享虛擬內(nèi)存頁面的管理模式,則可無需執(zhí)行監(jiān)測第二進程對第一共享虛擬內(nèi)存頁面的訪問特性的步驟,而可直接將第一共享虛擬內(nèi)存頁面當前對應(yīng)第二進程的管理模式,設(shè)置為與第一共享虛擬內(nèi)存頁面當前對應(yīng)第一進程的管理模式相同的管理模式。例如,若通過監(jiān)測第一進程對第一共享虛擬內(nèi)存頁面的訪問特性,確定的第一共享虛擬內(nèi)存頁面對應(yīng)第一進程的管理模式為DSM模式,則可將第一共享虛擬內(nèi)存頁面對應(yīng)第二進程的管理模式也設(shè)為DSM模式,以此類推。
[0149]在本發(fā)明的一些實施例中,對于監(jiān)測多個進程(如第一進程或第二進程包括多個進程的場景)對第一共享虛擬內(nèi)存頁面的訪問特性的場景,例如,可將監(jiān)測出的該多個進程中的其中一個進程(其中,該其中一個進程可以是該多個進程中的任意一個進程,或者也可以是該多個進程中訪問特性參數(shù)值最大的一個)對第一共享虛擬內(nèi)存頁面的訪問特性,作為監(jiān)測出的多個進程對第一共享虛擬內(nèi)存頁面的訪問特性。又或者,也可將監(jiān)測出的該多個進程中對第一共享虛擬內(nèi)存頁面的綜合訪問特性,作為監(jiān)測出的多個進程對第一共享虛擬內(nèi)存頁面的訪問特性,例如,可將分別監(jiān)測出的該多個進程中的每個進程對第一共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值(或其它方式的綜合訪問特性),作為監(jiān)測出的該多個進程對第一共享虛擬內(nèi)存頁面的訪問特性。具體舉例來說,例如可將分別監(jiān)測出的該多個進程中的每個進程對第一共享虛擬內(nèi)存頁面的訪問頻率(或讀訪問頻率或讀訪問比例或?qū)懺L問頻率或?qū)懺L問比例)的平均值或加權(quán)平均值或和值或加權(quán)和值(其中,每個進程對應(yīng)加權(quán)的取值可根據(jù)實際需要進行設(shè)定,當然都可等于1),作為監(jiān)測出的該多個進程對第一共享虛擬內(nèi)存頁面的訪問特性。對于第一進程或第二進程包括多個進程的場景,可考慮按照上述舉例的方式來確定監(jiān)測出的第一進程或第二進程對第一共享虛擬內(nèi)存頁面的訪問特性,其它情況以此類推。
[0150]下面簡單的對DSM模式和SPM模式的工作方式進行介紹。
[0151]基于DSM模式,一個并行程序的各進程間可擁有一個相同的共享虛擬地址空間,每個進程分別將共享虛擬地址空間中的部分或者全部虛擬內(nèi)存頁面映射到該進程維護的私有物理內(nèi)存空間。各個進程在用戶層面看到的是一個完整的共享虛擬地址空間,而感知不到共享虛擬地址空間中某塊虛擬內(nèi)存頁面包含的共享數(shù)據(jù)實際上是在其它進程維護的私有物理內(nèi)存空間中。
[0152]其中,各個進程可以對共享虛擬地址空間進行任意數(shù)據(jù)操作,DSM底層通過片上網(wǎng)絡(luò)(On-chip Network)或者所有進程都可以訪問的系統(tǒng)共享物理內(nèi)存在各進程間進行數(shù)據(jù)的同步。一個并行程序的多個進程可以運行于一個處理器核上,也可以是每個進程運行于一個單獨處理器核上。
[0153]例如圖2-a所示,圖2-a中的a區(qū)域為程序的共享虛擬地址空間,4個進程Ρ0-Ρ3分別運行在不同的處理器核上,它們有一個統(tǒng)一的共享虛擬地址空間用于存放共享數(shù)據(jù),其中,虛擬地址空間中的第I塊區(qū)域映射到PO的私有物理內(nèi)存空間中,第2塊區(qū)域映射到Pl的私有物理內(nèi)存空間,第3塊區(qū)域映射到Ρ2的私有物理內(nèi)存空間,第4塊區(qū)域映射到Ρ3的私有物理內(nèi)存空間。
[0154]例如圖2-b所示,圖2-b中home區(qū)域為各個進程的私有物理地址空間,每個進程分別維護了共享虛擬地址空間所映射的一塊不重疊的物理內(nèi)存空間(圖中home所示部分),如果進程I訪問共享虛擬地址空間中由進程2維護的物理內(nèi)存區(qū)域中的變量z,DSM協(xié)議把進程2維護的包含變量z的物理內(nèi)存頁面復制到進程I的物理內(nèi)存中(見圖2-b中Pl的cache所示部分),這樣進程I就可以訪問變量z 了。DSM協(xié)議在系統(tǒng)中維護變量z的一致性,保證進程I和進程2看到的變量z是相同的。
[0155]DSM模式將共享虛擬地址空間中的虛擬內(nèi)存頁面映射到進程維護的私有物理內(nèi)存空間,私有物理內(nèi)存空間數(shù)據(jù)一般被配置為被LICache、L2Cache所緩存,因此,CPU讀數(shù)據(jù)時具有很高的Cache命中率(cache hits),寫數(shù)據(jù)時同樣具有很高的Cache命中率,這對程序性能有很大的正面效應(yīng)。
[0156]基于SPM模式,主要通過在同一并行程序的所有進程中把共享虛擬地址空間映射到共享物理地址空間,來實現(xiàn)軟件緩存一致性。其中,SPM模式通常禁止使用L2Cache,并且,LlCache通常被設(shè)置為寫直達(WT,Write Through)策略。一般來說,基于SPM模式,一個內(nèi)存頁面一般只在共享物理內(nèi)存空間維護一份拷貝,可節(jié)省物理內(nèi)存空間。
[0157]研究和實踐發(fā)現(xiàn),DSM模式和SPM模式各有優(yōu)缺點,DSM模式和SPM模式分別對不同的訪問特性(如不同訪問頻率、不同訪問方式)有一定偏好,因此本發(fā)明實施例方案中監(jiān)控進程對共享虛擬內(nèi)存頁面的訪問特性,根據(jù)監(jiān)測到的訪問特性來確定是否重置該共享虛擬內(nèi)存頁面的管理模式,這種訪問特性和管理模式自適應(yīng)機制有利于提升共享虛擬內(nèi)存頁面訪問性能,進而有利于提高相應(yīng)程序的性能和用戶體驗。
[0158]可以看出,本發(fā)明實施例中通過監(jiān)測共享虛擬內(nèi)存頁面的訪問特性;若監(jiān)測出的上述訪問特性符合第一設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為DSM模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為SPM模式;和/或,若監(jiān)測出的上述訪問特性符合第二設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為SPM模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為DSM模式。其中,由于提出了根據(jù)訪問特性監(jiān)測結(jié)果來重置共享虛擬內(nèi)存頁面的管理模式的機制,這樣有利于管理模式和訪問特性更相宜匹配,進而有利于更好發(fā)揮DSM模式或SPM模式的優(yōu)勢,為提升共享虛擬內(nèi)存的訪問性能奠定了機制基礎(chǔ)。
[0159]為便于更好的理解和實施本發(fā)明實施例的上述方案,下面舉例幾個應(yīng)用場景來進行說明。
[0160]請參見圖3,圖3為本發(fā)明實施例提供的另一種確定共享虛擬內(nèi)存頁面管理模式的方法的流程示意圖。如圖3所示,本發(fā)明實施例提供的另一種確定共享虛擬內(nèi)存頁面管理模式的方法可包括以下內(nèi)容:
[0161]301、監(jiān)測N個進程對共享虛擬內(nèi)存頁面X的訪問特性。
[0162]其中,N為大于I的正整數(shù)。例如上述N個進程可指系統(tǒng)當前存在的部分進程或全部進程,例如N個進程可指系統(tǒng)當前存在的,可能訪問共享虛擬內(nèi)存頁面X的部分進程或全部進程。
[0163]可以理解,本實施例中的共享虛擬內(nèi)存頁面X可對應(yīng)上述實施例中的第一共享虛擬內(nèi)存頁面。
[0164]在本發(fā)明的一些實施例中,例如可以監(jiān)測N個進程對共享虛擬內(nèi)存頁面X的各種訪問特性,本實施例中主要以檢測N個進程對共享虛擬內(nèi)存頁面X的訪問頻率為例。
[0165]在本發(fā)明的一些實施例中,N個進程對共享虛擬內(nèi)存頁面X的訪問頻率可以指單位時間內(nèi)進程對共享虛擬內(nèi)存頁面X訪問次數(shù)。在本發(fā)明的另一些實施例中,N個進程對共享虛擬內(nèi)存頁面X的訪問頻率也可指某時長內(nèi)(如單位時長內(nèi)),N個進程對共享虛擬內(nèi)存頁面X訪問次數(shù)占該N個進程對NI個共享虛擬內(nèi)存頁面訪問總次數(shù)的比例,其中,該NI個共享虛擬內(nèi)存頁面包括共享虛擬內(nèi)存頁面X,N1為大于I的正整數(shù)。當然,N個進程對共享虛擬內(nèi)存頁面X的訪問頻率的計算方式也不限于上述舉例,還可根據(jù)需要定義出符合自然規(guī)律的其它計算方式。
[0166]302、判斷監(jiān)測出的上述N個進程對共享虛擬內(nèi)存頁面X的訪問頻率小于或者等于
第一閾值;
[0167]若是,執(zhí)行步驟303;
[0168]若否,執(zhí)行步驟304。
[0169]303、若監(jiān)測出的上述N個進程對共享虛擬內(nèi)存頁面X的訪問頻率小于或者等于第一閾值,并且共享虛擬內(nèi)存頁面X當前對應(yīng)上述N個進程的管理模式為DSM模式,則將共享虛擬內(nèi)存頁面X對應(yīng)上述N個進程的管理模式修改為SPM模式,并可返回步驟301 ;此外,若共享虛擬內(nèi)存頁面X當前對應(yīng)上述N個進程的管理模式為SPM模式,則返回步驟301。
[0170]304、若監(jiān)測出上述N個進程對共享虛擬內(nèi)存頁面X的訪問頻率大于第二閾值,且共享虛擬內(nèi)存頁面X當前對應(yīng)上述N個進程的管理模式為SPM模式,將共享虛擬內(nèi)存頁面X對應(yīng)上述N個進程的管理模式修改為DSM模式,并可返回步驟301 ;此外若共享虛擬內(nèi)存頁面X當前對應(yīng)上述N個進程的管理模式為DSM模式,則可返回步驟301。
[0171]在本發(fā)明的一些實施例中,第一閾值例如可為1000次/秒、2000次/秒、5000次/秒或其它頻率值,第一閾值可小于或者等于第二閾值,第二閾值例如可為1000次/秒、2000次/秒、3000次/秒、5000次/秒或其它頻率值。在本發(fā)明另一些實施例中,第一閾值例如可為20%、25%、30%、35%或其它比例值,第一閾值可小于或等于第二閾值,第二閾值例如可為20%、25%、30%、35%或其它比例值??梢岳斫猓@種策略可看做是根據(jù)訪問數(shù)據(jù)的消耗選擇策略。
[0172]可以理解的是,在不同的多核或眾核系統(tǒng)中,將共享虛擬內(nèi)存頁面X對應(yīng)上述N個進程的管理模式修改為DSM模式的方式可能不盡相同。
[0173]在本發(fā)明的一些實施例中,將共享虛擬內(nèi)存頁面X對應(yīng)上述N個進程的管理模式修改為DSM模式可包括:在第一物理內(nèi)存空間中為第一共享虛擬內(nèi)存頁面分配第一物理內(nèi)存頁面;將第二物理內(nèi)存頁面中存儲的數(shù)據(jù)拷貝到第一物理內(nèi)存頁面,其中,第二物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間,第二物理內(nèi)存頁面為共享虛擬內(nèi)存頁面X當前所映射的物理內(nèi)存頁面;建立共享虛擬內(nèi)存頁面X和第一物理內(nèi)存頁面之間的映射關(guān)系JfDSM模式作為共享虛擬內(nèi)存頁面X對應(yīng)上述N個進程的管理模式進行記錄。例如,可將上述N個進程的頁面信息結(jié)構(gòu)體中記錄的共享虛擬內(nèi)存頁面X的管理模式都記錄為DSM模式。
[0174]在本發(fā)明的一些實施例中,將共享虛擬內(nèi)存頁面X對應(yīng)上述N個進程的管理模式修改為SPM模式可以包括:建立共享虛擬內(nèi)存頁面X和第三物理內(nèi)存頁面之間的映射關(guān)系,其中,第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間;將SPM模式作為共享虛擬內(nèi)存頁面X對應(yīng)上述N個進程的管理模式進行記錄。例如可將上述N個進程的頁面信息結(jié)構(gòu)體中記錄的共享虛擬內(nèi)存頁面X的管理模式都記錄為SPM模式。進一步的,建立共享虛擬內(nèi)存頁面X和第三物理內(nèi)存頁面之間的映射關(guān)系之前還可包括:將共享虛擬內(nèi)存頁面X之前所映射的第四物理內(nèi)存頁面所存儲數(shù)據(jù)中的被修改數(shù)據(jù)同步到第三物理內(nèi)存頁面。當然,若共享虛擬內(nèi)存頁面X之前所映射的第四物理內(nèi)存頁面所存儲數(shù)據(jù)未修改,則可省略數(shù)據(jù)同步的步驟。第四物理內(nèi)存頁面為共享虛擬內(nèi)存頁面X之前所映射的物理內(nèi)存頁面。
[0175]由于DSM模式和SPM模式分別對不同的訪問頻率有一定偏好,因此本實施例方案中,監(jiān)控N個進程對共享虛擬內(nèi)存頁面的訪問特性,根據(jù)監(jiān)測到的訪問特性來確定是否重置該共享虛擬內(nèi)存頁面對應(yīng)該N個進程的管理模式,這種訪問特性和管理模式自適應(yīng)機制有利于提升共享虛擬內(nèi)存頁面訪問性能,進而有利于提高相應(yīng)程序的性能和用戶體驗。
[0176]請參見圖4,圖4為本發(fā)明實施例提供的另一種確定共享虛擬內(nèi)存頁面管理模式的方法的流程示意圖。本發(fā)明實施例提供的另一種確定共享虛擬內(nèi)存頁面管理模式的方法可包括以下內(nèi)容:
[0177]401、監(jiān)測進程A和進程B對共享虛擬內(nèi)存頁面X的訪問特性。
[0178]在本發(fā)明的一些實施例中,例如可以監(jiān)測進程A和進程B對共享虛擬內(nèi)存頁面X的各種訪問特性,本實施例中主要以檢測進程A和進程B對共享虛擬內(nèi)存頁面X的訪問頻率為例。
[0179]可以理解,本實施例中的共享虛擬內(nèi)存頁面X可對應(yīng)上述實施例中的第一共享虛擬內(nèi)存頁面。
[0180]在本發(fā)明的一些實施例中,進程A和進程B對共享虛擬內(nèi)存頁面X的訪問頻率可以指單位時間內(nèi)進程A和進程B分別對共享虛擬內(nèi)存頁面X訪問次數(shù)。
[0181]在本發(fā)明的另一些實施例中,進程A和進程B對共享虛擬內(nèi)存頁面X的訪問頻率也可指某時長內(nèi)(如單位時長內(nèi)),進程A和進程B分別對共享虛擬內(nèi)存頁面X訪問次數(shù)占進程A和進程B分別對NI個共享虛擬內(nèi)存頁面訪問總次數(shù)的比例。其中,該NI個共享虛擬內(nèi)存頁面包括共享虛擬內(nèi)存頁面X,NI為大于I的正整數(shù)。
[0182]當然,進程A和進程B對共享虛擬內(nèi)存頁面X的訪問頻率的計算方式也不限于上述舉例,還可根據(jù)需要定義出符合自然規(guī)律的其它計算方式。
[0183]402、判斷監(jiān)測出的進程A對共享虛擬內(nèi)存頁面X的訪問頻率小于或者等于第一閾值;
[0184]若是,執(zhí)行步驟403;
[0185]若否,執(zhí)行步驟404。
[0186]403、若監(jiān)測出的進程A對共享虛擬內(nèi)存頁面X的訪問頻率小于或者等于第一閾值,并且共享虛擬內(nèi)存頁面X當前對應(yīng)進程A的管理模式為DSM模式,則將共享虛擬內(nèi)存頁面X對應(yīng)進程A的管理模式修改為SPM模式,并可返回步驟401 ;此外,若共享虛擬內(nèi)存頁面X當前對應(yīng)進程A的管理模式為SPM模式,則返回步驟401。
[0187]404、若監(jiān)測出進程A對共享虛擬內(nèi)存頁面X的訪問頻率大于第二閾值,且共享虛擬內(nèi)存頁面X當前對應(yīng)進程A的管理模式為SPM模式,將共享虛擬內(nèi)存頁面X對應(yīng)進程A的管理模式修改為DSM模式,并可返回步驟401 ;此外若共享虛擬內(nèi)存頁面X當前對應(yīng)進程A的管理模式為DSM模式,則可返回步驟401。
[0188]405、判斷監(jiān)測出的進程B對共享虛擬內(nèi)存頁面X的訪問頻率小于或者等于第一閾值;
[0189]若是,執(zhí)行步驟406;
[0190]若否,執(zhí)行步驟407。
[0191]406、若監(jiān)測出的進程B對共享虛擬內(nèi)存頁面X的訪問頻率小于或者等于第一閾值,并且共享虛擬內(nèi)存頁面X當前對應(yīng)進程B的管理模式為DSM模式,則將共享虛擬內(nèi)存頁面X對應(yīng)進程B的管理模式修改為SPM模式,并可返回步驟401 ;此外,若共享虛擬內(nèi)存頁面X當前對應(yīng)進程B的管理模式為SPM模式,則返回步驟401。
[0192]407、若監(jiān)測出進程B對共享虛擬內(nèi)存頁面X的訪問頻率大于第二閾值,且共享虛擬內(nèi)存頁面X當前對應(yīng)進程B的管理模式為SPM模式,將共享虛擬內(nèi)存頁面X對應(yīng)進程B的管理模式修改為DSM模式,并可返回步驟401 ;此外若共享虛擬內(nèi)存頁面X當前對應(yīng)進程B的管理模式為DSM模式,則可返回步驟401。
[0193]可以理解,步驟402?404和步驟405?407之間沒有必然的先后順序,可同步或分步執(zhí)行。
[0194]在本發(fā)明的一些實施例中,第一閾值例如可為1000次/秒、2000次/秒、5000次/
秒或其它頻率值,第一閾值可小于或者等于第二閾值,第二閾值例如可為1000次/秒、2000次/秒、3000次/秒、5000次/秒或其它頻率值。在本發(fā)明另一些實施例中,第一閾值例如可為20%、25%、30%、35%或其它比例值,第一閾值可小于或等于第二閾值,第二閾值例如可為20%、25%、30%、35%或其它比例值。
[0195]可以理解,這種策略可看做是根據(jù)訪問數(shù)據(jù)的消耗選擇策略。
[0196]可以理解的是,在不同的多核或眾核系統(tǒng)中,將共享虛擬內(nèi)存頁面X對應(yīng)進程A(或進程B)的管理模式修改為DSM模式的方式可能不盡相同。
[0197]在本發(fā)明的一些實施例中,將第一共享虛擬內(nèi)存頁面對應(yīng)進程A (或進程B)的管理模式修改為DSM模式可包括:在第一物理內(nèi)存空間中為共享虛擬內(nèi)存頁面X分配第一物理內(nèi)存頁面;將第二物理內(nèi)存頁面中存儲的數(shù)據(jù)拷貝到第一物理內(nèi)存頁面,其中,第二物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間,第二物理內(nèi)存頁面為共享虛擬內(nèi)存頁面X當前所映射的物理內(nèi)存頁面;建立共享虛擬內(nèi)存頁面X和第一物理內(nèi)存頁面之間的映射關(guān)系JfDSM模式作為共享虛擬內(nèi)存頁面X對應(yīng)進程A (或進程B)的管理模式進行記錄。例如,可將進程A (或進程B)的頁面信息結(jié)構(gòu)體中記錄的共享虛擬內(nèi)存頁面X的管理模式都記錄為DSM模式。此外,在本發(fā)明的一些實施例中,第二物理內(nèi)存頁面后續(xù)可仍然有效,而第二物理內(nèi)存頁面可作為以DSM模式作為共享虛擬內(nèi)存頁面X的管理模式的進程間,以SPM模式作為共享虛擬內(nèi)存頁面X的管理模式的進程間,以及以DSM模式作為共享虛擬內(nèi)存頁面X的管理模式的進程和以SPM模式作為共享虛擬內(nèi)存頁面X的管理模式的進程之間針對于共享虛擬內(nèi)存頁面X的同步通道。
[0198]在本發(fā)明的一些實施例中,將共享虛擬內(nèi)存頁面X對應(yīng)進程A (或進程B )管理模式修改為SPM模式可包括:建立共享虛擬內(nèi)存頁面X和第三物理內(nèi)存頁面之間的映射關(guān)系,其中,第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間;將SPM模式作為共享虛擬內(nèi)存頁面X對應(yīng)進程A (或進程B)的管理模式進行記錄。例如可將進程A (或進程B)的頁面信息結(jié)構(gòu)體中記錄的共享虛擬內(nèi)存頁面X的管理模式都記錄為SPM模式。進一步的,建立共享虛擬內(nèi)存頁面X和第三物理內(nèi)存頁面之間的映射關(guān)系之前,還可包括:將共享虛擬內(nèi)存頁面X之前所映射的第四物理內(nèi)存頁面所存儲數(shù)據(jù)中的被修改數(shù)據(jù)同步到第三物理內(nèi)存頁面。
[0199]當然,若共享虛擬內(nèi)存頁面X之前所映射的第四物理內(nèi)存頁面所存儲數(shù)據(jù)未被修改,則可省略數(shù)據(jù)同步的步驟。
[0200]由于DSM模式和SPM模式分別對不同的訪問頻率有一定偏好,因此本實施例方案中,分別監(jiān)控進程A和進程B對共享虛擬內(nèi)存頁面的訪問特性,根據(jù)監(jiān)測到的訪問特性來分別確定是否重置該共享虛擬內(nèi)存頁面對應(yīng)進程A和進程B的管理模式,這種訪問特性和管理模式自適應(yīng)機制有利于提升共享虛擬內(nèi)存頁面訪問性能,進而有利于提高相應(yīng)程序的性能和用戶體驗。并且,針對不同進程的訪問特性,分別確定是否重置該共享虛擬內(nèi)存頁面對應(yīng)該進程的管理模式,這樣針對性更強,有利于更好的提升訪問性能。
[0201]為便于更好的實施本發(fā)明實施例的上述方案,下面還提供用于實施上述方案的相關(guān)裝置。
[0202]參見圖5-a、本發(fā)明實施例提供一種確定共享虛擬內(nèi)存頁面管理模式的裝置500可包括:監(jiān)控單元510和第一重映射單元520。
[0203]其中,監(jiān)控單元510,監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性。
[0204]與監(jiān)控單元510連接的第一重映射單元520,用于若監(jiān)控單元510監(jiān)測出的上述訪問特性符合第一設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為DSM模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為SPM模式;
[0205]參見圖5-b,確定共享虛擬內(nèi)存頁面管理模式的裝置500還可包括,
[0206]與監(jiān)控單元510連接的第二重映射單元530,用于若監(jiān)控單元510監(jiān)測出的上述訪問特性符合第二設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為SPM模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為DSM模式。
[0207]參見圖5-c,確定共享虛擬內(nèi)存頁面管理模式的裝置500可包括,
[0208]與監(jiān)控單元510連接的第二重映射單元530,用于若監(jiān)控單元510監(jiān)測出的上述訪問特性符合第二設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為SPM模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為DSM模式。
[0209]可以理解的是,監(jiān)測的訪問特性不同,第一設(shè)定條件和第二設(shè)定條件也可能隨之不同。例如若監(jiān)測的訪問特性為訪問頻率,則第一設(shè)定條件和第二設(shè)定條件可包括與訪問頻率相關(guān)的設(shè)定條件;若監(jiān)測的訪問特性為訪問方式,則第一設(shè)定條件和第二設(shè)定條件可包括與訪問方式相關(guān)的設(shè)定條件,若監(jiān)測的訪問特性包括訪問頻率和訪問方式,則第一設(shè)定條件和第二設(shè)定條件可包括與訪問頻率和訪問方式都相關(guān)的設(shè)定條件。
[0210]在本發(fā)明的一些實施例中,若監(jiān)測的訪問特性包括進程對第一共享虛擬內(nèi)存頁面的訪問頻率,則第一設(shè)定條件可包括:訪問頻率小于或等于第一閾值(第一閾值例如可為1000次/秒、2000次/秒、5000次/秒或其它頻率值)。第二設(shè)定條件可包括:訪問頻率大于第二閾值,其中,第一閾值可小于或者等于第二閾值,其中第二閾值例如可為1000次/秒、2000次/秒、3000次/秒、5000次/秒或其它頻率值)。其中,第二閾值大于或等于第一閾值。在此場景下,若監(jiān)測出的訪問頻率小于或等于第一閾值,且第一共享虛擬內(nèi)存頁面當前的管理模式為DSM模式,可將第一共享虛擬內(nèi)存頁面的管理模式修改為SPM模式。和/或若監(jiān)測出的訪問頻率大于第二閾值,且第一共享虛擬內(nèi)存頁面當前的管理模式為SPM模式,可將第一共享虛擬內(nèi)存頁面的管理模式修改為DSM模式??梢岳斫?,這種策略可看做是根據(jù)訪問數(shù)據(jù)的消耗選擇策略。
[0211]在本發(fā)明的另一些實施例中,若監(jiān)測的訪問特性包括進程對共享虛擬內(nèi)存頁面的訪問方式,則第一設(shè)定條件可包括寫訪問或讀寫訪問(或?qū)懺L問比例超過第四閾值或?qū)懺L問頻率超過第三閾值);第二設(shè)定條件可包括只讀訪問或讀訪問比例超過第六閾值或讀訪問頻率超過第五閾值,其中,第四閾值與第六閾值之和可大于或等于I。在此場景下,若監(jiān)測出的訪問方式為,寫訪問或讀寫訪問(或?qū)懺L問比例超過第四閾值或?qū)懺L問頻率超過第三閾值),且第一共享虛擬內(nèi)存頁面當前的管理模式為DSM模式,可將第一共享虛擬內(nèi)存頁面的管理模式修改為SPM模式。和/或,若監(jiān)測出的訪問方式為只讀訪問(或讀訪問比例超過第六閾值或讀訪問頻率超過第五閾值),且第一共享虛擬內(nèi)存頁面當前的管理模式為SPM模式,可將第一共享虛擬內(nèi)存頁面的管理模式修改為DSM模式,其它情況以此類推??梢岳斫?,這種策略可看做是根據(jù)訪問同步的消耗選擇策略。
[0212]在本發(fā)明一些實施例中,第一設(shè)定條件可包括:訪問頻率小于或等于第一閾值、或訪問方式為讀寫訪問或?qū)懺L問、或?qū)懺L問的頻率大于第三閾值、或者寫訪問的比例大于第四閾值。
[0213]在本發(fā)明的一些實施例中,監(jiān)控單元510具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問頻率;
[0214]第一重映射單元520可具體用于,若監(jiān)控單元510監(jiān)測出的訪問頻率小于或等于第一閾值,且上述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式。
[0215]或者監(jiān)控單元510具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問方式;重映射單元第一 520可具體用于,若監(jiān)控單元510監(jiān)測出的訪問方式為讀寫訪問或?qū)懺L問,且上述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式。
[0216]或者,監(jiān)控單元510具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的寫訪問的頻率;重映射單元第一 520可具體用于,若監(jiān)控單元510監(jiān)測出的寫訪問的頻率大于第三閾值,且上述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式。
[0217]或者,監(jiān)控單元510具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的寫訪問的比例;重映射單元第一 520可具體用于,若監(jiān)控單元510監(jiān)測出的寫訪問的比例大于第四閾值,且上述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式。
[0218]在本發(fā)明一些實施例中,第二設(shè)定條件包括:訪問頻率大于第二閾值、或者訪問方式為只讀訪問、或者讀訪問的頻率大于第五閾值、或者讀訪問的比例大于第六閾值,其中,第二閾值可大于或等于第一閾值。
[0219]其中,監(jiān)控單元510具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問頻率;第二重映射單元530可具體用于,若監(jiān)控單元510監(jiān)測出的訪問頻率大于第二閾值,且上述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式;
[0220]或者,監(jiān)控單元510具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問方式;第二重映射單元530可具體用于,若監(jiān)控單元510監(jiān)測出的訪問方式為只讀訪問,且上述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式;
[0221]或者,監(jiān)控單元510具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的讀訪問的頻率;第二重映射單元530可具體用于,若監(jiān)控單元510監(jiān)測出的讀訪問的頻率大于第五閾值,且上述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式;
[0222]或者,控單元510具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的讀訪問的比例;第二重映射單元530可具體用于,若監(jiān)控單元510監(jiān)測出的讀訪問的比例大于第六閾值,且上述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
[0223]在本發(fā)明的一些實施例中,第一重映射單元520可具體用于,若監(jiān)控單元510監(jiān)測出的上述訪問特性符合第一設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前管理模式為DSM模式,建立上述共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間;將SPM模式作為上述共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,上述共享虛擬內(nèi)存頁面之前映射的物理內(nèi)存頁面所存儲數(shù)據(jù)未被修改。
[0224]在本發(fā)明的一些實施例中,第一重映射單元520也可具體用于,若監(jiān)控單元510監(jiān)測出的上述訪問特性符合第一設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前管理模式為DSM模式,將第四物理內(nèi)存頁面所存儲數(shù)據(jù)中的被修改數(shù)據(jù)同步到第三物理內(nèi)存頁面;建立上述共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間JfSPM模式作為上述共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,第四物理內(nèi)存頁面為上述共享虛擬內(nèi)存頁面之前映射的物理內(nèi)存頁面,且該物理內(nèi)存頁面所存儲數(shù)據(jù)被修改。
[0225]在本發(fā)明的一些實施例中,第二重映射單元530可具體用于,若監(jiān)控單元510監(jiān)測出的上述訪問特性符合第二設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為SPM模式,在第一物理內(nèi)存空間中為上述共享虛擬內(nèi)存頁面分配第一物理內(nèi)存頁面;將第二物理內(nèi)存頁面中存儲的數(shù)據(jù)拷貝到第一物理內(nèi)存頁面,第二物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間,第二物理內(nèi)存頁面為上述共享虛擬內(nèi)存頁面當前所映射的物理內(nèi)存頁面;建立上述共享虛擬內(nèi)存頁面和第一物理內(nèi)存頁面之間的映射關(guān)系JfDSM模式作為上述共享虛擬內(nèi)存頁面的管理模式進行記錄。
[0226]在本發(fā)明的一些實施例中,監(jiān)控單元510具體用于,監(jiān)測第一進程對共享虛擬內(nèi)存頁面的訪問特性,其中,第一進程包括Ml個進程,其中,Ml為正整數(shù);
[0227]第一重映射單元520可具體用于,若監(jiān)控單元510監(jiān)測出的第一進程對共享虛擬內(nèi)存頁面的訪問特性符合第一設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前對應(yīng)第一進程的管理模式為DSM模式,將上述共享虛擬內(nèi)存頁面對應(yīng)第一進程的管理模式修改為SPM模式。
[0228]第二重映射單元530可具體用于,若監(jiān)控單元510監(jiān)測出的第一進程對共享虛擬內(nèi)存頁面的訪問特性符合第二設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前對應(yīng)第一進程的管理模式為SPM模式,將上述共享虛擬內(nèi)存頁面對應(yīng)第一進程的管理模式修改為DSM模式。
[0229]在本發(fā)明的一些實施例中,若Ml大于1,可將監(jiān)測出的Ml個進程中的其中一個進程對上述共享虛擬內(nèi)存頁面的訪問特性,作為監(jiān)測出的第一進程對共享虛擬內(nèi)存頁面的訪問特性?;蛘撸部蓪⒈O(jiān)測出的Ml個進程對上述共享虛擬內(nèi)存頁面的綜合訪問特性,作為監(jiān)測出的第一進程對共享虛擬內(nèi)存頁面的訪問特性,例如可將分別監(jiān)測出的Ml個進程中的每個進程對上述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的第一進程對共享虛擬內(nèi)存頁面的訪問特性。
[0230]在本發(fā)明的一些實施例中,監(jiān)控單元510還用于,監(jiān)測第二進程對上述共享虛擬內(nèi)存頁面的訪問特性,其中,第二進程包括M2個進程,其中,M2為正整數(shù),第二進程不同于
第一進程;
[0231]其中,第一重映射單元520還可用于,若監(jiān)控單元510監(jiān)測出的第二進程對上述共享虛擬內(nèi)存頁面的訪問特性符合第一設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前對應(yīng)第二進程的管理模式為DSM模式,將上述共享虛擬內(nèi)存頁面對應(yīng)第二進程的管理模式修改為SPM模式。
[0232]第二重映射單元530,若監(jiān)控單元510監(jiān)測出的第二進程對上述共享虛擬內(nèi)存頁面的訪問特性符合第二設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前對應(yīng)第二進程的管理模式為SPM模式,將上述共享虛擬內(nèi)存頁面對應(yīng)第二進程的管理模式修改為DSM模式。[0233]在本發(fā)明的一些實施例中,若M2大于1,將監(jiān)測出的M2個進程中的其中一個進程對上述共享虛擬內(nèi)存頁面的訪問特性,作為監(jiān)測出的第二進程對共享虛擬內(nèi)存頁面的訪問特性。或者,也可將監(jiān)測出的M2個進程對上述共享虛擬內(nèi)存頁面的綜合訪問特性,作為監(jiān)測出的第二進程對該共享虛擬內(nèi)存頁面的訪問特性,例如可將分別監(jiān)測出的M2個進程中的每個進程對上述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的第一進程對該共享虛擬內(nèi)存頁面的訪問特性。
[0234]例如,若第一進程(或第二進程)包括多個進程,則第一重映射單元520可具體用于,將監(jiān)控單元510分別監(jiān)測出的第一進程(或第二進程)中的每個進程對上述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的第一進程(或第二進程)對共享虛擬內(nèi)存頁面的訪問特性;或者,將監(jiān)控單元510監(jiān)測出的第一進程(或第二進程)中的其中一個進程對上述共享虛擬內(nèi)存頁面的訪問特性,作為監(jiān)測出的第一進程(或第二進程)對共享虛擬內(nèi)存頁面的訪問特性,若上述監(jiān)測出的上述進程對共享虛擬內(nèi)存頁面的訪問特性符合第一條件,且上述共享虛擬內(nèi)存頁面當前對應(yīng)第一進程(或第二進程)的管理模式為分布式共享內(nèi)存模式,將上述共享虛擬內(nèi)存頁面對應(yīng)第一進程(或第二進程)的管理模式修改為共享物理內(nèi)存模式。
[0235]又例如,若第一進程(或第二進程)包括多個進程,則第二重映射單元530可具體用于,將監(jiān)控單元510分別監(jiān)測出的第一進程(或第二進程)中的每個進程對上述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的第一進程(或第二進程)對共享虛擬內(nèi)存頁面的訪問特性;或者,將監(jiān)控單元510監(jiān)測出的第一進程(或第二進程)中的其中一個進程對上述共享虛擬內(nèi)存頁面的訪問特性,作為監(jiān)測出的第一進程(或第二進程)對共享虛擬內(nèi)存頁面的訪問特性,若上述監(jiān)測出的上述進程對共享虛擬內(nèi)存頁面的訪問特性符合第二條件,且上述共享虛擬內(nèi)存頁面當前對應(yīng)第一進程(或第二進程)的管理模式對應(yīng)為共享物理內(nèi)存模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
[0236]可以理解,本實施例確定共享虛擬內(nèi)存頁面管理模式的裝置500可以部署在通信設(shè)備,如接入網(wǎng)設(shè)備或核心網(wǎng)設(shè)備、路由器或其它通信設(shè)備,確定共享虛擬內(nèi)存頁面管理模式的裝置500也可以部署在服務(wù)器或個人計算機或其它計算機設(shè)備。
[0237]可以理解的是,本實施例的確定共享虛擬內(nèi)存頁面管理模式的裝置500的各功能模塊的功能可根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可以參照上述方法實施例的相關(guān)描述,此處不再贅述。
[0238]可以看出,本實施例確定共享虛擬內(nèi)存頁面管理模式的裝置500通過監(jiān)測共享虛擬內(nèi)存頁面的訪問特性;若監(jiān)測出的訪問特性符合第一設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式;若監(jiān)測出的上述訪問特性符合第二設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。由于提出了根據(jù)訪問特性監(jiān)測結(jié)果重置共享虛擬內(nèi)存頁面的管理模式的機制,這有利于管理模式和訪問特性更相宜匹配,進而有利于更好發(fā)揮DSM模式或SPM模式的優(yōu)勢,為提升共享虛擬內(nèi)存的訪問性能奠定了機制基礎(chǔ)。
[0239]圖6為本發(fā)明提供的一種計算機系統(tǒng)的結(jié)構(gòu)示意圖,如圖6所示,本實施例的計算機系統(tǒng)包括至少一個總線601、與總線601相連的至少一個處理器602以及與總線601相連的至少一個存儲器603。
[0240]其中,處理器602通過總線601,調(diào)用存儲器603中存儲的代碼以用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性;若監(jiān)測出的上述訪問特性符合第一設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為DSM模式,則將上述共享虛擬內(nèi)存頁面的管理模式修改為SPM模式;和/或,若監(jiān)測出的上述訪問特性符合第二設(shè)定條件,且上述共享虛擬內(nèi)存頁面當前的管理模式為SPM模式,將上述共享虛擬內(nèi)存頁面的管理模式修改為DSM模式。
[0241]在本發(fā)明的一些實施例中,處理器602例如可監(jiān)測N個進程對共享虛擬內(nèi)存頁面(為便于引述,下面可稱之為第一共享虛擬內(nèi)存頁面)的訪問特性,其中,N為正整數(shù)。例如,若N等于1,則上述N個進程可指系統(tǒng)當前存在的任意一個進程或特定的某一個進程;gN大于1,則上述N個進程可指系統(tǒng)當前存在的部分進程或全部進程,例如N個進程可指系統(tǒng)當前存在的,可能訪問第一共享虛擬內(nèi)存頁面的部分進程或全部進程。在本發(fā)明的一些實施例中,例如可利用性能計數(shù)器或其它硬件或程序來監(jiān)控共享虛擬頁面訪問特性。
[0242]在本發(fā)明的一些實施例中,處理器602例如可監(jiān)測進程對共享虛擬內(nèi)存頁面的各種訪問特性,訪問特性例如可包括:訪問頻率和/或訪問方式等,其中訪問方式可能包括:只讀訪問、讀寫訪問或?qū)懺L問等)。也就是說,處理器602可監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問頻率和/或訪問方式等訪問特性。
[0243]可以理解的是,監(jiān)測的訪問特性不同,第一設(shè)定條件和第二設(shè)定條件也可能隨之不同。例如若監(jiān)測的訪問特性為訪問頻率,則第一設(shè)定條件和第二設(shè)定條件可包括與訪問頻率相關(guān)的設(shè)定條件;若監(jiān)測的訪問特性為訪問方式,則第一設(shè)定條件和第二設(shè)定條件可包括與訪問方式相關(guān)的設(shè)定條件,若監(jiān)測的訪問特性包括訪問頻率和訪問方式,則第一設(shè)定條件和第二設(shè)定條件可包括與訪問頻率和訪問方式都相關(guān)的設(shè)定條件。
[0244]在本發(fā)明的一些實施例中,若監(jiān)測的訪問特性包括進程對第一共享虛擬內(nèi)存頁面的訪問頻率,則第一設(shè)定條件可包括:訪問頻率小于或等于第一閾值(第一閾值例如可為1000次/秒、2000次/秒、5000次/秒或其它頻率值)。第二設(shè)定條件可包括:訪問頻率大于第二閾值,其中,第一閾值可小于或者等于第二閾值,其中第二閾值例如可為1000次/秒、2000次/秒、3000次/秒、5000次/秒或其它頻率值)。在此場景下,若監(jiān)測出的訪問頻率小于或等于第一閾值,且第一共享虛擬內(nèi)存頁面當前的管理模式為DSM模式,可將第一共享虛擬內(nèi)存頁面的管理模式修改為SPM模式。和/或若監(jiān)測出的訪問頻率大于第二閾值,且第一共享虛擬內(nèi)存頁面當前的管理模式為SPM模式,可將第一共享虛擬內(nèi)存頁面的管理模式修改為DSM模式??梢岳斫?,這種策略可看做是根據(jù)訪問數(shù)據(jù)的消耗選擇策略。
[0245]在本發(fā)明的另一些實施例中,若監(jiān)測的訪問特性包括進程對共享虛擬內(nèi)存頁面的訪問方式,則第一設(shè)定條件可包括寫訪問或讀寫訪問(或?qū)懺L問比例超過第四閾值或?qū)懺L問頻率超過第三閾值);第二設(shè)定條件可包括只讀訪問或讀訪問比例超過第六閾值或讀訪問頻率超過第五閾值,其中,第四閾值與第六閾值之和可大于或等于I。在此場景下,若處理器602監(jiān)測出的訪問方式為,寫訪問或讀寫訪問(或?qū)懺L問比例超過第四閾值或?qū)懺L問頻率超過第三閾值),且第一共享虛擬內(nèi)存頁面當前的管理模式為DSM模式,處理器602可將第一共享虛擬內(nèi)存頁面的管理模式修改為SPM模式。和/或處理器602若監(jiān)測出的訪問方式為只讀訪問(或讀訪問比例超過第六閾值或讀訪問頻率超過第五閾值),且第一共享虛擬內(nèi)存頁面當前的管理模式為SPM模式,處理器602可將第一共享虛擬內(nèi)存頁面的管理模式修改為DSM模式,以此類推。
[0246]在本發(fā)明的一些實施例中,處理器602將第一共享虛擬內(nèi)存頁面的管理模式修改為DSM模式可包括:在第一物理內(nèi)存空間中為第一共享虛擬內(nèi)存頁面分配第一物理內(nèi)存頁面;將第二物理內(nèi)存頁面中存儲的數(shù)據(jù)拷貝到第一物理內(nèi)存頁面,其中,第二物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間(共享物理內(nèi)存空間是幾個核可共享的物理內(nèi)存空間),其中,第二物理內(nèi)存頁面為上述第一共享虛擬內(nèi)存頁面當前所映射的物理內(nèi)存頁面;建立第一共享虛擬內(nèi)存頁面和第一物理內(nèi)存頁面之間的映射關(guān)系JfDSM模式作為第一共享虛擬內(nèi)存頁面的管理模式進行記錄。
[0247]在本發(fā)明的一些實施例中,處理器602將上述共享虛擬內(nèi)存頁面的管理模式修改為SPM模式可包括:建立第一共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,其中,第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間(共享物理內(nèi)存空間是幾個核可共享的物理內(nèi)存空間);將SPM模式作為第一共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,上述共享虛擬內(nèi)存頁面之前映射的物理內(nèi)存頁面所存儲數(shù)據(jù)未被修改。
[0248]在本發(fā)明的一些實施例中,處理器602將上述共享虛擬內(nèi)存頁面的管理模式修改為SPM模式可包括:處理器602將第四物理內(nèi)存頁面所存儲數(shù)據(jù)中的被修改數(shù)據(jù)同步到第三物理內(nèi)存頁面;建立第一共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,其中,第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間(共享物理內(nèi)存空間是幾個核可共享的物理內(nèi)存空間);將SPM模式作為第一共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,第四物理內(nèi)存頁面為上述共享虛擬內(nèi)存頁面之前映射的物理內(nèi)存頁面,且該物理內(nèi)存頁面所存儲數(shù)據(jù)被修改。
[0249]其中,處理器602將DSM模式/SPM模式作為第一共享虛擬內(nèi)存頁面的管理模式進行記錄的方式可以是多種多樣的,例如針對第一共享虛擬內(nèi)存頁面設(shè)置一個管理模式標志位,通過將該管理模式標志位設(shè)置為不同取值,來標識第一共享虛擬內(nèi)存頁面的管理模式為DSM模式/SPM模式。又或者,處理器602可將某個進程(或多個進程或全部進程)的頁面信息結(jié)構(gòu)體中記錄的第一共享虛擬內(nèi)存頁面的管理模式記錄為DSM模式/SPM模式,其它方式不再舉例。
[0250]在本發(fā)明的一些實施例中,處理器602可以針對每個共享虛擬內(nèi)存頁面(如第一共享虛擬內(nèi)存頁面)來設(shè)置管理模式(如DSM模式者SPM模式),此場景下,對于所有訪問第一共享虛擬內(nèi)存頁面的進程而言,第一共享虛擬內(nèi)存頁面的管理模式是相同的。當然,也可針對每個共享虛擬內(nèi)存頁面(如第一共享虛擬內(nèi)存頁面)對應(yīng)每個進程,分別設(shè)置管理模式(例如DSM模式或者SPM模式),此場景下對于所有訪問第一共享虛擬內(nèi)存頁面的進程而言,第一共享虛擬內(nèi)存頁面的管理模式可能是相同或不同的,舉例來說,假設(shè)存在進程A和進程B,第一共享虛擬內(nèi)存頁面對應(yīng)進程A的管理模式可能是DSM模式,而第一共享虛擬內(nèi)存頁面對應(yīng)進程B的管理模式可能是SPM模式。
[0251 ] 在本發(fā)明的一些實施例中,處理器602可監(jiān)測第一進程對第一共享虛擬內(nèi)存頁面的訪問特性,其中,第一進程包括Ml個進程;M1為正整數(shù),若監(jiān)測出的上述訪問特性符合第一設(shè)定條件,且第一共享虛擬內(nèi)存頁面當前對應(yīng)第一進程的管理模式為DSM模式,處理器602可將第一共享虛擬內(nèi)存頁面對應(yīng)第一進程的管理模式修改為SPM模式。和/或,若監(jiān)測出的訪問特性符合第二設(shè)定條件,且第一共享虛擬內(nèi)存頁面當前對應(yīng)第一進程的管理模式為SPM模式,處理器602可將第一共享虛擬內(nèi)存頁面對應(yīng)第一進程的管理模式修改為DSM模式。
[0252]在本發(fā)明的一些實施例中,處理器602還可監(jiān)測第二進程對第一共享虛擬內(nèi)存頁面的訪問特性,其中第二進程包括M2個進程;M2為正整數(shù),第二進程不同于第一進程;若監(jiān)測出的第二進程對第一共享虛擬內(nèi)存頁面的訪問特性符合第三設(shè)定條件,且第一共享虛擬內(nèi)存頁面當前對應(yīng)第二進程的管理模式為DSM模式,處理器602可將第一共享虛擬內(nèi)存頁面對應(yīng)第二進程的管理模式修改為SPM模式;和/或,若監(jiān)測出的第二進程對第一共享虛擬內(nèi)存頁面的訪問特性符合第四設(shè)定條件,且第一共享虛擬內(nèi)存頁面當前對應(yīng)第二進程的管理模式為SPM模式,處理器602可將第一共享虛擬內(nèi)存頁面對應(yīng)第二進程的管理模式修改為DSM模式。
[0253]其中,第三設(shè)定條件與第一條件相同或不同。第四設(shè)定條件與第二條件相同或不同。
[0254]例如,若第一進程(或第二進程)包括多個進程,則處理器602可將分別監(jiān)測出的第一進程(或第二進程)中的每個進程對上述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的第一進程(或第二進程)對共享虛擬內(nèi)存頁面的訪問特性;或者將監(jiān)測出的第一進程(或第二進程)中的其中一個進程對上述共享虛擬內(nèi)存頁面的訪問特性,作為監(jiān)測出的第一進程(或第二進程)對共享虛擬內(nèi)存頁面的訪問特性,若上述監(jiān)測出的上述進程對共享虛擬內(nèi)存頁面的訪問特性符合第一條件,且上述共享虛擬內(nèi)存頁面當前對應(yīng)第一進程(或第二進程)的管理模式為分布式共享內(nèi)存模式,將上述共享虛擬內(nèi)存頁面對應(yīng)第一進程(或第二進程)的管理模式修改為共享物理內(nèi)存模式。
[0255]又例如,若第一進程(或第二進程)包括多個進程,處理器602可將分別監(jiān)測出的第一進程(或第二進程)中的每個進程對上述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的第一進程(或第二進程)對共享虛擬內(nèi)存頁面的訪問特性;或者,將監(jiān)測出的第一進程(或第二進程)中的其中一個進程對上述共享虛擬內(nèi)存頁面的訪問特性,作為監(jiān)測出的第一進程(或第二進程)對共享虛擬內(nèi)存頁面的訪問特性,若上述監(jiān)測出的上述進程對共享虛擬內(nèi)存頁面的訪問特性符合第二條件,且上述共享虛擬內(nèi)存頁面當前對應(yīng)第一進程(或第二進程)的管理模式為共享物理內(nèi)存模式,將上述共享虛擬內(nèi)存頁面對應(yīng)第一進程(或第二進程)的管理模式修改為分布式共享內(nèi)存模式。
[0256]參見圖7,圖7為本發(fā)明實施例提供的另一種計算機系統(tǒng)600示意圖,計算機系統(tǒng)600還包括輸入裝置604和輸出裝置605、輸入裝置604和輸出裝置605與總線601。
[0257]本實施例提供的計算機系統(tǒng),可以用于執(zhí)行圖f圖4任一所示方法實施例的技術(shù)方案中計算機系統(tǒng)對應(yīng)執(zhí)行的部分,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。圖6或圖7僅為本發(fā)明提供的計算機系統(tǒng)的結(jié)構(gòu)的一種示意圖,具體結(jié)構(gòu)可根據(jù)實際進行調(diào)整。
[0258]可以理解,本實施例計算機系統(tǒng)600可以是通信設(shè)備,如接入網(wǎng)設(shè)備或核心網(wǎng)設(shè)備、路由器或其它通信設(shè)備,計算機系統(tǒng)600可以是服務(wù)器或個人計算機或其它計算機設(shè)備。
[0259]可以理解的是,本實施例的計算機系統(tǒng)600中各器件的功能可根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可以參照上述方法實施例的相關(guān)描述,此處不再贅述。
[0260]本發(fā)明實施例還提供一種計算機存儲介質(zhì),其中,該計算機存儲介質(zhì)可存儲有程序,該程序執(zhí)行時包括上述方法實施例中記載的確定共享虛擬內(nèi)存頁面管理模式的方法的部分或全部步驟。
[0261]需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
[0262]在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
[0263]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置,可通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如上述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性或其它的形式。
[0264]上述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0265]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
[0266]上述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可為個人計算機、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例上述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM, Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0267]以上上述,以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種確定共享虛擬內(nèi)存頁面管理模式的方法,其特征在于,包括: 監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性; 若監(jiān)測出的所述訪問特性符合第一設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 若監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式,包括: 在第一物理內(nèi)存空間中為所述共享虛擬內(nèi)存頁面分配第一物理內(nèi)存頁面; 將第二物理內(nèi)存頁面中存儲的數(shù)據(jù)拷貝到所述第一物理內(nèi)存頁面,其中,所述第二物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間,其中第二物理內(nèi)存頁面為所述共享虛擬內(nèi)存頁面當前所映射的物理內(nèi)存頁面; 建立所述共享虛擬內(nèi)存頁面和第一物理內(nèi)存頁面之間的映射關(guān)系; 將分布式共享內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄。
4.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于, 所述第一設(shè)定條件包括:訪問頻率小于或等于第一閾值、或者訪問方式為讀寫訪問或?qū)懺L問、或者寫訪問的頻率大于第三閾值、或者寫訪問的比例大于第四閾值。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于, 所述第二設(shè)定條件包括: 訪問頻率大于第二閾值、或者訪問方式為只讀訪問、或者讀訪問的頻率大于第五閾值、或者讀訪問的比例大于第六閾值,所述第二閾值大于或等于第一閾值。
6.根據(jù)權(quán)利要求1至5任一項所述的方法,其特征在于, 所述將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式,包括: 建立所述共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,所述第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間;將共享物理內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,所述共享虛擬內(nèi)存頁面之前映射的物理內(nèi)存頁面所存儲數(shù)據(jù)未被修改。
7.根據(jù)權(quán)利要求1至5任一項的方法,其特征在于, 所述將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式,包括: 將第四物理內(nèi)存頁面所存儲數(shù)據(jù)中的被修改數(shù)據(jù)同步到第三物理內(nèi)存頁面;建立所述共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,所述第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間;將共享物理內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,所述第四物理內(nèi)存頁面是所述共享虛擬內(nèi)存頁面之前映射的物理內(nèi)存頁面。
8.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,若所述進程包括多個進程,則若監(jiān)測出的所述訪問特性符合第一設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式,包括: 將分別監(jiān)測出的所述多個進程中的每個進程對所述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性;或者,將監(jiān)測出的所述多個進程中的其中一個進程對所述共享虛擬內(nèi)存頁面的訪問特性,作為所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性,若所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性符合第一條件,且所述共享虛擬內(nèi)存頁面當前對應(yīng)所述多個進程的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面對應(yīng)所述多個進程的管理模式修改為共享物理內(nèi)存模式。
9.根據(jù)權(quán)利要求2所述的方法,其特征在于, 若所述進程包括多個進程,則若監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式,包括: 將分別監(jiān)測出的所述多個進程中的每個進程對所述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性;或者,將監(jiān)測出的所述多個進程中的其中一個進程對所述共享虛擬內(nèi)存頁面的訪問特性,作為所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性,若所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性符合第二條件,且所述共享虛擬內(nèi)存頁面當前對應(yīng)所述多個進程的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面對應(yīng)所述多個進程的管理模式修改為分布式共享內(nèi)存模式。
10.一種確定共享虛擬內(nèi)存頁面管理模式的方法,其特征在于,包括: 監(jiān)測進程對共享虛擬內(nèi) 存頁面的訪問特性; 若監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式,包括: 在第一物理內(nèi)存空間中為所述共享虛擬內(nèi)存頁面分配第一物理內(nèi)存頁面; 將第二物理內(nèi)存頁面中存儲的數(shù)據(jù)拷貝到所述第一物理內(nèi)存頁面,其中,所述第二物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間,所述第二物理內(nèi)存頁面為所述共享虛擬內(nèi)存頁面當前所映射的物理內(nèi)存頁面; 建立所述共享虛擬內(nèi)存頁面和第一物理內(nèi)存頁面之間的映射關(guān)系; 將分布式共享內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄。
12.根據(jù)權(quán)利要求10所述的方法,其特征在于, 若所述進程包括多個進程,則若監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式,包括: 將分別監(jiān)測出的所述多個進程中的每個進程對所述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性;或者,將監(jiān)測出的所述多個進程中的其中一個進程對所述共享虛擬內(nèi)存頁面的訪問特性,作為所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性,若所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性符合第二條件,且所述共享虛擬內(nèi)存頁面當前對應(yīng)所述多個進程的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面對應(yīng)所述多個進程的管理模式修改為分布式共享內(nèi)存模式。
13.根據(jù)權(quán)利要求10至12任一項所述的方法,其特征在于, 所述第二設(shè)定條件包括: 訪問頻率大于第二閾值、或者訪問方式為只讀訪問、或者讀訪問的頻率大于第五閾值、或者讀訪問的比例大于第六閾值。
14.一種確定共享虛擬內(nèi)存頁面管理模式的裝置,其特征在于,包括: 監(jiān)控單元,用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性; 與所述監(jiān)控單元連接的第一重映射單元,用于若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第一設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于, 所述裝置還包括: 與所述監(jiān)控單元連接的第二重映射單元,用于若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于, 所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,則在第一物理內(nèi)存空間中為所述共享虛擬內(nèi)存頁面分配第一物理內(nèi)存頁面;將第二物理內(nèi)存頁面中存儲的數(shù)據(jù)拷貝到所述第一物理內(nèi)存頁面,其中,所述第二物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間,所述第二物理內(nèi)存頁面為所述共享虛擬內(nèi)存頁面當前所映射的物理內(nèi)存頁面;建立所述共享虛擬內(nèi)存頁面和第一物理內(nèi)存頁面之間的映射關(guān)系;將分布式共享內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄。
17.根據(jù)權(quán)利要求14至16任一項所述的裝置,其特征在于, 所述第一設(shè)定條件包括:訪問頻率小于或等于第一閾值、或者訪問方式為讀寫訪問或?qū)懺L問、或者寫訪問的頻率大于第三閾值、或者寫訪問的比例大于第四閾值; 所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問頻率; 其中,所述第一重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的進程對共享虛擬內(nèi)存頁面的訪問頻率小于或等于第一閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式; 或者, 所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問方式; 所述第一重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的進程對共享虛擬內(nèi)存頁面的訪問方式為讀寫訪問或?qū)懺L問,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式; 或者, 所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的寫訪問的頻率; 所述第一重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的進程對共享虛擬內(nèi)存頁面的寫訪問的頻率大于第三閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式; 或者, 所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的寫訪問的比例; 所述第一重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的進程對共享虛擬內(nèi)存頁面的寫訪問的比例大于第四閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式。
18.根據(jù)權(quán)利要求17所述的裝置,其特征在于, 所述第二設(shè)定條件包括: 訪問頻率大于第二閾值、或者訪問方式為只讀訪問、或者讀訪問的頻率大于第五閾值、或者讀訪問的比例大于第六閾值,所述第二閾值大于或等于第一閾值; 其中, 所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問頻率; 所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的訪問頻率大于第二閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布 式共享內(nèi)存模式; 或者, 所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問方式; 所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的訪問方式為只讀訪問,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式; 或者, 所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的讀訪問的頻率; 所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的讀訪問的頻率大于第五閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式; 或者, 所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的讀訪問的比例; 所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的讀訪問的比例大于第六閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
19.根據(jù)權(quán)利要求14至18任一項所述的裝置,其特征在于, 所述第一重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第一設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,建立所述共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,所述第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間;將共享物理內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,所述共享虛擬內(nèi)存頁面之前映射的物理內(nèi)存頁面所存儲數(shù)據(jù)未被修改。
20.根據(jù)權(quán)利要求14至18任一項所述的裝置,其特征在于, 所述第一重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第一設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將第四物理內(nèi)存頁面所存儲數(shù)據(jù)中的被修改數(shù)據(jù)同步到第三物理內(nèi)存頁面;建立所述共享虛擬內(nèi)存頁面和第三物理內(nèi)存頁面之間的映射關(guān)系,所述第三物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間;將共享物理內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄,其中,所述第四物理內(nèi)存頁面為共享虛擬內(nèi)存頁面之前映射的物理內(nèi)存頁面。
21.根據(jù)權(quán)利要求14或15所述的裝置,其特征在于, 若所述進程包括多個進程,則所述第一重映射單元具體用于,將所述監(jiān)控單元分別監(jiān)測出的所述多個進程中的每個進程對所述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性;或者,將所述監(jiān)控單元監(jiān)測出的所述多個進程中的其中一個進程對所述共享虛擬內(nèi)存頁面的訪問特性,作為所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性,若所述監(jiān)測出的所述進程對共享虛擬內(nèi)存頁面的訪問特性符合第一條件,且所述共享虛擬內(nèi)存頁面當前對應(yīng)所述多個進程的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面對應(yīng)所述多個進程的管理模式修改為共享物理內(nèi)存模式。
22.根據(jù)權(quán)利要求15所述的裝置,其特征在于, 若所述進程包括多個進程,則所述第二重映射單元具體用于,將所述監(jiān)控單元分別監(jiān)測出的所述多個進程中的每個進程對所述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性;或者,將所述監(jiān)控單元監(jiān)測出的所述多個進程中的其中一個進程對所述共享虛擬內(nèi)存頁面的訪問特性,作為所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性,若所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性符合第二條件,且所述共享虛擬內(nèi)存頁面當前對應(yīng)所述多個進程的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面對應(yīng)所述多個進程的管理模式修改為分布式共享內(nèi)存模式。
23.一種確定共享虛擬內(nèi)存頁面管理模式的裝置,其特征在于,包括: 監(jiān)控單元,用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性; 與所述監(jiān)控單元連接的第二重映射單元,用于若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
24.根據(jù)權(quán)利要求23所述的裝置,其特征在于, 所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,則在第一物理內(nèi)存空間中為所述共享虛擬內(nèi)存頁面分配第一物理內(nèi)存頁面;將第二物理內(nèi)存頁面存儲的數(shù)據(jù)拷貝到所述第一物理內(nèi)存頁面,其中,所述第二物理內(nèi)存頁面歸屬于共享物理內(nèi)存空間,所述第二物理內(nèi)存頁面為所述共享虛擬內(nèi)存頁面當前所映射的物理內(nèi)存頁面;建立所述共享虛擬內(nèi)存頁面和第一物理內(nèi)存頁面之間的映射關(guān)系;將分布式共享內(nèi)存模式作為所述共享虛擬內(nèi)存頁面的管理模式進行記錄。
25.根據(jù)權(quán)利要求23或24所述的裝置,其特征在于, 所述第二設(shè)定條件包括: 訪問頻率大于第二閾值、或者訪問方式為只讀訪問、或者讀訪問的頻率大于第五閾值、或者讀訪問的比例大于第六閾值; 其中, 所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問頻率; 所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的訪問頻率大于第二閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式; 或者, 所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問方式; 所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的訪問方式為只讀訪問,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式; 或者, 所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的讀訪問的頻率; 所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的讀訪問的頻率大于第五閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式; 或者, 所述監(jiān)控單元具體用于監(jiān)測進程對共享虛擬內(nèi)存頁面的讀訪問的比例; 所述第二重映射單元具體用于,若所述監(jiān)控單元監(jiān)測出的讀訪問的比例大于第六閾值,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式共享內(nèi)存模式。
26.根據(jù)權(quán)利要求23至25任一項所述的裝置,其特征在于,
若所述進程包括多個進程,則所述第二重映射單元具體用于,將所述監(jiān)控單元分別監(jiān)測出的所述多個進程中的每個進程對所述共享虛擬內(nèi)存頁面的訪問特性的平均值或加權(quán)平均值或和值或加權(quán)和值,作為監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性;或者,將所述監(jiān)控單元監(jiān)測出的所述多個進程中的其中一個進程對所述共享虛擬內(nèi)存頁面的訪問特性,作為所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性,若所述監(jiān)測出的所述多個進程對共享虛擬內(nèi)存頁面的訪問特性符合第二條件,且所述共享虛擬內(nèi)存頁面當前對應(yīng)所述多個進程的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面對應(yīng)所述多個進程的管理模式修改為分布式共享內(nèi)存模式。
27.一種計算機系統(tǒng),其特征在于,包括: 總線、 與所述總線相連的處理器、 與所述總線相連的存儲器、 其中,所述處理器通過所述總線調(diào)用所述存儲器中存儲的代碼,以用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性;若監(jiān)測出的所述訪問特性符合第一設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為分布式共享內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為共享物理內(nèi)存模式。
28.一種計算機系統(tǒng),其特征在于,包括:總線、 與所述總線相連的處理器、 與所述總線相連的存儲器、 其中,所述處理器通過所述總線調(diào)用所述存儲器中存儲的代碼,以用于監(jiān)測進程對共享虛擬內(nèi)存頁面的訪問特性;若監(jiān)測出的所述訪問特性符合第二設(shè)定條件,且所述共享虛擬內(nèi)存頁面當前的管理模式為共享物理內(nèi)存模式,將所述共享虛擬內(nèi)存頁面的管理模式修改為分布式 共享內(nèi)存模式。
【文檔編號】G06F9/455GK103902459SQ201210572056
【公開日】2014年7月2日 申請日期:2012年12月25日 優(yōu)先權(quán)日:2012年12月25日
【發(fā)明者】林擎天, 朱望斌, 顏友亮, 王卓立, 史經(jīng)浩 申請人:華為技術(shù)有限公司