一種開機啟動中通過緩存向磁盤寫數(shù)據(jù)的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種開機啟動中通過緩存向磁盤寫數(shù)據(jù)的方法和裝置,該方法包括:在開機程序執(zhí)行過程中,攔截應用層向磁盤發(fā)送的寫數(shù)據(jù)請求,將寫數(shù)據(jù)請求對應的數(shù)據(jù)存入緩存器中;向應用層返回寫數(shù)據(jù)成功的響應,以供應用層根據(jù)響應繼續(xù)執(zhí)行開機程序;當檢測到磁盤空閑時,將緩存器中的數(shù)據(jù)寫入磁盤。本發(fā)明提供的開機啟動中通過緩存向磁盤寫數(shù)據(jù)的方法和裝置,在開機程序執(zhí)行過程中,將原本需要寫入磁盤的數(shù)據(jù)寫入緩存器,同時立即向應用層反饋寫數(shù)據(jù)成功的響應,能夠節(jié)省應用層等待響應的時間,而且符合開機程序的規(guī)范,不會對以后的系統(tǒng)運行造成影響。
【專利說明】一種開機啟動中通過緩存向磁盤寫數(shù)據(jù)的方法和裝置
【技術領域】
[0001]本發(fā)明涉及計算機系統(tǒng)優(yōu)化【技術領域】,具體涉及一種開機啟動中通過緩存向磁盤寫數(shù)據(jù)的方法和裝置。
【背景技術】
[0002]現(xiàn)有計算機系統(tǒng)中,為了保持數(shù)據(jù)的一致性,具有如下開機機制:當應用層要向磁盤寫入數(shù)據(jù)時,向磁盤下發(fā)寫數(shù)據(jù)請求,根據(jù)該寫數(shù)據(jù)請求向磁盤中排隊寫入系統(tǒng)運行所需要的數(shù)據(jù);在數(shù)據(jù)的寫入過程中,系統(tǒng)等待,等到將待寫數(shù)據(jù)完全寫入磁盤后,再對應用層進行響應;應用層接收到該響應后,才能繼續(xù)執(zhí)行開機程序。采用這種開機機制,應用層需要等待數(shù)據(jù)寫入完成后才能繼續(xù)進行開機程序,導致系統(tǒng)大量的開機時間耗費在等待中。經(jīng)過實驗驗證,在大約30秒的開機時間內(nèi),系統(tǒng)等待向磁盤中排隊寫入數(shù)據(jù)的時間大約為8秒,大大延遲了系統(tǒng)開機時間。
【發(fā)明內(nèi)容】
[0003]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的開機啟動中通過緩存向磁盤寫數(shù)據(jù)的的方法和裝置。
[0004]根據(jù)本發(fā)明的一個方面,提供了一種開機啟動中通過緩存向磁盤寫數(shù)據(jù)的方法,包括:在開機程序執(zhí)行過程中,攔截應用層向磁盤發(fā)送的寫數(shù)據(jù)請求,將寫數(shù)據(jù)請求對應的數(shù)據(jù)存入緩存器中;向應用層返回寫數(shù)據(jù)成功的響應,以供應用層根據(jù)響應繼續(xù)執(zhí)行開機程序;當檢測到磁盤空閑時,將緩存器中的數(shù)據(jù)寫入磁盤。
[0005]根據(jù)本發(fā)明的另一方面,提供了一種開機啟動中通過緩存向磁盤寫數(shù)據(jù)的裝置,包括:緩存器、驅(qū)動器以及磁盤;緩存器適于存儲寫數(shù)據(jù)請求對應的數(shù)據(jù);驅(qū)動器包括:寫攔截模塊,適于在開機程序執(zhí)行過程中,攔截應用層向磁盤發(fā)送的寫數(shù)據(jù)請求,將寫數(shù)據(jù)請求對應的數(shù)據(jù)存入緩存器中;響應模塊,適于向應用層返回寫數(shù)據(jù)成功的響應,以供應用層根據(jù)響應繼續(xù)執(zhí)行開機程序;以及寫入模塊,適于當檢測到磁盤空閑時,將緩存器中的數(shù)據(jù)寫入磁盤;磁盤適于存儲寫入模塊寫入的數(shù)據(jù)。
[0006]根據(jù)本發(fā)明提供的一種開機啟動中通過緩存向磁盤寫數(shù)據(jù)的方法和裝置,在開機程序執(zhí)行過程中,將原本需要寫入磁盤的數(shù)據(jù)寫入緩存器,同時立即向應用層反饋寫數(shù)據(jù)成功的響應,能夠節(jié)省向磁盤寫入數(shù)據(jù)的時間和應用層等待響應的時間;而且,當磁盤空閑時,將之前存儲于緩存器中的開機數(shù)據(jù)寫入磁盤,符合開機程序的規(guī)范,開機數(shù)據(jù)最終仍然被寫入到磁盤中,不會對以后的系統(tǒng)運行造成影響。
[0007]上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【專利附圖】
【附圖說明】[0008]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0009]圖1示出了根據(jù)本發(fā)明一個實施例的開機啟動中通過緩存向磁盤寫數(shù)據(jù)的的流程圖;
[0010]圖2示出了根據(jù)本發(fā)明另一個實施例的開機啟動中通過緩存向磁盤寫數(shù)據(jù)的的流程圖;
[0011]圖3a示出了圖2中步驟S240 —種實現(xiàn)方式的流程圖;
[0012]圖3b示出了圖2中步驟S240另一種實現(xiàn)方式的流程圖;
[0013]圖3c示出了圖2中步驟S240又一種實現(xiàn)方式的流程圖;
[0014]圖4示出了根據(jù)本發(fā)明一個實施例的開機啟動中通過緩存向磁盤寫數(shù)據(jù)的裝置的結構框圖。
【具體實施方式】
[0015]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領域的技術人員。
[0016]圖1示出了根據(jù)本發(fā)明一個實施例的開機啟動中通過緩存向磁盤寫數(shù)據(jù)的方法的流程圖,如圖1所示,該方法包括如下步驟:
[0017]步驟SI 10,在開機程序執(zhí)行過程中,攔截應用層向磁盤發(fā)送的寫數(shù)據(jù)請求,將寫數(shù)據(jù)請求對應的數(shù)據(jù)存入緩存器中。
[0018]寫數(shù)據(jù)請求是指系統(tǒng)開機過程中,應用層發(fā)送的向磁盤寫入數(shù)據(jù)的請求。本發(fā)明實施例預先在緩存器上設置一塊開機數(shù)據(jù)寫入?yún)^(qū)域,當攔截到該寫數(shù)據(jù)請求時,將原本請求寫入磁盤的數(shù)據(jù)寫入緩存器的開機數(shù)據(jù)寫入?yún)^(qū)域內(nèi)。這里緩存器可以為隨機存儲器(RAM,Random Access Memory),相對于磁盤,隨機存儲器具有更快的讀寫速度。相比于將數(shù)據(jù)寫入磁盤的時間,將數(shù)據(jù)寫入緩存器的時間很短,不會占用過多的開機時間。
[0019]步驟S120,向應用層返回寫數(shù)據(jù)成功的響應,以供應用層根據(jù)響應繼續(xù)執(zhí)行開機程序。
[0020]在現(xiàn)有的開機機制中,當寫數(shù)據(jù)請求被執(zhí)行完畢,數(shù)據(jù)全部被寫入磁盤后,才會向應用層反饋寫數(shù)據(jù)成功的響應。而應用層會一直等待,直到接收到寫數(shù)據(jù)成功的響應后,才會繼續(xù)執(zhí)行開機程序,這樣應用層的等待時間造成了開機時間的延遲。為了解決該問題,在本發(fā)明實施例中,在攔截到應用層向磁盤發(fā)送的寫數(shù)據(jù)請求,將對應的數(shù)據(jù)存入到緩存器中之后,立刻向應用層返回寫數(shù)據(jù)成功的響應,而應用層根據(jù)該響應立即繼續(xù)執(zhí)行開機程序,避免了應用層等待數(shù)據(jù)寫入完成而造成的時間浪費。
[0021]步驟S130,當檢測到磁盤空閑時,將緩存器中的數(shù)據(jù)寫入磁盤。
[0022]針對系統(tǒng)來說,最后仍然需要將開機啟動所需要的數(shù)據(jù)存儲至磁盤,而不是保留在緩存器中。因此,當發(fā)現(xiàn)磁盤空閑時,立即將通過步驟SllO存入緩存器的開機數(shù)據(jù)寫入?yún)^(qū)域內(nèi)的數(shù)據(jù)存儲至磁盤,從而徹底完成開機過程。本發(fā)明實施例中磁盤空閑是指當前沒有向磁盤寫入數(shù)據(jù)的時候,檢測磁盤空閑的動作時貫穿整個開機過程中。通常來說,在開機的前期和中期,會有大量的數(shù)據(jù)請求寫入磁盤,這兩個時期磁盤一般是繁忙的;而在開機的后期,寫入磁盤的數(shù)據(jù)很少了,本發(fā)明實施例可以利用開機的后期,將緩存器中的數(shù)據(jù)寫入磁盤。當然,在開機的前期和中期,如果存在磁盤空閑的時候,也可以及時的將緩存器中的數(shù)據(jù)寫入磁盤,縮短開機時間。
[0023]根據(jù)本發(fā)明上述實施例提供的方法,在開機程序執(zhí)行過程中,將原本需要寫入磁盤的數(shù)據(jù)寫入緩存器,同時立即向應用層反饋寫數(shù)據(jù)成功的響應,能夠節(jié)省應用層等待響應的時間;而且,當磁盤空閑時,將之前存儲于緩存器中的開機數(shù)據(jù)寫入磁盤,符合開機程序的規(guī)范,開機數(shù)據(jù)最終仍然被寫入到磁盤中,不會對以后的系統(tǒng)運行造成影響。
[0024]圖2示出了根據(jù)本發(fā)明另一個實施例的開機啟動中通過緩存向磁盤寫數(shù)據(jù)的方法的流程圖,如圖2所示,該方法包括如下步驟:
[0025]步驟S210,在開機程序執(zhí)行過程中,利用系統(tǒng)提供的磁盤過濾功能攔截應用層向磁盤寫數(shù)據(jù)的請求。
[0026]對于應用層發(fā)送的寫數(shù)據(jù)請求的攔截,是通過系統(tǒng)提供的磁盤過濾功能實現(xiàn)的。具體地,本發(fā)明通過開發(fā)磁盤過濾驅(qū)動實現(xiàn)該攔截功能。磁盤過濾驅(qū)動利用Windows系統(tǒng)提供的磁盤過濾功能,當檢測到開機程序發(fā)送的向磁盤寫數(shù)據(jù)請求時,攔截該請求。利用系統(tǒng)提供的磁盤過濾功能攔截請求對于現(xiàn)有系統(tǒng)的改動小、方便操作、且不需要知道源代碼。計算機開機過程是從計算機通電自檢完成之后開始進行的,這一過程可以細分為預引導、引導、載入內(nèi)核、初始化內(nèi)核和系統(tǒng)登錄操作這五個階段,在初始化內(nèi)核階段加載磁盤過濾驅(qū)動。磁盤過濾驅(qū)動處在應用層和底層磁盤類驅(qū)動之間,用于實現(xiàn)監(jiān)控和保護對磁盤扇區(qū)的數(shù)據(jù)的訪問,以實現(xiàn)磁盤過濾功能。用戶對磁盤扇區(qū)數(shù)據(jù)進行操作時,磁盤過濾驅(qū)動截獲相應I/o請求包(I/O Request Packet)并讀取I/O請求包中的數(shù)據(jù)內(nèi)容。在Windows的存儲系統(tǒng)中,最底層的是磁盤,而在磁盤上面又有卷,卷雖然只是邏輯上的一個概念,但是Windows仍然為其建立了設備,所以在Windows的存儲系統(tǒng)里有磁盤設備和磁盤卷設備兩種類型的設備。磁盤過濾驅(qū)動程序具體位于磁盤卷設備之上。
[0027]步驟S220,將寫數(shù)據(jù)請求對應的數(shù)據(jù)存入緩存器中。
[0028]具體地,在緩存器中存入的數(shù)據(jù)具有對應的時間戳編號,時間戳編號是按照寫數(shù)據(jù)請求發(fā)送的先后順序進行編制的。開機啟動時,多個開機進程都會分別發(fā)送向磁盤寫入數(shù)據(jù)的寫數(shù)據(jù)請求。在攔截到這些寫數(shù)據(jù)請求后,按照多個寫數(shù)據(jù)請求的發(fā)送順序,對存入緩存器中的數(shù)據(jù)進行編號,使每個寫數(shù)據(jù)請求所對應的數(shù)據(jù)都具有按照寫數(shù)據(jù)請求發(fā)送的先后順序的時間戳編號。
[0029]步驟S230,向應用層返回寫數(shù)據(jù)成功的響應,以供應用層根據(jù)響應繼續(xù)執(zhí)行開機程序。
[0030]在攔截到應用層向磁盤發(fā)送的寫數(shù)據(jù)請求,并將寫數(shù)據(jù)請求對應的數(shù)據(jù)存入緩存器之后,立刻向應用層返回寫數(shù)據(jù)成功的響應,而應用層根據(jù)該響應立即繼續(xù)執(zhí)行開機程序,避免應用層等待數(shù)據(jù)寫入磁盤完成而造成的時間浪費。
[0031]步驟S240,當檢測到磁盤空閑時,按照時間戳編號,將緩存器中的數(shù)據(jù)寫入磁盤。
[0032]在磁盤空閑時,按照上述步驟S220的時間戳編號的順序?qū)⒕彺嫫髦械臄?shù)據(jù)寫入磁盤。時間戳編號可以記錄向磁盤寫數(shù)據(jù)的順序,按照該順序可以按照原有的開機啟動過程中請求寫入數(shù)據(jù)的順序,向磁盤寫入數(shù)據(jù),不會發(fā)生啟動錯誤。
[0033]步驟S250,攔截應用層發(fā)送的讀數(shù)據(jù)請求。
[0034]在開機過程中,應用層也有可能會讀取數(shù)據(jù)。本方法利用系統(tǒng)提供的磁盤過濾功能攔截應用層發(fā)送的讀數(shù)據(jù)請求。具體地,利用上述磁盤過濾驅(qū)動實現(xiàn)讀數(shù)據(jù)請求的攔截功能。磁盤過濾驅(qū)動利用Windows系統(tǒng)提供的磁盤過濾功能,當檢測到開機程序發(fā)送的向磁盤讀數(shù)據(jù)請求時,攔截該請求。與上述步驟S210的原理相同,利用系統(tǒng)提供的磁盤過濾功能攔截請求對于現(xiàn)有系統(tǒng)的改動小、方便操作、且不需要知道源代碼。
[0035]步驟S260,查詢緩存器中是否存有讀數(shù)據(jù)請求對應的數(shù)據(jù),若是,則讀取緩存器中的數(shù)據(jù)返回給應用層;否則,訪問磁盤,讀取磁盤中的數(shù)據(jù)返回給應用層。
[0036]在攔截讀數(shù)據(jù)請求后,首先查詢緩存器中是否有讀數(shù)據(jù)請求所對應的數(shù)據(jù),如果有就從緩存器中將該數(shù)據(jù)返回給應用層;如果沒有,說明該數(shù)據(jù)已經(jīng)通過步驟S240寫入了磁盤,通過訪問磁盤調(diào)取讀數(shù)據(jù)請求所對應的數(shù)據(jù)。步驟S240中當檢測到磁盤空閑時,將緩存器中的數(shù)據(jù)寫入磁盤,因此存在部分數(shù)據(jù)存儲于緩存器,部分數(shù)據(jù)存儲于磁盤的情況。對于這種情況,就需要攔截應用層發(fā)送的讀數(shù)據(jù)請求,當在緩存器中沒有查詢到請求讀取的數(shù)據(jù)時,則在磁盤中查詢請求讀取的數(shù)據(jù)。
[0037]圖3a示出了圖2中步驟S240 —種實現(xiàn)方式的流程圖。如圖3a所示,上述步驟S240中將緩存器中的數(shù)據(jù)寫入磁盤包括以下步驟:
[0038]步驟S310a,向磁盤的數(shù)據(jù)塊寫入數(shù)據(jù)。
[0039]磁盤中以數(shù)據(jù)塊為單位存儲數(shù)據(jù),先將數(shù)據(jù)寫入相應的數(shù)據(jù)塊中。
[0040]步驟S320a,向日志文件中添加寫入數(shù)據(jù)對應的日志和日志校驗碼。
[0041]每個寫數(shù)據(jù)塊請求所對應的數(shù)據(jù)都對應設置有日志、日志校驗碼,用來檢驗向磁盤寫入的數(shù)據(jù)是否完整和正確。日志文件用于存儲上述日志和校驗碼。當需要調(diào)用日志和日志校驗碼時,從日志文件中進行查詢。
[0042]步驟S330a,磁盤在寫入數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù)。
[0043]在磁盤數(shù)據(jù)具有日志和日志校驗碼的情況下,對于磁盤的每個數(shù)據(jù)塊都添加一個標記,用于表明該數(shù)據(jù)塊是否被寫入數(shù)據(jù)。當標記表明該數(shù)據(jù)塊已經(jīng)有數(shù)據(jù)寫入時,對數(shù)據(jù)塊中的數(shù)據(jù)不進行修改;當標記表明該數(shù)據(jù)塊沒有數(shù)據(jù)寫入時,可以將來自于緩存器的數(shù)據(jù)寫入該數(shù)據(jù)塊中。
[0044]進一步的,在將緩存器中的數(shù)據(jù)寫入磁盤的過程中有可能會發(fā)生斷電情況,為了保持數(shù)據(jù)一致性及文件系統(tǒng)完整性,可利用日志、日志校驗碼和數(shù)據(jù)塊的標記進行如圖3b或圖3c的處理。
[0045]圖3b示出了圖2中步驟S240另一種實現(xiàn)方式的流程圖。如圖3b所示,上述步驟S240中將緩存器中的數(shù)據(jù)寫入磁盤包括以下步驟:
[0046]步驟S310b,向磁盤的數(shù)據(jù)塊寫入數(shù)據(jù)。
[0047]磁盤中以數(shù)據(jù)塊為單位存儲數(shù)據(jù),先將數(shù)據(jù)寫入相應的數(shù)據(jù)塊中。
[0048]步驟S320b,向日志文件中添加寫入數(shù)據(jù)對應的日志和日志校驗碼。
[0049]每個寫數(shù)據(jù)塊請求所對應的數(shù)據(jù)都對應設置有日志、日志校驗碼,用來檢驗向磁盤寫入的數(shù)據(jù)是否完整和正確。日志文件用于存儲上述日志和校驗碼。當需要調(diào)用日志和日志校驗碼時,從日志文件中進行查詢。[0050]步驟S330b,發(fā)生斷電情況。
[0051]步驟S340b,恢復供電。
[0052]步驟S350b,磁盤根據(jù)日志和日志校驗碼,在寫入數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù)。
[0053]若斷電情況發(fā)生在向磁盤的數(shù)據(jù)塊寫入數(shù)據(jù)、向日志文件中添加寫入數(shù)據(jù)對應的日志和日志校驗碼之后,磁盤在寫入數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù)之前,如果日志和日志校驗碼正確,說明寫入磁盤的數(shù)據(jù)正確。在系統(tǒng)恢復供電之后,向數(shù)據(jù)快添加表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù)的標記。后續(xù)處理不會再對該數(shù)據(jù)塊中的數(shù)據(jù)進行修改,以保證文件系統(tǒng)的完整性和數(shù)據(jù)的一致性。
[0054]圖3c示出了圖2中步驟S240又一種實現(xiàn)方式的流程圖。如圖3c所示,上述步驟S240中將緩存器中的數(shù)據(jù)寫入磁盤包括以下步驟:
[0055]步驟S310c,向磁盤的數(shù)據(jù)塊寫入數(shù)據(jù)。
[0056]磁盤中以數(shù)據(jù)塊為單位存儲數(shù)據(jù),先將數(shù)據(jù)寫入相應的數(shù)據(jù)塊中。
[0057]步驟S320c,發(fā)生斷電情況。
[0058]步驟S330c,恢復供電。
[0059]步驟S340c,將磁盤的數(shù)據(jù)塊中的數(shù)據(jù)刪除。
[0060]若斷電情況發(fā)生在向磁盤的數(shù)據(jù)塊寫入數(shù)據(jù)之后,在向日志文件中添加寫入數(shù)據(jù)對應的日志和日志校驗碼之前,日志或者日志校驗碼任一項發(fā)生錯誤或沒有填寫,說明寫入磁盤的數(shù)據(jù)錯誤,該數(shù)據(jù)不可使用,需重新寫入數(shù)據(jù)。在系統(tǒng)恢復供電之后,對該數(shù)據(jù)塊添加表明該數(shù)據(jù)塊未被寫入數(shù)據(jù)的標記,后續(xù)的處理將數(shù)據(jù)塊中的數(shù)據(jù)直接刪除。
[0061]根據(jù)本發(fā)明上述實施例提供的方法,在開機程序執(zhí)行過程中,將原本需要寫入磁盤的數(shù)據(jù)寫入緩存器,同時立即向應用層反饋寫數(shù)據(jù)成功的響應,能夠節(jié)省應用層等待響應的時間;此外,本方法利用系統(tǒng)提供的磁盤過濾功能攔截應用層向磁盤寫數(shù)據(jù)的請求和讀數(shù)據(jù)請求,對于現(xiàn)有系統(tǒng)的改動小、方便操作;利用時間戳編號可以記錄向磁盤寫數(shù)據(jù)請求的順序,不會發(fā)生啟動錯誤;通過攔截應用層發(fā)送的讀數(shù)據(jù)請求,能夠應對存在部分數(shù)據(jù)存儲于緩存器、部分數(shù)據(jù)存儲于磁盤的情況;利用日志、日志校驗碼和數(shù)據(jù)塊的標記的處理,能夠保持數(shù)據(jù)一致性和文件系統(tǒng)完整性,尤其針對啟動時系統(tǒng)發(fā)生斷電的情況。
[0062]圖4示出了根據(jù)本發(fā)明一個實施例的開機啟動中通過緩存向磁盤寫數(shù)據(jù)的裝置,如圖4所示,該向磁盤寫入數(shù)據(jù)的裝置400包括:緩存器410、驅(qū)動器420以及磁盤430 ;
[0063]緩存器410適于存儲寫數(shù)據(jù)請求對應的數(shù)據(jù)。
[0064]具體地,在緩存器410中存入的數(shù)據(jù)具有對應的時間戳編號,時間戳編號是按照寫數(shù)據(jù)請求發(fā)送的先后順序進行編制的。緩存器可以為隨機存儲器RAM,相對于磁盤,隨機存儲器具有更快的讀寫速度。相比于將數(shù)據(jù)寫入磁盤的時間,將數(shù)據(jù)寫入緩存器的時間很短,不會占用過多的開機時間。
[0065]驅(qū)動器420包括:寫攔截模塊421、響應模塊422、寫入模塊423、讀攔截模塊424、查詢模塊425及讀取模塊426。
[0066]寫攔截模塊421適于在開機程序執(zhí)行過程中,攔截應用層440向磁盤430發(fā)送的寫數(shù)據(jù)請求,將寫數(shù)據(jù)請求對應的數(shù)據(jù)存入緩存器410中。
[0067]具體地,寫攔截模塊421利用系統(tǒng)提供的磁盤過濾功能攔截應用層440向磁盤430寫數(shù)據(jù)的請求。當寫攔截模塊421攔截到應用層440向磁盤430發(fā)送的寫數(shù)據(jù)請求后,向響應模塊422發(fā)送請求,要求響應模塊422向應用層440進行響應,并且寫攔截模塊421將寫數(shù)據(jù)請求對應的數(shù)據(jù)存入緩存器410中。
[0068]響應模塊422適于向應用層440返回寫數(shù)據(jù)成功的響應,以供應用層440根據(jù)響應繼續(xù)執(zhí)行開機程序。
[0069]具體地,響應模塊422根據(jù)寫攔截模塊421的請求,向應用層440返回寫數(shù)據(jù)成功的響應,應用層440根據(jù)寫數(shù)據(jù)成功的響應繼續(xù)執(zhí)行開機程序。
[0070]寫入模塊423適于當檢測到磁盤空閑時,將緩存器410中的數(shù)據(jù)寫入磁盤430。
[0071]具體地,寫入模塊423適于按照時間戳編號,將緩存器410中的數(shù)據(jù)寫入磁盤430。時間戳編號按照應用層440寫數(shù)據(jù)請求發(fā)送的先后順序進行編號。
[0072]讀攔截模塊424適于攔截應用層440發(fā)送的讀數(shù)據(jù)請求。
[0073]具體地,讀攔截模塊424適于利用系統(tǒng)提供的磁盤過濾功能攔截應用層440發(fā)送的讀數(shù)據(jù)請求,并向查詢模塊425發(fā)送查詢緩存器410的請求。
[0074]查詢模塊425適于查詢緩存器410中是否存有讀數(shù)據(jù)請求對應的數(shù)據(jù)。
[0075]具體地,查詢模塊425根據(jù)讀攔截模塊424發(fā)送的請求,查詢緩存器410進行是否存有讀數(shù)據(jù)請求對應的數(shù)據(jù)。
[0076]讀取模塊426適于在查詢模塊425查詢到緩存器410中存有讀數(shù)據(jù)請求對應的數(shù)據(jù)的情況下,讀取緩存器410中的數(shù)據(jù)返回給應用層440 ;在查詢模塊425查詢到緩存器410中沒存有讀數(shù)據(jù)請求對應的數(shù)據(jù)的情況下,訪問磁盤430,讀取磁盤426中的數(shù)據(jù)返回給應用層440。
[0077]具體地,對于部分數(shù)據(jù)存儲于緩存器410、部分數(shù)據(jù)存儲于磁盤430的情況,讀攔截模塊424攔截應用層440發(fā)送的讀數(shù)據(jù)請求,查詢模塊425根據(jù)讀攔截模塊424發(fā)送的請求在緩存器410中查詢應用層440請求讀取的數(shù)據(jù);當查詢到時,讀取模塊426在緩存器410中讀取數(shù)據(jù)并返回給應用層440 ;當沒有查詢到時,讀取模塊426在磁盤430中讀取數(shù)據(jù)并返回給應用層440。
[0078]磁盤430適于存儲寫入模塊423寫入的數(shù)據(jù)。
[0079]進一步的,上述寫入模塊423具體包括:數(shù)據(jù)寫入單元4231和日志寫入單元4232。并且磁盤430還適于在寫入數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù)。
[0080]數(shù)據(jù)寫入單元4231適于向磁盤430的數(shù)據(jù)塊寫入數(shù)據(jù)。
[0081]日志寫入單元4232適于向日志文件中添加寫入數(shù)據(jù)對應的日志和日志校驗碼。
[0082]具體地,在磁盤數(shù)據(jù)具有日志和日志校驗碼的情況下,對于磁盤的每個數(shù)據(jù)塊都添加一個標記,用于表明該數(shù)據(jù)塊是否被寫入數(shù)據(jù)。當標記表明該數(shù)據(jù)塊已經(jīng)有數(shù)據(jù)寫入時,對數(shù)據(jù)塊中的數(shù)據(jù)不進行修改;當標記表明該數(shù)據(jù)塊沒有數(shù)據(jù)寫入時,可以將來自于緩存器的數(shù)據(jù)寫入該數(shù)據(jù)塊中。
[0083]進一步的,在將緩存器中的數(shù)據(jù)寫入磁盤的過程中有可能會發(fā)生斷電情況,為了保持數(shù)據(jù)一致性及文件系統(tǒng)完整性,數(shù)據(jù)寫入單元4231、日志寫入單元4232和磁盤430可利用日志、日志校驗碼和數(shù)據(jù)塊的標記進行如下處理:
[0084]若斷電情況發(fā)生在向磁盤的數(shù)據(jù)塊寫入數(shù)據(jù)、向日志文件中添加寫入數(shù)據(jù)對應的日志和日志校驗碼之后,磁盤在寫入數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù)之前,磁盤還適于:在恢復供電之后,根據(jù)日志和日志校驗碼,在寫入數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù);具體地,數(shù)據(jù)寫入單元4231向磁盤430的數(shù)據(jù)塊寫入數(shù)據(jù);在日志寫入單元4232向日志文件中添加寫入數(shù)據(jù)對應的日志和日志校驗碼之后,磁盤430在寫入數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù)之前,發(fā)生斷電情況;當恢復供電時,在系統(tǒng)重啟過程中,磁盤430根據(jù)日志和日志校驗碼,在寫入數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù);如果日志和日志校驗碼正確,說明寫入磁盤的數(shù)據(jù)正確;后續(xù)處理不會再對該數(shù)據(jù)塊中的數(shù)據(jù)進行修改,以保證文件系統(tǒng)的完整性和數(shù)據(jù)的一致性;
[0085]若斷電情況發(fā)生在向磁盤的數(shù)據(jù)塊寫入數(shù)據(jù)之后,在向日志文件中添加寫入數(shù)據(jù)對應的日志和日志校驗碼之前,磁盤還適于:在恢復供電之后,將磁盤的數(shù)據(jù)塊中的數(shù)據(jù)刪除;具體地,在數(shù)據(jù)寫入單元4231向磁盤430的數(shù)據(jù)塊寫入數(shù)據(jù)后,在日志寫入單元4232向日志文件中添加寫入數(shù)據(jù)對應的日志和日志校驗碼之前,發(fā)生斷電情況。當恢復供電時,在系統(tǒng)重啟過程中,磁盤430將數(shù)據(jù)塊中的數(shù)據(jù)刪除;日志或者日志校驗碼任一項發(fā)生錯誤或沒有填寫,說明寫入磁盤的數(shù)據(jù)錯誤,該數(shù)據(jù)不可使用,需重新寫入數(shù)據(jù);在系統(tǒng)恢復供電之后,對該數(shù)據(jù)塊添加表明該數(shù)據(jù)塊未被寫入數(shù)據(jù)的標記,后續(xù)的處理將數(shù)據(jù)塊中的數(shù)據(jù)直接刪除。
[0086]根據(jù)本實施例的裝置,在開機程序執(zhí)行過程中,將原本需要寫入磁盤的數(shù)據(jù)寫入緩存器,同時立即向應用層反饋寫數(shù)據(jù)成功的響應,能夠節(jié)省應用層等待響應的時間;此夕卜,本裝置利用系統(tǒng)提供的磁盤過濾功能攔截應用層向磁盤寫數(shù)據(jù)的請求和讀數(shù)據(jù)請求,對于現(xiàn)有系統(tǒng)的改動小、方便操作;利用時間戳編號可以記錄向磁盤寫數(shù)據(jù)請求的順序,不會發(fā)生啟動錯誤;通過攔截應用層發(fā)送的讀數(shù)據(jù)請求,能夠應對存在部分數(shù)據(jù)存儲于緩存器、部分數(shù)據(jù)存儲于磁盤的情況;利用日志、日志校驗碼和數(shù)據(jù)塊的標記的處理,能夠保持數(shù)據(jù)一致性和文件系統(tǒng)完整性,尤其針對啟動時系統(tǒng)發(fā)生斷電的情況。
[0087]在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構造這類系統(tǒng)所要求的結構是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
[0088]在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
[0089]類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權利要求書由此明確地并入該【具體實施方式】,其中每個權利要求本身都作為本發(fā)明的單獨實施例。
[0090]本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0091]此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
[0092]本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP )來實現(xiàn)根據(jù)本發(fā)明實施例的開機啟動中通過緩存向磁盤寫數(shù)據(jù)的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0093]應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
[0094]本發(fā)明公開了:A1、一種開機啟動中通過緩存向磁盤寫數(shù)據(jù)的方法,包括:
[0095]在開機程序執(zhí)行過程中,攔截應用層向磁盤發(fā)送的寫數(shù)據(jù)請求,將所述寫數(shù)據(jù)請求對應的數(shù)據(jù)存入緩存器中;
[0096]向所述應用層返回寫數(shù)據(jù)成功的響應,以供所述應用層根據(jù)所述響應繼續(xù)執(zhí)行開機程序;
[0097]當檢測到所述磁盤空閑時,將緩存器中的數(shù)據(jù)寫入磁盤。
[0098]A2、根據(jù)Al所述的方法,所述攔截應用層向磁盤寫數(shù)據(jù)的請求具體為:利用系統(tǒng)提供的磁盤過濾功能攔截應用層向磁盤寫數(shù)據(jù)的請求。
[0099]A3、根據(jù)Al所述的方法,在所述緩存器中存入的數(shù)據(jù)具有對應的時間戳編號,所述時間戳編號是按照寫數(shù)據(jù)請求發(fā)送的先后順序進行編制的;
[0100]所述將緩存器中的數(shù)據(jù)寫入磁盤具體為:按照所述時間戳編號,將緩存器中的數(shù)據(jù)寫入磁盤。[0101]A4、根據(jù)A1-A3任一項所述的方法,所述將緩存器中的數(shù)據(jù)寫入磁盤進一步包括:
[0102]向磁盤的數(shù)據(jù)塊寫入所述數(shù)據(jù);
[0103]向日志文件中添加寫入所述數(shù)據(jù)對應的日志和日志校驗碼;
[0104]所述方法還包括:所述磁盤在寫入所述數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù)。
[0105]A5、根據(jù)Al所述的方法,在所述將緩存器中的數(shù)據(jù)寫入磁盤的過程中發(fā)生斷電情況;
[0106]若所述斷電情況發(fā)生在向磁盤的數(shù)據(jù)塊寫入所述數(shù)據(jù)、向日志文件中添加寫入所述數(shù)據(jù)對應的日志和日志校驗碼之后,所述磁盤在寫入所述數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù)之前,所述方法還包括:在恢復供電之后,所述磁盤根據(jù)所述日志和日志校驗碼,在寫入所述數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù);
[0107]若所述斷電情況發(fā)生在向磁盤的數(shù)據(jù)塊寫入所述數(shù)據(jù)之后,在向日志文件中添加寫入所述數(shù)據(jù)對應的日志和日志校驗碼之前,所述方法還包括:在恢復供電之后,將磁盤的數(shù)據(jù)塊中的數(shù)據(jù)刪除。
[0108]A6、根據(jù)A1-A5任一項所述的方法,在所述將寫數(shù)據(jù)請求對應的數(shù)據(jù)存入緩存器中之后進一步包括:
[0109]攔截應用層發(fā)送的讀數(shù)據(jù)請求;
[0110]查詢所述緩存器中是否存有所述讀數(shù)據(jù)請求對應的數(shù)據(jù),若是,則讀取所述緩存器中的數(shù)據(jù)返回給所述應用層;否則,訪問磁盤,讀取磁盤中的數(shù)據(jù)返回給所述應用層。
[0111]A7、根據(jù)A6所述的方法,所述攔截應用層發(fā)送的讀數(shù)據(jù)請求具體為:利用系統(tǒng)提供的磁盤過濾功能攔截應用層發(fā)送的讀數(shù)據(jù)請求。
[0112]本發(fā)明還公開了:B8、一種開機啟動中通過緩存向磁盤寫數(shù)據(jù)的裝置,包括:緩存器、驅(qū)動器以及磁盤;
[0113]所述緩存器適于存儲寫數(shù)據(jù)請求對應的數(shù)據(jù);
[0114]所述驅(qū)動器包括:
[0115]寫攔截模塊,適于在開機程序執(zhí)行過程中,攔截應用層向磁盤發(fā)送的寫數(shù)據(jù)請求,將所述寫數(shù)據(jù)請求對應的數(shù)據(jù)存入所述緩存器中;
[0116]響應模塊,適于向所述應用層返回寫數(shù)據(jù)成功的響應,以供所述應用層根據(jù)所述響應繼續(xù)執(zhí)行開機程序;以及
[0117]寫入模塊,適于當檢測到所述磁盤空閑時,將緩存器中的數(shù)據(jù)寫入所述磁盤;
[0118]所述磁盤適于存儲所述寫入模塊寫入的數(shù)據(jù)。
[0119]B9、根據(jù)B8所述的裝置,所述寫攔截模塊具體適于:利用系統(tǒng)提供的磁盤過濾功能攔截應用層向磁盤寫數(shù)據(jù)的請求。
[0120]B10、根據(jù)B8所述的裝置,在所述緩存器中存入的數(shù)據(jù)具有對應的時間戳編號,所述時間戳編號是按照寫數(shù)據(jù)請求發(fā)送的先后順序進行編制的;
[0121]所述寫入模塊具體適于:按照所述時間戳編號,將緩存器中的數(shù)據(jù)寫入磁盤。
[0122]B11、根據(jù)B8-B10任一項所述的裝置,所述寫入模塊進一步包括:
[0123]數(shù)據(jù)寫入單元,適于向磁盤的數(shù)據(jù)塊寫入所述數(shù)據(jù);
[0124]日志寫入單元,適于向日志文件中添加寫入所述數(shù)據(jù)對應的日志和日志校驗碼;[0125]所述磁盤還適于在寫入所述數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù)。
[0126]B12、根據(jù)B8所述的裝置,在所述將緩存器中的數(shù)據(jù)寫入磁盤的過程中發(fā)生斷電情況;
[0127]若所述斷電情況發(fā)生在向磁盤的數(shù)據(jù)塊寫入所述數(shù)據(jù)、向日志文件中添加寫入所述數(shù)據(jù)對應的日志和日志校驗碼之后,所述磁盤在寫入所述數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù)之前,所述磁盤還適于:在恢復供電之后,根據(jù)所述日志和日志校驗碼,在寫入所述數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù);
[0128]若所述斷電情況發(fā)生在向磁盤的數(shù)據(jù)塊寫入所述數(shù)據(jù)之后,在向日志文件中添加寫入所述數(shù)據(jù)對應的日志和日志校驗碼之前,所述磁盤還適于:在恢復供電之后,將磁盤的數(shù)據(jù)塊中的數(shù)據(jù)刪除。
[0129]B13、根據(jù)B8-B12任一項所述的裝置,所述驅(qū)動器還包括:
[0130]讀攔截模塊,適于攔截應用層發(fā)送的讀數(shù)據(jù)請求;
[0131]查詢模塊,適于查詢所述緩存器中是否存有所述讀數(shù)據(jù)請求對應的數(shù)據(jù);
[0132]讀取模塊,適于在所述查詢模塊查詢到所述緩存器中存有所述讀數(shù)據(jù)請求對應的數(shù)據(jù)的情況下,讀取所述緩存器中的數(shù)據(jù)返回給所述應用層;在所述查詢模塊查詢到所述緩存器中沒存有所述讀數(shù)據(jù)請求對應的數(shù)據(jù)的情況下,訪問磁盤,讀取磁盤中的數(shù)據(jù)返回給所述應用層。
[0133]B14、根據(jù)B13所述的裝置,所述讀攔截模塊具體適于:利用系統(tǒng)提供的磁盤過濾功能攔截應用層發(fā)送的讀數(shù)據(jù)請求。
【權利要求】
1.一種開機啟動中通過緩存向磁盤寫數(shù)據(jù)的方法,包括: 在開機程序執(zhí)行過程中,攔截應用層向磁盤發(fā)送的寫數(shù)據(jù)請求,將所述寫數(shù)據(jù)請求對應的數(shù)據(jù)存入緩存器中; 向所述應用層返回寫數(shù)據(jù)成功的響應,以供所述應用層根據(jù)所述響應繼續(xù)執(zhí)行開機程序; 當檢測到所述磁盤空閑時,將緩存器中的數(shù)據(jù)寫入磁盤。
2.根據(jù)權利要求1所述的方法,所述攔截應用層向磁盤寫數(shù)據(jù)的請求具體為:利用系統(tǒng)提供的磁盤過濾功能攔截應用層向磁盤寫數(shù)據(jù)的請求。
3.根據(jù)權利要求1所述的方法,在所述緩存器中存入的數(shù)據(jù)具有對應的時間戳編號,所述時間戳編號是按照寫數(shù)據(jù)請求發(fā)送的先后順序進行編制的; 所述將緩存器中的數(shù)據(jù)寫入磁盤具體為:按照所述時間戳編號,將緩存器中的數(shù)據(jù)寫入磁盤。
4.根據(jù)權利要求1-3任一項所述的方法,所述將緩存器中的數(shù)據(jù)寫入磁盤進一步包括: 向磁盤的數(shù)據(jù)塊寫入所述數(shù)據(jù); 向日志文件中添加寫入所述數(shù)據(jù)對應的日志和日志校驗碼; 所述方法還包括:所述磁盤在寫入所述數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù)。
5.根據(jù)權利要求1所述的方法,在所述將緩存器中的數(shù)據(jù)寫入磁盤的過程中發(fā)生斷電情況; 若所述斷電情況發(fā)生在向磁盤的數(shù)據(jù)塊寫入所述數(shù)據(jù)、向日志文件中添加寫入所述數(shù)據(jù)對應的日志和日志校驗碼之后,所述磁盤在寫入所述數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù)之前,所述方法還包括:在恢復供電之后,所述磁盤根據(jù)所述日志和日志校驗碼,在寫入所述數(shù)據(jù)的數(shù)據(jù)塊中添加標記表明該數(shù)據(jù)塊已經(jīng)寫入數(shù)據(jù); 若所述斷電情況發(fā)生在向磁盤的數(shù)據(jù)塊寫入所述數(shù)據(jù)之后,在向日志文件中添加寫入所述數(shù)據(jù)對應的日志和日志校驗碼之前,所述方法還包括:在恢復供電之后,將磁盤的數(shù)據(jù)塊中的數(shù)據(jù)刪除。
6.根據(jù)權利要求1-5任一項所述的方法,在所述將寫數(shù)據(jù)請求對應的數(shù)據(jù)存入緩存器中之后進一步包括: 攔截應用層發(fā)送的讀數(shù)據(jù)請求; 查詢所述緩存器中是否存有所述讀數(shù)據(jù)請求對應的數(shù)據(jù),若是,則讀取所述緩存器中的數(shù)據(jù)返回給所述應用層;否則,訪問磁盤,讀取磁盤中的數(shù)據(jù)返回給所述應用層。
7.根據(jù)權利要求6所述的方法,所述攔截應用層發(fā)送的讀數(shù)據(jù)請求具體為:利用系統(tǒng)提供的磁盤過濾功能攔截應用層發(fā)送的讀數(shù)據(jù)請求。
8.一種開機啟動中通過緩存向磁盤寫數(shù)據(jù)的裝置,包括:緩存器、驅(qū)動器以及磁盤; 所述緩存器適于存儲寫數(shù)據(jù)請求對應的數(shù)據(jù); 所述驅(qū)動器包括: 寫攔截模塊,適于在開機程序執(zhí)行過程中,攔截應用層向磁盤發(fā)送的寫數(shù)據(jù)請求,將所述寫數(shù)據(jù)請求對應的數(shù)據(jù)存入所述緩存器中;響應模塊,適于向所述應用層返回寫數(shù)據(jù)成功的響應,以供所述應用層根據(jù)所述響應繼續(xù)執(zhí)行開機程序;以及 寫入模塊,適于當檢測到所述磁盤空閑時,將緩存器中的數(shù)據(jù)寫入所述磁盤; 所述磁盤適于存儲所述寫入模塊寫入的數(shù)據(jù)。
9.根據(jù)權利要求8所述的裝置,所述寫攔截模塊具體適于:利用系統(tǒng)提供的磁盤過濾功能攔截應用層向磁盤寫數(shù)據(jù)的請求。
10.根據(jù)權利要求8所述的裝置,在所述緩存器中存入的數(shù)據(jù)具有對應的時間戳編號,所述時間戳編號是按照寫數(shù)據(jù)請求發(fā)送的先后順序進行編制的; 所述寫入模塊具體適于:按照所述時`間戳編號,將緩存器中的數(shù)據(jù)寫入磁盤。
【文檔編號】G06F12/08GK103617009SQ201310670874
【公開日】2014年3月5日 申請日期:2013年12月10日 優(yōu)先權日:2013年12月10日
【發(fā)明者】李常坤 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司