新四季網

一種開機啟動中通過緩存向磁碟寫數據的方法和裝置製造方法

2023-12-12 08:01:37 2

一種開機啟動中通過緩存向磁碟寫數據的方法和裝置製造方法
【專利摘要】本發明公開了一種開機啟動中通過緩存向磁碟寫數據的方法和裝置,該方法包括:在開機程序執行過程中,攔截應用層向磁碟發送的寫數據請求,將寫數據請求對應的數據存入緩存器中;向應用層返回寫數據成功的響應,以供應用層根據響應繼續執行開機程序;當檢測到磁碟空閒時,將緩存器中的數據寫入磁碟。本發明提供的開機啟動中通過緩存向磁碟寫數據的方法和裝置,在開機程序執行過程中,將原本需要寫入磁碟的數據寫入緩存器,同時立即向應用層反饋寫數據成功的響應,能夠節省應用層等待響應的時間,而且符合開機程序的規範,不會對以後的系統運行造成影響。
【專利說明】一種開機啟動中通過緩存向磁碟寫數據的方法和裝置
【技術領域】
[0001]本發明涉及計算機系統優化【技術領域】,具體涉及一種開機啟動中通過緩存向磁碟寫數據的方法和裝置。
【背景技術】
[0002]現有計算機系統中,為了保持數據的一致性,具有如下開機機制:當應用層要向磁碟寫入數據時,向磁碟下發寫數據請求,根據該寫數據請求向磁碟中排隊寫入系統運行所需要的數據;在數據的寫入過程中,系統等待,等到將待寫數據完全寫入磁碟後,再對應用層進行響應;應用層接收到該響應後,才能繼續執行開機程序。採用這種開機機制,應用層需要等待數據寫入完成後才能繼續進行開機程序,導致系統大量的開機時間耗費在等待中。經過實驗驗證,在大約30秒的開機時間內,系統等待向磁碟中排隊寫入數據的時間大約為8秒,大大延遲了系統開機時間。

【發明內容】

[0003]鑑於上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的開機啟動中通過緩存向磁碟寫數據的的方法和裝置。
[0004]根據本發明的一個方面,提供了一種開機啟動中通過緩存向磁碟寫數據的方法,包括:在開機程序執行過程中,攔截應用層向磁碟發送的寫數據請求,將寫數據請求對應的數據存入緩存器中;向應用層返回寫數據成功的響應,以供應用層根據響應繼續執行開機程序;當檢測到磁碟空閒時,將緩存器中的數據寫入磁碟。
[0005]根據本發明的另一方面,提供了一種開機啟動中通過緩存向磁碟寫數據的裝置,包括:緩存器、驅動器以及磁碟;緩存器適於存儲寫數據請求對應的數據;驅動器包括:寫攔截模塊,適於在開機程序執行過程中,攔截應用層向磁碟發送的寫數據請求,將寫數據請求對應的數據存入緩存器中;響應模塊,適於向應用層返回寫數據成功的響應,以供應用層根據響應繼續執行開機程序;以及寫入模塊,適於當檢測到磁碟空閒時,將緩存器中的數據寫入磁碟;磁碟適於存儲寫入模塊寫入的數據。
[0006]根據本發明提供的一種開機啟動中通過緩存向磁碟寫數據的方法和裝置,在開機程序執行過程中,將原本需要寫入磁碟的數據寫入緩存器,同時立即向應用層反饋寫數據成功的響應,能夠節省向磁碟寫入數據的時間和應用層等待響應的時間;而且,當磁碟空閒時,將之前存儲於緩存器中的開機數據寫入磁碟,符合開機程序的規範,開機數據最終仍然被寫入到磁碟中,不會對以後的系統運行造成影響。
[0007]上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,並且為了讓本發明的上述和其它目的、特徵和優點能夠更明顯易懂,以下特舉本發明的【具體實施方式】。
【專利附圖】

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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀