一種優(yōu)化安全擦除的方法以及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種優(yōu)化安全擦除的方法,當(dāng)開始執(zhí)行安全擦除時(shí),內(nèi)核空間獲取所需安全擦除的數(shù)據(jù)地址;將所述數(shù)據(jù)地址記錄于區(qū)間標(biāo)記單元,并立即返回擦除成功信號(hào)至系統(tǒng);啟動(dòng)守護(hù)進(jìn)程查詢系統(tǒng)的IO狀態(tài);若系統(tǒng)的IO狀態(tài)處于空閑狀態(tài),則開始安全擦除;否,則不開始安全擦除;本發(fā)明還提供一種優(yōu)化安全擦除的系統(tǒng),提高系統(tǒng)在安全擦除過程中的運(yùn)行流暢性,取得良好的產(chǎn)品體驗(yàn)。
【專利說明】
一種優(yōu)化安全擦除的方法以及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種優(yōu)化安全擦除的方法以及系統(tǒng)。
【背景技術(shù)】
[0002]目前的嵌入式系統(tǒng)大量需求針對(duì)emmc顆粒執(zhí)行安全擦除操作,以保證磁盤數(shù)據(jù)不可恢復(fù)性的刪除。安全擦除不同于常規(guī)的擦除操作,它的執(zhí)行時(shí)獨(dú)占式的,其他讀寫操作都必須等待它完成。如果有大量的區(qū)域需要執(zhí)行安全擦除操作,那么系統(tǒng)正常的磁盤訪問都會(huì)被阻塞,帶來用戶體驗(yàn)上的卡頓,甚至?xí)?dǎo)致系統(tǒng)異常。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問題,在于提供一種優(yōu)化安全擦除的方法以及系統(tǒng),提高系統(tǒng)在安全擦除過程中的運(yùn)行流暢性,取得良好的產(chǎn)品體驗(yàn)。
[0004]本發(fā)明之一是這樣實(shí)現(xiàn)的:一種優(yōu)化安全擦除的方法,包括如下步驟:
[0005]步驟1、當(dāng)開始執(zhí)行安全擦除時(shí),內(nèi)核空間獲取所需安全擦除的數(shù)據(jù)地址;
[0006]步驟2、將所述數(shù)據(jù)地址記錄于區(qū)間標(biāo)記單元,并立即返回擦除成功信號(hào)至系統(tǒng);
[0007]步驟3、啟動(dòng)守護(hù)進(jìn)程查詢系統(tǒng)的1狀態(tài);
[0008]步驟4、若系統(tǒng)的1狀態(tài)處于空閑狀態(tài),則開始安全擦除;否,則不開始安全擦除;
[0009]步驟5、若安全擦除過程中;
[0010]用戶空間執(zhí)行寫操作,則暫停安全擦除;內(nèi)核空間檢測(cè)用戶控件傳遞下來的寫請(qǐng)求的地址參數(shù),若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,則將數(shù)據(jù)寫入內(nèi)存;否,則將數(shù)據(jù)寫入對(duì)應(yīng)的磁盤位置,之后再繼續(xù)執(zhí)行安全擦除;
[0011]用戶空間執(zhí)行讀操作,則暫停安全擦除;內(nèi)核空間檢查用戶空間傳遞下來的讀請(qǐng)求的地址參數(shù);若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,則直接返回空數(shù)據(jù);否,執(zhí)行此次讀取,讀取完成后,之后再繼續(xù)執(zhí)行安全擦除。
[0012]進(jìn)一步地,所述步驟5中所述將數(shù)據(jù)寫入內(nèi)存進(jìn)一步具體為:當(dāng)內(nèi)存不足時(shí),將內(nèi)存中的數(shù)據(jù)回寫磁盤,之后將數(shù)據(jù)寫入內(nèi)存;否則直接將數(shù)據(jù)寫入內(nèi)存。
[0013]進(jìn)一步地,所述步驟5還包括:用戶空間執(zhí)行讀操作時(shí),暫停安全擦除;內(nèi)核空間檢查用戶空間傳遞下來的讀請(qǐng)求的地址參數(shù);若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,且在讀操作之前有寫操作的地址恰好包括所述讀請(qǐng)求的地址,則從內(nèi)存中讀取相應(yīng)的數(shù)據(jù),之后再繼續(xù)執(zhí)行安全擦除。
[0014]進(jìn)一步地,所述區(qū)間標(biāo)記單元為內(nèi)存中開辟空間,用于存儲(chǔ)所需安全擦除的數(shù)據(jù)地址。
[0015]本發(fā)明之一是這樣實(shí)現(xiàn)的:一種優(yōu)化安全擦除的系統(tǒng),包括如下模塊:
[0016]地址獲取模塊,當(dāng)開始執(zhí)行安全擦除時(shí),內(nèi)核空間獲取所需安全擦除的數(shù)據(jù)地址;
[0017]地址存儲(chǔ)模塊,將所述數(shù)據(jù)地址記錄于區(qū)間標(biāo)記單元,并立即返回擦除成功信號(hào)至系統(tǒng);
[0018]檢測(cè)模塊,啟動(dòng)守護(hù)進(jìn)程查詢系統(tǒng)的1狀態(tài);
[0019]擦除啟動(dòng)模塊,若系統(tǒng)的1狀態(tài)處于空閑狀態(tài),則開始安全擦除;否,則不開始安全擦除;
[0020]擦除處理模塊,若安全擦除過程中;
[0021]用戶空間執(zhí)行寫操作,則暫停安全擦除;內(nèi)核空間檢測(cè)用戶控件傳遞下來的寫請(qǐng)求的地址參數(shù),若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,則將數(shù)據(jù)寫入內(nèi)存;否,則將數(shù)據(jù)寫入對(duì)應(yīng)的磁盤位置,之后再繼續(xù)執(zhí)行安全擦除;
[0022]用戶空間執(zhí)行讀操作,則暫停安全擦除;內(nèi)核空間檢查用戶空間傳遞下來的讀請(qǐng)求的地址參數(shù);若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,則直接返回空數(shù)據(jù);否,執(zhí)行此次讀取,讀取完成后,之后再繼續(xù)執(zhí)行安全擦除。
[0023]進(jìn)一步地,所述擦除處理模塊中所述將數(shù)據(jù)寫入內(nèi)存進(jìn)一步具體為:當(dāng)內(nèi)存不足時(shí),將內(nèi)存中的數(shù)據(jù)回寫磁盤,之后將數(shù)據(jù)寫入內(nèi)存;否則直接將數(shù)據(jù)寫入內(nèi)存。
[0024]進(jìn)一步地,所述擦除處理模塊還包括:用戶空間執(zhí)行讀操作時(shí),暫停安全擦除;內(nèi)核空間檢查用戶空間傳遞下來的讀請(qǐng)求的地址參數(shù);若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,且在讀操作之前有寫操作的地址恰好包括所述讀請(qǐng)求的地址,則從內(nèi)存中讀取相應(yīng)的數(shù)據(jù),之后再繼續(xù)執(zhí)行安全擦除。
[0025]進(jìn)一步地,所述區(qū)間標(biāo)記單元為內(nèi)存中開辟空間,用于存儲(chǔ)所需安全擦除的數(shù)據(jù)地址。
[0026]本發(fā)明具有如下優(yōu)點(diǎn):本發(fā)明一種優(yōu)化安全擦除的方法以及系統(tǒng),提高系統(tǒng)在安全擦除過程中的運(yùn)行流暢性,取得良好的產(chǎn)品體驗(yàn)。
【附圖說明】
[0027]下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說明。
[0028]圖1為本發(fā)明方法執(zhí)行流程圖。
[0029]圖2為本發(fā)明系統(tǒng)模塊原理圖。
【具體實(shí)施方式】
[0030]如圖1所示,本發(fā)明優(yōu)化安全擦除的方法,包括如下步驟:
[0031]步驟1、當(dāng)開始執(zhí)行安全擦除時(shí),內(nèi)核空間獲取所需安全擦除的數(shù)據(jù)地址;
[0032]步驟2、將所述數(shù)據(jù)地址記錄于區(qū)間標(biāo)記單元,并立即返回擦除成功信號(hào)至系統(tǒng),所述區(qū)間標(biāo)記單元為內(nèi)存中開辟空間,用于存儲(chǔ)所需安全擦除的數(shù)據(jù)地址;
[0033]步驟3、啟動(dòng)守護(hù)進(jìn)程查詢系統(tǒng)的1狀態(tài);
[0034]步驟4、若系統(tǒng)的1狀態(tài)處于空閑狀態(tài),則開始安全擦除;否,則不開始安全擦除;
[0035]步驟5、若安全擦除過程中;
[0036]用戶空間執(zhí)行寫操作,則暫停安全擦除;內(nèi)核空間檢測(cè)用戶控件傳遞下來的寫請(qǐng)求的地址參數(shù),若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,則將數(shù)據(jù)寫入內(nèi)存,當(dāng)內(nèi)存不足時(shí),將內(nèi)存中的數(shù)據(jù)回寫磁盤,之后將數(shù)據(jù)寫入內(nèi)存;否則直接將數(shù)據(jù)寫入內(nèi)存;否,則將數(shù)據(jù)寫入對(duì)應(yīng)的磁盤位置,之后再繼續(xù)執(zhí)行安全擦除;
[0037]用戶空間執(zhí)行讀操作,則暫停安全擦除;內(nèi)核空間檢查用戶空間傳遞下來的讀請(qǐng)求的地址參數(shù);若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,則直接返回空數(shù)據(jù);否,執(zhí)行此次讀取,讀取完成后,之后再繼續(xù)執(zhí)行安全擦除。
[0038]用戶空間執(zhí)行讀操作時(shí),暫停安全擦除;內(nèi)核空間檢查用戶空間傳遞下來的讀請(qǐng)求的地址參數(shù);若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,且在讀操作之前有寫操作的地址恰好包括所述讀請(qǐng)求的地址,則從內(nèi)存中讀取相應(yīng)的數(shù)據(jù),之后再繼續(xù)執(zhí)行安全擦除。
[0039]如圖2所示,本發(fā)明優(yōu)化安全擦除的系統(tǒng),包括如下模塊:
[0040]地址獲取模塊,當(dāng)開始執(zhí)行安全擦除時(shí),內(nèi)核空間獲取所需安全擦除的數(shù)據(jù)地址;
[0041]地址存儲(chǔ)模塊,將所述數(shù)據(jù)地址記錄于區(qū)間標(biāo)記單元,并立即返回擦除成功信號(hào)至系統(tǒng),所述區(qū)間標(biāo)記單元為內(nèi)存中開辟空間,用于存儲(chǔ)所需安全擦除的數(shù)據(jù)地址;
[0042]檢測(cè)模塊,啟動(dòng)守護(hù)進(jìn)程查詢系統(tǒng)的1狀態(tài);
[0043]擦除啟動(dòng)模塊,若系統(tǒng)的1狀態(tài)處于空閑狀態(tài),則開始安全擦除;否,則不開始安全擦除;
[0044]擦除處理模塊,若安全擦除過程中;
[0045]用戶空間執(zhí)行寫操作,則暫停安全擦除;內(nèi)核空間檢測(cè)用戶控件傳遞下來的寫請(qǐng)求的地址參數(shù),若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,則將數(shù)據(jù)寫入內(nèi)存,當(dāng)內(nèi)存不足時(shí),將內(nèi)存中的數(shù)據(jù)回寫磁盤,之后將數(shù)據(jù)寫入內(nèi)存;否則直接將數(shù)據(jù)寫入內(nèi)存;否,則將數(shù)據(jù)寫入對(duì)應(yīng)的磁盤位置,之后再繼續(xù)執(zhí)行安全擦除;
[0046]用戶空間執(zhí)行讀操作,則暫停安全擦除;內(nèi)核空間檢查用戶空間傳遞下來的讀請(qǐng)求的地址參數(shù);若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,則直接返回空數(shù)據(jù);否,執(zhí)行此次讀取,讀取完成后,之后再繼續(xù)執(zhí)行安全擦除。
[0047]用戶空間執(zhí)行讀操作時(shí),暫停安全擦除;內(nèi)核空間檢查用戶空間傳遞下來的讀請(qǐng)求的地址參數(shù);若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,且在讀操作之前有寫操作的地址恰好包括所述讀請(qǐng)求的地址,則從內(nèi)存中讀取相應(yīng)的數(shù)據(jù),之后再繼續(xù)執(zhí)行安全擦除。
[0048]本發(fā)明一種【具體實(shí)施方式】:
[0049]本發(fā)明的思路:
[0050](I)當(dāng)用戶空間執(zhí)行安全擦除之后,內(nèi)核空間生成一張記錄表,記錄需要安全擦除的區(qū)間。
[0051](2)內(nèi)核空間設(shè)置1空閑調(diào)度進(jìn)程,當(dāng)1空閑時(shí),執(zhí)行記錄表中的安全擦除。
[0052](3)當(dāng)執(zhí)行安全擦除時(shí),用戶空間發(fā)起讀請(qǐng)求。如果讀請(qǐng)求的區(qū)域落在記錄表中,則表明該區(qū)域需要被安全擦除,則返回全I(xiàn)數(shù)據(jù)。如果沒有落在記錄表中,則打斷正在執(zhí)行的安全擦除,執(zhí)行讀請(qǐng)求,將數(shù)據(jù)返回給用戶空間。接著再繼續(xù)執(zhí)行安全擦除
[0053](4)當(dāng)執(zhí)行安全擦除時(shí),用戶空間發(fā)起寫請(qǐng)求。如果寫請(qǐng)求的區(qū)域落在記錄表中,則表明該區(qū)域需要被安全擦除,則數(shù)據(jù)寫入到一段內(nèi)存中。等安全擦除結(jié)束再回寫磁盤。如果內(nèi)存不足時(shí),也打斷安全擦除,先回寫這部分的數(shù)據(jù),再從回寫后的地址開始擦除。
[0054](5)如果是不斷讀寫交織,那么有可能讀的地址和寫的地址都在被安全擦除的區(qū)域內(nèi),此時(shí),如果讀在寫之后,讀的數(shù)據(jù)直接從內(nèi)存中返回,否則返回全I(xiàn)。
[0055]如附圖1所示,
[0056](I)當(dāng)用戶空間執(zhí)行安全擦除時(shí),內(nèi)核空間獲取了所需執(zhí)行的安全擦除的地址,記錄在區(qū)間標(biāo)記單元內(nèi)。并立即返回擦除成功,讓系統(tǒng)能夠正常的完成此次擦除。同時(shí)啟動(dòng)一個(gè)守護(hù)進(jìn)程來查詢系統(tǒng)的1空閑程度。如果1處于空閑狀態(tài),則在后臺(tái)啟動(dòng)安全擦除,安全擦除的地址從區(qū)間標(biāo)記單元內(nèi)獲取。
[0057](2)如果此時(shí)用戶空間執(zhí)行寫操作,則不執(zhí)行安全擦除。內(nèi)核空間檢測(cè)用戶空間傳遞下來的寫請(qǐng)求的地址參數(shù)。如果是落在區(qū)間標(biāo)記單元內(nèi)記錄的,被執(zhí)行安全擦除的區(qū)域內(nèi),則寫入內(nèi)存。如果不是,則直接寫入磁盤。當(dāng)內(nèi)存不足時(shí),內(nèi)存閾值管理單元執(zhí)行非安全擦除,并將原先內(nèi)存的數(shù)據(jù)回寫磁盤。
[0058](3)如果此時(shí)用戶空間執(zhí)行讀操作,則不執(zhí)行安全擦除。內(nèi)核空間檢查用戶空間傳遞下來的讀請(qǐng)求的地址參數(shù)。如果是落在區(qū)間標(biāo)記單元內(nèi)記錄的,被執(zhí)行安全擦除的區(qū)域內(nèi),則直接返回全I(xiàn) (被安全擦除后的地址內(nèi)的數(shù)據(jù)會(huì)被emmc顆粒即emmc設(shè)備標(biāo)記為I).如果不是,則取消安全擦除,執(zhí)行此次讀取。一旦讀取完成后,再開始繼續(xù)執(zhí)行安全擦除。區(qū)域標(biāo)記單元還要區(qū)分落在區(qū)間內(nèi)的讀操作所指向的地址,是否在之前已經(jīng)被執(zhí)行過寫入操作,如果是,則直接從之前的內(nèi)存中讀取。
[0059]雖然以上描述了本發(fā)明的【具體實(shí)施方式】,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實(shí)施例只是說明性的,而不是用于對(duì)本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護(hù)的范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種優(yōu)化安全擦除的方法,其特征在于:包括如下步驟: 步驟1、當(dāng)開始執(zhí)行安全擦除時(shí),內(nèi)核空間獲取所需安全擦除的數(shù)據(jù)地址; 步驟2、將所述數(shù)據(jù)地址記錄于區(qū)間標(biāo)記單元,并立即返回擦除成功信號(hào)至系統(tǒng); 步驟3、啟動(dòng)守護(hù)進(jìn)程查詢系統(tǒng)的1狀態(tài); 步驟4、若系統(tǒng)的1狀態(tài)處于空閑狀態(tài),則開始安全擦除;否,則不開始安全擦除; 步驟5、若安全擦除過程中; 用戶空間執(zhí)行寫操作,則暫停安全擦除;內(nèi)核空間檢測(cè)用戶控件傳遞下來的寫請(qǐng)求的地址參數(shù),若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,則將數(shù)據(jù)寫入內(nèi)存;否,則將數(shù)據(jù)寫入對(duì)應(yīng)的磁盤位置,之后再繼續(xù)執(zhí)行安全擦除; 用戶空間執(zhí)行讀操作,則暫停安全擦除;內(nèi)核空間檢查用戶空間傳遞下來的讀請(qǐng)求的地址參數(shù);若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,則直接返回空數(shù)據(jù);否,執(zhí)行此次讀取,讀取完成后,之后再繼續(xù)執(zhí)行安全擦除。2.根據(jù)權(quán)利要求1所述的一種優(yōu)化安全擦除的方法,其特征在于:所述步驟5中所述將數(shù)據(jù)寫入內(nèi)存進(jìn)一步具體為:當(dāng)內(nèi)存不足時(shí),將內(nèi)存中的數(shù)據(jù)回寫磁盤,之后將數(shù)據(jù)寫入內(nèi)存;否則直接將數(shù)據(jù)寫入內(nèi)存。3.根據(jù)權(quán)利要求1所述的一種優(yōu)化安全擦除的方法,其特征在于:所述步驟5還包括:用戶空間執(zhí)行讀操作時(shí),暫停安全擦除;內(nèi)核空間檢查用戶空間傳遞下來的讀請(qǐng)求的地址參數(shù);若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,且在讀操作之前有寫操作的地址恰好包括所述讀請(qǐng)求的地址,則從內(nèi)存中讀取相應(yīng)的數(shù)據(jù),之后再繼續(xù)執(zhí)行安全擦除。4.根據(jù)權(quán)利要求1所述的一種優(yōu)化安全擦除的方法,其特征在于:所述區(qū)間標(biāo)記單元為內(nèi)存中開辟空間,用于存儲(chǔ)所需安全擦除的數(shù)據(jù)地址。5.一種優(yōu)化安全擦除的系統(tǒng),其特征在于:包括如下模塊: 地址獲取模塊,當(dāng)開始執(zhí)行安全擦除時(shí),內(nèi)核空間獲取所需安全擦除的數(shù)據(jù)地址; 地址存儲(chǔ)模塊,將所述數(shù)據(jù)地址記錄于區(qū)間標(biāo)記單元,并立即返回擦除成功信號(hào)至系統(tǒng); 檢測(cè)模塊,啟動(dòng)守護(hù)進(jìn)程查詢系統(tǒng)的1狀態(tài); 擦除啟動(dòng)模塊,若系統(tǒng)的1狀態(tài)處于空閑狀態(tài),則開始安全擦除;否,則不開始安全擦除; 擦除處理模塊,若安全擦除過程中; 用戶空間執(zhí)行寫操作,則暫停安全擦除;內(nèi)核空間檢測(cè)用戶控件傳遞下來的寫請(qǐng)求的地址參數(shù),若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,則將數(shù)據(jù)寫入內(nèi)存;否,則將數(shù)據(jù)寫入對(duì)應(yīng)的磁盤位置,之后再繼續(xù)執(zhí)行安全擦除; 用戶空間執(zhí)行讀操作,則暫停安全擦除;內(nèi)核空間檢查用戶空間傳遞下來的讀請(qǐng)求的地址參數(shù);若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,則直接返回空數(shù)據(jù);否,執(zhí)行此次讀取,讀取完成后,之后再繼續(xù)執(zhí)行安全擦除。6.根據(jù)權(quán)利要求5所述的一種優(yōu)化安全擦除的系統(tǒng),其特征在于:所述擦除處理模塊中所述將數(shù)據(jù)寫入內(nèi)存進(jìn)一步具體為:當(dāng)內(nèi)存不足時(shí),將內(nèi)存中的數(shù)據(jù)回寫磁盤,之后將數(shù)據(jù)寫入內(nèi)存;否則直接將數(shù)據(jù)寫入內(nèi)存。7.根據(jù)權(quán)利要求5所述的一種優(yōu)化安全擦除的系統(tǒng),其特征在于:所述擦除處理模塊還包括:用戶空間執(zhí)行讀操作時(shí),暫停安全擦除;內(nèi)核空間檢查用戶空間傳遞下來的讀請(qǐng)求的地址參數(shù);若該地址參數(shù)落在區(qū)間標(biāo)記單元中的地址,且在讀操作之前有寫操作的地址恰好包括所述讀請(qǐng)求的地址,則從內(nèi)存中讀取相應(yīng)的數(shù)據(jù),之后再繼續(xù)執(zhí)行安全擦除。8.根據(jù)權(quán)利要求5所述的一種優(yōu)化安全擦除的系統(tǒng),其特征在于:所述區(qū)間標(biāo)記單元為內(nèi)存中開辟空間,用于存儲(chǔ)所需安全擦除的數(shù)據(jù)地址。
【文檔編號(hào)】G06F3/06GK105824577SQ201610134501
【公開日】2016年8月3日
【申請(qǐng)日】2016年3月10日
【發(fā)明人】林濤
【申請(qǐng)人】福州瑞芯微電子股份有限公司