两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種緩存頁(yè)面替換方法及裝置的制造方法

文檔序號(hào):9349876閱讀:315來(lái)源:國(guó)知局
一種緩存頁(yè)面替換方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種緩存頁(yè)面替換方法及裝置。
【背景技術(shù)】
[0002]隨著數(shù)字化時(shí)代的不斷發(fā)展,在日常生活和科學(xué)研究中,越來(lái)越多的傳統(tǒng)業(yè)務(wù)開(kāi)始數(shù)字化、網(wǎng)絡(luò)化,促使數(shù)據(jù)爆炸式增長(zhǎng),存儲(chǔ)系統(tǒng)在整個(gè)業(yè)務(wù)處理系統(tǒng)中的地位也愈發(fā)重要,然而源源不斷的數(shù)據(jù)流導(dǎo)致存儲(chǔ)系統(tǒng)產(chǎn)生嚴(yán)重的I/O瓶頸問(wèn)題。
[0003]目前,當(dāng)接收到請(qǐng)求且內(nèi)存不足時(shí),一般采用Linux內(nèi)核中的緩存頁(yè)替換方法,通過(guò)選擇一些頁(yè)面丟棄其內(nèi)容供當(dāng)前請(qǐng)求使用,其中,緩存頁(yè)替換方法需要維護(hù)活躍鏈表(active_list)和非活躍鏈表(inactive_list),在active_list鏈表中存儲(chǔ)的是經(jīng)常被使用的頁(yè),而inactivejist鏈表中存儲(chǔ)的是經(jīng)常不被使用的頁(yè)。且根據(jù)訪(fǎng)問(wèn)頻率,兩個(gè)鏈表中所存儲(chǔ)的頁(yè)會(huì)發(fā)生移動(dòng)。當(dāng)內(nèi)存不足時(shí),需要進(jìn)行頁(yè)回收,而對(duì)于inactivejist鏈表和actiVe_list鏈表中的臟頁(yè)、正在刷寫(xiě)的頁(yè)不能夠進(jìn)行回收,那么緩存頁(yè)替換的方法可以包括:首先從inactivejist鏈表逐個(gè)查找可以回收的頁(yè),若查找到臟頁(yè)或正在刷寫(xiě)的頁(yè)則跳過(guò),若查找到非臟頁(yè),則回收;若內(nèi)存仍然不足時(shí),再回收activejist鏈表中的頁(yè)。
[0004]然而,在inactive_list鏈表和active_list鏈表中包括大量的臟頁(yè)、正在刷寫(xiě)的頁(yè),導(dǎo)致在鏈表中查找可回收的頁(yè)時(shí),會(huì)遇到很多不能夠回收的頁(yè),從而降低了緩存頁(yè)替換的效率。

【發(fā)明內(nèi)容】

[0005]有鑒于此,本發(fā)明提供一種緩存頁(yè)面替換方法及裝置,以提高緩存頁(yè)替換的效率。
[0006]本發(fā)明提供了一種緩存頁(yè)面替換方法,包括:
[0007]S1:建立臟頁(yè)鏈表和非臟頁(yè)鏈表,其中,所述臟頁(yè)鏈表用于存儲(chǔ)臟頁(yè),所述非臟頁(yè)鏈表用于存儲(chǔ)非臟頁(yè);
[0008]S2:在確定內(nèi)存不足時(shí),從所述非臟頁(yè)鏈表中查找目標(biāo)非臟頁(yè),并將查找到的目標(biāo)非臟頁(yè)進(jìn)行釋放;
[0009]S3:若將所述非臟頁(yè)鏈表中所包括的所有非臟頁(yè)全部釋放依然無(wú)法滿(mǎn)足內(nèi)存時(shí),從所述臟頁(yè)鏈表中選擇目標(biāo)臟頁(yè),并消除所述目標(biāo)臟頁(yè)的臟頁(yè)標(biāo)志,并將消除了臟頁(yè)標(biāo)志的所述目標(biāo)臟頁(yè)存儲(chǔ)至所述非臟頁(yè)鏈表中,并執(zhí)行S2,直到滿(mǎn)足內(nèi)存。
[0010]優(yōu)選地,所述建立臟頁(yè)鏈表和非臟頁(yè)鏈表,包括:
[0011]在基樹(shù)空間中查找讀操作所針對(duì)目標(biāo)頁(yè)的索引,若所述基樹(shù)空間中查找到所述目標(biāo)頁(yè)的索引,為所述目標(biāo)頁(yè)增加訪(fǎng)問(wèn)計(jì)數(shù),并根據(jù)所述目標(biāo)頁(yè)的類(lèi)型,將類(lèi)型為臟頁(yè)的所述目標(biāo)頁(yè)插入到所述臟頁(yè)鏈表中的相應(yīng)位置處,以及將類(lèi)型為非臟頁(yè)的所述目標(biāo)頁(yè)插入到所述非臟頁(yè)鏈表中的相應(yīng)位置處,并讀取所述目標(biāo)頁(yè)的內(nèi)容;其中,所述臟頁(yè)鏈表,和/或,所述非臟頁(yè)鏈表中按照訪(fǎng)問(wèn)計(jì)數(shù)進(jìn)行排列。
[0012]優(yōu)選地,所述建立臟頁(yè)鏈表和非臟頁(yè)鏈表,包括:
[0013]在基樹(shù)空間中查找寫(xiě)操作所針對(duì)目標(biāo)頁(yè)的索引,若所述基樹(shù)空間中查找到所述目標(biāo)頁(yè)的索引,為所述目標(biāo)頁(yè)增加訪(fǎng)問(wèn)計(jì)數(shù),并根據(jù)所述目標(biāo)頁(yè)的類(lèi)型,將類(lèi)型為臟頁(yè)的所述目標(biāo)頁(yè)插入到所述臟頁(yè)鏈表中的相應(yīng)位置處,以及將類(lèi)型為非臟頁(yè)的所述目標(biāo)頁(yè)從所述非臟頁(yè)鏈表中提取出來(lái),并根據(jù)所述寫(xiě)操作對(duì)所述目標(biāo)頁(yè)的內(nèi)容進(jìn)行修改,以及在所述目標(biāo)頁(yè)上設(shè)置臟頁(yè)標(biāo)志,并將設(shè)置了臟頁(yè)標(biāo)志的所述目標(biāo)頁(yè)插入到所述臟頁(yè)鏈表中的相應(yīng)位置處;其中,所述臟頁(yè)鏈表,和/或,所述非臟頁(yè)鏈表中按照訪(fǎng)問(wèn)計(jì)數(shù)進(jìn)行排列。
[0014]優(yōu)選地,進(jìn)一步包括:
[0015]按照所述非臟頁(yè)鏈表中訪(fǎng)問(wèn)計(jì)數(shù)從小到大的順序,從所述非臟頁(yè)鏈表中查找目標(biāo)非臟頁(yè);
[0016]按照所述臟頁(yè)鏈表中訪(fǎng)問(wèn)計(jì)數(shù)從小到大的順序,從所述臟頁(yè)鏈表中選擇目標(biāo)臟頁(yè)。
[0017]優(yōu)選地,進(jìn)一步包括:
[0018]若所述基樹(shù)空間中未查找到所述目標(biāo)頁(yè)的索引,則建立所述目標(biāo)頁(yè),并從磁盤(pán)中讀取所述目標(biāo)頁(yè)的內(nèi)容將讀取的該內(nèi)容填充到所述目標(biāo)頁(yè)中,并設(shè)置所述目標(biāo)頁(yè)的初始訪(fǎng)問(wèn)計(jì)數(shù),將所述目標(biāo)頁(yè)插入至非臟頁(yè)鏈表的相應(yīng)位置處。
[0019]本發(fā)明還提供了一種緩存頁(yè)面替換裝置,包括:
[0020]建立單元,用于建立臟頁(yè)鏈表和非臟頁(yè)鏈表,其中,所述臟頁(yè)鏈表用于存儲(chǔ)臟頁(yè),所述非臟頁(yè)鏈表用于存儲(chǔ)非臟頁(yè);
[0021]非臟頁(yè)處理單元,用于在確定內(nèi)存不足時(shí),從所述非臟頁(yè)鏈表中查找目標(biāo)非臟頁(yè),并將查找到的目標(biāo)非臟頁(yè)進(jìn)行釋放;
[0022]臟頁(yè)處理單元,用于若將所述非臟頁(yè)鏈表中所包括的所有非臟頁(yè)全部釋放依然無(wú)法滿(mǎn)足內(nèi)存時(shí),從所述臟頁(yè)鏈表中選擇目標(biāo)臟頁(yè),并消除所述目標(biāo)臟頁(yè)的臟頁(yè)標(biāo)志,并將消除了臟頁(yè)標(biāo)志的所述目標(biāo)臟頁(yè)存儲(chǔ)至所述非臟頁(yè)鏈表中,并觸發(fā)所述非臟頁(yè)處理單元執(zhí)行相應(yīng)操作,直到滿(mǎn)足內(nèi)存。
[0023]優(yōu)選地,所述建立單元,用于在基樹(shù)空間中查找讀操作所針對(duì)目標(biāo)頁(yè)的索引,若所述基樹(shù)空間中查找到所述目標(biāo)頁(yè)的索引,為所述目標(biāo)頁(yè)增加訪(fǎng)問(wèn)計(jì)數(shù),并根據(jù)所述目標(biāo)頁(yè)的類(lèi)型,將類(lèi)型為臟頁(yè)的所述目標(biāo)頁(yè)插入到所述臟頁(yè)鏈表中的相應(yīng)位置處,以及將類(lèi)型為非臟頁(yè)的所述目標(biāo)頁(yè)插入到所述非臟頁(yè)鏈表中的相應(yīng)位置處,并讀取所述目標(biāo)頁(yè)的內(nèi)容;其中,所述臟頁(yè)鏈表,和/或,所述非臟頁(yè)鏈表中按照訪(fǎng)問(wèn)計(jì)數(shù)進(jìn)行排列。
[0024]優(yōu)選地,所述建立單元,用于在基樹(shù)空間中查找寫(xiě)操作所針對(duì)目標(biāo)頁(yè)的索引,若所述基樹(shù)空間中查找到所述目標(biāo)頁(yè)的索引,為所述目標(biāo)頁(yè)增加訪(fǎng)問(wèn)計(jì)數(shù),并根據(jù)所述目標(biāo)頁(yè)的類(lèi)型,將類(lèi)型為臟頁(yè)的所述目標(biāo)頁(yè)插入到所述臟頁(yè)鏈表中的相應(yīng)位置處,以及將類(lèi)型為非臟頁(yè)的所述目標(biāo)頁(yè)從所述非臟頁(yè)鏈表中提取出來(lái),并根據(jù)所述寫(xiě)操作對(duì)所述目標(biāo)頁(yè)的內(nèi)容進(jìn)行修改,以及在所述目標(biāo)頁(yè)上設(shè)置臟頁(yè)標(biāo)志,并將設(shè)置了臟頁(yè)標(biāo)志的所述目標(biāo)頁(yè)插入到所述臟頁(yè)鏈表中的相應(yīng)位置處;其中,所述臟頁(yè)鏈表,和/或,所述非臟頁(yè)鏈表中按照訪(fǎng)問(wèn)計(jì)數(shù)進(jìn)行排列。
[0025]優(yōu)選地,
[0026]所述非臟頁(yè)處理單元,用于按照所述非臟頁(yè)鏈表中訪(fǎng)問(wèn)計(jì)數(shù)從小到大的順序,從所述非臟頁(yè)鏈表中查找目標(biāo)非臟頁(yè);
[0027]所述臟頁(yè)處理單元,用于按照所述臟頁(yè)鏈表中訪(fǎng)問(wèn)計(jì)數(shù)從小到大的順序,從所述臟頁(yè)鏈表中選擇目標(biāo)臟頁(yè)。
[0028]優(yōu)選地,進(jìn)一步包括:
[0029]重建單元,用于在所述基樹(shù)空間中未查找到所述目標(biāo)頁(yè)的索引,則建立所述目標(biāo)頁(yè),并從磁盤(pán)中讀取所述目標(biāo)頁(yè)的內(nèi)容將讀取的該內(nèi)容填充到所述目標(biāo)頁(yè)中,并設(shè)置所述目標(biāo)頁(yè)的初始訪(fǎng)問(wèn)計(jì)數(shù),將所述目標(biāo)頁(yè)插入至非臟頁(yè)鏈表的相應(yīng)位置處。
[0030]本發(fā)明實(shí)施例提供了一種緩存頁(yè)面替換方法及裝置,通過(guò)建立臟頁(yè)鏈表和非臟頁(yè)鏈表,以使得在訪(fǎng)問(wèn)非臟頁(yè)鏈表時(shí),所訪(fǎng)問(wèn)的頁(yè)都是非臟頁(yè),在內(nèi)存不足時(shí),可以快速的選擇非臟頁(yè)鏈表中的非臟頁(yè)進(jìn)行釋放,無(wú)需對(duì)鏈表中的頁(yè)的類(lèi)型進(jìn)行檢測(cè),省卻了頁(yè)的檢測(cè)時(shí)間,從而提高緩存頁(yè)面替換的效率。
【附圖說(shuō)明】
[0031]圖1是本發(fā)明實(shí)施例提供的方法流程圖;
[0032]圖2是本發(fā)明另一實(shí)施例提供的方法流程圖;
[0033]圖3是本發(fā)明實(shí)施例提供的讀操作方法流程圖;
[0034]圖4是本發(fā)明實(shí)施例提供的非臟頁(yè)鏈表結(jié)構(gòu)圖;
[0035]圖5是本發(fā)明實(shí)施例提供的非臟頁(yè)鏈表中插入結(jié)果示意圖;
[0036]圖6是本發(fā)明另一實(shí)施例提供的非臟頁(yè)鏈表中插入結(jié)果示
當(dāng)前第1頁(yè)1 2 3 4 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
都昌县| 祁东县| 中卫市| 卢氏县| 南宫市| 灵石县| 晋城| 泽普县| 蒙城县| 桑植县| 金秀| 麻栗坡县| 萨嘎县| 麦盖提县| 道真| 伊春市| 郓城县| 方城县| 乐昌市| 比如县| 武威市| 文安县| 许昌县| 宜春市| 株洲市| 县级市| 宜良县| 甘谷县| 五华县| 阿坝县| 如东县| 合肥市| 湖州市| 莱芜市| 德化县| 静乐县| 上林县| 金湖县| 柳林县| 高清| 宁晋县|