欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種構(gòu)建內(nèi)存訪問模型的方法及裝置的制作方法

文檔序號(hào):6359097閱讀:201來源:國知局
專利名稱:一種構(gòu)建內(nèi)存訪問模型的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別涉及一種構(gòu)建內(nèi)存訪問模型的方法及裝置。
背景技術(shù)
隨著計(jì)算機(jī)技術(shù)的日新月異的發(fā)展,處理器的速度和內(nèi)存訪問速度的差距越來越大,內(nèi)存系統(tǒng)成為性能的瓶頸,因此針對(duì)內(nèi)存系統(tǒng)亟需優(yōu)化。其中,如果能夠構(gòu)建出應(yīng)用程序的內(nèi)存訪問模型,就可以根據(jù)構(gòu)建的內(nèi)存訪問模型提出合適的內(nèi)存系統(tǒng)的優(yōu)化方法,從而可以對(duì)內(nèi)存系統(tǒng)進(jìn)行優(yōu)化。目前,現(xiàn)有技術(shù)存在一種構(gòu)建內(nèi)存訪問模型的方法,具體為在計(jì)算機(jī)系統(tǒng)上,實(shí)時(shí)監(jiān)聽?wèi)?yīng)用程序,如果監(jiān)聽出應(yīng)用程序訪問內(nèi)存,則獲取應(yīng)用程序每次訪問內(nèi)存時(shí)的內(nèi)存訪問地址,將獲取的內(nèi)存訪問地址存儲(chǔ)在內(nèi)存中指定的區(qū)域內(nèi),然后再根據(jù)指定的區(qū)域內(nèi)存儲(chǔ)的內(nèi)存訪問地址構(gòu)建應(yīng)用程序的內(nèi)存訪問模型。其中,當(dāng)構(gòu)建出應(yīng)用程序的內(nèi)存訪問模型后就可以根據(jù)構(gòu)建的內(nèi)存訪問模型對(duì)內(nèi)存系統(tǒng)提出合適的優(yōu)化方法。其中,現(xiàn)有技術(shù)在構(gòu)建內(nèi)存訪問模型時(shí),需將應(yīng)用程序每次訪問內(nèi)存時(shí)的內(nèi)存訪問地址存儲(chǔ)在內(nèi)存中指定的區(qū)域內(nèi),如此會(huì)消耗大量的內(nèi)存,將會(huì)產(chǎn)生內(nèi)存資源緊張,從而影響系統(tǒng)性能,甚至造成系統(tǒng)崩潰。

發(fā)明內(nèi)容
為了減少內(nèi)存消耗和系統(tǒng)性能的影響以及避免造成系統(tǒng)崩潰,本發(fā)明實(shí)施例提供了一種構(gòu)建內(nèi)存訪問模型的方法及裝置。所述技術(shù)方案如下一種構(gòu)建內(nèi)存訪問模型的方法,所述方法包括獲取引用內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表,并將所述頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的 I^esent (當(dāng)前)位清零,所述頁表用于存儲(chǔ)引用所述內(nèi)存塊的進(jìn)程所要訪問的頁的頁表項(xiàng);對(duì)引用所述內(nèi)存塊的進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí);如果引用所述內(nèi)存塊的進(jìn)程訪問所述內(nèi)存塊中的頁時(shí)產(chǎn)生缺頁中斷事件,則增加所述訪問的頁的訪問次數(shù);其中,所述缺頁中斷事件為引用所述內(nèi)存塊的進(jìn)程判斷出所述訪問的頁的頁表項(xiàng)包括的Present位被清零時(shí)產(chǎn)生的,所述訪問的頁的頁表項(xiàng)為引用所述內(nèi)存塊的進(jìn)程從其對(duì)應(yīng)的頁表中獲取得到的;根據(jù)所述內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建所述內(nèi)存塊的內(nèi)存訪問模型,所述內(nèi)存訪問模型至少包括所述內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和訪問頻率。。一種構(gòu)建內(nèi)存訪問模型的方法,所述方法包括獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表,并將所述頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的Present 位清零,所述頁表用于存儲(chǔ)所述目標(biāo)進(jìn)程所要訪問的頁的頁表項(xiàng);對(duì)所述目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí);如果所述目標(biāo)進(jìn)程訪問待訪問的頁時(shí)產(chǎn)生缺頁中斷事件,則增加所述待訪問的頁
9的訪問次數(shù);其中,所述缺頁中斷事件為所述目標(biāo)進(jìn)程判斷所述待訪問的頁的頁表項(xiàng)包括的I^esent位被清零時(shí)產(chǎn)生的,所述待訪問的頁的頁表項(xiàng)為所述目標(biāo)進(jìn)程從其對(duì)應(yīng)的頁表中獲取得到的;根據(jù)所述目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建所述目標(biāo)進(jìn)程的內(nèi)存訪問模型,所述內(nèi)存訪問模型至少包括所述目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和訪問頻率。一種構(gòu)建內(nèi)存訪問模型的裝置,所述裝置包括第一獲取模塊,用于獲取引用內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表,并將所述頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的I^esent位清零,所述頁表用于存儲(chǔ)引用所述內(nèi)存塊的進(jìn)程所要訪問的頁的頁表項(xiàng);第一監(jiān)聽模塊,用于對(duì)引用所述內(nèi)存塊的進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí);第一增加模塊,用于如果引用所述內(nèi)存塊的進(jìn)程訪問所述內(nèi)存塊中的頁時(shí)產(chǎn)生缺頁中斷事件,則增加所述訪問的頁的訪問次數(shù);其中,所述缺頁中斷事件為引用所述內(nèi)存塊的進(jìn)程判斷出所述訪問的頁的頁表項(xiàng)包括的I^esent位被清零時(shí)產(chǎn)生的,所述訪問的頁的頁表項(xiàng)為引用所述內(nèi)存塊的進(jìn)程從其對(duì)應(yīng)的頁表中獲取得到的;第二獲取模塊,用于根據(jù)所述內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建所述內(nèi)存塊的內(nèi)存訪問模型,所述內(nèi)存訪問模型至少包括所述內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和訪問頻率。一種構(gòu)建內(nèi)存訪問模型的裝置,所述裝置包括第五獲取模塊,用于獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表,并將所述頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的!^resent位清零,所述頁表用于存儲(chǔ)所述目標(biāo)進(jìn)程所要訪問的頁的頁表項(xiàng);第二監(jiān)聽模塊,用于對(duì)所述目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí);第二增加模塊,用于所述目標(biāo)進(jìn)程訪問待訪問的頁時(shí)產(chǎn)生缺頁中斷事件,則增加所述待訪問的頁的訪問次數(shù);其中,所述缺頁中斷事件為所述目標(biāo)進(jìn)程判斷所述待訪問的頁的頁表項(xiàng)包括的!^resent位被清零時(shí)產(chǎn)生的,所述待訪問的頁的頁表項(xiàng)為所述目標(biāo)進(jìn)程從其對(duì)應(yīng)的頁表中獲取得到的;第六獲取模塊,用于根據(jù)所述目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建所述目標(biāo)進(jìn)程的內(nèi)存訪問模型,所述內(nèi)存訪問模型至少包括所述目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和訪問頻率。在本發(fā)明中,獲取引用內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表并將獲取的頁表中的每個(gè)頁表項(xiàng)包括的!^resent位清零,對(duì)引用該內(nèi)存塊的進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí),如果引用該內(nèi)存地塊的進(jìn)程訪問頁時(shí)產(chǎn)生缺頁中斷事件,則增加訪問的頁的訪問次數(shù),根據(jù)該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建該內(nèi)存塊的內(nèi)存訪問模型;或者,獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表,將獲取的頁表中的每個(gè)頁表項(xiàng)包括的I^esent位清零,對(duì)該目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí),如果目標(biāo)進(jìn)程訪問內(nèi)存的頁時(shí)產(chǎn)生缺頁中斷事件,則增加訪問的頁的訪問次數(shù),根據(jù)目標(biāo)進(jìn)程所訪問的頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建目標(biāo)進(jìn)程的內(nèi)存訪問模型,如此在構(gòu)建該內(nèi)存塊的內(nèi)存訪問模型時(shí)不需要記錄引用該內(nèi)存塊的每個(gè)進(jìn)程訪問該內(nèi)存塊的內(nèi)存訪問地址;或者在構(gòu)建目標(biāo)進(jìn)程的內(nèi)存訪問模型時(shí)不需要記錄目標(biāo)進(jìn)程訪問內(nèi)存的內(nèi)存訪問地址,減少內(nèi)存消耗和對(duì)系統(tǒng)性能的影響,從而避免造成系統(tǒng)崩潰。3/16 頁


圖1是本發(fā)明實(shí)施例圖2是本發(fā)明實(shí)施例圖3是本發(fā)明實(shí)施例圖4是本發(fā)明實(shí)施例圖5是本發(fā)明實(shí)施例圖6是本發(fā)明實(shí)施例圖7是本發(fā)明實(shí)施例
1提供的一種構(gòu)建內(nèi)存訪問模型的方法流程圖 2提供的一種構(gòu)建內(nèi)存訪問模型的方法流程圖 3提供的一種構(gòu)建內(nèi)存訪問模型的方法流程圖 4提供的一種構(gòu)建內(nèi)存訪問模型的方法流程圖 5提供的一種構(gòu)建內(nèi)存訪問模型的方法流程圖 6提供的一種構(gòu)建內(nèi)存訪問模型的裝置示意圖 7提供的一種構(gòu)建內(nèi)存訪問模型的裝置示意圖,
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。實(shí)施例1如圖1所示,本發(fā)明實(shí)施例提供了一種構(gòu)建內(nèi)存訪問模型的方法,包括步驟101 獲取引用內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表,并將獲取的頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的Present位清零;其中,頁表用于存儲(chǔ)引用該內(nèi)存塊的進(jìn)程所要訪問的頁的頁表項(xiàng)。步驟102 對(duì)引用該內(nèi)存塊的進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí);步驟103 如果引用該內(nèi)存塊的進(jìn)程訪問該內(nèi)存塊中的頁時(shí)產(chǎn)生缺頁中斷事件, 則增加訪問的頁的訪問次數(shù);其中,該缺頁中斷事件為引用該內(nèi)存塊的進(jìn)程判斷出訪問的頁的頁表項(xiàng)包括的 Present位被清零時(shí)產(chǎn)生的,訪問的頁的頁表項(xiàng)為引用該內(nèi)存塊的進(jìn)程從其對(duì)應(yīng)的頁表中獲取得到的。步驟104 根據(jù)該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建該內(nèi)存塊的內(nèi)存訪問模型,內(nèi)存訪問模型至少包括該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和訪問頻率。在本發(fā)明實(shí)施例中,獲取引用內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表并將獲取的頁表中的每個(gè)頁表項(xiàng)包括的I^esent位清零,對(duì)引用該內(nèi)存塊的進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí),如果引用該內(nèi)存塊的進(jìn)程訪問頁時(shí)產(chǎn)生缺頁中斷事件,則增加訪問的頁的訪問次數(shù),根據(jù)該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建該內(nèi)存塊的內(nèi)存訪問模型,如此在構(gòu)建該內(nèi)存塊的內(nèi)存訪問模型時(shí)不需要記錄引用該內(nèi)存塊的每個(gè)進(jìn)程訪問內(nèi)存的內(nèi)存訪問地址,減少內(nèi)存消耗和對(duì)系統(tǒng)性能的影響,從而避免造成系統(tǒng)崩潰。實(shí)施例2如圖2所示,本發(fā)明實(shí)施例提供了一種構(gòu)建內(nèi)存訪問模型的方法,包括步驟201 對(duì)節(jié)點(diǎn)的內(nèi)存進(jìn)行劃分,將節(jié)點(diǎn)的內(nèi)存劃分成多個(gè)內(nèi)存段;其中,可以通過預(yù)設(shè)的劃分策略將節(jié)點(diǎn)的內(nèi)存劃分成多個(gè)內(nèi)存段,預(yù)設(shè)的劃分策略可以包括將節(jié)點(diǎn)的內(nèi)存劃分成等大小的多個(gè)內(nèi)存段。其中,計(jì)算機(jī)系統(tǒng)中包括多個(gè)節(jié)點(diǎn),且每個(gè)節(jié)點(diǎn)至少包括CPU (Central Processing Unit,中央處理器)和內(nèi)存,對(duì)于任一個(gè)節(jié)點(diǎn),該節(jié)點(diǎn)內(nèi)的CPU等設(shè)備訪問該節(jié)
11點(diǎn)內(nèi)的內(nèi)存稱為訪問本地內(nèi)存,在計(jì)算機(jī)系統(tǒng)中,該節(jié)點(diǎn)以外的其他節(jié)點(diǎn)訪問該節(jié)點(diǎn)內(nèi)的內(nèi)存稱為遠(yuǎn)端節(jié)點(diǎn)訪問該內(nèi)存。步驟202 對(duì)于任一個(gè)內(nèi)存段,通過該節(jié)點(diǎn)對(duì)應(yīng)的互聯(lián)芯片實(shí)時(shí)監(jiān)聽該內(nèi)存段并開始計(jì)時(shí),如果監(jiān)聽出存在遠(yuǎn)端節(jié)點(diǎn)(除該節(jié)點(diǎn)以外的其他節(jié)點(diǎn))訪問該內(nèi)存段,則增加該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù);其中,每個(gè)節(jié)點(diǎn)都有對(duì)應(yīng)的互聯(lián)芯片,對(duì)于任一個(gè)節(jié)點(diǎn),如果存在遠(yuǎn)端節(jié)點(diǎn)需要訪問該節(jié)點(diǎn)的內(nèi)存,則遠(yuǎn)端節(jié)點(diǎn)需要通過該節(jié)點(diǎn)的互聯(lián)芯片訪問該節(jié)點(diǎn)的內(nèi)存;因此,在本實(shí)施例中,可以通過該節(jié)點(diǎn)對(duì)應(yīng)的互聯(lián)芯片監(jiān)聽是否存在遠(yuǎn)端節(jié)點(diǎn)訪問該節(jié)點(diǎn)中的內(nèi)存段。其中,互聯(lián)芯片中包括多個(gè)計(jì)時(shí)器和多個(gè)計(jì)數(shù)器,在本實(shí)施例中,可以在互聯(lián)芯片包括的多個(gè)計(jì)時(shí)器和多個(gè)計(jì)數(shù)器中為該內(nèi)存段選擇對(duì)應(yīng)的一個(gè)計(jì)時(shí)器和計(jì)數(shù)器,該計(jì)時(shí)器用于計(jì)時(shí),該計(jì)數(shù)器用于統(tǒng)計(jì)該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù),即如果互聯(lián)芯片監(jiān)聽出存在遠(yuǎn)端節(jié)點(diǎn)訪問該內(nèi)存段,則通過增加該計(jì)數(shù)器的值來實(shí)現(xiàn)增加該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)。另外,該計(jì)數(shù)器的初值可以為0等,增加該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)可以為1 等,在本實(shí)施例中,對(duì)二者的具體取值不做限定。步驟203 根據(jù)該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)和計(jì)時(shí)的時(shí)間,計(jì)算出該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率;其中,可以周期性地計(jì)算出該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率。具體地,從該內(nèi)存段對(duì)應(yīng)的計(jì)時(shí)器中讀取計(jì)時(shí)的時(shí)間,從該內(nèi)存段對(duì)應(yīng)的計(jì)數(shù)器中讀取該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù),將該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)與計(jì)時(shí)的時(shí)間做比值運(yùn)算,得到該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率。其中,在本實(shí)施例中,可以從該節(jié)點(diǎn)對(duì)應(yīng)的互聯(lián)芯片中為該節(jié)點(diǎn)包括的每個(gè)內(nèi)存段選擇對(duì)應(yīng)的一個(gè)計(jì)時(shí)器和計(jì)數(shù)器,如此可以通過互聯(lián)芯片實(shí)時(shí)監(jiān)聽該節(jié)點(diǎn)包括的每個(gè)內(nèi)存段,從而得到每個(gè)內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù),然后再周期性地計(jì)算出每個(gè)內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率。步驟204 判斷該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)是否超過第一閾值以及該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率是否超過第二閾值,如果該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)超過第一閾值且該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率超過第二閾值,則執(zhí)行步驟205 ;其中,如果該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)沒有超過第一閾值或該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率沒有超過第二閾值,則繼續(xù)實(shí)時(shí)監(jiān)聽是否有遠(yuǎn)端節(jié)點(diǎn)訪問該內(nèi)存段。步驟205 對(duì)該內(nèi)存段進(jìn)行劃分,將該內(nèi)存段劃分成多個(gè)內(nèi)存塊;其中,可以通過預(yù)設(shè)的劃分策略對(duì)該內(nèi)存段進(jìn)行劃分,將該內(nèi)存段劃分成多個(gè)內(nèi)存塊。步驟206 對(duì)于任一個(gè)內(nèi)存塊,通過互聯(lián)芯片實(shí)時(shí)監(jiān)聽該內(nèi)存塊并開始計(jì)時(shí),如果監(jiān)聽出存在遠(yuǎn)端節(jié)點(diǎn)訪問該內(nèi)存塊,則增加該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù);其中,在本實(shí)施例中,可以在互聯(lián)芯片剩余的計(jì)數(shù)器和計(jì)時(shí)器中為每個(gè)內(nèi)存塊選擇對(duì)應(yīng)的計(jì)數(shù)器和計(jì)時(shí)器,每個(gè)計(jì)數(shù)器用于統(tǒng)計(jì)其自身對(duì)應(yīng)的內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù),即對(duì)于任一個(gè)內(nèi)存塊,如果監(jiān)聽出存在遠(yuǎn)端節(jié)點(diǎn)訪問該內(nèi)存塊,則通過增加該內(nèi)存塊對(duì)應(yīng)的計(jì)數(shù)器的值來實(shí)現(xiàn)增加該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)。 步驟207 根據(jù)該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)和計(jì)時(shí)的時(shí)間,計(jì)算出該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率;其中,可以周期性地計(jì)算出該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率。具體地,將該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)與計(jì)時(shí)的時(shí)間做比值運(yùn)算,得到該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率。其中,在本實(shí)施例中,可以按上述206和207的步驟計(jì)算出每個(gè)內(nèi)存塊的被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率。步驟208 判斷該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)是否超過第三閾值以及該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率是否超過第四閾值,如果該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)超過第三閾值且該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率超過第四閾值,則執(zhí)行步驟209 ;其中,如果該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)沒有超過第三閾值或該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率沒有超過第四閾值,則繼續(xù)實(shí)時(shí)監(jiān)聽是否有遠(yuǎn)端節(jié)點(diǎn)訪問該內(nèi)存塊。其中,第三閾值可以等于、大于或小于第一閾值,第四閾值可以等于、大于或小于
第二閾值。其中,在本實(shí)施例中,如果該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)超過第三閾值且該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率超過第四閾值,則可以為該內(nèi)存塊建立對(duì)應(yīng)的一個(gè)統(tǒng)計(jì)線程,并通過該統(tǒng)計(jì)線程來執(zhí)行如下的步驟。步驟209 通過反向映射的方法,獲取到引用該內(nèi)存塊的所有進(jìn)程,并獲取每個(gè)進(jìn)程對(duì)應(yīng)的頁表,每個(gè)進(jìn)程對(duì)應(yīng)的頁表用于存儲(chǔ)每個(gè)進(jìn)程所要訪問的頁的頁表項(xiàng),頁的頁表項(xiàng)至少包括頁的頁表項(xiàng)信息和頁的Present位;其中,內(nèi)存的最小單位為頁,每個(gè)內(nèi)存塊包括一個(gè)或多個(gè)頁,訪問內(nèi)存的每個(gè)進(jìn)程對(duì)應(yīng)一個(gè)頁表,頁表中存儲(chǔ)進(jìn)程所要訪問的頁的頁表項(xiàng);其中,頁表中的每個(gè)頁表項(xiàng)包括一個(gè)!^resent位和頁表項(xiàng)信息,如果某個(gè)頁有效,則該頁的頁表項(xiàng)中包括的!^resent位被置位,且進(jìn)程可以訪問該頁,如果某個(gè)頁無效,則該頁的頁表項(xiàng)中包括的!^resent位被清零, 且進(jìn)程無法直接訪問該頁。步驟210 在節(jié)點(diǎn)的內(nèi)存中申請(qǐng)一塊內(nèi)存區(qū)域,將獲取的頁表中的每個(gè)頁表項(xiàng)包括的!^resent位存儲(chǔ)在該內(nèi)存區(qū)域中;具體地,在節(jié)點(diǎn)的內(nèi)存中劃分一塊內(nèi)存區(qū)域,對(duì)于獲取的任一個(gè)頁表,獲取該頁表對(duì)應(yīng)的進(jìn)程的進(jìn)程號(hào),根據(jù)該頁表中的每個(gè)頁表項(xiàng)在頁表中的序號(hào)、獲取的進(jìn)程號(hào)和該內(nèi)存區(qū)域的起始地址通過預(yù)設(shè)的計(jì)算模型計(jì)算出在該內(nèi)存區(qū)域中存儲(chǔ)每個(gè)頁表項(xiàng)中包括的 Present位的內(nèi)存地址,根據(jù)存儲(chǔ)每個(gè)頁表項(xiàng)中包括的Present位的內(nèi)存地址將該頁表中的每個(gè)頁表項(xiàng)包括的I^esent位存儲(chǔ)到該內(nèi)存區(qū)域中。其中,對(duì)于獲取的其他每個(gè)頁表,按上述相同的方法將其他每個(gè)頁表中的每個(gè)頁表項(xiàng)包括的!^resent位存儲(chǔ)在該內(nèi)存區(qū)域中。其中,預(yù)設(shè)的計(jì)算模型可以如公式(1)所示,Memoryaddress為內(nèi)存地址, Startaddress為內(nèi)存區(qū)域的起始地址,ProcessID為進(jìn)程號(hào),element為系數(shù)以及number 為頁表項(xiàng)在頁表中的序號(hào)。Memoryaddress = Startaddress+ProcessID X element+number......(1)。步驟211 在獲取的頁表中將每個(gè)頁表項(xiàng)包括的Present位清零;其中,當(dāng)進(jìn)程需要訪問內(nèi)存的某個(gè)頁時(shí),該進(jìn)程先從其自身對(duì)應(yīng)的頁表中獲取所要訪問頁對(duì)應(yīng)的頁表項(xiàng),對(duì)獲取的頁表項(xiàng)包括的I^esent位進(jìn)行判斷,如果獲取的頁表項(xiàng)包括的!^resent位被置位,則該進(jìn)程根據(jù)獲取的頁表項(xiàng)包括所需要訪問頁的頁表項(xiàng)信息獲取所需要訪問頁的起始地址,根據(jù)獲取的起始地址從內(nèi)存中尋找出所需要訪問的頁,然后在尋找的頁中進(jìn)行數(shù)據(jù)的讀寫操作以實(shí)現(xiàn)訪問所需要訪問的頁;如果獲取的頁表項(xiàng)包括的 Present位被清零,則該進(jìn)程會(huì)產(chǎn)生缺頁中斷事件。其中,對(duì)于任一個(gè)進(jìn)程,無法監(jiān)測到該進(jìn)程訪問內(nèi)存中的頁的過程,但可以檢測出該進(jìn)程產(chǎn)生的缺頁中斷事件;如果該進(jìn)程從其自身對(duì)應(yīng)的頁表中獲取所需要訪問頁的頁表項(xiàng)中包括的I^esent位被清零,則該進(jìn)程會(huì)產(chǎn)生缺頁中斷事件,可以檢測到該進(jìn)程產(chǎn)生的缺頁中斷事件,并據(jù)此確定出該進(jìn)程訪問內(nèi)存中的頁。因此,在本實(shí)施例中,在引用該內(nèi)存塊的每個(gè)進(jìn)程對(duì)應(yīng)的頁表中,將每個(gè)頁的頁表項(xiàng)包括的I^esent位全部清零,如此當(dāng)引用該內(nèi)存塊的進(jìn)程訪問該內(nèi)存塊中的頁時(shí)就會(huì)產(chǎn)生缺頁中斷事件,并檢測到該進(jìn)程產(chǎn)生的缺頁中斷事件,然后據(jù)此確定出該進(jìn)程訪問該內(nèi)存塊中的頁。步驟212 實(shí)時(shí)監(jiān)聽引用該內(nèi)存塊的進(jìn)程并開始計(jì)時(shí),如果存在引用該內(nèi)存塊的進(jìn)程訪問該內(nèi)存塊中的頁時(shí)產(chǎn)生缺頁中斷事件,增加該進(jìn)程所訪問的頁的次數(shù);具體地,實(shí)時(shí)監(jiān)聽引用該內(nèi)存塊的進(jìn)程并開始計(jì)時(shí),如果監(jiān)聽出存在引用該內(nèi)存塊的進(jìn)程訪問該內(nèi)存塊中的頁時(shí)產(chǎn)生的缺頁中斷事件,其中,缺頁中斷事件是該進(jìn)程判斷出訪問的頁的頁表項(xiàng)包括的I^esent位被清零時(shí)產(chǎn)生的,訪問的頁的頁表項(xiàng)為該進(jìn)程從其自身對(duì)應(yīng)的頁表中獲取得到的,獲取訪問的頁的頁表項(xiàng)包括的頁表項(xiàng)信息,根據(jù)該頁表項(xiàng)信息獲取訪問的頁的起始地址,并根據(jù)獲取的起始地址確定出訪問的頁,并增加訪問的頁的訪問次數(shù)。其中,在本實(shí)施例中,可以為該內(nèi)存塊設(shè)置對(duì)應(yīng)的計(jì)時(shí)器以及為該內(nèi)存塊包括的每個(gè)頁設(shè)置對(duì)應(yīng)的一個(gè)計(jì)數(shù)器,每個(gè)頁對(duì)應(yīng)的計(jì)數(shù)器用于統(tǒng)計(jì)其自身對(duì)應(yīng)的頁的訪問次數(shù),即通過增加某個(gè)頁對(duì)應(yīng)的計(jì)數(shù)器的值來實(shí)現(xiàn)增加該頁的訪問次數(shù);由于該內(nèi)存塊中包括的頁的數(shù)目可能較多,因此該內(nèi)存塊中包括的每個(gè)頁對(duì)應(yīng)的計(jì)數(shù)器都是采用軟件的形式來實(shí)現(xiàn)統(tǒng)計(jì)每個(gè)頁的訪問次數(shù)。其中,在本實(shí)施例中,由于對(duì)引用該內(nèi)存塊中的所有進(jìn)程進(jìn)行監(jiān)控,從而可以統(tǒng)計(jì)出該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)。進(jìn)一步地,為了保證該進(jìn)程能夠正常訪問所訪問的頁,在本實(shí)施例中,當(dāng)增加該進(jìn)程所訪問的頁的次數(shù)之后,還可以執(zhí)行如下(1)-03)的步驟,分別為(1):從該內(nèi)存區(qū)域中獲取該進(jìn)程所訪問的頁的!^resent位,根據(jù)獲取的!^resent 位判斷該進(jìn)程所訪問的頁在節(jié)點(diǎn)的內(nèi)存中是否有效,如果有效,則執(zhí)行O);具體地,根據(jù)該進(jìn)程的進(jìn)程號(hào)、該進(jìn)程所訪問的頁的頁表項(xiàng)在頁表中的序號(hào)和該內(nèi)存區(qū)域的起始地址并通過預(yù)設(shè)的計(jì)算模型計(jì)算出內(nèi)存地址,根據(jù)計(jì)算的內(nèi)存地址從該內(nèi)存區(qū)域中對(duì)應(yīng)的空間中讀取該進(jìn)程所訪問的頁的!^resent位,對(duì)獲取的!^resent位進(jìn)行判斷,如果獲取的I^esent位被置位,則判斷出該進(jìn)程所要訪問的頁有效,如果獲取的 I^esent位被清零,則判斷出該進(jìn)程所訪問的頁無效。其中,如果判斷出該進(jìn)程所訪問的頁無效,則需要觸發(fā)缺頁異常處理程序,并由觸發(fā)的缺頁異常處理程序進(jìn)行異常處理。(2)在該進(jìn)程對(duì)應(yīng)的頁表中將該進(jìn)程所訪問的頁的頁表項(xiàng)包括的!^resent位置
14位,并觸發(fā)該進(jìn)程重新訪問所訪問的頁;其中,該進(jìn)程被觸發(fā)后,從自身對(duì)應(yīng)的頁表中獲取其自身所訪問的頁的頁表項(xiàng),并對(duì)獲取的頁表項(xiàng)中包括的!^resent位進(jìn)行判斷,且判斷出獲取的頁表項(xiàng)包括的!^resent位被置位,然后再根據(jù)獲取的頁表項(xiàng)中包括的頁表項(xiàng)信息獲取所要訪問頁的起始地址,根據(jù)獲取的起始地址從該內(nèi)存塊中尋找出對(duì)應(yīng)的頁,并在尋找的頁中進(jìn)行數(shù)據(jù)的讀寫操作,如此該進(jìn)程實(shí)現(xiàn)訪問所訪問的頁。(3)當(dāng)該進(jìn)程訪問完所訪問的頁,在該進(jìn)程對(duì)應(yīng)的頁表中將該進(jìn)程所訪問的頁的頁表項(xiàng)中包括的I^resent位清零。步驟213 根據(jù)該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間,構(gòu)建該內(nèi)存塊的內(nèi)存訪問模型,內(nèi)存訪問模型至少包括該內(nèi)存塊中的每個(gè)頁的訪問頻率和訪問次數(shù)。其中,可以周期性地構(gòu)建內(nèi)存訪問模型。具體地,分別將該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)與計(jì)時(shí)的時(shí)間做比值運(yùn)算,得到該內(nèi)存塊包括的每個(gè)頁的訪問頻率,如此得到該內(nèi)存塊的內(nèi)存訪問模型至少包括該內(nèi)存塊中的每個(gè)頁的訪問頻率和訪問次數(shù)。在本發(fā)明實(shí)施例中,獲取到遠(yuǎn)端節(jié)點(diǎn)訪問的次數(shù)超過第三閾值以及遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率超過第四閾值的內(nèi)存塊,獲取引用該內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表并將獲取的頁表中的每個(gè)頁表項(xiàng)的I^esent位清零,對(duì)引用該內(nèi)存塊的進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí),如果監(jiān)聽出存在引用該內(nèi)存塊的進(jìn)程訪問頁時(shí)產(chǎn)生的缺頁中斷事件,則增加訪問的頁的訪問次數(shù),根據(jù)該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建內(nèi)存訪問模型,如此在構(gòu)建內(nèi)存訪問模型時(shí)不需要記錄引用該內(nèi)存塊的每個(gè)進(jìn)程訪問該內(nèi)存塊的內(nèi)存訪問地址,減少內(nèi)存消耗和對(duì)系統(tǒng)性能的影響,從而避免造成系統(tǒng)崩潰。實(shí)施例3如圖3所示,本發(fā)明實(shí)施例提供了一種構(gòu)建內(nèi)存訪問模型的方法,包括步驟301 通過預(yù)設(shè)的劃分策略對(duì)節(jié)點(diǎn)的內(nèi)存進(jìn)行劃分,將節(jié)點(diǎn)的內(nèi)存劃分成多個(gè)內(nèi)存塊;步驟302 針對(duì)任一個(gè)內(nèi)存塊,通過反向映射的方法,獲取到引用該內(nèi)存塊的所有進(jìn)程,并獲取每個(gè)進(jìn)程對(duì)應(yīng)的頁表,每個(gè)進(jìn)程對(duì)應(yīng)的頁表用于存儲(chǔ)每個(gè)進(jìn)程所要訪問的頁的頁表項(xiàng),頁的頁表項(xiàng)至少包括頁的頁表項(xiàng)信息和頁的!^resent位;其中,內(nèi)存的最小單位為頁,每個(gè)內(nèi)存塊包括一個(gè)或多個(gè)頁,訪問內(nèi)存的每個(gè)進(jìn)程對(duì)應(yīng)一個(gè)頁表,頁表中存儲(chǔ)每個(gè)進(jìn)程所要訪問的頁的頁表項(xiàng);其中,頁表中的每個(gè)頁表項(xiàng)包括一個(gè)!^resent位和頁表項(xiàng)信息,如果某個(gè)應(yīng)頁有效,則該頁的頁表項(xiàng)中包括的Present位被置位,且進(jìn)程可以訪問該頁,如果某個(gè)頁無效,則該頁的頁表項(xiàng)中包括的!^resent位被清零,且進(jìn)程無法直接訪問該頁。步驟303 在節(jié)點(diǎn)的內(nèi)存中申請(qǐng)一塊內(nèi)存區(qū)域,將獲取的頁表中的每個(gè)頁表項(xiàng)包括的!^resent位存儲(chǔ)在該內(nèi)存區(qū)域中;具體地,在節(jié)點(diǎn)的內(nèi)存中劃分一塊內(nèi)存區(qū)域,對(duì)于獲取的任一個(gè)頁表,獲取該頁表對(duì)應(yīng)進(jìn)程的進(jìn)程號(hào),根據(jù)該頁表中的每個(gè)頁表項(xiàng)在頁表中的序號(hào)、獲取的進(jìn)程號(hào)和該內(nèi)存區(qū)域的起始地址通過預(yù)設(shè)的計(jì)算模型計(jì)算出在該內(nèi)存區(qū)域中存儲(chǔ)該頁表中的每個(gè)頁表項(xiàng)包括的!^resent位的內(nèi)存地址,根據(jù)存儲(chǔ)每個(gè)頁表項(xiàng)包括的!^resent位的內(nèi)存地址將該頁表中的每個(gè)頁表項(xiàng)包括的Present位存儲(chǔ)在對(duì)應(yīng)的內(nèi)存空間中。其中,對(duì)于獲取的其他每個(gè)頁表,按上述相同的方法將其他每個(gè)頁表中的每個(gè)頁表項(xiàng)包括的!^resent位存儲(chǔ)在該內(nèi)存區(qū)域中。步驟304 在獲取的頁表中將每個(gè)頁的頁表項(xiàng)包括的Present位清零;其中,當(dāng)進(jìn)程需要訪問內(nèi)存的某個(gè)頁時(shí),該進(jìn)程先從其自身對(duì)應(yīng)的頁表中獲取所要訪問頁對(duì)應(yīng)的頁表項(xiàng),對(duì)獲取的頁表項(xiàng)包括的Present位進(jìn)行判斷,如果獲取的頁表項(xiàng)包括的Present位被置位,則該進(jìn)程根據(jù)獲取的頁表項(xiàng)包括所需要訪問頁的頁表項(xiàng)信息獲取所需要訪問頁的起始地址,根據(jù)獲取的頁的起始地址從內(nèi)存中尋找出所需要訪問的頁, 然后在尋找的頁中進(jìn)行數(shù)據(jù)的讀寫操作以實(shí)現(xiàn)訪問所需要訪問的頁;如果獲取的頁表項(xiàng)包括的I^esent位被清零,則該進(jìn)程會(huì)產(chǎn)生缺頁中斷事件。其中,在本實(shí)施例中,在引用該內(nèi)存塊的每個(gè)進(jìn)程對(duì)應(yīng)的頁表中,將每個(gè)頁的頁表項(xiàng)包括的I^esent位全部清零,如此當(dāng)引用該內(nèi)存塊的進(jìn)程訪問該內(nèi)存塊中的頁時(shí)就會(huì)產(chǎn)生缺頁中斷事件,并檢測到該進(jìn)程產(chǎn)生的缺頁中斷事件,然后據(jù)此確定出該進(jìn)程訪問該內(nèi)存塊中的頁。步驟305 實(shí)時(shí)監(jiān)聽引用該內(nèi)存塊的進(jìn)程并開始計(jì)時(shí),如果存在引用該內(nèi)存塊的訪問該內(nèi)存塊中的頁時(shí)產(chǎn)生的缺頁中斷事件,增加該進(jìn)程所訪問的頁的次數(shù);具體地,實(shí)時(shí)監(jiān)聽引用該內(nèi)存塊的進(jìn)程并開始計(jì)時(shí),如果監(jiān)聽出存在引用該內(nèi)存塊的進(jìn)程訪問該內(nèi)存塊中的頁時(shí)產(chǎn)生的缺頁中斷事件,其中,該進(jìn)程判斷出訪問的頁的頁表項(xiàng)包括的I^esent位被清零時(shí)產(chǎn)生的,訪問的頁的頁表項(xiàng)為該進(jìn)程從其自身對(duì)應(yīng)的頁表中獲取得到的,獲取訪問的頁的頁表項(xiàng)包括的頁表項(xiàng)信息,根據(jù)該頁表項(xiàng)信息獲取該進(jìn)程所訪問頁的起始地址,并根據(jù)獲取的起始地址確定出對(duì)應(yīng)的頁,并增加確定的頁的訪問次數(shù)。其中,在本實(shí)施例中,可以為該內(nèi)存塊設(shè)置對(duì)應(yīng)的計(jì)時(shí)器以及為該內(nèi)存塊包括的每個(gè)頁設(shè)置對(duì)應(yīng)的一個(gè)計(jì)數(shù)器,每個(gè)頁對(duì)應(yīng)的計(jì)數(shù)器用于統(tǒng)計(jì)其自身對(duì)應(yīng)的頁的訪問次數(shù),即通過增加某個(gè)頁對(duì)應(yīng)的計(jì)數(shù)器的值來實(shí)現(xiàn)增加該頁的訪問次數(shù);由于該內(nèi)存塊中包括的頁的數(shù)目可能較多,因此該內(nèi)存塊中包括的每個(gè)頁對(duì)應(yīng)的計(jì)數(shù)器都是采用軟件的形式來實(shí)現(xiàn)統(tǒng)計(jì)每個(gè)頁的訪問次數(shù)。其中,在本實(shí)施例中,由于對(duì)引用該內(nèi)存塊中的所有進(jìn)程進(jìn)行監(jiān)控,從而可以統(tǒng)計(jì)出該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)。進(jìn)一步地,為了保證該進(jìn)程能夠正常訪問所訪問的頁,本實(shí)施例中,當(dāng)增加該進(jìn)程所訪問的頁的次數(shù)之后,還可以執(zhí)行如下(a)-(c)的步驟,分別為(a)從該內(nèi)存區(qū)域中獲取該進(jìn)程所訪問的頁的!^resent位,根據(jù)獲取的!^resent 位判斷該進(jìn)程所訪問的頁在內(nèi)存中是否有效,如果有效,則執(zhí)行步驟(b);具體地,根據(jù)該進(jìn)程的進(jìn)程號(hào)、該進(jìn)程所訪問的頁的頁表項(xiàng)在頁表中的序號(hào)和該內(nèi)存區(qū)域的起始地址并通過預(yù)設(shè)的計(jì)算模型計(jì)算出內(nèi)存地址,根據(jù)計(jì)算的內(nèi)存地址從該內(nèi)存區(qū)域中對(duì)應(yīng)的空間中讀取該進(jìn)程所訪問的頁的!^resent位,對(duì)獲取的!^resent位進(jìn)行判斷,如果獲取的I^esent位被置位,則判斷出該進(jìn)程所要訪問的頁有效,如果獲取的 Present位被清零,則判斷出該進(jìn)程所要訪問的頁無效。其中,如果判斷出該進(jìn)程所要訪問的頁無效,則需要觸發(fā)缺頁異常處理程序,并由觸發(fā)的缺頁異常處理程序進(jìn)行異常處理。
(b)在該進(jìn)程對(duì)應(yīng)的頁表中將該進(jìn)程所要訪問的頁的頁表項(xiàng)包括的!^resent位置位,并觸發(fā)該進(jìn)程重新訪問所要訪問的頁;其中,該進(jìn)程被觸發(fā)后,從自身對(duì)應(yīng)的頁表中獲取其自身所需要訪問的頁的頁表項(xiàng),并對(duì)獲取的頁表項(xiàng)中包括的!^resent位進(jìn)行判斷,且判斷出獲取的頁表項(xiàng)包括的 Present位被置位,然后再根據(jù)獲取的頁表項(xiàng)中包括的頁表項(xiàng)信息獲取所要訪問頁的起始地址,根據(jù)獲取的起始地址從該內(nèi)存塊中尋找出對(duì)應(yīng)的頁,并在尋找的頁中進(jìn)行數(shù)據(jù)的讀寫操作,如此該進(jìn)程實(shí)現(xiàn)訪問所要訪問的頁。(C)當(dāng)該進(jìn)程訪問完所要訪問的頁,在該進(jìn)程對(duì)應(yīng)的頁表中將該進(jìn)程所要訪問的頁的頁表項(xiàng)中包括的I^resent位清零。步驟306 根據(jù)該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間,構(gòu)建該內(nèi)存塊的內(nèi)存訪問模型,內(nèi)存訪問模型至少包括該內(nèi)存塊中的每個(gè)頁的訪問頻率和訪問次數(shù)。具體地,分別將該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)與計(jì)時(shí)的時(shí)間做比值運(yùn)算,得到該內(nèi)存塊包括的每個(gè)頁的訪問頻率,如此得到該內(nèi)存塊的內(nèi)存訪問模型至少包括該內(nèi)存塊中的每個(gè)頁的訪問頻率和訪問次數(shù)。在本發(fā)明實(shí)施例中,獲取引用內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表并將獲取的頁表中的每個(gè)頁表項(xiàng)的!^resent位清零,對(duì)引用該內(nèi)存塊的進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí),如果監(jiān)聽出存在引用該內(nèi)存塊的進(jìn)程訪問頁時(shí)產(chǎn)生的缺頁中斷事件,則增加訪問的頁的訪問次數(shù),根據(jù)該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建該內(nèi)存塊的內(nèi)存訪問模型,如此在構(gòu)建內(nèi)存訪問模型時(shí)不需要記錄引用該內(nèi)存塊的每個(gè)進(jìn)程訪問該內(nèi)存塊的內(nèi)存訪問地址,減少內(nèi)存消耗和對(duì)系統(tǒng)性能的影響,從而避免造成系統(tǒng)崩潰。實(shí)施例4如圖4所示,本發(fā)明實(shí)施例提供了一種構(gòu)建內(nèi)存訪問模型的方法,包括步驟401 獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表,并將該頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的 Present位清零,頁表用于存儲(chǔ)目標(biāo)進(jìn)程所要訪問的頁的頁表項(xiàng);步驟402 對(duì)目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí);步驟403 如果述目標(biāo)進(jìn)程訪問待訪問的頁時(shí)產(chǎn)生缺頁中斷事件,則增加待訪問的頁的訪問次數(shù);其中,該缺頁中斷事件為目標(biāo)進(jìn)程判斷待訪問的頁的頁表項(xiàng)包括的Present位被清零時(shí)產(chǎn)生的,待訪問的頁的頁表項(xiàng)為目標(biāo)進(jìn)程從其對(duì)應(yīng)的頁表中獲取得到的。步驟404:根據(jù)目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建目標(biāo)進(jìn)程的內(nèi)存訪問模型,內(nèi)存訪問模型至少包括目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和訪問頻率。在本發(fā)明實(shí)施例中,獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表并將該頁表中的每個(gè)頁表項(xiàng)包括的 I^esent位清零,對(duì)目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí),如果目標(biāo)進(jìn)程訪問待訪問的頁時(shí)產(chǎn)生缺頁中斷事件,則增加待訪問的頁的訪問次數(shù),根據(jù)目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建目標(biāo)進(jìn)程的內(nèi)存訪問模型,如此在構(gòu)建目標(biāo)進(jìn)程的內(nèi)存訪問模型時(shí)不需要記錄目標(biāo)進(jìn)程訪問內(nèi)存的內(nèi)存訪問地址,減少內(nèi)存消耗和對(duì)系統(tǒng)性能的影響,從而避免造成系統(tǒng)崩潰。實(shí)施例5
如圖5所示,本發(fā)明實(shí)施例提供了一種構(gòu)建內(nèi)存訪問模型的方法,包括步驟501 當(dāng)節(jié)點(diǎn)中的目標(biāo)進(jìn)程被調(diào)度到該節(jié)點(diǎn)中的處理器時(shí),將目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)以及訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)加載到該處理器的統(tǒng)計(jì)計(jì)數(shù)寄存器中;其中,目標(biāo)進(jìn)程的上下文信息中包括目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)。具體地,當(dāng)節(jié)點(diǎn)中的進(jìn)程被調(diào)度到該節(jié)點(diǎn)的處理器中時(shí),從目標(biāo)進(jìn)程的上下文信息中提取目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù),將提取目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)加載到該處理器的統(tǒng)計(jì)計(jì)數(shù)寄存器中。其中,該處理器中包括多個(gè)計(jì)數(shù)器,進(jìn)一步地,從該處理器包括的多個(gè)計(jì)數(shù)器中選擇兩個(gè)計(jì)數(shù)器,分別為第一計(jì)數(shù)器和第二計(jì)數(shù)器,將第一計(jì)數(shù)器的初值設(shè)置為目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù),將第二計(jì)數(shù)器的初值設(shè)置為目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)。其中,計(jì)算機(jī)系統(tǒng)中包括多個(gè)節(jié)點(diǎn),節(jié)點(diǎn)至少包括處理器和內(nèi)存,該節(jié)點(diǎn)中的處理器在運(yùn)行目標(biāo)進(jìn)程時(shí),目標(biāo)進(jìn)程需要訪問該節(jié)點(diǎn)的內(nèi)存即為目標(biāo)進(jìn)程訪問本地內(nèi)存,目標(biāo)進(jìn)程需要訪問計(jì)算機(jī)系統(tǒng)中的其他節(jié)點(diǎn)的內(nèi)存即為目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存。步驟502 通過該處理器對(duì)目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽,如果監(jiān)聽出目標(biāo)進(jìn)程訪問本地內(nèi)存,則增加目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù),如果監(jiān)聽出目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存,則增加目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù);其中,可以通過增加第一計(jì)數(shù)器的值來實(shí)現(xiàn)增加目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù), 以及通過增加第二計(jì)數(shù)器的值來實(shí)現(xiàn)增加目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)。其中,當(dāng)該處理器在運(yùn)行目標(biāo)進(jìn)程時(shí),如果目標(biāo)進(jìn)程需要訪問本地內(nèi)存,則目標(biāo)進(jìn)程會(huì)調(diào)用訪問本地內(nèi)存事件,如果目標(biāo)進(jìn)程需要訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存,則目標(biāo)進(jìn)程會(huì)調(diào)用訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存事件;因此可以通過該處理器實(shí)時(shí)監(jiān)聽到目標(biāo)進(jìn)程是否訪問本地內(nèi)存和遠(yuǎn)端節(jié)點(diǎn)內(nèi)存。其中,當(dāng)目標(biāo)進(jìn)程被處理器調(diào)度后,處理器在每個(gè)時(shí)間片中為目標(biāo)進(jìn)程分配運(yùn)行時(shí)間,然后在每個(gè)時(shí)間片中處理器在為目標(biāo)進(jìn)程分配的運(yùn)行時(shí)間內(nèi)運(yùn)行目標(biāo)進(jìn)程。其中,當(dāng)目標(biāo)進(jìn)程被調(diào)離處理器時(shí),可以將目標(biāo)進(jìn)程的上下文信息中包括目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)分別更新為增加后的目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)。步驟503 當(dāng)一個(gè)時(shí)間片結(jié)束時(shí),獲取目標(biāo)進(jìn)程被調(diào)度后運(yùn)行的實(shí)際運(yùn)行時(shí)間;具體地,獲取目標(biāo)進(jìn)程被調(diào)度到處理器后經(jīng)過的時(shí)間片,將目標(biāo)進(jìn)程在獲取的每個(gè)時(shí)間片內(nèi)的運(yùn)行時(shí)間進(jìn)行累加得到目標(biāo)進(jìn)程的實(shí)際運(yùn)行時(shí)間。步驟504 根據(jù)增加后的目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)以及統(tǒng)計(jì)計(jì)數(shù)寄存器中存儲(chǔ)的目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存的次數(shù)獲取目標(biāo)進(jìn)程在實(shí)際運(yùn)行時(shí)間內(nèi)訪問本地內(nèi)存的次數(shù)和遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù);其中,可以從第一計(jì)數(shù)器中讀取目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù),從第二計(jì)數(shù)器中讀取目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)。具體地,根據(jù)目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和統(tǒng)計(jì)計(jì)數(shù)寄存器中存儲(chǔ)目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)計(jì)算出目標(biāo)進(jìn)程在實(shí)際運(yùn)行時(shí)間內(nèi)訪問本地內(nèi)存的次數(shù),根據(jù)目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)和統(tǒng)計(jì)計(jì)數(shù)寄存器存儲(chǔ)目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)計(jì)數(shù)出目標(biāo)進(jìn)程在實(shí)際運(yùn)行時(shí)間內(nèi)訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)。
步驟505 根據(jù)目標(biāo)進(jìn)程在實(shí)際運(yùn)行時(shí)間內(nèi)訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)以及實(shí)際運(yùn)行時(shí)間計(jì)算出目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率和訪問頻率;具體地,計(jì)算出目標(biāo)進(jìn)程在實(shí)際運(yùn)行時(shí)間內(nèi)訪問本地內(nèi)存的次數(shù)與訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)的比值,將計(jì)算出的比值作為目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率,根據(jù)目標(biāo)進(jìn)程在實(shí)際運(yùn)行時(shí)間內(nèi)訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)計(jì)數(shù)出目標(biāo)進(jìn)程的訪問次數(shù),根據(jù)目標(biāo)進(jìn)程的訪問次數(shù)和實(shí)際運(yùn)行時(shí)間計(jì)算出目標(biāo)進(jìn)程的訪問頻率。步驟506 對(duì)目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率和訪問頻率進(jìn)行判斷,如果目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率超過第一閾值且目標(biāo)進(jìn)程的訪問頻率超過預(yù)設(shè)的第六閾值,則執(zhí)行步驟 507 ;其中,如果目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率沒有超過第五閾值或目標(biāo)進(jìn)程的訪問頻率沒有超過第六閾值,則繼續(xù)執(zhí)行503。步驟507 獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表,目標(biāo)進(jìn)程對(duì)應(yīng)的頁表用于存儲(chǔ)目標(biāo)進(jìn)程所要訪問的頁的頁表項(xiàng),頁的頁表項(xiàng)至少包括頁的頁表項(xiàng)信息和!^resent位;其中,內(nèi)存的最小單位為頁,每個(gè)進(jìn)程對(duì)應(yīng)一個(gè)頁表,頁表中存儲(chǔ)進(jìn)程所要訪問頁的頁表項(xiàng);其中,內(nèi)存中的每個(gè)頁對(duì)應(yīng)一個(gè)!Resent位,如果某個(gè)頁有效,則該頁對(duì)應(yīng)的 Present位被置位,且進(jìn)程可以訪問該頁,如果某個(gè)頁無效,則該頁對(duì)應(yīng)的Present位被清零,且進(jìn)程無法直接訪問該頁。步驟508 在節(jié)點(diǎn)的內(nèi)存中申請(qǐng)一塊內(nèi)存區(qū)域,將獲取的頁表存儲(chǔ)的每個(gè)頁的頁表項(xiàng)中包括的!^resent位存儲(chǔ)在該內(nèi)存區(qū)域中;具體地,在節(jié)點(diǎn)的內(nèi)存中劃分一塊內(nèi)存區(qū)域,獲取目標(biāo)進(jìn)程的進(jìn)程號(hào),根據(jù)該頁表中的每個(gè)頁表項(xiàng)在頁表中的序號(hào)、獲取的進(jìn)程號(hào)和該內(nèi)存區(qū)域的起始地址通過預(yù)設(shè)的計(jì)算模型計(jì)算出在該內(nèi)存區(qū)域中存儲(chǔ)該頁表中的每個(gè)頁表項(xiàng)包括的I^esent位的內(nèi)存地址,根據(jù)存儲(chǔ)該頁表中的每個(gè)頁表項(xiàng)包括的Present位的內(nèi)存地址將該頁表中的每個(gè)頁表項(xiàng)包括的!^resent位存儲(chǔ)在該內(nèi)存區(qū)域中。步驟509 將獲取的頁表中的每個(gè)頁表項(xiàng)中包括的!^resent位清零;其中,當(dāng)目標(biāo)進(jìn)程訪問內(nèi)存的某個(gè)頁時(shí),目標(biāo)進(jìn)程首先在其對(duì)應(yīng)的頁表中獲取其自身所要訪問頁的頁表項(xiàng),并對(duì)獲取的頁表項(xiàng)中包括的I^esent位進(jìn)行判斷,由于目標(biāo)進(jìn)程對(duì)應(yīng)的頁表中存儲(chǔ)的每個(gè)頁的Present位被清零,所以目標(biāo)進(jìn)程判斷出獲取的頁表項(xiàng)中包括的Present位被清零,然后目標(biāo)進(jìn)程產(chǎn)生缺頁中斷事件。步驟510 實(shí)時(shí)監(jiān)聽目標(biāo)進(jìn)程并開始計(jì)時(shí),如果目標(biāo)進(jìn)程訪問待訪問的頁時(shí)產(chǎn)生缺頁中斷事件,則增加目標(biāo)進(jìn)程訪問待訪問的頁的訪問次數(shù);具體地,實(shí)時(shí)監(jiān)聽目標(biāo)進(jìn)程并開始計(jì)時(shí),如果監(jiān)聽出目標(biāo)進(jìn)程訪問內(nèi)存中待訪問的頁時(shí)產(chǎn)生的缺頁中斷事件,其中,所述缺頁中斷事件為目標(biāo)進(jìn)程判斷待訪問的頁的頁表項(xiàng)包括的Present位被清零時(shí)產(chǎn)生的,待訪問的頁的頁表項(xiàng)為目標(biāo)進(jìn)程從其對(duì)應(yīng)的頁表中獲取得到的,獲取待訪問的頁的頁表項(xiàng),根據(jù)該頁表項(xiàng)包括待訪問的頁的頁表項(xiàng)信息獲取待訪問的頁的起始地址,根據(jù)獲取的起始地址確定出待訪問的頁,并增加待訪問的頁的訪問次數(shù)。進(jìn)一步地,為了保證目標(biāo)進(jìn)程能夠正常訪問待訪問的頁,本實(shí)施例中,當(dāng)增加目標(biāo)進(jìn)程訪問待訪問的頁的次數(shù)之后,還可以執(zhí)行如下(A)-(C)的步驟,分別為
(A):從該內(nèi)存區(qū)域中獲取待訪問的頁的!^resent位,根據(jù)待訪問的頁的!^resent 位判斷待訪問的頁在內(nèi)存中是否有效,如果有效,則執(zhí)行步驟513 ;具體地,根據(jù)目標(biāo)進(jìn)程的進(jìn)程號(hào)、待訪問的頁的頁表項(xiàng)在頁表中的序號(hào)和該內(nèi)存區(qū)域的起始地址并通過預(yù)設(shè)的計(jì)算模型計(jì)算出內(nèi)存地址,根據(jù)計(jì)算的內(nèi)存地址從該內(nèi)存區(qū)域中讀取待訪問的頁的Present位,對(duì)獲取的Present位進(jìn)行判斷,如果獲取的Present位被置位,則判斷出待訪問的頁有效,如果獲取的I^esent位被清零,則判斷出待訪問的頁無效。其中,如果判斷出待訪問的頁無效,則需要觸發(fā)缺頁異常處理程序,并由觸發(fā)的缺頁異常處理程序進(jìn)行異常處理。(B)在目標(biāo)進(jìn)程對(duì)應(yīng)的頁表中將待訪問的頁的頁表項(xiàng)包括的Present位置位,并觸發(fā)目標(biāo)進(jìn)程重新訪問待訪問的頁;其中,目標(biāo)進(jìn)程被觸發(fā)后,從自身對(duì)應(yīng)的頁表中獲取待訪問的頁的頁表項(xiàng),并對(duì)獲取的頁表項(xiàng)中包括的!^resent位進(jìn)行判斷,且判斷出獲取的頁表項(xiàng)包括的!^resent位被置位,然后再根據(jù)獲取的頁表項(xiàng)中包括待訪問的頁的頁表項(xiàng)信息獲取待訪問的頁的起始地址,根據(jù)獲取的起始地址從節(jié)點(diǎn)的內(nèi)存中尋找出對(duì)應(yīng)的頁,并在尋找的頁中進(jìn)行數(shù)據(jù)的讀寫操作,如此目標(biāo)進(jìn)程實(shí)現(xiàn)訪問待訪問的頁。(C):當(dāng)目標(biāo)進(jìn)程訪問完待訪問的頁,在目標(biāo)進(jìn)程對(duì)應(yīng)的頁表中將待訪問的頁的頁表項(xiàng)中包括的I^resent位清零。步驟511 根據(jù)目標(biāo)進(jìn)程訪問的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間,構(gòu)建目標(biāo)進(jìn)程的內(nèi)存訪問模型,至少包括目標(biāo)進(jìn)程訪問的每個(gè)頁的訪問次數(shù)和訪問頻率。其中,可以周期性地構(gòu)建內(nèi)存訪問模型,具體地,分別將目標(biāo)進(jìn)程訪問的每個(gè)頁的訪問次數(shù)與計(jì)時(shí)的時(shí)間做比值運(yùn)算,得到目標(biāo)進(jìn)程訪問的每個(gè)的訪問頻率,如此得到目標(biāo)進(jìn)程的內(nèi)存訪問模型,至少包括目標(biāo)進(jìn)程訪問的每個(gè)頁的訪問次數(shù)和訪問頻率。進(jìn)一步地,內(nèi)存訪問模型還可以包括目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率。在本發(fā)明實(shí)施例中,獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表并將該頁表中的每個(gè)頁表項(xiàng)的 I^esent位清零,對(duì)目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí),如果監(jiān)聽出目標(biāo)進(jìn)程訪問待訪問的頁時(shí)產(chǎn)生的缺頁中斷事件,則增加待訪問的頁的訪問次數(shù),根據(jù)目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建目標(biāo)進(jìn)程的內(nèi)存訪問模型,如此在構(gòu)建目標(biāo)進(jìn)程的內(nèi)存訪問模型時(shí)不需要記錄目標(biāo)進(jìn)程訪問內(nèi)存的內(nèi)存訪問地址,減少內(nèi)存消耗和對(duì)系統(tǒng)性能的影響,從而避免造成系統(tǒng)崩潰。實(shí)施例6如圖6所示,本發(fā)明實(shí)施例提供了一種構(gòu)建內(nèi)存訪問模型的裝置,包括第一獲取模塊601,用于獲取引用內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表,并將獲取的頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的I^esent位清零,頁表用于存儲(chǔ)引用該內(nèi)存塊的進(jìn)程所要訪問的頁的頁表項(xiàng);第一監(jiān)聽模塊602,用于對(duì)引用該內(nèi)存塊的進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí);第一增加模塊603,用于如果監(jiān)聽出引用該內(nèi)存塊的進(jìn)程訪問該內(nèi)存塊中的頁時(shí)產(chǎn)生缺頁中斷事件,則增加訪問的頁的訪問次數(shù);其中,缺頁中斷事件為引用該內(nèi)存塊的進(jìn)程判斷出訪問的頁的頁表項(xiàng)包括的!^resent位被清零時(shí)產(chǎn)生的,訪問的頁的頁表項(xiàng)為引用該內(nèi)存塊的進(jìn)程從其對(duì)應(yīng)的頁表中獲取得到的;第二獲取模塊604,用于根據(jù)該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建該內(nèi)存塊的內(nèi)存訪問模型,內(nèi)存訪問模型至少包括該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和訪問頻率。其中,第一獲取模塊601包括第一獲取單元,用于通過反向映射的方法,獲取引用該內(nèi)存塊的進(jìn)程并進(jìn)一步獲取引用該內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表;第一存儲(chǔ)單元,用于在節(jié)點(diǎn)的內(nèi)存中申請(qǐng)一塊內(nèi)存區(qū)域,將獲取的頁表中的每個(gè)頁表項(xiàng)包括的Present位存儲(chǔ)在內(nèi)存區(qū)域中;第一清零單元,用于將獲取的頁表中的每個(gè)頁表項(xiàng)包括的Present位清零。其中,第一存儲(chǔ)單元包括第一計(jì)算子單元,用于在節(jié)點(diǎn)的內(nèi)存中申請(qǐng)一塊內(nèi)存區(qū)域,根據(jù)引用該內(nèi)存塊的進(jìn)程的進(jìn)程號(hào)、獲取的頁表中的每個(gè)頁表項(xiàng)在頁表中的序號(hào)和該內(nèi)存區(qū)域的起始地址, 并通過預(yù)設(shè)的計(jì)算模型計(jì)算出在該內(nèi)存區(qū)域中存儲(chǔ)獲取的頁表中的每個(gè)頁表項(xiàng)包括的 Present位的存儲(chǔ)地址;第一存儲(chǔ)子單元,用于根據(jù)獲取的頁表中的每個(gè)頁表項(xiàng)包括的!^resent位的存儲(chǔ)地址,將獲取的頁表中的每個(gè)頁表項(xiàng)包括的!^resent位存儲(chǔ)在該內(nèi)存區(qū)域中。其中,第二獲取模塊604,具體用于根據(jù)該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間計(jì)算出該內(nèi)存塊中的每個(gè)頁的訪問頻率,得到內(nèi)存訪問模型,至少包括該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和訪問頻率。進(jìn)一步地,該裝置還包括第三獲取模塊,用于將節(jié)點(diǎn)的內(nèi)存劃分成多個(gè)內(nèi)存段,獲取內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和訪問頻率,遠(yuǎn)端節(jié)點(diǎn)為計(jì)算機(jī)系統(tǒng)中除該節(jié)點(diǎn)以外的其他節(jié)點(diǎn);第一劃分模塊,用于如果存在被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)超過第一閾值且被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率超過第二閾值的內(nèi)存段,則將該內(nèi)存段劃分成多個(gè)內(nèi)存塊;第四獲取模塊,用于獲取內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和訪問頻率,如果存在被遠(yuǎn)端節(jié)點(diǎn)的訪問次數(shù)超過第三閾值且被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率超過第四閾值的內(nèi)存塊,則執(zhí)行獲取引用該內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表的操作。其中,第三獲取模塊包括第一監(jiān)聽單元,用于將節(jié)點(diǎn)的內(nèi)存劃分成多個(gè)內(nèi)存段,通過節(jié)點(diǎn)對(duì)應(yīng)的互聯(lián)芯片實(shí)時(shí)監(jiān)聽內(nèi)存段并開始計(jì)時(shí),如果監(jiān)聽出存在遠(yuǎn)端節(jié)點(diǎn)訪問內(nèi)存段,則增加該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù);第一計(jì)算單元,用于根據(jù)該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和計(jì)時(shí)的時(shí)間計(jì)算出該內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率。其中,第四獲取模塊包括第二監(jiān)聽單元,用于通過節(jié)點(diǎn)對(duì)應(yīng)的互聯(lián)芯片實(shí)時(shí)監(jiān)聽內(nèi)存塊并開始計(jì)時(shí),如果監(jiān)聽出存在遠(yuǎn)端節(jié)點(diǎn)訪問內(nèi)存塊,則增加該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù);第二計(jì)算單元,用于根據(jù)該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和計(jì)時(shí)的時(shí)間計(jì)算出該內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率。
進(jìn)一步地,該裝置還包括第一判斷模塊,用于從內(nèi)存區(qū)域中獲取訪問的頁的!^resent位,根據(jù)獲取的 Present位判斷訪問的頁在節(jié)點(diǎn)的內(nèi)存中是否有效;第一置位模塊,用于如果有效,則在該進(jìn)程對(duì)應(yīng)的頁表中將訪問的頁的頁表項(xiàng)包括的I^esent位置位,并觸發(fā)引用該內(nèi)存塊的進(jìn)程繼續(xù)訪問訪問的頁。其中,第一判斷模塊包括第三計(jì)算單元,用于根據(jù)引用該內(nèi)存塊的進(jìn)程的進(jìn)程號(hào),訪問的頁的頁表項(xiàng)在頁表中的序號(hào)和內(nèi)存區(qū)域的起始地址,并通過預(yù)設(shè)的計(jì)算模型計(jì)算出在內(nèi)存區(qū)域中存儲(chǔ)訪問的頁的Present位的內(nèi)存地址;第一判斷單元,用于根據(jù)計(jì)算出的內(nèi)存地址從內(nèi)存區(qū)域中讀取訪問的頁的 Present位,如果讀取的Present位被置位,則判斷出訪問的頁有效,如果讀取的Present位被清零,則判斷出訪問的頁無效。進(jìn)一步地,該裝置還包括第一清零模塊,用于如果引用該內(nèi)存塊的進(jìn)程訪問完訪問的頁時(shí),則在引用該內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表中將訪問的頁的頁表項(xiàng)包括的!^resent位清零。在本發(fā)明實(shí)施例中,獲取引用內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表并將獲取的頁表中的每個(gè)頁表項(xiàng)的!^resent位清零,對(duì)引用該內(nèi)存塊的進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí),如果監(jiān)聽出存在引用該內(nèi)存塊的進(jìn)程訪問頁時(shí)產(chǎn)生的缺頁中斷事件,則增加訪問的頁的訪問次數(shù),根據(jù)該內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建該內(nèi)存塊的內(nèi)存訪問模型,如此在構(gòu)建該內(nèi)存塊的內(nèi)存訪問模型時(shí)不需要記錄引用該內(nèi)存塊的每個(gè)進(jìn)程訪問該內(nèi)存塊的內(nèi)存訪問地址,減少內(nèi)存消耗和對(duì)系統(tǒng)性能的影響,從而避免造成系統(tǒng)崩潰。實(shí)施例7如圖7所示,本發(fā)明實(shí)施例提供了一種構(gòu)建內(nèi)存訪問模型的裝置,包括第五獲取模塊701,用于獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表,并將該頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的I^esent位清零,頁表用于存儲(chǔ)目標(biāo)進(jìn)程所要訪問的頁的頁表項(xiàng);第二監(jiān)聽模塊702,用于對(duì)目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí);第二增加模塊703,用于如果目標(biāo)進(jìn)程訪問待訪問的頁時(shí)產(chǎn)生缺頁中斷事件,則增加待訪問的頁的訪問次數(shù);其中,缺頁中斷事件為目標(biāo)進(jìn)程判斷待訪問的頁的頁表項(xiàng)包括的I^esent位被清零時(shí)產(chǎn)生的,待訪問的頁的頁表項(xiàng)為目標(biāo)進(jìn)程從其對(duì)應(yīng)的頁表中獲取得到的;第六獲取模塊704,用于根據(jù)目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建目標(biāo)進(jìn)程的內(nèi)存訪問模型,內(nèi)存訪問模型至少包括目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和訪問頻率。其中,第五獲取模塊701包括第二獲取單元,用于獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表;第二存儲(chǔ)單元,用于在節(jié)點(diǎn)的內(nèi)存中申請(qǐng)一塊內(nèi)存區(qū)域,將該頁表中的每個(gè)頁表項(xiàng)包括的!^resent位存儲(chǔ)在內(nèi)存區(qū)域中;第二清零單元,用于將該頁表中的每個(gè)頁表項(xiàng)包括的Present位清零。其中,第二存儲(chǔ)單元包括
第二計(jì)算子單元,用于在節(jié)點(diǎn)的內(nèi)存中申請(qǐng)一塊內(nèi)存區(qū)域,根據(jù)目標(biāo)進(jìn)程的進(jìn)程號(hào)、該頁表中的每個(gè)頁表項(xiàng)在該頁表中的序號(hào)和內(nèi)存區(qū)域的起始地址,并通過預(yù)設(shè)的計(jì)算模型計(jì)算出在內(nèi)存區(qū)域中存儲(chǔ)該頁表中的每個(gè)頁表項(xiàng)包括的Present位的存儲(chǔ)地址;第二存儲(chǔ)子單元,用于根據(jù)該頁表中的每個(gè)頁表項(xiàng)包括的I^esent位的存儲(chǔ)地址,將該頁表中的每個(gè)頁表項(xiàng)包括的Present位存儲(chǔ)在內(nèi)存區(qū)域中。其中,第六獲取模塊704,具體用于根據(jù)目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間,計(jì)算出目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問頻率,得到內(nèi)存訪問模型,至少包括目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和訪問頻率。進(jìn)一步地,該裝置還包括第七獲取模塊,用于當(dāng)一個(gè)時(shí)間片結(jié)束時(shí),獲取目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率和訪問頻率,如果目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率超過第五閾值且目標(biāo)進(jìn)程的訪問頻率超過第六閾值,則執(zhí)行獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表的操作。其中,第七獲取模塊包括第三獲取單元,用于獲取目標(biāo)進(jìn)程被節(jié)點(diǎn)的處理器調(diào)度后的實(shí)際運(yùn)行時(shí)間以及在實(shí)際運(yùn)行時(shí)間內(nèi)目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù),遠(yuǎn)端節(jié)點(diǎn)內(nèi)存為計(jì)算機(jī)系統(tǒng)中除該節(jié)點(diǎn)以外的其他節(jié)點(diǎn)的內(nèi)存;第四獲取單元,用于根據(jù)實(shí)際運(yùn)行時(shí)間和在實(shí)際運(yùn)行時(shí)間內(nèi)目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù),獲取目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率和訪問頻率。其中,第三獲取單元包括加載子單元,用于當(dāng)目標(biāo)進(jìn)程被節(jié)點(diǎn)的處理器調(diào)度后,將目標(biāo)進(jìn)程的上下文信息中包括的訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)加載到處理器的統(tǒng)計(jì)計(jì)數(shù)寄存器中;監(jiān)聽子單元,用于通過處理器對(duì)目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽,如果監(jiān)聽出目標(biāo)進(jìn)程訪問本地內(nèi)存,則增加目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù),如果監(jiān)聽出目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存,則增加目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù);第一獲取子單元,用于當(dāng)時(shí)問片結(jié)束時(shí)獲取目標(biāo)進(jìn)程被調(diào)度后的實(shí)際運(yùn)行時(shí)間;第二獲取子單元,用于根據(jù)增加后的目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)以及統(tǒng)計(jì)計(jì)數(shù)寄存器中存儲(chǔ)的目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存的次數(shù)獲取目標(biāo)進(jìn)程在實(shí)際運(yùn)行時(shí)間內(nèi)訪問本地內(nèi)存的次數(shù)和遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)。其中,第四獲取單元包括第三計(jì)算子單元,用于計(jì)算出在實(shí)際運(yùn)行時(shí)間內(nèi)目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)與訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)的比值,將該比值作為目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率;第四計(jì)算子單元,用于根據(jù)在實(shí)際運(yùn)行時(shí)間內(nèi)目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)計(jì)算出目標(biāo)進(jìn)程的訪問次數(shù);第五計(jì)算子單元,用于根據(jù)目標(biāo)進(jìn)程的訪問次數(shù)和實(shí)際運(yùn)行時(shí)間計(jì)算出目標(biāo)進(jìn)程的訪問頻率。進(jìn)一步地,該裝置還包括第二判斷模塊,用于從內(nèi)存區(qū)域中獲取待訪問的頁的!^resent位,根據(jù)待訪問的頁的Present位判斷待訪問的頁在節(jié)點(diǎn)的內(nèi)存中是否有效;第二置位模塊,用于如果有效,則在目標(biāo)進(jìn)程對(duì)應(yīng)的頁表中將待訪問的頁的頁表項(xiàng)包括的Present位置位,并觸發(fā)目標(biāo)進(jìn)程繼續(xù)訪問待訪問的頁。其中,第二判斷模塊包括第四計(jì)算單元,用于根據(jù)目標(biāo)進(jìn)程的進(jìn)程號(hào),待訪問的頁的頁表項(xiàng)在頁表中的序號(hào)和內(nèi)存區(qū)域的起始地址,并通過預(yù)設(shè)的計(jì)算模型計(jì)算出在內(nèi)存區(qū)域中存儲(chǔ)待訪問的頁的 Present位的內(nèi)存地址;第二判斷單元,用于根據(jù)計(jì)算出的內(nèi)存地址從內(nèi)存區(qū)域中讀取待訪問的頁的 Present位,如果讀取的Present位被置位,則判斷出待訪問的頁有效,如果讀取的Present 位被清零,則判斷出待訪問的頁無效。進(jìn)一步地,該裝置還包括第二清零模塊,用于如果目標(biāo)進(jìn)程訪問完待訪問的頁時(shí),則在目標(biāo)進(jìn)程對(duì)應(yīng)的頁表中將待訪問的頁的頁表項(xiàng)包括的!Resent位清零。在本發(fā)明實(shí)施例中,獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表并將該頁表中的每個(gè)頁表項(xiàng)的 I^esent位清零,對(duì)目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí),如果監(jiān)聽出目標(biāo)進(jìn)程訪問待訪問的頁時(shí)產(chǎn)生的缺頁中斷事件,則增加待訪問的頁的訪問次數(shù),根據(jù)目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建目標(biāo)進(jìn)程的內(nèi)存訪問模型,如此在構(gòu)建目標(biāo)進(jìn)程的內(nèi)存訪問模型時(shí)不需要記錄目標(biāo)進(jìn)程訪問內(nèi)存的內(nèi)存訪問地址,減少內(nèi)存消耗和對(duì)系統(tǒng)性能的影響,從而避免造成系統(tǒng)崩潰。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種構(gòu)建內(nèi)存訪問模型的方法,其特征在于,所述方法包括獲取引用內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表,并將所述頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的當(dāng)前 Present位清零,所述頁表用于存儲(chǔ)引用所述內(nèi)存塊的進(jìn)程所要訪問的頁的頁表項(xiàng); 對(duì)引用所述內(nèi)存塊的進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí);如果引用所述內(nèi)存塊的進(jìn)程訪問所述內(nèi)存塊中的頁時(shí)產(chǎn)生缺頁中斷事件,則增加所述訪問的頁的訪問次數(shù);其中,所述缺頁中斷事件為引用所述內(nèi)存塊的進(jìn)程判斷出所述訪問的頁的頁表項(xiàng)包括的I^esent位被清零時(shí)產(chǎn)生的,所述訪問的頁的頁表項(xiàng)為引用所述內(nèi)存塊的進(jìn)程從其對(duì)應(yīng)的頁表中獲取得到的;根據(jù)所述內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建所述內(nèi)存塊的內(nèi)存訪問模型,所述內(nèi)存訪問模型至少包括所述內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和訪問頻率。
2.如權(quán)利要求1所述的方法,其特征在于,所述獲取引用內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表,并將所述頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的當(dāng)前!^resent位清零,包括通過反向映射的方法,獲取引用所述內(nèi)存塊的進(jìn)程并進(jìn)一步獲取引用所述內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表;在節(jié)點(diǎn)的內(nèi)存中申請(qǐng)一塊內(nèi)存區(qū)域,將所述頁表中的每個(gè)頁表項(xiàng)包括的I^esent位存儲(chǔ)在所述內(nèi)存區(qū)域中;將所述頁表中的每個(gè)頁表項(xiàng)包括的!^resent位清零。
3.如權(quán)利要求2所述的方法,其特征在于,將所述頁表中的每個(gè)頁表項(xiàng)包括的Present 位存儲(chǔ)在所述內(nèi)存區(qū)域中,包括根據(jù)引用所述內(nèi)存塊的進(jìn)程的進(jìn)程號(hào)、所述頁表中的每個(gè)頁表項(xiàng)在所述頁表中的序號(hào)和所述內(nèi)存區(qū)域的起始地址,并通過預(yù)設(shè)的計(jì)算模型計(jì)算出在所述內(nèi)存區(qū)域中存儲(chǔ)所述頁表中的每個(gè)頁表項(xiàng)包括的Present位的存儲(chǔ)地址;根據(jù)所述頁表中的每個(gè)頁表項(xiàng)包括的Present位的存儲(chǔ)地址,將所述頁表中的每個(gè)頁表項(xiàng)包括的Present位存儲(chǔ)在所述內(nèi)存區(qū)域中。
4.如權(quán)利要求1-3任一項(xiàng)權(quán)利要求所述的方法,其特征在于,所述獲取引用內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表之前,還包括將節(jié)點(diǎn)的內(nèi)存劃分成多個(gè)內(nèi)存段,獲取所述內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和訪問頻率,所述遠(yuǎn)端節(jié)點(diǎn)為計(jì)算機(jī)系統(tǒng)中除所述節(jié)點(diǎn)以外的其他節(jié)點(diǎn);如果存在被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)超過第一閾值且被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率超過第二閾值的內(nèi)存段,則將所述內(nèi)存段劃分成多個(gè)內(nèi)存塊;獲取所述內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和訪問頻率,如果存在被遠(yuǎn)端節(jié)點(diǎn)的訪問次數(shù)超過第三閾值且被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率超過第四閾值的內(nèi)存塊,則執(zhí)行獲取引用所述內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表的操作。
5.如權(quán)利要求4所述的方法,其特征在于,獲取所述內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和訪問頻率,包括通過所述節(jié)點(diǎn)對(duì)應(yīng)的互聯(lián)芯片實(shí)時(shí)監(jiān)聽所述內(nèi)存段并開始計(jì)時(shí),如果監(jiān)聽出存在遠(yuǎn)端節(jié)點(diǎn)訪問所述內(nèi)存段,則增加所述內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù);根據(jù)所述內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和計(jì)時(shí)的時(shí)間計(jì)算出所述內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率。
6.如權(quán)利要求4所述的方法,其特征在于,獲取所述內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和訪問頻率,包括通過所述節(jié)點(diǎn)對(duì)應(yīng)的互聯(lián)芯片實(shí)時(shí)監(jiān)聽所述內(nèi)存塊并開始計(jì)時(shí),如果監(jiān)聽出存在遠(yuǎn)端節(jié)點(diǎn)訪問所述內(nèi)存塊,則增加所述內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù);根據(jù)所述內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和計(jì)時(shí)的時(shí)間計(jì)算出所述內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率。
7.如權(quán)利要求1-3任一項(xiàng)權(quán)利要求所述的方法,其特征在于,所述增加所述訪問的頁的訪問次數(shù)之后,還包括從內(nèi)存區(qū)域中獲取所述訪問的頁的Present位,根據(jù)所述獲取的Present位判斷所述訪問的頁在節(jié)點(diǎn)的內(nèi)存中是否有效;如果有效,則在所述進(jìn)程對(duì)應(yīng)的頁表中將所述訪問的頁的頁表項(xiàng)包括的Present位置位,并觸發(fā)引用所述內(nèi)存塊的進(jìn)程繼續(xù)訪問所述訪問的頁。
8.如權(quán)利要求7所述的方法,其特征在于,所述從內(nèi)存區(qū)域中獲取所述訪問的頁的 I^esent位,根據(jù)所述獲取的I^esent位判斷所述訪問的頁在節(jié)點(diǎn)的內(nèi)存中是否有效,包括根據(jù)引用所述內(nèi)存塊的進(jìn)程的進(jìn)程號(hào),所述訪問的頁的頁表項(xiàng)在頁表中的序號(hào)和內(nèi)存區(qū)域的起始地址,并通過預(yù)設(shè)的計(jì)算模型計(jì)算出在所述內(nèi)存區(qū)域中存儲(chǔ)所述訪問的頁的 Present位的內(nèi)存地址;根據(jù)所述計(jì)算出的內(nèi)存地址從所述內(nèi)存區(qū)域中讀取所述訪問的頁的I^esent位,如果所述讀取的Present位被置位,則判斷出所述訪問的頁有效,如果所述讀取的Present位被清零,則判斷出所述訪問的頁無效。
9.如權(quán)利要求7所述的方法,其特征在于,所述方法還包括如果引用所述內(nèi)存塊的進(jìn)程訪問完所述訪問的頁時(shí),則在引用所述內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表中將所述訪問的頁的頁表項(xiàng)包括的I^esent位清零。
10.一種構(gòu)建內(nèi)存訪問模型的方法,其特征在于,所述方法包括獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表,并將所述頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的當(dāng)前Present 位清零,所述頁表用于存儲(chǔ)所述目標(biāo)進(jìn)程所要訪問的頁的頁表項(xiàng);對(duì)所述目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí);如果所述目標(biāo)進(jìn)程訪問待訪問的頁時(shí)產(chǎn)生缺頁中斷事件,則增加所述待訪問的頁的訪問次數(shù);其中,所述缺頁中斷事件為所述目標(biāo)進(jìn)程判斷所述待訪問的頁的頁表項(xiàng)包括的 Present位被清零時(shí)產(chǎn)生的,所述待訪問的頁的頁表項(xiàng)為所述目標(biāo)進(jìn)程從其對(duì)應(yīng)的頁表中獲取得到的;根據(jù)所述目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建所述目標(biāo)進(jìn)程的內(nèi)存訪問模型,所述內(nèi)存訪問模型至少包括所述目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和訪問頻率。
11.如權(quán)利要求10所述的方法,其特征在于,所述獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表,并將所述頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)包括的Present位清零,包括獲取所述目標(biāo)進(jìn)程對(duì)應(yīng)的頁表;在節(jié)點(diǎn)的內(nèi)存中申請(qǐng)一塊內(nèi)存區(qū)域,將所述頁表中的每個(gè)頁表項(xiàng)包括的I^esent位存儲(chǔ)在所述內(nèi)存區(qū)域中;將所述頁表中的每個(gè)頁表項(xiàng)包括的!^resent位清零。
12.如權(quán)利要求11所述的方法,其特征在于,將所述頁表中的每個(gè)頁表項(xiàng)包括的 Present位存儲(chǔ)在所述內(nèi)存區(qū)域中,包括根據(jù)所述目標(biāo)進(jìn)程的進(jìn)程號(hào)、所述頁表中的每個(gè)頁表項(xiàng)在所述頁表中的序號(hào)和所述內(nèi)存區(qū)域的起始地址,并通過預(yù)設(shè)的計(jì)算模型計(jì)算出在所述內(nèi)存區(qū)域中存儲(chǔ)所述頁表中的每個(gè)頁表項(xiàng)包括的Present位的存儲(chǔ)地址;根據(jù)所述頁表中的每個(gè)頁表項(xiàng)包括的Present位的存儲(chǔ)地址,將所述頁表中的每個(gè)頁表項(xiàng)包括的Present位存儲(chǔ)在所述內(nèi)存區(qū)域中。
13.如權(quán)利要求10-12任一項(xiàng)權(quán)利要求所述的方法,其特征在于,所述獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表之前,還包括當(dāng)一個(gè)時(shí)間片結(jié)束時(shí),獲取所述目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率和訪問頻率,如果所述目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率超過第五閾值且所述目標(biāo)進(jìn)程的訪問頻率超過第六閾值,則執(zhí)行獲取所述目標(biāo)進(jìn)程對(duì)應(yīng)的頁表的操作。
14.如權(quán)利要求13所述的方法,其特征在于,獲取所述目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率和訪問頻率,包括獲取所述目標(biāo)進(jìn)程被節(jié)點(diǎn)的處理器調(diào)度后的實(shí)際運(yùn)行時(shí)間以及在所述實(shí)際運(yùn)行時(shí)間內(nèi)所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù),所述遠(yuǎn)端節(jié)點(diǎn)內(nèi)存為計(jì)算機(jī)系統(tǒng)中除所述節(jié)點(diǎn)以外的其他節(jié)點(diǎn)的內(nèi)存;根據(jù)所述實(shí)際運(yùn)行時(shí)間和在所述實(shí)際運(yùn)行時(shí)間內(nèi)所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù),獲取所述目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率和訪問頻率。
15.如權(quán)利要求14所述的方法,其特征在于,獲取所述目標(biāo)進(jìn)程被節(jié)點(diǎn)的處理器調(diào)度后的實(shí)際運(yùn)行時(shí)間以及在所述實(shí)際運(yùn)行時(shí)間內(nèi)所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù),包括當(dāng)所述目標(biāo)進(jìn)程被節(jié)點(diǎn)的處理器調(diào)度后,將所述目標(biāo)進(jìn)程的上下文信息中包括的訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)加載到所述處理器的統(tǒng)計(jì)計(jì)數(shù)寄存器中;通過所述處理器對(duì)所述目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽,如果監(jiān)聽出所述目標(biāo)進(jìn)程訪問本地內(nèi)存,則增加所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù),如果監(jiān)聽出所述目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存,則增加所述目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù);當(dāng)所述時(shí)間片結(jié)束時(shí)獲取所述目標(biāo)進(jìn)程被調(diào)度后的實(shí)際運(yùn)行時(shí)間; 根據(jù)增加后的所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)以及所述統(tǒng)計(jì)計(jì)數(shù)寄存器中存儲(chǔ)的所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)獲取所述目標(biāo)進(jìn)程在所述實(shí)際運(yùn)行時(shí)間內(nèi)訪問本地內(nèi)存的次數(shù)和遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)。
16.如權(quán)利要求14所述的方法,其特征在于,根據(jù)所述實(shí)際運(yùn)行時(shí)間和在所述實(shí)際運(yùn)行時(shí)間內(nèi)所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù),獲取所述目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率和訪問頻率,包括計(jì)算出在所述實(shí)際運(yùn)行時(shí)間內(nèi)所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)與訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)的比值,將所述比值作為所述目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率;根據(jù)在所述實(shí)際運(yùn)行時(shí)間內(nèi)所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)計(jì)算出所述目標(biāo)進(jìn)程的訪問次數(shù);根據(jù)所述目標(biāo)進(jìn)程的訪問次數(shù)和所述實(shí)際運(yùn)行時(shí)間計(jì)算出所述目標(biāo)進(jìn)程的訪問頻率。
17.如權(quán)利要求10-12任一項(xiàng)權(quán)利要求所述的方法,其特征在于,增加所述待訪問的頁的訪問次數(shù)之后,還包括從內(nèi)存區(qū)域中獲取所述待訪問的頁的Present位,根據(jù)所述待訪問的頁的Present位判斷所述待訪問的頁在節(jié)點(diǎn)的內(nèi)存中是否有效;如果有效,則在所述目標(biāo)進(jìn)程對(duì)應(yīng)的頁表中將所述待訪問的頁的頁表項(xiàng)包括的 Present位置位,并觸發(fā)所述目標(biāo)進(jìn)程繼續(xù)訪問所述待訪問的頁。
18.如權(quán)利要求17所述的方法,其特征在于,所述從內(nèi)存區(qū)域中獲取所述待訪問的頁的Present位,根據(jù)所述待訪問的頁的Present位判斷所述待訪問的頁在節(jié)點(diǎn)的內(nèi)存中是否有效,包括根據(jù)所述目標(biāo)進(jìn)程的進(jìn)程號(hào),所述待訪問的頁的頁表項(xiàng)在頁表中的序號(hào)和內(nèi)存區(qū)域的起始地址,并通過預(yù)設(shè)的計(jì)算模型計(jì)算出在所述內(nèi)存區(qū)域中存儲(chǔ)所述待訪問的頁的 Present位的內(nèi)存地址;根據(jù)所述計(jì)算出的內(nèi)存地址從所述內(nèi)存區(qū)域中讀取所述待訪問的頁的I^esent位,如果所述讀取的Present位被置位,則判斷出所述待訪問的頁有效,如果所述讀取的Present 位被清零,則判斷出所述待訪問的頁無效。
19.如權(quán)利要求17所述的方法,其特征在于,所述方法還包括如果所述目標(biāo)進(jìn)程訪問完待訪問的頁時(shí),則在所述目標(biāo)進(jìn)程對(duì)應(yīng)的頁表中將所述待訪問的頁的頁表項(xiàng)包括的I^resent位清零。
20.一種構(gòu)建內(nèi)存訪問模型的裝置,其特征在于,所述裝置包括第一獲取模塊,用于獲取引用內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表,并將所述頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的當(dāng)前I^esent位清零,所述頁表用于存儲(chǔ)引用所述內(nèi)存塊的進(jìn)程所要訪問的頁的頁表項(xiàng);第一監(jiān)聽模塊,用于對(duì)引用所述內(nèi)存塊的進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí); 第一增加模塊,用于如果引用所述內(nèi)存塊的進(jìn)程訪問所述內(nèi)存塊中的頁時(shí)產(chǎn)生缺頁中斷事件,則增加所述訪問的頁的訪問次數(shù);其中,所述缺頁中斷事件為引用所述內(nèi)存塊的進(jìn)程判斷出所述訪問的頁的頁表項(xiàng)包括的!^resent位被清零時(shí)產(chǎn)生的,所述訪問的頁的頁表項(xiàng)為引用所述內(nèi)存塊的進(jìn)程從其對(duì)應(yīng)的頁表中獲取得到的;第二獲取模塊,用于根據(jù)所述內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建所述內(nèi)存塊的內(nèi)存訪問模型,所述內(nèi)存訪問模型至少包括所述內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和訪問頻率。
21.如權(quán)利要求20所述的裝置,其特征在于,所述第一獲取模塊包括第一獲取單元,用于通過反向映射的方法,獲取引用所述內(nèi)存塊的進(jìn)程并進(jìn)一步獲取引用所述內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表;第一存儲(chǔ)單元,用于在節(jié)點(diǎn)的內(nèi)存中申請(qǐng)一塊內(nèi)存區(qū)域,將所述頁表中的每個(gè)頁表項(xiàng)包括的I^esent位存儲(chǔ)在所述內(nèi)存區(qū)域中;第一清零單元,用于將所述頁表中的每個(gè)頁表項(xiàng)包括的I^resent位清零。
22.如權(quán)利要求21所述的裝置,其特征在于,所述第一存儲(chǔ)單元包括第一計(jì)算子單元,用于在節(jié)點(diǎn)的內(nèi)存中申請(qǐng)一塊內(nèi)存區(qū)域,根據(jù)引用所述內(nèi)存塊的進(jìn)程的進(jìn)程號(hào)、所述頁表中的每個(gè)頁表項(xiàng)在所述頁表中的序號(hào)和所述內(nèi)存區(qū)域的起始地址, 并通過預(yù)設(shè)的計(jì)算模型計(jì)算出在所述內(nèi)存區(qū)域中存儲(chǔ)所述頁表中的每個(gè)頁表項(xiàng)包括的 Present位的存儲(chǔ)地址;第一存儲(chǔ)子單元,用于根據(jù)所述頁表中的每個(gè)頁表項(xiàng)包括的I^esent位的存儲(chǔ)地址, 將所述頁表中的每個(gè)頁表項(xiàng)包括的I^esent位存儲(chǔ)在所述內(nèi)存區(qū)域中。
23.如權(quán)利要求20-22任一項(xiàng)權(quán)利要求所述的裝置,其特征在于,所述裝置還包括第三獲取模塊,用于將節(jié)點(diǎn)的內(nèi)存劃分成多個(gè)內(nèi)存段,獲取所述內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和訪問頻率,所述遠(yuǎn)端節(jié)點(diǎn)為計(jì)算機(jī)系統(tǒng)中除所述節(jié)點(diǎn)以外的其他節(jié)點(diǎn);第一劃分模塊,用于如果存在被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)超過第一閾值且被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率超過第二閾值的內(nèi)存段,則將所述內(nèi)存段劃分成多個(gè)內(nèi)存塊;第四獲取模塊,用于獲取所述內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和訪問頻率,如果存在被遠(yuǎn)端節(jié)點(diǎn)的訪問次數(shù)超過第三閾值且被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率超過第四閾值的內(nèi)存塊,則執(zhí)行獲取引用所述內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表的操作。
24.如權(quán)利要求23所述的裝置,其特征在于,所述第三獲取模塊包括第一監(jiān)聽單元,用于將節(jié)點(diǎn)的內(nèi)存劃分成多個(gè)內(nèi)存段,通過所述節(jié)點(diǎn)對(duì)應(yīng)的互聯(lián)芯片實(shí)時(shí)監(jiān)聽所述內(nèi)存段并開始計(jì)時(shí),如果監(jiān)聽出存在遠(yuǎn)端節(jié)點(diǎn)訪問所述內(nèi)存段,則增加所述內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù);第一計(jì)算單元,用于根據(jù)所述內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和計(jì)時(shí)的時(shí)間計(jì)算出所述內(nèi)存段被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率。
25.如權(quán)利要求23所述的裝置,其特征在于,所述第四獲取模塊包括第二監(jiān)聽單元,用于通過所述節(jié)點(diǎn)對(duì)應(yīng)的互聯(lián)芯片實(shí)時(shí)監(jiān)聽所述內(nèi)存塊并開始計(jì)時(shí), 如果監(jiān)聽出存在遠(yuǎn)端節(jié)點(diǎn)訪問所述內(nèi)存塊,則增加所述內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù);第二計(jì)算單元,用于根據(jù)所述內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問次數(shù)和計(jì)時(shí)的時(shí)間計(jì)算出所述內(nèi)存塊被遠(yuǎn)端節(jié)點(diǎn)訪問的訪問頻率。
26.如權(quán)利要求20-22任一項(xiàng)權(quán)利要求所述的裝置,其特征在于,所述裝置還包括 第一判斷模塊,用于從內(nèi)存區(qū)域中獲取所述訪問的頁的I^esent位,根據(jù)所述獲取的Present位判斷所述訪問的頁在節(jié)點(diǎn)的內(nèi)存中是否有效;第一置位模塊,用于如果有效,則在所述進(jìn)程對(duì)應(yīng)的頁表中將所述訪問的頁的頁表項(xiàng)包括的!^resent位置位,并觸發(fā)引用所述內(nèi)存塊的進(jìn)程繼續(xù)訪問所述訪問的頁。
27.如權(quán)利要求沈所述的裝置,其特征在于,所述第一判斷模塊包括第三計(jì)算單元,用于根據(jù)引用所述內(nèi)存塊的進(jìn)程的進(jìn)程號(hào),所述訪問的頁的頁表項(xiàng)在頁表中的序號(hào)和內(nèi)存區(qū)域的起始地址,并通過預(yù)設(shè)的計(jì)算模型計(jì)算出在所述內(nèi)存區(qū)域中存儲(chǔ)所述訪問的頁的!^resent位的內(nèi)存地址;第一判斷單元,用于根據(jù)所述計(jì)算出的內(nèi)存地址從所述內(nèi)存區(qū)域中讀取所述訪問的頁的Present位,如果所述讀取的Present位被置位,則判斷出所述訪問的頁有效,如果所述讀取的Present位被清零,則判斷出所述訪問的頁無效。
28.如權(quán)利要求沈所述的方法,其特征在于,所述裝置還包括第一清零模塊,用于如果引用所述內(nèi)存塊的進(jìn)程訪問完所述訪問的頁時(shí),則在引用所述內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表中將所述訪問的頁的頁表項(xiàng)包括的!^resent位清零。
29.一種構(gòu)建內(nèi)存訪問模型的裝置,其特征在于,所述裝置包括第五獲取模塊,用于獲取目標(biāo)進(jìn)程對(duì)應(yīng)的頁表,并將所述頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的當(dāng)前I^esent位清零,所述頁表用于存儲(chǔ)所述目標(biāo)進(jìn)程所要訪問的頁的頁表項(xiàng);第二監(jiān)聽模塊,用于對(duì)所述目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí);第二增加模塊,用于如果所述目標(biāo)進(jìn)程訪問待訪問的頁時(shí)產(chǎn)生缺頁中斷事件,則增加所述待訪問的頁的訪問次數(shù);其中,所述缺頁中斷事件為所述目標(biāo)進(jìn)程判斷所述待訪問的頁的頁表項(xiàng)包括的I^esent位被清零時(shí)產(chǎn)生的,所述待訪問的頁的頁表項(xiàng)為所述目標(biāo)進(jìn)程從其對(duì)應(yīng)的頁表中獲取得到的;第六獲取模塊,用于根據(jù)所述目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建所述目標(biāo)進(jìn)程的內(nèi)存訪問模型,所述內(nèi)存訪問模型至少包括所述目標(biāo)進(jìn)程所訪問的每個(gè)頁的訪問次數(shù)和訪問頻率。
30.如權(quán)利要求四所述的裝置,其特征在于,所述第五獲取模塊包括第二獲取單元,用于獲取所述目標(biāo)進(jìn)程對(duì)應(yīng)的頁表;第二存儲(chǔ)單元,用于在節(jié)點(diǎn)的內(nèi)存中申請(qǐng)一塊內(nèi)存區(qū)域,將所述頁表中的每個(gè)頁表項(xiàng)包括的I^esent位存儲(chǔ)在所述內(nèi)存區(qū)域中;第二清零單元,用于將所述頁表中的每個(gè)頁表項(xiàng)包括的I^resent位清零。
31.如權(quán)利要求30所述的裝置,其特征在于,所述第二存儲(chǔ)單元包括第二計(jì)算子單元,用于在節(jié)點(diǎn)的內(nèi)存中申請(qǐng)一塊內(nèi)存區(qū)域,根據(jù)所述目標(biāo)進(jìn)程的進(jìn)程號(hào)、所述頁表中的每個(gè)頁表項(xiàng)在所述頁表中的序號(hào)和所述內(nèi)存區(qū)域的起始地址,并通過預(yù)設(shè)的計(jì)算模型計(jì)算出在所述內(nèi)存區(qū)域中存儲(chǔ)所述頁表中的每個(gè)頁表項(xiàng)包括的I^esent位的存儲(chǔ)地址;第二存儲(chǔ)子單元,用于根據(jù)所述頁表中的每個(gè)頁表項(xiàng)包括的I^esent位的存儲(chǔ)地址, 將所述頁表中的每個(gè)頁表項(xiàng)包括的I^esent位存儲(chǔ)在所述內(nèi)存區(qū)域中。
32.如權(quán)利要求四-31任一項(xiàng)權(quán)利要求所述的裝置,其特征在于,所述裝置還包括第七獲取模塊,用于當(dāng)一個(gè)時(shí)間片結(jié)束時(shí),獲取所述目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率和訪問頻率,如果所述目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率超過第五閾值且所述目標(biāo)進(jìn)程的訪問頻率超過第六閾值,則執(zhí)行獲取所述目標(biāo)進(jìn)程對(duì)應(yīng)的頁表的操作。
33.如權(quán)利要求32所述的裝置,其特征在于,所述第七獲取模塊包括第三獲取單元,用于獲取所述目標(biāo)進(jìn)程被節(jié)點(diǎn)的處理器調(diào)度后的實(shí)際運(yùn)行時(shí)間以及在所述實(shí)際運(yùn)行時(shí)間內(nèi)所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù),所述遠(yuǎn)端節(jié)點(diǎn)內(nèi)存為計(jì)算機(jī)系統(tǒng)中除所述節(jié)點(diǎn)以外的其他節(jié)點(diǎn)的內(nèi)存;第四獲取單元,用于根據(jù)所述實(shí)際運(yùn)行時(shí)間和在所述實(shí)際運(yùn)行時(shí)間內(nèi)所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù),獲取所述目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率和訪問頻率。
34.如權(quán)利要求33所述的裝置,其特征在于,所述第三獲取單元包括加載子單元,用于當(dāng)所述目標(biāo)進(jìn)程被節(jié)點(diǎn)的處理器調(diào)度后,將所述目標(biāo)進(jìn)程的上下文信息中包括的訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)加載到所述處理器的統(tǒng)計(jì)計(jì)數(shù)寄存器中;監(jiān)聽子單元,用于通過所述處理器對(duì)所述目標(biāo)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽,如果監(jiān)聽出所述目標(biāo)進(jìn)程訪問本地內(nèi)存,則增加所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù),如果監(jiān)聽出所述目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存,則增加所述目標(biāo)進(jìn)程訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù);第一獲取子單元,用于當(dāng)所述時(shí)間片結(jié)束時(shí)獲取所述目標(biāo)進(jìn)程被調(diào)度后的實(shí)際運(yùn)行時(shí)間;第二獲取子單元,用于根據(jù)增加后的所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)以及所述統(tǒng)計(jì)計(jì)數(shù)寄存器中存儲(chǔ)的所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)獲取所述目標(biāo)進(jìn)程在所述實(shí)際運(yùn)行時(shí)間內(nèi)訪問本地內(nèi)存的次數(shù)和遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)。
35.如權(quán)利要求33所述的裝置,其特征在于,所述第四獲取單元包括第三計(jì)算子單元,用于計(jì)算出在所述實(shí)際運(yùn)行時(shí)間內(nèi)所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)與訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)的比值,將所述比值作為所述目標(biāo)進(jìn)程的遠(yuǎn)近端訪問比率;第四計(jì)算子單元,用于根據(jù)在所述實(shí)際運(yùn)行時(shí)間內(nèi)所述目標(biāo)進(jìn)程訪問本地內(nèi)存的次數(shù)和訪問遠(yuǎn)端節(jié)點(diǎn)內(nèi)存的次數(shù)計(jì)算出所述目標(biāo)進(jìn)程的訪問次數(shù);第五計(jì)算子單元,用于根據(jù)所述目標(biāo)進(jìn)程的訪問次數(shù)和所述實(shí)際運(yùn)行時(shí)間計(jì)算出所述目標(biāo)進(jìn)程的訪問頻率。
36.如權(quán)利要求四-31任一項(xiàng)權(quán)利要求所述的裝置,其特征在于,所述裝置還包括第二判斷模塊,用于從內(nèi)存區(qū)域中獲取所述待訪問的頁的I^esent位,根據(jù)所述待訪問的頁的I^esent位判斷所述待訪問的頁在節(jié)點(diǎn)的內(nèi)存中是否有效;第二置位模塊,用于如果有效,則在所述目標(biāo)進(jìn)程對(duì)應(yīng)的頁表中將所述待訪問的頁的頁表項(xiàng)包括的I^esent位置位,并觸發(fā)所述目標(biāo)進(jìn)程繼續(xù)訪問所述待訪問的頁。
37.如權(quán)利要求36所述的裝置,其特征在于,所述所述第二判斷模塊包括第四計(jì)算單元,用于根據(jù)所述目標(biāo)進(jìn)程的進(jìn)程號(hào),所述待訪問的頁的頁表項(xiàng)在頁表中的序號(hào)和內(nèi)存區(qū)域的起始地址,并通過預(yù)設(shè)的計(jì)算模型計(jì)算出在所述內(nèi)存區(qū)域中存儲(chǔ)所述待訪問的頁的I^resent位的內(nèi)存地址;第二判斷單元,用于根據(jù)所述計(jì)算出的內(nèi)存地址從所述內(nèi)存區(qū)域中讀取所述待訪問的頁的Present位,如果所述讀取的Present位被置位,則判斷出所述待訪問的頁有效,如果所述讀取的Present位被清零,則判斷出所述待訪問的頁無效。
38.如權(quán)利要求36所述的方法,其特征在于,所述裝置還包括第二清零模塊,用于如果所述目標(biāo)進(jìn)程訪問完待訪問的頁時(shí),則在所述目標(biāo)進(jìn)程對(duì)應(yīng)的頁表中將所述待訪問的頁的頁表項(xiàng)包括的I^esent位清零。
全文摘要
本發(fā)明實(shí)施例提供了一種構(gòu)建內(nèi)存訪問模型的方法及裝置,涉及計(jì)算機(jī)領(lǐng)域,所述方法包括獲取引用內(nèi)存塊的進(jìn)程對(duì)應(yīng)的頁表,并將所述頁表中存儲(chǔ)的每個(gè)頁表項(xiàng)所包括的Present位清零;對(duì)引用所述內(nèi)存塊的進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)聽并開始計(jì)時(shí);如果引用所述內(nèi)存塊的進(jìn)程訪問所述內(nèi)存塊中的頁時(shí)產(chǎn)生缺頁中斷事件,則增加所述訪問的頁的訪問次數(shù);根據(jù)所述內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和計(jì)時(shí)的時(shí)間構(gòu)建所述內(nèi)存塊的內(nèi)存訪問模型,所述內(nèi)存訪問模型至少包括所述內(nèi)存塊中的每個(gè)頁的訪問次數(shù)和訪問頻率。所述裝置包括第一獲取模塊、第一監(jiān)聽柑、第一增加模塊和第二獲取模塊。本發(fā)明能夠減少內(nèi)存消耗和系統(tǒng)性能的影響,以及避免造成系統(tǒng)崩潰。
文檔編號(hào)G06F13/24GK102439577SQ201180002377
公開日2012年5月2日 申請(qǐng)日期2011年10月31日 優(yōu)先權(quán)日2011年10月31日
發(fā)明者劉儀陽, 王偉, 裘稀石 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
神木县| 阿拉善右旗| 三都| 铁岭市| 余庆县| 宁南县| 吉水县| 财经| 东兴市| 廊坊市| 海南省| 昆明市| 合阳县| 莎车县| 麦盖提县| 舟曲县| 正蓝旗| 怀来县| 平塘县| 大邑县| 杨浦区| 塔城市| 定安县| 改则县| 汾阳市| 常宁市| 乃东县| 若尔盖县| 达日县| 云龙县| 屯门区| 志丹县| 大竹县| 石河子市| 皋兰县| 左贡县| 任丘市| 辽源市| 吉木萨尔县| 淳安县| 马山县|