域;例如本步驟中η = 1,則所述第一存儲區(qū)域中的所述第I數(shù)據(jù)開始寫入所述第二存儲區(qū)域或所述第I數(shù)據(jù)寫入所述第二存儲區(qū)域完成時,生成第二指令,響應(yīng)所述第二指令使能所述第二線程,并通過所述第一線程讀取第2數(shù)據(jù),壓縮所述第2數(shù)據(jù)至第一存儲區(qū)域。
[0064]步驟205:通過所述第二線程將所述第二存儲區(qū)域中的所述第η數(shù)據(jù)寫入指定區(qū)域,直至所述指定數(shù)據(jù)寫入所述指定區(qū)域完成。
[0065]這里,所述指定區(qū)域?yàn)樗鲋付〝?shù)據(jù)的備份數(shù)據(jù)所存儲的區(qū)域,通常區(qū)別與所述電子設(shè)備的操作系統(tǒng)所在區(qū)域。在所述第二線程將所述第二存儲區(qū)域中的所述第η數(shù)據(jù)寫入指定區(qū)域的過程中,所述第一線程重新讀取所述第η+1數(shù)據(jù),壓縮所述第η+1數(shù)據(jù)至第一存儲區(qū)域(即重新執(zhí)行步驟202的操作);所述第二線程將所述第二存儲區(qū)域中的所述第η數(shù)據(jù)寫入所述指定區(qū)域完成后或者所述第二線程開始將所述第二存儲區(qū)域中的所述第η數(shù)據(jù)寫入所述指定區(qū)域時,所述第一線程將所述第一存儲區(qū)域中的所述第η+1數(shù)據(jù)寫入所述第二存儲區(qū)域(即重新執(zhí)行步驟203),當(dāng)所述第η+1數(shù)據(jù)開始寫入第二存儲區(qū)域或?qū)懭胨龅诙鎯^(qū)域完成時,生成第二指令,響應(yīng)所述第二指令使能第二線程,并通過所述第一線程讀取第η+2數(shù)據(jù)(即重新執(zhí)行步驟204),如此循環(huán)操作,直至所述指定數(shù)據(jù)全部讀取、壓縮并寫入所述指定區(qū)域完成。
[0066]也就是說,在所述第一線程將第η數(shù)據(jù)由第一存儲區(qū)域?qū)懭氲诙鎯^(qū)域或者寫入所述第二存儲區(qū)域完成時,所述第一線程進(jìn)一步讀取下一部分的數(shù)據(jù)(即第η+1數(shù)據(jù));當(dāng)所述第η數(shù)據(jù)通過第二線程由所述第二存儲區(qū)域?qū)懭胫付▍^(qū)域(所述指定區(qū)域即備份數(shù)據(jù)所在區(qū)域)時所述第η+1數(shù)據(jù)寫入所述第二存儲區(qū)域,并進(jìn)一步由所述第二線程由所述第二存儲區(qū)域?qū)懭胫付▍^(qū)域;相當(dāng)于在所述指定數(shù)據(jù)的備份過程中,由所述第一線程進(jìn)行讀數(shù)據(jù)和壓縮數(shù)據(jù),由所述第二線程進(jìn)行寫數(shù)據(jù),數(shù)據(jù)的備份操作相當(dāng)于是并行操作的,從而極大的提升了數(shù)據(jù)備份的效率,減少了數(shù)據(jù)備份的時間。
[0067]實(shí)施例三
[0068]基于實(shí)施例一,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)處理方法,所述數(shù)據(jù)處理方法應(yīng)用于電子設(shè)備中。圖3為本發(fā)明實(shí)施例二的數(shù)據(jù)處理方法的流程示意圖;如圖3所示,所述數(shù)據(jù)處理方法包括:
[0069]步驟301:當(dāng)啟動UEFI B1S運(yùn)行時,獲取第一指令,所述第一指令用于指定數(shù)據(jù)的恢復(fù)。
[0070]本實(shí)施例中,所述電子設(shè)備設(shè)置有CPU和UEFI B1S ;所述CPU包括至少兩個執(zhí)行內(nèi)核,每個內(nèi)核能夠執(zhí)行一個線程,即本實(shí)施例所述的電子設(shè)備至少為雙核CPU,也可以是四核CPU、八核CPU等等。
[0071]其中,所述UEFI B1S運(yùn)行用于開機(jī)后對操作系統(tǒng)的引導(dǎo)。具體的,所述UEFI B1S對操作系統(tǒng)的引導(dǎo)主要包括:1、開機(jī)后,執(zhí)行UEFI B1S初始化;2、引導(dǎo)操作系統(tǒng);3、進(jìn)入系統(tǒng)。在所述電子設(shè)備開機(jī)后運(yùn)行所述UEFI B1S,可通過檢測到預(yù)設(shè)指令進(jìn)入所述UEFIB1S的可操作模式;所述預(yù)設(shè)指令可通過檢測到預(yù)設(shè)按鍵組合的觸發(fā)操作獲得。在所述UEFI B1S的可操作模式下,可針對所述電子設(shè)備中的各硬件的操作方式進(jìn)行設(shè)置,也可以執(zhí)行本發(fā)明實(shí)施例中所述的指定數(shù)據(jù)的恢復(fù)操作,也就是說,本實(shí)施例提供的數(shù)據(jù)處理方法應(yīng)用于UEFI B1S運(yùn)行中,即所述電子設(shè)備的操作系統(tǒng)還未進(jìn)入時,執(zhí)行本實(shí)施例所述的指定數(shù)據(jù)的恢復(fù)。
[0072]其中,在所述UEFI B1S模式下,所述第一指令具體可由用戶通過鼠標(biāo)操作觸發(fā),或者通過鍵盤上的特定按鍵操作觸發(fā)。當(dāng)所述第一指令用于指定數(shù)據(jù)的恢復(fù)時,所述指定數(shù)據(jù)為備份數(shù)據(jù),即所述電子設(shè)備先前對操作系統(tǒng)數(shù)據(jù)和/或已安裝的部分應(yīng)用程序數(shù)據(jù)進(jìn)行備份操作的備份數(shù)據(jù),所述備份數(shù)據(jù)通常存儲于所述電子設(shè)備的磁盤分區(qū)中區(qū)別于操作系統(tǒng)所在的磁盤分區(qū)。
[0073]步驟302:通過所述第一線程讀取所述第η數(shù)據(jù),解壓縮所述第η數(shù)據(jù)至第一存儲區(qū)域;其中,所述第η數(shù)據(jù)為所述指定數(shù)據(jù)的第η部分,η為正整數(shù)。
[0074]本實(shí)施例中,所述電子設(shè)備的CPU的第一執(zhí)行內(nèi)核能夠執(zhí)行第一線程,所述CPU的第二執(zhí)行內(nèi)核能夠執(zhí)行第二線程。而所述UEFI B1S為單線程任務(wù),即所述UEFI B1S運(yùn)行時,只調(diào)用所述CPU的一個執(zhí)行內(nèi)核。因此,所述UEFI B1S可基于所述第一線程啟動運(yùn)行,當(dāng)然也不限于所述第二線程啟動運(yùn)行;即本步驟中所述的讀取所述第η數(shù)據(jù)、解壓縮所述第η數(shù)據(jù)至第一存儲區(qū)域的執(zhí)行者不限于是所述UEFI B1S所基于的線程或是另一線程。
[0075]這里,所述指定數(shù)據(jù)被分為M個部分,M為正整數(shù)且η小于Μ。所述指定數(shù)據(jù)的M個部分可依據(jù)所述第一存儲區(qū)域的空間大小劃分,所述指定數(shù)據(jù)的M個部分也可依據(jù)所述指定數(shù)據(jù)中的各個文件大小劃分;劃分完成后,為所述指定數(shù)據(jù)的M個部分編號為1、2...Μ ;從所述指定數(shù)據(jù)的第一個部分開始,即從所述第I數(shù)據(jù)開始,讀取所述第I數(shù)據(jù),解壓縮所述第I數(shù)據(jù)至第一存儲區(qū)域。其中,所述第一存儲區(qū)域?yàn)榫彌_區(qū)域,用于所述第一線程的讀取并解壓縮數(shù)據(jù)的存儲。
[0076]步驟303:當(dāng)滿足第一條件時,將所述第一存儲區(qū)域中的所述第η數(shù)據(jù)寫入第二存儲區(qū)域。
[0077]這里,所述滿足第一條件,包括:所述第η數(shù)據(jù)寫入所述第一存儲區(qū)域完成時,確定滿足第一條件;或者,所述第一存儲區(qū)域?qū)憹M時,確定滿足第一條件。
[0078]本步驟中,當(dāng)所述指定數(shù)據(jù)的M個部分依據(jù)所述第一存儲區(qū)域的空間大小劃分時,也就是說所述指定數(shù)據(jù)的每個部分的大小都等于所述第一存儲區(qū)域的空間大??;在這種情形下,所述滿足第一條件為:所述第一存儲區(qū)域?qū)憹M時,確定滿足第一條件。其中所述第一存儲區(qū)域?qū)憹M相當(dāng)于所述指定數(shù)據(jù)的某一部分寫入所述第一存儲區(qū)域完成。在另一種實(shí)施方式中,當(dāng)所述指定數(shù)據(jù)的M個部分依據(jù)所述指定數(shù)據(jù)中的各個文件大小劃分時,所述指定數(shù)據(jù)的每個部分的大小可能小于所述第一存儲區(qū)域的空間大?。辉谶@種情形下,所述滿足第一條件為:所述第η數(shù)據(jù)寫入所述第一存儲區(qū)域完成時,確定滿足第一條件。
[0079]其中,所述第二存儲區(qū)域?yàn)榱硪痪彌_區(qū)域,用于第二線程的寫數(shù)據(jù)操作。
[0080]步驟304:當(dāng)滿足第二條件時,生成第二指令,響應(yīng)所述第二指令使能所述第二線程;并且,通過所述第一線程讀取所述第η+1數(shù)據(jù),解壓縮所述第η+1數(shù)據(jù)至第一存儲區(qū)域。
[0081]這里,所述滿足第二條件,包括:所述第一存儲區(qū)域中的所述第η數(shù)據(jù)寫入第二存儲區(qū)域完成時,確定滿足第二條件;或者,所述第一存儲區(qū)域中的所述第η數(shù)據(jù)開始寫入第二存儲區(qū)域時,確定滿足第二條件。
[0082]本步驟中,所述第一存儲區(qū)域中的所述第η數(shù)據(jù)開始寫入第二存儲區(qū)域或?qū)懭胨龅诙鎯^(qū)域完成時,基于生成的第二指令使能第二線程;所述使能第二線程即調(diào)用所述CPU的另一執(zhí)行內(nèi)核(當(dāng)所述UEFI B1S基于所述CPU的第一執(zhí)行內(nèi)核時,所述另一執(zhí)行內(nèi)核為第二執(zhí)行內(nèi)核),基于所述第二執(zhí)行內(nèi)核的第二線程執(zhí)行以下的任務(wù);其中,所述第二執(zhí)行內(nèi)核的第二線程僅為區(qū)別所述第一執(zhí)行內(nèi)核的第一線程,并非每個執(zhí)行內(nèi)核中均包括多個線程;在本實(shí)施例中,每個執(zhí)行內(nèi)核均只能執(zhí)行一個線程。
[0083]在本實(shí)施例中,由于所述指定數(shù)據(jù)被分為M個部分,所述指定數(shù)據(jù)的M個部分編號為1、2…M ;當(dāng)響應(yīng)所述第二指令時(此時所述第η數(shù)據(jù)開始寫入第二存儲區(qū)域或?qū)懭胨龅诙鎯^(qū)域完成),一方面使能所述第二線程針對所述第二存儲區(qū)域執(zhí)行后續(xù)操作,另一方面由于所述第一存儲區(qū)域中的所述第η數(shù)據(jù)已開始寫入所述第二存儲區(qū)域或?qū)懭胨龅诙鎯^(qū)域完成,從而重新執(zhí)行步驟202的操作,即通過所述第一線程讀取所述第η+1數(shù)據(jù),解壓縮所述第η+1數(shù)據(jù)至第一存儲區(qū)域;例如本步驟中η = 1,則所述第一存儲區(qū)域中的所述第I數(shù)據(jù)開始寫入所述第二存儲區(qū)域或所述第I數(shù)據(jù)寫入所述第二存儲區(qū)域完成時,生成第二指令,響應(yīng)所述第二指令使能所述第二線程,并通過所述第一線程讀取第2數(shù)據(jù),解壓縮所述第2數(shù)據(jù)至第一存儲區(qū)域。
[0084]步驟305:通過所述第二線程將所述第二存儲區(qū)域中的所述第η數(shù)據(jù)寫入指定區(qū)域,替換所述指定區(qū)域中的源第η數(shù)據(jù),直至所述指定數(shù)據(jù)寫入所述指定區(qū)域,替換所述指定區(qū)域中的源指定數(shù)據(jù),完成所述指定數(shù)據(jù)的恢復(fù);其中,所述源第η數(shù)據(jù)為所述第η數(shù)據(jù)的原始數(shù)據(jù);所述源指定數(shù)據(jù)為所述指定數(shù)據(jù)的原始數(shù)據(jù);所述指定區(qū)域?yàn)樗鲈粗付〝?shù)據(jù)所在區(qū)域。
[0085]這里,所述源指定數(shù)據(jù)為所述指定數(shù)據(jù)的原始數(shù)據(jù),也即所述指定數(shù)據(jù)為所述源指定數(shù)據(jù)的備份數(shù)據(jù);通常情況下,所述源指定數(shù)據(jù)為所述電子設(shè)備中的操作系統(tǒng)數(shù)據(jù),也還可能包括已安裝的部分應(yīng)用程序數(shù)據(jù)等等。本實(shí)施例中,所述源指定數(shù)據(jù)與所述指定數(shù)據(jù)同理,分為M個部分;所述源第η數(shù)據(jù)為所述源指定數(shù)據(jù)的第η部分;η小