午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

數(shù)據(jù)防掉電保護(hù)方法及系統(tǒng)的制作方法

文檔序號(hào):10488839閱讀:450來源:國(guó)知局
數(shù)據(jù)防掉電保護(hù)方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種數(shù)據(jù)防掉電保護(hù)方法及系統(tǒng)。其中方法包括:檢測(cè)電源狀態(tài),當(dāng)檢測(cè)到電源掉電時(shí),讀取內(nèi)存;獲取內(nèi)存中的快取頁(yè),并由快取頁(yè)中提取出存有緩存數(shù)據(jù)的快取頁(yè),將存有緩存數(shù)據(jù)的快取頁(yè)作為第一快取頁(yè);將第一快取頁(yè)中的緩存數(shù)據(jù)直接寫入閃存中。其每個(gè)快取頁(yè)只需訪問一次閃存就能將其內(nèi)的緩存數(shù)據(jù)寫入閃存,有效的減少了每個(gè)快取頁(yè)中的緩存數(shù)據(jù)寫入閃存的次數(shù),大大提高了快取頁(yè)的備份效率。同時(shí),由于快取頁(yè)的備份效率提高了,因此可以避免因?yàn)榭烊№?yè)備份效率低而導(dǎo)致的備份時(shí)間長(zhǎng)剩余電力不足以完成數(shù)據(jù)備份,造成數(shù)據(jù)備份失敗的情況發(fā)生。
【專利說明】
數(shù)據(jù)防掉電保護(hù)方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)設(shè)備領(lǐng)域,特別是涉及一種數(shù)據(jù)防掉電保護(hù)方法及系統(tǒng)。
【背景技術(shù)】
[0002]計(jì)算機(jī)設(shè)備將平常存儲(chǔ)在磁盤上的數(shù)據(jù)存放在RAM(Random Access Memory,隨機(jī)存取存儲(chǔ)器)中,計(jì)算機(jī)設(shè)備中處理器直接對(duì)存儲(chǔ)在RAM中的數(shù)據(jù)進(jìn)行處理,而無需存取磁盤,提高設(shè)備的效率。但是RAM是一種揮發(fā)性記憶體,當(dāng)電源掉電時(shí),其內(nèi)所儲(chǔ)存的數(shù)據(jù)往往無法保存而丟失。
[0003]傳統(tǒng)技術(shù)中是以塊為寫入單位寫入閃存中的,快取頁(yè)的空間并不一定會(huì)被數(shù)據(jù)寫滿,其中,快取頁(yè)指的是內(nèi)存供設(shè)備系統(tǒng)使用時(shí)被規(guī)劃的分區(qū),每個(gè)內(nèi)存可被規(guī)劃為多個(gè)快取頁(yè),每個(gè)快取頁(yè)又被劃分為多個(gè)塊,其可看成是由一堆塊組成,數(shù)據(jù)緩存在塊中。以塊為寫入單位可以充分利用閃存的儲(chǔ)存空間,但當(dāng)計(jì)算機(jī)設(shè)備發(fā)生非預(yù)期掉電時(shí),以塊為寫入單位進(jìn)行數(shù)據(jù)備份時(shí),每個(gè)快取頁(yè)都需多次訪問閃存,才能將快取頁(yè)中的塊全部寫入閃存中,這樣會(huì)因?qū)懭腴W存的次數(shù)過多而導(dǎo)致快取頁(yè)寫入的效能較低,從而降低快取頁(yè)的備份效率。

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

[0004]鑒于此,有必要針對(duì)傳統(tǒng)技術(shù)快取頁(yè)掉電備份時(shí)效率較低的問題,提供一種數(shù)據(jù)防掉電保護(hù)方法及系統(tǒng),能夠有效減少快取頁(yè)掉電備份時(shí)寫入閃存的次數(shù),提高快取頁(yè)的備份效率。
[0005]為達(dá)到發(fā)明目的,提供一種數(shù)據(jù)防掉電保護(hù)方法,所述方法包括:
[0006]檢測(cè)電源狀態(tài),當(dāng)檢測(cè)到所述電源掉電時(shí),讀取內(nèi)存;
[0007]獲取所述內(nèi)存中的快取頁(yè),并由所述快取頁(yè)中提取出存有緩存數(shù)據(jù)的快取頁(yè),將存有所述緩存數(shù)據(jù)的快取頁(yè)作為第一快取頁(yè);
[0008]將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中。
[0009]在其中一個(gè)實(shí)施例中,所述獲取所述內(nèi)存中的快取頁(yè),并由所述快取頁(yè)中提取出存有緩存數(shù)據(jù)的快取頁(yè),將存有所述緩存數(shù)據(jù)的快取頁(yè)作為第一快取頁(yè),包括如下步驟:
[0010]獲取所述內(nèi)存的邏輯卷,并判斷所述邏輯卷中是否存在包含有所述第一快取頁(yè)的邏輯卷,所述第一快取頁(yè)為邏輯卷中存有所述緩存數(shù)據(jù)的快取頁(yè),并將包含有所述第一快取頁(yè)的邏輯卷作為第一邏輯卷;
[0011]若是,則提取出所述第一邏輯卷,并由所述第一邏輯卷中提取所述第一快取頁(yè);若否,則寫入結(jié)尾標(biāo)志。
[0012]在其中一個(gè)實(shí)施例中,所述由所述第一邏輯卷中提取出所述第一快取頁(yè)的步驟包括:
[0013]判斷所述第一邏輯卷中的每個(gè)快取頁(yè)是否存有所述緩存數(shù)據(jù);
[0014]若是,則提取出存有所述緩存數(shù)據(jù)的快取頁(yè)作為所述第一快取頁(yè);若否,則寫入所述結(jié)尾標(biāo)志。
[0015]在其中一個(gè)實(shí)施例中,在寫入所述結(jié)尾標(biāo)志之前,還包括:
[0016]開啟所述閃存;
[0017]更新所述閃存中寫入的第一快取頁(yè)的數(shù)量;
[0018]關(guān)閉所述閃存;
[0019]在將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中的步驟之前,還包括:
[0020]開啟所述閃存
[0021]在將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中的步驟之后,還包括:
[0022]關(guān)閉所述閃存。
[0023]在其中一個(gè)實(shí)施例中,所述將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中的步驟包括:
[0024]將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)以VFS的方式直接寫入所述閃存中。
[0025]本發(fā)明還提供一種數(shù)據(jù)防掉電保護(hù)系統(tǒng),所述系統(tǒng)包括:
[0026]檢測(cè)模塊,用于檢測(cè)電源狀態(tài),當(dāng)檢測(cè)到所述電源掉電時(shí),讀取內(nèi)存;
[0027]獲取提取模塊,所述獲取提取模塊與所述檢測(cè)模塊電性連接,用于獲取所述內(nèi)存中的快取頁(yè),并由所述快取頁(yè)中提取出存有緩存數(shù)據(jù)的快取頁(yè),將存有所述緩存數(shù)據(jù)的快取頁(yè)作為第一快取頁(yè);
[0028]寫入模塊,所述寫入模塊與所述獲取提取模塊電性連接,用于將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中。
[0029]在其中一個(gè)實(shí)施例中,所述數(shù)據(jù)防掉電保護(hù)系統(tǒng)還包括:
[0030]寫入結(jié)尾標(biāo)志模塊,用于寫入結(jié)尾標(biāo)志。
[0031 ]在其中一個(gè)實(shí)施例中,所述獲取提取模塊包括:
[0032]獲取判斷單元,用于獲取所述內(nèi)存的邏輯卷,并判斷所述邏輯卷中是否存在包含有所述第一快取頁(yè)的邏輯卷,所述寫入模塊與所述獲取提取模塊電性連接,并將包含有所述第一快取頁(yè)的邏輯卷作為第一邏輯卷;若是,則進(jìn)入邏輯卷提取單元;若否,則進(jìn)入寫入結(jié)尾標(biāo)志模塊;
[0033]所述邏輯卷提取單元,用于提取出所述第一邏輯卷,并由所述第一邏輯卷中獲提所述第一快取頁(yè)。
[0034]在其中一個(gè)實(shí)施例中,所述邏輯卷提取單元包括:
[0035]判斷子單元,用于判斷所述第一邏輯卷中的每個(gè)快取頁(yè)是否存有所述緩存數(shù)據(jù);若是,則進(jìn)入快取頁(yè)提取子單元;若否,則進(jìn)入所述寫入結(jié)尾標(biāo)志模塊;
[0036]所述快取頁(yè)提取子單元,用于提取出存有所述緩存數(shù)據(jù)的快取頁(yè)作為所述第一快取頁(yè)。
[0037]在其中一個(gè)實(shí)施例中,還包括:
[0038]開啟閃存模塊,用于在寫入所述結(jié)尾標(biāo)志之前,開啟所述閃存;
[0039]更新模塊,用于在開啟所述閃存之后,更新所述閃存中寫入的第一快取頁(yè)的數(shù)量;
[0040]關(guān)閉閃存模塊,用于在寫入所述結(jié)尾標(biāo)志之后,關(guān)閉所述閃存;
[0041]所述開啟閃存模塊,還用于在將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中之前,開啟所述閃存;
[0042]所述關(guān)閉閃存模塊,還用于在將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中之后,關(guān)閉所述閃存。
[0043]在其中一個(gè)實(shí)施例中,所述寫入模塊包括:
[0044]寫入單元,用于將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)以VFS的方式直接寫入所述閃存中。
[0045]本發(fā)明的有益效果包括:
[0046]上述數(shù)據(jù)防掉電保護(hù)方法及系統(tǒng),當(dāng)檢測(cè)到電源發(fā)生掉電時(shí),讀取內(nèi)存并獲取內(nèi)存中的快取頁(yè),由快取頁(yè)中提取存有緩存數(shù)據(jù)的第一快取頁(yè),沒有存有緩存數(shù)據(jù)的快取頁(yè)無需進(jìn)行數(shù)據(jù)備份,避免對(duì)緩存數(shù)據(jù)為空的快取頁(yè)進(jìn)行存取而浪費(fèi)時(shí)間及剩余電力,將第一快取頁(yè)中的緩存數(shù)據(jù)直接寫入閃存中,每個(gè)快取頁(yè)只需訪問一次閃存就能將其內(nèi)的緩存數(shù)據(jù)寫入閃存,有效的減少了每個(gè)快取頁(yè)中的緩存數(shù)據(jù)寫入閃存的次數(shù),大大提高了快取頁(yè)的備份效率。同時(shí),由于快取頁(yè)的備份效率提高了,因此可以避免因?yàn)榭烊№?yè)備份效率低而導(dǎo)致的備份時(shí)間長(zhǎng)剩余電力不足以完成數(shù)據(jù)備份,造成數(shù)據(jù)備份失敗的情況發(fā)生。
【附圖說明】
[0047]圖1為一個(gè)實(shí)施例中的數(shù)據(jù)防掉電保護(hù)方法的流程示意圖;
[0048]圖2為另一個(gè)實(shí)施例中的數(shù)據(jù)防掉電保護(hù)方法的流程示意圖;
[0049]圖3為又一個(gè)實(shí)施例中的數(shù)據(jù)防掉電保護(hù)方法的流程示意圖;
[0050]圖4為一個(gè)實(shí)施例中的數(shù)據(jù)防掉電保護(hù)系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0051]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明數(shù)據(jù)防掉電保護(hù)方法及系統(tǒng)進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0052]在一個(gè)實(shí)施例中,如圖1所示,提供了一種數(shù)據(jù)防掉電保護(hù)方法,該方法包括以下步驟:
[0053]SlOO,檢測(cè)電源狀態(tài),當(dāng)檢測(cè)到電源掉電時(shí),讀取內(nèi)存;
[0054]S200,獲取內(nèi)存中的快取頁(yè),并由快取頁(yè)中提取出存有緩存數(shù)據(jù)的快取頁(yè),將存有緩存數(shù)據(jù)的快取頁(yè)作為第一快取頁(yè)。
[0055]S200,將第一快取頁(yè)中的緩存數(shù)據(jù)直接寫入閃存中。
[0056]實(shí)時(shí)檢測(cè)計(jì)算機(jī)設(shè)備的電源狀態(tài),在電源發(fā)生掉電之前,計(jì)算機(jī)設(shè)備將平常存儲(chǔ)在磁盤上的數(shù)據(jù)緩存在內(nèi)存中,計(jì)算機(jī)設(shè)備中的中央處理器直接對(duì)緩存在內(nèi)存中的數(shù)據(jù)進(jìn)行處理,無需存取磁盤,從而提高設(shè)備的處理效率。當(dāng)電源發(fā)生掉電時(shí),包括非預(yù)期和預(yù)期的掉電,由于內(nèi)存為揮發(fā)性記憶體,其內(nèi)存儲(chǔ)的數(shù)據(jù)往往無法保存而丟失,因此,需要在設(shè)備關(guān)機(jī)之前,利用設(shè)備的剩余電力將內(nèi)存中的緩存數(shù)據(jù)存入非揮發(fā)性記憶體的閃存中,從而防止緩存數(shù)據(jù)因?yàn)殡娫赐蝗坏綦姸z失。傳統(tǒng)的防止數(shù)據(jù)因電源突然中斷而遺失的方法是先查找出存有緩存數(shù)據(jù)的快取頁(yè),然后從存有緩存數(shù)據(jù)的快取頁(yè)中提取存有緩存數(shù)據(jù)的塊,最后將塊中的緩存數(shù)據(jù)直接以塊為寫入單元寫入閃存中,直至將該快取頁(yè)中所有緩存有緩存數(shù)據(jù)的塊都寫入閃存中,按照上述方法直至將內(nèi)存中所有存有緩存數(shù)據(jù)的快取頁(yè)中的緩存數(shù)據(jù)都寫入閃存中,從而完成內(nèi)存中緩存數(shù)據(jù)的備份。但每次將快取頁(yè)中的緩存數(shù)據(jù)以塊為寫入單位寫入閃存時(shí),每個(gè)快取頁(yè)都需要多次訪問閃存才能將快取頁(yè)中的所有緩存數(shù)據(jù)都寫入閃存中,這樣勢(shì)必會(huì)造成寫入效率的低落,拖累快取頁(yè)的備份效率。在設(shè)備剩余電力不足時(shí),快取頁(yè)備份效率低落可能會(huì)出現(xiàn)無法將內(nèi)存中所有的緩存數(shù)據(jù)及時(shí)備份的情況,仍然會(huì)造成數(shù)據(jù)的丟失。
[0057]需要說明的是,快取頁(yè)可看成為內(nèi)存供設(shè)備使用時(shí)而劃分的分區(qū),一個(gè)內(nèi)存中可劃分為多個(gè)快取頁(yè),每個(gè)快取頁(yè)又被劃分為多個(gè)塊,可看作為由許多塊組成。內(nèi)存指的是能夠與計(jì)算機(jī)設(shè)備中的中央處理器直接進(jìn)行數(shù)據(jù)交互的存儲(chǔ)器,它可以隨時(shí)讀寫,并且讀寫速度很快,通常作為操作系統(tǒng)或其他正在運(yùn)行中的程序的臨時(shí)數(shù)據(jù)的存儲(chǔ)介質(zhì),但在電源掉電后將丟失其存儲(chǔ)的內(nèi)容。例如:RAM(random access memory,隨機(jī)存取存儲(chǔ)器)。閃存是一種長(zhǎng)壽命的非易失性的存儲(chǔ)器,其在斷電的情況下仍能保持所存儲(chǔ)的數(shù)據(jù)信息。例如:閃存卡。
[0058]當(dāng)檢測(cè)到電源掉電時(shí),包括預(yù)期的和非預(yù)期的掉電,需要盡量快的將內(nèi)存中的緩存數(shù)據(jù)備份到閃存中,以避免發(fā)生較長(zhǎng)時(shí)間的數(shù)據(jù)備份由于電力不足而導(dǎo)致數(shù)據(jù)丟失的情況。本實(shí)施例中獲取內(nèi)存中的快取頁(yè),此時(shí)獲取的是內(nèi)存中的所有快取頁(yè),但這些快取頁(yè)中可能存在沒有存有緩存數(shù)據(jù)的快取頁(yè),這些沒有存有緩存數(shù)據(jù)的快取頁(yè)無需進(jìn)行數(shù)據(jù)備份,以避免備份數(shù)據(jù)為空的快取頁(yè)浪費(fèi)時(shí)間及設(shè)備剩余電力。同時(shí),從內(nèi)存的快取頁(yè)中提取存有緩存數(shù)據(jù)的快取頁(yè),作為第一快取頁(yè),并將快取頁(yè)中的緩存數(shù)據(jù)直接寫入閃存中,即每個(gè)快取頁(yè)僅需訪問一次閃存就能將其內(nèi)的緩存數(shù)據(jù)寫入閃存,無需再將快取頁(yè)中的緩存數(shù)據(jù)以塊為寫入單位一個(gè)一個(gè)的寫入閃存,有效的減少了每個(gè)快取頁(yè)中的緩存數(shù)據(jù)寫入閃存的次數(shù),大大提高了快取頁(yè)的備份效率。同時(shí),由于快取頁(yè)的備份效率提高了,因此可以避免因?yàn)榭烊№?yè)備份效率低而導(dǎo)致的備份時(shí)間長(zhǎng)剩余電力不足以完成數(shù)據(jù)備份,造成數(shù)據(jù)備份失敗的情況發(fā)生。
[0059]其中,值得說明的是,每次將內(nèi)存中的緩存數(shù)據(jù)寫入閃存之前,需要開啟一次閃存,在每次將內(nèi)存中的緩存數(shù)據(jù)寫入閃存之后,都需將閃存關(guān)閉。若設(shè)備剩余電力不足或緩存數(shù)據(jù)備份時(shí)間較長(zhǎng)時(shí),每次向閃存中備份緩存數(shù)據(jù)時(shí)都開啟和關(guān)閉一次閃存,可以避免閃存一直持續(xù)開啟時(shí)浪費(fèi)電能,導(dǎo)致設(shè)備強(qiáng)行關(guān)機(jī),數(shù)據(jù)備份失敗。
[0060]在一個(gè)實(shí)施例中,參見圖2,步驟S200包括:
[0061]S210,獲取內(nèi)存的邏輯卷,并判斷邏輯卷中是否存在包含有第一快取頁(yè)的邏輯卷,所述第一快取頁(yè)為邏輯卷中存有所述緩存數(shù)據(jù)的快取頁(yè),并將包含有第一快取頁(yè)的邏輯卷作為第一邏輯卷;若是,則執(zhí)行步驟S211;若否,則執(zhí)行步驟S212。
[0062]S211,提取出第一邏輯卷,并由第一邏輯卷中提取所述第一快取頁(yè)。
[0063]S212,寫入結(jié)尾標(biāo)志。
[0064]邏輯卷(LogicalVolume,LV)可視為實(shí)體磁盤經(jīng)過邏輯規(guī)劃后的可供存取的空間,其是一種磁盤管理方式,目的是把磁盤從物理磁盤的管理方式中跳出來,進(jìn)行方便的統(tǒng)一管理分配,每個(gè)邏輯卷可以為一個(gè)磁盤形成的可供存取的空間,也可以為多個(gè)磁盤或多個(gè)磁盤的部分空間組成RAID(Redundant Arrays of Independent Disks,磁盤陣列)。
[0065]本實(shí)施例中的邏輯卷為內(nèi)存經(jīng)過邏輯規(guī)劃后的可供存取的空間,每個(gè)邏輯卷可包括多個(gè)快取頁(yè),要寫入邏輯卷這個(gè)空間的數(shù)據(jù)都會(huì)直接寫入到快取頁(yè)上。想要獲取內(nèi)存中存有緩存數(shù)據(jù)的第一快取頁(yè)時(shí),可以先獲取內(nèi)存的所有邏輯卷,然后再找出這些邏輯卷中包含有第一快取頁(yè)的第一邏輯卷,即存有緩存數(shù)據(jù)的第一邏輯卷,對(duì)于沒有儲(chǔ)存緩存數(shù)據(jù)的邏輯卷,可以不對(duì)其進(jìn)行備份,對(duì)于找出的存有緩存數(shù)據(jù)的第一邏輯卷,由于緩存數(shù)據(jù)是直接寫入在邏輯卷的快取頁(yè)上的,因此可從第一邏輯卷中提取存有緩存數(shù)據(jù)的第一快取頁(yè),進(jìn)而將第一快取頁(yè)中的緩存數(shù)據(jù)直接備份至閃存中。上述實(shí)施方式可以避免沒有存有緩存數(shù)據(jù)的邏輯卷進(jìn)行數(shù)據(jù)備份,在一定程度上提高備份效率。并且,在將緩存數(shù)據(jù)備份至閃存時(shí),快取頁(yè)上的緩存數(shù)據(jù)實(shí)際上仍是存儲(chǔ)在內(nèi)存中的,由于對(duì)內(nèi)存進(jìn)行了邏輯劃分,因此每個(gè)快取頁(yè)上的緩存數(shù)據(jù)可能存儲(chǔ)在不同的內(nèi)存中或存儲(chǔ)在內(nèi)存的不同區(qū)域內(nèi),這樣在將緩存數(shù)據(jù)備份至閃存中時(shí),可以將一個(gè)緩存數(shù)據(jù)分散的從內(nèi)存的多個(gè)存儲(chǔ)區(qū)域或多個(gè)內(nèi)存中同時(shí)讀取,然后將讀取的分散數(shù)據(jù)重新組成緩存數(shù)據(jù)寫入閃存中,提高了緩存數(shù)據(jù)從內(nèi)存中的讀取效率,進(jìn)而有效地提高了快取頁(yè)中緩存數(shù)據(jù)的備份效率。
[0066]如果判斷邏輯卷中沒有包含有第一快取頁(yè)的第一邏輯卷,則說明內(nèi)存中已經(jīng)沒有緩存數(shù)據(jù)了,即已找出所有的存有緩存數(shù)據(jù)的邏輯卷,將找出的第一邏輯卷中的緩存數(shù)據(jù)備份至閃存,完成內(nèi)存中緩存數(shù)據(jù)的備份。若內(nèi)存中不能再找出包含有第一快取頁(yè)的第一邏輯卷,則在閃存中寫入結(jié)尾標(biāo)志,以告知計(jì)算機(jī)設(shè)備的操作系統(tǒng)已完成內(nèi)存中緩存數(shù)據(jù)的備份,可以執(zhí)行關(guān)機(jī)動(dòng)作。操作系統(tǒng)只有在接收到結(jié)尾標(biāo)志之后才執(zhí)行關(guān)機(jī)動(dòng)作,避免在沒有完成緩存數(shù)據(jù)備份之前就發(fā)生關(guān)機(jī)的情況。
[0067]在一個(gè)實(shí)施例中,參見圖3,步驟S211包括:
[0068]S2110,判斷第一邏輯卷中的每個(gè)快取頁(yè)是否存有緩存數(shù)據(jù);若是,則執(zhí)行步驟S2111;若否,則執(zhí)行步驟S212。
[0069]S2111,提取出存有緩存數(shù)據(jù)的快取頁(yè)作為第一快取頁(yè)。
[0070]本實(shí)施例是由第一邏輯卷中獲取第一快取頁(yè)的具體步驟,每個(gè)邏輯卷可能存在多個(gè)快取頁(yè),但并不是每個(gè)快取頁(yè)中都緩存有緩存數(shù)據(jù),需要判斷每個(gè)快取頁(yè)上是否存有緩存數(shù)據(jù),并提取存有緩存數(shù)據(jù)的快取頁(yè)作為第一快取頁(yè),并將第一快取頁(yè)中的緩存數(shù)據(jù)寫入閃存中,完成緩存數(shù)據(jù)的備份。若快取頁(yè)上沒有緩存有緩存數(shù)據(jù),則不對(duì)這些快取頁(yè)進(jìn)行備份,避免備份數(shù)據(jù)為空的快取頁(yè)降低備份效率。
[0071]需要說明的是,在具體的實(shí)現(xiàn)過程中,上述步驟S210和步驟S2110可以采用如下方式實(shí)現(xiàn)。在步驟S2110中,依次判斷第一邏輯卷中的第一個(gè)快取頁(yè)中是否存有緩存數(shù)據(jù),若是,則將該第一個(gè)快取頁(yè)中的緩存數(shù)據(jù)寫入閃存中,若否,則返回繼續(xù)判斷該第一邏輯卷中的第二個(gè)快取頁(yè)中是否存有緩存數(shù)據(jù),若是,則將該第二個(gè)快取頁(yè)中的緩存數(shù)據(jù)寫入閃存中,若否,則返回繼續(xù)判斷該第一邏輯卷中的第三個(gè)快取頁(yè)中是否存有緩存數(shù)據(jù),以此類推,直至判斷出該第一邏輯卷中最后一個(gè)快取頁(yè)中是否存有緩存數(shù)據(jù)。然后返回步驟S210繼續(xù)判斷內(nèi)存中是否還有存有緩存數(shù)據(jù)的第一邏輯卷,若是,則執(zhí)行步驟S2110,若否,則執(zhí)行寫入結(jié)尾標(biāo)志的步驟,直至判斷出內(nèi)存中所有存有緩存數(shù)據(jù)的第一邏輯卷。
[0072]在一個(gè)實(shí)施例中,在步驟S212之前,還包括:
[0073]S2120,開啟閃存。
[0074]S2121,更新閃存中寫入的第一快取頁(yè)的數(shù)量。
[0075]在步驟S212之后,還包括:
[0076]S2122,關(guān)閉閃存。
[0077]在操作系統(tǒng)關(guān)機(jī)之前,需要更新寫入閃存中的第一快取頁(yè)的數(shù)量,以便于在設(shè)備恢復(fù)電力還原備份數(shù)據(jù)時(shí)根據(jù)更新的第一快取頁(yè)的數(shù)量還原所有的緩存數(shù)據(jù),避免備份的緩存數(shù)據(jù)沒有還原的情況。由于每次將第一快取頁(yè)中的緩存數(shù)據(jù)寫入閃存時(shí),都需開啟和關(guān)閉閃存,以避免閃存一直持續(xù)開啟消耗電能,因此在更新寫入閃存中的第一快取頁(yè)的數(shù)量時(shí),需要開啟閃存,以實(shí)現(xiàn)在閃存中更新寫入的第一快取頁(yè)的數(shù)量的目的,在更新寫入閃存中的第一快取頁(yè)的數(shù)量之后,寫入結(jié)尾標(biāo)志,并關(guān)閉閃存,讓閃存中的數(shù)據(jù)得以保存,系統(tǒng)執(zhí)行關(guān)機(jī)動(dòng)作。
[0078]在一個(gè)實(shí)施例中,在步驟S310之前,還包括:S301,開啟閃存。在步驟S310之后,還包括,執(zhí)行步驟S2122,關(guān)閉閃存??梢杂行П苊忾W存一直持續(xù)開啟時(shí)浪費(fèi)電能,導(dǎo)致設(shè)備強(qiáng)行關(guān)機(jī),數(shù)據(jù)備份失敗。
[0079]在一個(gè)實(shí)施例中,步驟S300包括:
[0080]S310,將第一快取頁(yè)中的緩存數(shù)據(jù)以VFS(Virtual File System,虛擬文件系統(tǒng))的方式直接寫入閃存中。
[0081]VFS的作用是采用標(biāo)準(zhǔn)的Unix系統(tǒng)調(diào)用讀寫位于不同物理介質(zhì)上的不同文件系統(tǒng),即為各類文件系統(tǒng)提供了一個(gè)統(tǒng)一的操作界面和應(yīng)用編程接口。預(yù)先對(duì)閃存進(jìn)行邏輯規(guī)劃,即讓閃存也在邏輯上劃分為多個(gè)可供存取的虛擬空間,每個(gè)虛擬空間命名為邏輯卷,在將第一快取頁(yè)中的緩存數(shù)據(jù)寫入閃存中時(shí),緩存數(shù)據(jù)以VFS的方式寫入閃存的邏輯卷中,由于每個(gè)邏輯卷可能對(duì)應(yīng)閃存的多個(gè)不同存儲(chǔ)區(qū)域,因此在將緩存數(shù)據(jù)寫入閃存的邏輯卷中時(shí),相當(dāng)于將同一緩存數(shù)據(jù)分散寫入閃存的多個(gè)不同存儲(chǔ)區(qū)域中,這樣顯然能夠提高緩存數(shù)據(jù)寫入閃存的效率。采用VFS的方式在緩存數(shù)據(jù)寫入閃存中時(shí),提高與邏輯分區(qū)的閃存的相容性,實(shí)現(xiàn)緩存數(shù)據(jù)寫入閃存的邏輯卷中。
[0082]值得說明的是,當(dāng)計(jì)算機(jī)設(shè)備上電恢復(fù)電力之后,將備份在閃存中的緩存數(shù)據(jù)還原至相應(yīng)的磁盤中,操作系統(tǒng)執(zhí)行相應(yīng)的處理操作時(shí),可以從相應(yīng)的磁盤中讀取緩存數(shù)據(jù)至內(nèi)存中,供計(jì)算機(jī)設(shè)備的中央處理器進(jìn)行處理。之所以在發(fā)生非預(yù)期掉電時(shí),將內(nèi)存中的緩存數(shù)據(jù)備份到閃存中,而不是直接備份到相應(yīng)的磁盤中,是因?yàn)殚W存的讀寫速度要快于磁盤,可以達(dá)到進(jìn)一步提高快取頁(yè)備份效率的效果。
[0083]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory,RAM)等。
[0084]在一個(gè)實(shí)施例中,如圖4所示,還提供了一種數(shù)據(jù)防掉電保護(hù)系統(tǒng),該系統(tǒng)包括:檢測(cè)模塊100,用于檢測(cè)電源狀態(tài),當(dāng)檢測(cè)到所述電源掉電時(shí),讀取內(nèi)存。獲取提取模塊200,獲取提取模塊200與檢測(cè)模塊100電性連接,用于獲取內(nèi)存中的快取頁(yè),并由快取頁(yè)中提取出存有緩存數(shù)據(jù)的快取頁(yè),將存有緩存數(shù)據(jù)的快取頁(yè)作為第一快取頁(yè)。寫入模塊300,寫入模塊300與獲取提取模塊200電性連接,用于將第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中。
[0085]本實(shí)施例中的數(shù)據(jù)防掉電保護(hù)系統(tǒng),當(dāng)檢測(cè)到電源發(fā)生掉電時(shí),讀取內(nèi)存并獲取內(nèi)存中的快取頁(yè),由快取頁(yè)中提取存有緩存數(shù)據(jù)的第一快取頁(yè),沒有存有緩存數(shù)據(jù)的快取頁(yè)無需進(jìn)行數(shù)據(jù)備份,避免備份數(shù)據(jù)為空的快取頁(yè)浪費(fèi)時(shí)間及剩余電力,將第一快取頁(yè)中的緩存數(shù)據(jù)直接寫入閃存中,每個(gè)快取頁(yè)只需訪問一次閃存就能將其內(nèi)的緩存數(shù)據(jù)寫入閃存,有效的減少了每個(gè)快取頁(yè)中的緩存數(shù)據(jù)寫入閃存的次數(shù),大大提高了快取頁(yè)的備份效率。同時(shí),由于快取頁(yè)的備份效率提高了,因此可以避免因?yàn)榭烊№?yè)備份效率低而導(dǎo)致的備份時(shí)間長(zhǎng)剩余電力不足以完成數(shù)據(jù)備份,造成數(shù)據(jù)備份失敗的情況發(fā)生。
[0086]其中,掉電包括預(yù)期的掉電和非預(yù)期的掉電。
[0087]在一個(gè)實(shí)施例中,還包括:寫入結(jié)尾標(biāo)志模塊230,用于寫入結(jié)尾標(biāo)志。結(jié)尾標(biāo)志在判定內(nèi)存中沒有第一快取頁(yè)時(shí),即判定內(nèi)存中沒有緩存數(shù)據(jù)時(shí)寫入閃存,告知計(jì)算機(jī)設(shè)備的操作系統(tǒng)已完成內(nèi)存中緩存數(shù)據(jù)的備份,可以執(zhí)行關(guān)機(jī)動(dòng)作,避免在沒有完成緩存數(shù)據(jù)備份之前就發(fā)生關(guān)機(jī)的情況。
[0088]在一個(gè)實(shí)施例中,獲取提取模塊200包括:獲取判斷單元210,用于獲取內(nèi)存的邏輯卷,并判斷邏輯卷中是否存在包含有第一快取頁(yè)的邏輯卷,第一快取頁(yè)為邏輯卷中存有緩存數(shù)據(jù)的快取頁(yè),并將包含有第一快取頁(yè)的邏輯卷作為第一邏輯卷;若是,進(jìn)入邏輯卷提取單元220;若否,則進(jìn)入寫入結(jié)尾標(biāo)志模塊230。邏輯卷提取單元220,用于提取出第一邏輯卷,并由第一邏輯卷中提取第一快取頁(yè)。
[0089]在一個(gè)實(shí)施例中,邏輯卷提取單元220包括:判斷子單元221,用于判斷第一邏輯卷中的每個(gè)快取頁(yè)是否存有所述緩存數(shù)據(jù);若是,則進(jìn)入快取頁(yè)提取子單元222;若否,則進(jìn)入寫入結(jié)尾標(biāo)志模塊230。快取頁(yè)提取子單元222,用于提取出存有緩存數(shù)據(jù)的快取頁(yè)作為第一1決取頁(yè)。
[0090]在一個(gè)實(shí)施例中,還包括:開啟閃存模塊240,用于在寫入結(jié)尾標(biāo)志之前,開啟閃存。更新模塊250,用于更新閃存中寫入的第一快取頁(yè)的數(shù)量。關(guān)閉閃存模塊260,用于在寫入結(jié)尾標(biāo)志之后,關(guān)閉內(nèi)存。
[0091]在一個(gè)實(shí)施例中,開啟閃存模塊240,還用于在將第一快取頁(yè)中的緩存數(shù)據(jù)直接寫入閃存中之前,開啟閃存;關(guān)閉閃存模塊260,還用于在將第一快取頁(yè)中的緩存數(shù)據(jù)直接寫入閃存中之后,關(guān)閉閃存
[0092]在一個(gè)實(shí)施例中,寫入模塊300包括:寫入單元310,用于將第一快取頁(yè)中的緩存數(shù)據(jù)以VFS的方式直接寫入閃存中。
[0093]由于此系統(tǒng)解決問題的原理與前述一種數(shù)據(jù)防掉電保護(hù)方法相似,因此該系統(tǒng)的實(shí)施可以參見前述方法的實(shí)施,重復(fù)之處不再贅述。
[0094]以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡(jiǎn)潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
[0095]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)防掉電保護(hù)方法,其特征在于,所述方法包括: 檢測(cè)電源狀態(tài),當(dāng)檢測(cè)到所述電源掉電時(shí),讀取內(nèi)存; 獲取所述內(nèi)存中的快取頁(yè),并由所述快取頁(yè)中提取出存有緩存數(shù)據(jù)的快取頁(yè),將存有所述緩存數(shù)據(jù)的快取頁(yè)作為第一快取頁(yè); 將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中。2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)防掉電保護(hù)方法,其特征在于,所述獲取所述內(nèi)存中的快取頁(yè),并由所述快取頁(yè)中提取出存有緩存數(shù)據(jù)的快取頁(yè),將存有所述緩存數(shù)據(jù)的快取頁(yè)作為第一快取頁(yè),包括如下步驟: 獲取所述內(nèi)存的邏輯卷,并判斷所述邏輯卷中是否存在包含有所述第一快取頁(yè)的邏輯卷,所述第一快取頁(yè)為邏輯卷中存有所述緩存數(shù)據(jù)的快取頁(yè),并將包含有所述第一快取頁(yè)的邏輯卷作為第一邏輯卷; 若是,則提取出所述第一邏輯卷,并由所述第一邏輯卷中提取所述第一快取頁(yè);若否,則寫入結(jié)尾標(biāo)志。3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)防掉電保護(hù)方法,其特征在于,所述由所述第一邏輯卷中提取出所述第一快取頁(yè)的步驟包括: 判斷所述第一邏輯卷中的每個(gè)快取頁(yè)是否存有所述緩存數(shù)據(jù); 若是,則提取出存有所述緩存數(shù)據(jù)的快取頁(yè)作為所述第一快取頁(yè);若否,則寫入所述結(jié) V 1、1、O4.根據(jù)權(quán)利要求2或3所述的數(shù)據(jù)防掉電保護(hù)方法,其特征在于,在寫入所述結(jié)尾標(biāo)志之前,還包括: 開啟所述閃存; 更新所述閃存中寫入的第一快取頁(yè)的數(shù)量; 在寫入所述結(jié)尾標(biāo)志之后,還包括: 關(guān)閉所述閃存; 在將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中的步驟之前,還包括: 開啟所述閃存; 在將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中的步驟之后,還包括: 關(guān)閉所述閃存。5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)防掉電保護(hù)方法,其特征在于,所述將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中的步驟包括: 將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)以VFS的方式直接寫入所述閃存中。6.一種數(shù)據(jù)防掉電保護(hù)系統(tǒng),其特征在于,所述系統(tǒng)包括: 檢測(cè)模塊,用于檢測(cè)電源狀態(tài),當(dāng)檢測(cè)到所述電源掉電時(shí),讀取內(nèi)存; 獲取提取模塊,所述獲取提取模塊與所述檢測(cè)模塊電性連接,用于獲取所述內(nèi)存中的快取頁(yè),并由所述快取頁(yè)中提取出存有緩存數(shù)據(jù)的快取頁(yè),將存有所述緩存數(shù)據(jù)的快取頁(yè)作為第一快取頁(yè); 寫入模塊,所述寫入模塊與所述獲取提取模塊電性連接,用于將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中。7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)防掉電保護(hù)系統(tǒng),其特征在于,所述數(shù)據(jù)防掉電保護(hù)系統(tǒng)還包括: 寫入結(jié)尾標(biāo)志模塊,用于寫入結(jié)尾標(biāo)志。8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)防掉電保護(hù)系統(tǒng),其特征在于,所述獲取提取模塊包括: 獲取判斷單元,用于獲取所述內(nèi)存的邏輯卷,并判斷所述邏輯卷中是否存在包含有所述第一快取頁(yè)的邏輯卷,所述第一快取頁(yè)為邏輯卷中存有所述緩存數(shù)據(jù)的快取頁(yè),并將包含有所述第一快取頁(yè)的邏輯卷作為第一邏輯卷;若是,則進(jìn)入邏輯卷提取單元;若否,則進(jìn)入寫入結(jié)尾標(biāo)志模塊; 所述邏輯卷提取單元,用于提取出所述第一邏輯卷,并由所述第一邏輯卷中提取所述第一快取頁(yè)。9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)防掉電保護(hù)系統(tǒng),其特征在于,所述邏輯卷提取單元包括: 判斷子單元,用于判斷所述第一邏輯卷中的每個(gè)快取頁(yè)是否存有所述緩存數(shù)據(jù);若是,則進(jìn)入快取頁(yè)提取子單元;若否,則進(jìn)入所述寫入結(jié)尾標(biāo)志模塊; 所述快取頁(yè)提取子單元,用于提取出存有所述緩存數(shù)據(jù)的快取頁(yè)作為所述第一快取頁(yè)。10.根據(jù)權(quán)利要求8或9所述的數(shù)據(jù)防掉電保護(hù)系統(tǒng),其特征在于,還包括: 開啟閃存模塊,用于在寫入所述結(jié)尾標(biāo)志之前,開啟所述閃存; 更新模塊,用于在開啟所述閃存之后,更新所述閃存中寫入的第一快取頁(yè)的數(shù)量; 關(guān)閉閃存模塊,用于在寫入所述結(jié)尾標(biāo)志之后,關(guān)閉所述閃存; 所述開啟閃存模塊,還用于在將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中之前,開啟所述閃存; 所述關(guān)閉閃存模塊,還用于在將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)直接寫入閃存中之后,關(guān)閉所述閃存。11.根據(jù)權(quán)利要求7所述的數(shù)據(jù)防掉電保護(hù)系統(tǒng),其特征在于,所述寫入模塊包括: 寫入單元,用于將所述第一快取頁(yè)中的所述緩存數(shù)據(jù)以VFS的方式直接寫入所述閃存中。
【文檔編號(hào)】G06F3/06GK105843711SQ201610451110
【公開日】2016年8月10日
【申請(qǐng)日】2016年6月21日
【發(fā)明人】陳杰, 沈偉亮
【申請(qǐng)人】北京飛杰信息技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1