1.一種磁盤內(nèi)部的數(shù)據(jù)緩存方法,其特征在于,包括:
創(chuàng)建用于映射磁盤的存儲(chǔ)文件的內(nèi)存映射文件,所述內(nèi)存映射文件對(duì)應(yīng)有虛擬地址空間的空閑內(nèi)存區(qū)域;所述內(nèi)存映射文件預(yù)先被劃分為多個(gè)空閑存儲(chǔ)塊;
根據(jù)預(yù)存的緩存文件的大小,計(jì)算所述內(nèi)存映射文件中用于存儲(chǔ)所述緩存文件的所述空閑存儲(chǔ)塊的第一數(shù)量;
從所述內(nèi)存映射文件中抽取所述第一數(shù)量的所述空閑存儲(chǔ)塊,并將所述空閑存儲(chǔ)塊設(shè)置為待用存儲(chǔ)塊;
通過(guò)所述待用存儲(chǔ)塊存儲(chǔ)所述緩存文件,得到存儲(chǔ)文件。
2.根據(jù)權(quán)利要求1所述的磁盤內(nèi)部的數(shù)據(jù)緩存方法,其特征在于,還包括:
實(shí)時(shí)檢測(cè)所述內(nèi)存映射文件對(duì)應(yīng)的所述空閑內(nèi)存區(qū)域的大??;
在檢測(cè)到所述空閑內(nèi)存區(qū)域的大小小于第一設(shè)定閾值時(shí),根據(jù)第二設(shè)定閾值,計(jì)算待釋放的所述存儲(chǔ)文件的第三數(shù)量;其中,所述第二設(shè)定閾值大于所述第一設(shè)定閾值;
將所述第三數(shù)量的所述存儲(chǔ)文件作為空閑存儲(chǔ)塊釋放到所述內(nèi)存映射文件中。
3.根據(jù)權(quán)利要求2所述的磁盤內(nèi)部的數(shù)據(jù)緩存方法,其特征在于,實(shí)時(shí)檢測(cè)所述內(nèi)存映射文件對(duì)應(yīng)的所述空閑內(nèi)存區(qū)域的大小,包括:
實(shí)時(shí)獲取所述內(nèi)存映射文件中所述空閑存儲(chǔ)塊的第二數(shù)量;
根據(jù)所述第二數(shù)量,計(jì)算所述內(nèi)存映射文件中所述空閑內(nèi)存區(qū)域的大小。
4.根據(jù)權(quán)利要求2所述的磁盤內(nèi)部的數(shù)據(jù)緩存方法,其特征在于,還包括:
每檢測(cè)到一個(gè)所述存儲(chǔ)文件時(shí),將所述存儲(chǔ)文件存儲(chǔ)的所述緩存文件的文件名存儲(chǔ)到預(yù)先建立的熱度鏈表的頭部;其中,所述熱度鏈表包括:用于存儲(chǔ)所述文件名的第一文件名存儲(chǔ)區(qū)。
5.根據(jù)權(quán)利要求4所述的磁盤內(nèi)部的數(shù)據(jù)緩存方法,其特征在于,還包括:
每檢測(cè)到一個(gè)所述存儲(chǔ)文件時(shí),將所述存儲(chǔ)文件及其存儲(chǔ)的所述緩存文件的文件名存儲(chǔ)到預(yù)先建立的數(shù)據(jù)緩存表中;其中,所述數(shù)據(jù)緩存表包括:用于存儲(chǔ)所述存儲(chǔ)文件的存儲(chǔ)文件存儲(chǔ)區(qū)和用于存儲(chǔ)所述文件名的第二文件名存儲(chǔ)區(qū)。
6.根據(jù)權(quán)利要求5所述的磁盤內(nèi)部的數(shù)據(jù)緩存方法,其特征在于,將所述第三數(shù)量的所述存儲(chǔ)文件作為空閑存儲(chǔ)塊釋放到所述內(nèi)存映射文件中,包括:
根據(jù)所述熱度鏈表中所述第一文件名存儲(chǔ)區(qū)存儲(chǔ)的所述文件名從后到前的排序順序,獲取所述第三數(shù)量的所述文件名作為待釋放文件名;
根據(jù)所述待釋放文件名從所述數(shù)據(jù)緩存表中查找匹配的所述存儲(chǔ)文件,作為待釋放存儲(chǔ)文件;
將所述待釋放存儲(chǔ)文件作為空閑存儲(chǔ)塊釋放到所述內(nèi)存映射文件中。
7.根據(jù)權(quán)利要求1所述的磁盤內(nèi)部的數(shù)據(jù)緩存方法,其特征在于,還包括:將多個(gè)所述空閑存儲(chǔ)塊串連在一起建立內(nèi)存塊鏈表;從所述內(nèi)存映射文件中抽取所述第一數(shù)量的所述空閑存儲(chǔ)塊,包括:
按照所述內(nèi)存塊鏈表中所述空閑存儲(chǔ)塊的串連順序,從所述內(nèi)存塊鏈表抽取所述第一數(shù)量的所述空閑存儲(chǔ)塊。
8.根據(jù)權(quán)利要求1所述的磁盤內(nèi)部的數(shù)據(jù)緩存方法,其特征在于,還包括:將多個(gè)所述待用存儲(chǔ)塊串連在一起建立文件塊鏈表;
通過(guò)所述待用存儲(chǔ)塊存儲(chǔ)所述緩存文件,得到存儲(chǔ)文件,包括:
按照所述文件塊鏈表中所述待用存儲(chǔ)塊的串連順序,依次通過(guò)所述待用存儲(chǔ)塊存儲(chǔ)所述緩存文件,得到所述存儲(chǔ)文件。
9.一種磁盤內(nèi)部的數(shù)據(jù)緩存裝置,其特征在于,包括:
創(chuàng)建模塊,用于創(chuàng)建用于映射磁盤的存儲(chǔ)文件的內(nèi)存映射文件,所述內(nèi)存映射文件對(duì)應(yīng)有虛擬地址空間的空閑內(nèi)存區(qū)域;所述內(nèi)存映射文件預(yù)先被劃分為多個(gè)空閑存儲(chǔ)塊;
第一計(jì)算模塊,用于根據(jù)預(yù)存的緩存文件的大小,計(jì)算所述內(nèi)存映射文件中用于存儲(chǔ)所述緩存文件的所述空閑存儲(chǔ)塊的第一數(shù)量;
抽取模塊,用于從所述內(nèi)存映射文件中抽取所述第一數(shù)量的所述空閑存儲(chǔ)塊,并將所述空閑存儲(chǔ)塊設(shè)置為待用存儲(chǔ)塊;
第一存儲(chǔ)模塊,用于通過(guò)所述待用存儲(chǔ)塊存儲(chǔ)所述緩存文件,得到存儲(chǔ)文件。
10.根據(jù)權(quán)利要求9所述的磁盤內(nèi)部的數(shù)據(jù)緩存裝置,其特征在于,還包括:
檢測(cè)模塊,用于實(shí)時(shí)檢測(cè)所述內(nèi)存映射文件對(duì)應(yīng)的所述空閑內(nèi)存區(qū)域的大?。?/p>
第二計(jì)算模塊,用于在檢測(cè)到所述空閑內(nèi)存區(qū)域的大小小于第一設(shè)定閾值時(shí),根據(jù)第二設(shè)定閾值,計(jì)算待釋放的所述存儲(chǔ)文件的第三數(shù)量;其中,所述第二設(shè)定閾值大于所述第一設(shè)定閾值;
釋放模塊,用于將所述第三數(shù)量的所述存儲(chǔ)文件作為空閑存儲(chǔ)塊釋放到所述內(nèi)存映射文件中。
11.根據(jù)權(quán)利要求10所述的磁盤內(nèi)部的數(shù)據(jù)緩存裝置,其特征在于,所述檢測(cè)模塊,包括:
第一獲取單元,用于實(shí)時(shí)獲取所述內(nèi)存映射文件中所述空閑存儲(chǔ)塊的第二數(shù)量;
計(jì)算單元,用于根據(jù)所述第二數(shù)量,計(jì)算所述內(nèi)存映射文件中所述空閑內(nèi)存區(qū)域的大小。
12.根據(jù)權(quán)利要求10所述的磁盤內(nèi)部的數(shù)據(jù)緩存裝置,其特征在于,還包括:
第二存儲(chǔ)模塊,用于每檢測(cè)到一個(gè)所述存儲(chǔ)文件時(shí),將所述存儲(chǔ)文件存儲(chǔ)的所述緩存文件的文件名存儲(chǔ)到預(yù)先建立的熱度鏈表的頭部;其中,所述熱度鏈表包括:用于存儲(chǔ)所述文件名的第一文件名存儲(chǔ)區(qū)。
13.根據(jù)權(quán)利要求12所述的磁盤內(nèi)部的數(shù)據(jù)緩存裝置,其特征在于,還包括:
第三存儲(chǔ)模塊,用于每檢測(cè)到一個(gè)所述存儲(chǔ)文件時(shí),將所述存儲(chǔ)文件及其存儲(chǔ)的所述緩存文件的文件名存儲(chǔ)到預(yù)先建立的數(shù)據(jù)緩存表中;其中,所述數(shù)據(jù)緩存表包括:用于存儲(chǔ)所述存儲(chǔ)文件的存儲(chǔ)文件存儲(chǔ)區(qū)和用于存儲(chǔ)所述文件名的第二文件名存儲(chǔ)區(qū)。
14.根據(jù)權(quán)利要求13所述的磁盤內(nèi)部的數(shù)據(jù)緩存裝置,其特征在于,所述釋放模塊,包括:
第二獲取單元,用于根據(jù)所述熱度鏈表中所述第一文件名存儲(chǔ)區(qū)存儲(chǔ)的所述文件名從后到前的排序順序,獲取所述第三數(shù)量的所述文件名作為待釋放文件名;
查找單元,用于根據(jù)所述待釋放文件名從所述數(shù)據(jù)緩存表中查找匹配的所述存儲(chǔ)文件,作為待釋放存儲(chǔ)文件;
釋放單元,用于將所述待釋放存儲(chǔ)文件作為空閑存儲(chǔ)塊釋放到所述內(nèi)存映射文件中。
15.根據(jù)權(quán)利要求9所述的磁盤內(nèi)部的數(shù)據(jù)緩存裝置,其特征在于,還包括:第一建立模塊,用于將多個(gè)所述空閑存儲(chǔ)塊串連在一起建立內(nèi)存塊鏈表;
所述抽取模塊具體用于,按照所述內(nèi)存塊鏈表中所述空閑存儲(chǔ)塊的串連順序,從所述內(nèi)存塊鏈表抽取所述第一數(shù)量的所述空閑存儲(chǔ)塊。
16.根據(jù)權(quán)利要求9所述的磁盤內(nèi)部的數(shù)據(jù)緩存裝置,其特征在于,還包括:第二建立模塊,用于將多個(gè)所述待用存儲(chǔ)塊串連在一起建立文件塊鏈表;
所述第一存儲(chǔ)模塊具體用于,按照所述文件塊鏈表中所述待用存儲(chǔ)塊的串連順序,依次通過(guò)所述待用存儲(chǔ)塊存儲(chǔ)所述緩存文件,得到所述存儲(chǔ)文件。