專利名稱:提高掛載日志式文件系統(tǒng)速度的方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種提高掛載日志式文件系統(tǒng)速度的方法及
設(shè)備。
背景技術(shù):
操作系統(tǒng)中負(fù)責(zé)管理和存儲文件信息的軟件機(jī)構(gòu)稱為文件管理系統(tǒng),簡稱文件系 統(tǒng)。文件系統(tǒng)由三部分組成與文件管理有關(guān)的軟件、被管理的文件以及實(shí)施文件管理所需 的數(shù)據(jù)結(jié)構(gòu)。從系統(tǒng)角度來看,文件系統(tǒng)是對文件存儲器空間進(jìn)行組織和分配,負(fù)責(zé)文件的 存儲并對存入的文件進(jìn)行保護(hù)和檢索的系統(tǒng)。 文件系統(tǒng)是建立在物理存儲設(shè)備上的,對于嵌入式設(shè)備而言,嵌入式設(shè)備使用的 存儲設(shè)備一般不是通用計算機(jī)上的磁盤,而是Flash閃存芯片、小型閃存卡、記憶棒等專為 嵌入式系統(tǒng)設(shè)計的存儲介質(zhì)。 Flash存儲介質(zhì)可以實(shí)現(xiàn)完全隨機(jī)的字節(jié)讀取,但是不能對同一內(nèi)存地址寫入兩 次,而必須先經(jīng)過擦除操作后才能寫入。由于嵌入式設(shè)備中存儲介質(zhì)的獨(dú)特性,出現(xiàn)了專門 針對閃存的日志式文件系統(tǒng)。日志式文件系統(tǒng)比文件系統(tǒng)有更高的安全性,寫操作首先是 對記錄文件進(jìn)行操作,若整個寫操作由于某種原因而中斷,則系統(tǒng)在下次啟動時讀取日志 記錄文件的內(nèi)容來恢復(fù)沒有完成的寫操作。 具體的,日志文件的設(shè)計思想是跟蹤記錄文件系統(tǒng)的變化,并將變化內(nèi)容記錄入 日志。日志式文件系統(tǒng)在磁盤分區(qū)中保存有日志記錄,寫操作首先是對記錄文件進(jìn)行操作, 若整個寫操作由于某種原因(如系統(tǒng)掉電)而中斷,日志式文件系統(tǒng)重啟時,會根據(jù)日志記 錄來恢復(fù)中斷前的寫操作。在日志式文件系統(tǒng)中,所有的文件系統(tǒng)的變化、添加和改變都被 記錄到日志,即記錄文件metadata信息(與文件有關(guān)的信息)的數(shù)據(jù)中。每隔一定時間, 文件系統(tǒng)會將更新后的文件metadata信息及文件內(nèi)容寫入磁盤,之后刪除這部分日志,重 新開始新的日志記錄。 現(xiàn)有技術(shù)中,日志式文件系統(tǒng)以日志節(jié)點(diǎn)來管理整個文件系統(tǒng)上的數(shù)據(jù),日志節(jié) 點(diǎn)又稱為數(shù)據(jù)實(shí)體,例如目前使用比較廣泛的JFFS2在FLASH上就只有兩種類型的數(shù)據(jù)實(shí) 體jffs2_raw_in0de和jffs2_raw_dirent,前者包含文件的管理信息,后者用于描述文件 在文件系統(tǒng)中的位置,而真正的數(shù)據(jù)信息就保存在jffs2—rawjnode節(jié)點(diǎn)的后面。
日志節(jié)點(diǎn)是閃存設(shè)備上唯一的數(shù)據(jù)存儲格式,而索引是幫助快速定位日志節(jié)點(diǎn)的 數(shù)據(jù)信息?,F(xiàn)有技術(shù)中的日志式文件系統(tǒng)(例如JFFS2)將索引保存在內(nèi)存中,這樣的設(shè)計 在小容量的閃存上體現(xiàn)出極大的優(yōu)勢。日志式文件系統(tǒng)掛載到操作系統(tǒng)的時候,操作系統(tǒng) 迅速掃描整片flash存儲介質(zhì),在內(nèi)存中寫入日志式文件系統(tǒng)的索引,進(jìn)一步建立各種鏈 表,例如"干凈塊"的鏈表、"臟塊"的鏈表以及擦除塊的鏈表等,對文件進(jìn)行管理操作。
對于大容量閃存,日志式文件系統(tǒng)掛載到操作系統(tǒng)的時候,操作系統(tǒng)掃描整片 flash存儲介質(zhì)獲取索引所需要的時間將很長。當(dāng)日志式文件系統(tǒng)卸載時,操作系統(tǒng)從內(nèi)存 中刪除緩存的各種信息,包括日志式文件系統(tǒng)的索引,當(dāng)下次日志式文件系統(tǒng)重新掛載到操作系統(tǒng)時,操作系統(tǒng)重新執(zhí)行掃描整片flash存儲介質(zhì),并在內(nèi)存中寫入日志式文件系
統(tǒng)的索引的操作。面對發(fā)展迅速的嵌入式行業(yè),閃存的容量越來越大,掛載時間過長已經(jīng)成
為現(xiàn)有技術(shù)的瓶頸。 現(xiàn)有技術(shù)存在以下缺點(diǎn) 每次日志式文件系統(tǒng)掛載到操作系統(tǒng)的時候,操作系統(tǒng)都需要掃描整片存儲介 質(zhì),導(dǎo)致日志式文件系統(tǒng)的掛載時間過長。
發(fā)明內(nèi)容
本發(fā)明提供了一種提高掛載日志式文件系統(tǒng)速度的方法及設(shè)備,以實(shí)現(xiàn)降低日志
式文件系統(tǒng)的掛載時間。 本發(fā)明提供一種提高掛載日志式文件系統(tǒng)速度的方法,應(yīng)用于配置日志式文件系 統(tǒng)的嵌入式設(shè)備,所述嵌入式設(shè)備中配置有索引存儲介質(zhì)以存儲日志式文件系統(tǒng)的鏈表索 引信息,該方法進(jìn)一步包括以下步驟 當(dāng)所述日志式文件系統(tǒng)第一次掛載到所述嵌入式設(shè)備的操作系統(tǒng)時,所述操作系 統(tǒng)掃描建立所述日志式文件系統(tǒng)的存儲介質(zhì),獲取所述日志式文件系統(tǒng)的鏈表索引信息;
當(dāng)所述日志式文件系統(tǒng)第一次卸載時,所述操作系統(tǒng)將所述日志式文件系統(tǒng)的鏈 表索引信息寫入所述索引存儲介質(zhì),并根據(jù)寫入所述鏈表索引信息正常或者異常設(shè)置不同 的標(biāo)識位; 后續(xù)所述日志式文件系統(tǒng)向所述操作系統(tǒng)掛載,所述操作系統(tǒng)讀取標(biāo)識位信息; 若鏈表索引信息寫入正常,所述操作系統(tǒng)從所述索引存儲介質(zhì)直接讀取所述鏈表索引信 息;若鏈表索引信息寫入異常,所述操作系統(tǒng)重新掃描建立所述日志式文件系統(tǒng)的存儲介 質(zhì),獲取所述鏈表索引信息。 所述根據(jù)寫入所述鏈表索引信息正?;蛘弋惓TO(shè)置不同的標(biāo)識位包括當(dāng)寫入所 述鏈表索引信息正常時,設(shè)置所述標(biāo)識位標(biāo)識正常;當(dāng)寫入所述鏈表索引信息異常時,設(shè)置 所述標(biāo)識位標(biāo)識異常; 所述操作系統(tǒng)從所述索引存儲介質(zhì)直接讀取所述鏈表索引信息之后,還包括所 述操作系統(tǒng)更新所述標(biāo)識位為標(biāo)識異常。 所述操作系統(tǒng)從所述索引存儲介質(zhì)直接讀取所述鏈表索引信息之后,還包括所 述操作系統(tǒng)將所述標(biāo)識位由標(biāo)識正常更新為標(biāo)識異常。 所述嵌入式設(shè)備中配置用以存儲日志式文件系統(tǒng)的鏈表索引信息的索引存儲介 質(zhì),包括 在所述嵌入式設(shè)備中配置獨(dú)立的索引存儲介質(zhì),以專門用于存儲日志式文件系統(tǒng) 的鏈表索引信息;或者 將建立所述日志式文件系統(tǒng)的存儲介質(zhì)中讀取速度快、易操作、不易出現(xiàn)壞塊的
存儲區(qū)域配置為所述索引存儲介質(zhì),存儲所述日志式文件系統(tǒng)的鏈表索引信息。 所述操作系統(tǒng)從所述索引存儲介質(zhì)直接讀取所述鏈表索引信息包括 所述操作系統(tǒng)預(yù)先配置所述鏈表索引信息在所述索引存儲介質(zhì)中的存儲位置,根
據(jù)所述存儲位置讀取所述鏈表索引信息;或者 所述操作系統(tǒng)根據(jù)所述日志式文件系統(tǒng)的系統(tǒng)標(biāo)識查找預(yù)先存儲的系統(tǒng)標(biāo)識與存儲位置的對應(yīng)關(guān)系,獲取所述鏈表索引信息在所述索引存儲介質(zhì)中的存儲位置,讀取所 述鏈表索引信息。 所述操作系統(tǒng)將所述日志式文件系統(tǒng)的鏈表索引信息寫入所述索引存儲介質(zhì)包 括 所述操作系統(tǒng)一次性將所述鏈表索引信息寫入所述索引存儲介質(zhì);或者 所述操作系統(tǒng)根據(jù)預(yù)先設(shè)置分多次將所述鏈表索引信息寫入所述索引存儲介質(zhì)。 所述索引存儲介質(zhì)具體為Nor-Flash存儲介質(zhì)。 本發(fā)明提供一種應(yīng)用于上述方法的設(shè)備,該設(shè)備包括索引存儲介質(zhì)、日志式文件
系統(tǒng)的存儲介質(zhì)、配置單元、掃描單元、寫入單元、標(biāo)識設(shè)置單元以及讀取單元,其中 所述配置單元,與所述索引存儲介質(zhì)連接,用于配置索引存儲介質(zhì)存儲日志式文
件系統(tǒng)的鏈表索引信息; 所述掃描單元,與所述讀取單元和日志式文件系統(tǒng)的存儲介質(zhì)連接,用于當(dāng)所述 日志式文件系統(tǒng)第一次掛載到所述嵌入式設(shè)備的操作系統(tǒng)時,掃描建立所述日志式文件系 統(tǒng)的存儲介質(zhì),獲取所述日志式文件系統(tǒng)的鏈表索引信息;后續(xù)當(dāng)所述讀取單元讀取的標(biāo) 識位標(biāo)識鏈表索引信息寫入異常時,重新掃描建立所述日志式文件系統(tǒng)的存儲介質(zhì),獲取 所述鏈表索引信息; 所述寫入單元,與所述索引存儲介質(zhì)連接,用于當(dāng)所述日志式文件系統(tǒng)卸載時,將 所述日志式文件系統(tǒng)的鏈表索引信息寫入所述索引存儲介質(zhì); 所述標(biāo)識設(shè)置單元,與所述寫入單元以及讀取單元連接,用于根據(jù)所述寫入單元 寫入所述鏈表索引信息正?;蛘弋惓TO(shè)置不同的標(biāo)識位,并后續(xù)由讀取單元讀取該標(biāo)識 位; 所述讀取單元,與所述標(biāo)識設(shè)置單元以及掃描單元連接,用于后續(xù)所述日志式文 件系統(tǒng)向所述操作系統(tǒng)掛載時,讀取所述標(biāo)識設(shè)置單元設(shè)置的標(biāo)識位;若鏈表索引信息寫 入正常,從所述索引存儲介質(zhì)直接讀取所述鏈表索引信息,而在寫入異常時,通知所述掃描 單元掃描得到鏈表索引信息。 所述標(biāo)識設(shè)置單元還用于當(dāng)所述寫入單元寫入所述鏈表索引信息正常時,設(shè)置 所述標(biāo)識位標(biāo)識正常;當(dāng)所述寫入單元寫入所述鏈表索引信息異常時,設(shè)置所述標(biāo)識位標(biāo) 識異常;當(dāng)所述讀取單元從所述索引存儲介質(zhì)直接讀取所述鏈表索引信息之后,將所述標(biāo) 識位由標(biāo)識正常更新為標(biāo)識異常。
所述配置單元還用于 設(shè)定需要寫入所述索引存儲介質(zhì)中的鏈表索引信息內(nèi)容。
所述讀取單元還用于 根據(jù)預(yù)先配置的所述鏈表索引信息在所述索引存儲介質(zhì)中的存儲位置,讀取所述 鏈表索引信息;或者 根據(jù)所述日志式文件系統(tǒng)的系統(tǒng)標(biāo)識查找預(yù)先存儲的系統(tǒng)標(biāo)識與存儲位置的對 應(yīng)關(guān)系,獲取所述鏈表索引信息在所述索引存儲介質(zhì)中的存儲位置,讀取所述鏈表索引信 息。 所述寫入單元還用于 將所述鏈表索引信息一次性寫入所述索引存儲介質(zhì);或者根據(jù)預(yù)先設(shè)置分多次將所述鏈表索引信息寫入所述索引存儲介質(zhì)。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn) 本發(fā)明中,使用索引存儲介質(zhì)存儲日志式文件系統(tǒng)的鏈表索引信息,在日志式文 件系統(tǒng)掛載到操作系統(tǒng)時,操作系統(tǒng)可以直接從索引存儲介質(zhì)中讀取日志式文件系統(tǒng)的鏈 表索引信息,不需要掃描建立該日志式文件系統(tǒng)的存儲介質(zhì),從而減少日志式文件系統(tǒng)的 掛載時間。
圖1是本發(fā)明提供的提高掛載日志式文件系統(tǒng)速度的方法流程示意圖; 圖2是本發(fā)明應(yīng)用場景提供的提高掛載日志式文件系統(tǒng)速度的方法流程示意圖; 圖3是本發(fā)明提供的提高掛載日志式文件系統(tǒng)速度的設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明的核心思想是配置索引存儲介質(zhì)來保存日志式文件系統(tǒng)的各種鏈表索引 信息,利用空間換時間的思想來提高日志式文件系統(tǒng)的掛載性能。索引存儲介質(zhì)在日志式 文件系統(tǒng)從操作系統(tǒng)卸載時,保存在內(nèi)存中的日志式文件系統(tǒng)的各種鏈表索引信息;當(dāng)該 日志式文件系統(tǒng)下次掛載到操作系統(tǒng)時,操作系統(tǒng)直接從索引存儲介質(zhì)中讀取該日志式文 件系統(tǒng)的鏈表索引信息,不需要掃描建立日志式文件系統(tǒng)的存儲介質(zhì),從而降低日志式文 件系統(tǒng)的掛載時間。 本發(fā)明提供了一種提高掛載日志式文件系統(tǒng)速度的方法,應(yīng)用于配置日志式文件 系統(tǒng)的嵌入式設(shè)備,所述嵌入式設(shè)備中單獨(dú)配置有索引存儲介質(zhì)以存儲日志式文件系統(tǒng)的 鏈表索引信息,并在所述索引存儲介質(zhì)中進(jìn)一步設(shè)置標(biāo)識位標(biāo)識鏈表索引信息的獲取方 式;如圖1所示,該方法進(jìn)一步包括 步驟101,當(dāng)所述日志式文件系統(tǒng)第一次掛載到所述嵌入式設(shè)備的操作系統(tǒng)時,所 述操作系統(tǒng)掃描建立所述日志式文件系統(tǒng)的存儲介質(zhì),獲取所述日志式文件系統(tǒng)的鏈表索 引信息; 步驟102,當(dāng)所述日志式文件系統(tǒng)第一次卸載時,所述操作系統(tǒng)將所述日志式文件 系統(tǒng)的鏈表索引信息寫入所述索引存儲介質(zhì),并根據(jù)寫入所述鏈表索引信息正?;蛘弋惓?設(shè)置不同的標(biāo)識位; 步驟103,后續(xù)所述日志式文件系統(tǒng)向所述操作系統(tǒng)掛載,所述操作系統(tǒng)讀取標(biāo) 識位信息;若鏈表索引信息寫入正常,執(zhí)行步驟104 ;若鏈表索引信息寫入異常,執(zhí)行步驟
105 ; 步驟104,所述操作系統(tǒng)從所述索引存儲介質(zhì)直接讀取所述鏈表索引信息;
步驟105,所述操作系統(tǒng)重新掃描建立所述日志式文件系統(tǒng)的存儲介質(zhì),獲取所述 鏈表索引信息。 下面結(jié)合具體應(yīng)用場景詳細(xì)介紹本發(fā)明提供的提高掛載日志式文件系統(tǒng)速度的 方法。 本發(fā)明應(yīng)用場景提供一種提高掛載日志式文件系統(tǒng)速度的方法,如圖2所示,包 括以下步驟
7
步驟201,在嵌入式設(shè)備中單獨(dú)配置索引存儲介質(zhì)。 具體的,本發(fā)明應(yīng)用場景中提供的索引存儲介質(zhì),具有不易出現(xiàn)壞塊、有足夠 的地址引腳來尋址、容易存取其內(nèi)部的每一個字節(jié)以及讀取速度快的特點(diǎn),具體可以為 Nor-Flash存儲介質(zhì)。 步驟202,嵌入式設(shè)備啟動后,第一次將日志式文件系統(tǒng)掛載到操作系統(tǒng),在內(nèi)存 中寫入日志式文件系統(tǒng)的索引。 具體的,嵌入式設(shè)備中通常具有一個日志式文件系統(tǒng)。但是,由于嵌入式設(shè)備可以 包括多個磁盤分區(qū),根據(jù)每一磁盤分區(qū)處理文件的不同,每一磁盤分區(qū)可以對應(yīng)不同的文 件系統(tǒng),所以,嵌入式設(shè)備中可以具有兩個以上的日志式文件系統(tǒng)。 嵌入式設(shè)備啟動后,操作系統(tǒng)建立根目錄,使用該根目錄掛載需要的日志式文件 系統(tǒng)。當(dāng)嵌入式設(shè)備中只有一個日志式文件系統(tǒng)時,嵌入式設(shè)備上電時,操作系統(tǒng)掛載日志 式文件系統(tǒng);嵌入式設(shè)備下電時,操作系統(tǒng)卸載日志式文件系統(tǒng),其中嵌入式設(shè)備的下電方 式可以是正常下電、或者異常斷電。當(dāng)嵌入式設(shè)備中包括兩個以上日志式文件系統(tǒng)時,操作 系統(tǒng)也可以根據(jù)需要切換不同的日志式文件系統(tǒng)。 當(dāng)操作系統(tǒng)第一次掛載日志式文件系統(tǒng)時,操作系統(tǒng)掃描該日志式文件系統(tǒng)對應(yīng) 的磁盤分區(qū),定位日志式文件系統(tǒng)的日志節(jié)點(diǎn),并將日志節(jié)點(diǎn)的索引以及其他鏈表索引信 息寫入內(nèi)存,根據(jù)內(nèi)存中的索引信息調(diào)用日志式文件系統(tǒng)對應(yīng)的磁盤分區(qū)存儲的文件進(jìn)行 處理。 步驟203,在上述日志式文件系統(tǒng)卸載之前,操作系統(tǒng)將內(nèi)存中存儲的索引信息全 部寫入索引存儲介質(zhì)。 本發(fā)明應(yīng)用場景中提供專門的索引存儲介質(zhì)用于存儲內(nèi)存中的索引信息。該索引 存儲介質(zhì)的容量以足夠存儲設(shè)備的索引信息為原則,要有足夠的地址引腳來尋址,由于單 純的索引信息占用容量較少,因此,索引存儲介質(zhì)不需要大容量的存儲介質(zhì)??紤]到索引存 儲介質(zhì)中的索引將長時間保存,且當(dāng)存儲的索引錯誤時,將導(dǎo)致設(shè)備不能根據(jù)索引進(jìn)行正 常工作,因此索引存儲介質(zhì)應(yīng)當(dāng)具有不容易出現(xiàn)壞塊的性能。同時,操作系統(tǒng)從索引存儲介 質(zhì)讀取索引的速度將影響嵌入式設(shè)備中日志式文件系統(tǒng)的掛載時間,因此,索引存儲介質(zhì) 應(yīng)當(dāng)具備讀取速度快的特點(diǎn)。滿足上述性能的索引存儲介質(zhì)可以根據(jù)實(shí)際需要靈活選擇, 例如可以采用Nor-Flash存儲介質(zhì)。 操作系統(tǒng)在內(nèi)存中寫入索引后,可以根據(jù)預(yù)先配置的時間逐漸將內(nèi)存中的索引寫 入索引存儲介質(zhì),例如每間隔一定時間讀取一次內(nèi)存中的索引并將讀取到的索引寫入索引 存儲介質(zhì);也可以在日志式文件系統(tǒng)卸載時,讀取內(nèi)存中的所有索引并寫入索引存儲介質(zhì)。
為了完整記錄整個日志式文件系統(tǒng)的變化,操作系統(tǒng)采用第一種方式向索引存儲 介質(zhì)寫入索引時,最后一次寫入索引之前需要完成對日志式文件系統(tǒng)所有文件的操作,包 括文件讀寫操作以及垃圾收集工作;如果操作系統(tǒng)采用第二種方式向索引存儲介質(zhì)寫入索
引,則操作系統(tǒng)選取在卸載的過程中將索引寫入索引存儲介質(zhì),在此之前操作系統(tǒng)關(guān)閉日 志式文件系統(tǒng)的所有文件讀寫操作,以及垃圾收集工作。這兩種方式的采用可以由用戶根 據(jù)實(shí)際需要靈活選擇,例如,當(dāng)索引信息數(shù)據(jù)量非常大,用戶認(rèn)為將索引信息一次性寫入存 儲介質(zhì)需要時間過長時,可以采用第一種方式分多次寫入;如果索引信息數(shù)據(jù)量不大、或者 多次寫入對用戶使用會造成影響時,用戶可以采用第二種方式一次性寫入。
8
操作系統(tǒng)向索引存儲介質(zhì)中寫入索引時,以方便后續(xù)從介質(zhì)中讀取索引并寫入內(nèi) 存為原則,例如可以將索引根據(jù)產(chǎn)生的時間順序、根據(jù)地址從小到大順序?qū)懭胨饕鎯?質(zhì),當(dāng)然,也可以按照地址由大到小或者其他方便讀取的順序在索引存儲介質(zhì)中寫入索引。
本發(fā)明應(yīng)用場景中,當(dāng)嵌入式設(shè)備中只有一個日志式文件系統(tǒng)時,操作系統(tǒng)根據(jù) 上述索引寫入方式在索引存儲介質(zhì)中寫入索引;當(dāng)嵌入式設(shè)備具有多個日志式文件系統(tǒng) 時,對應(yīng)地,可以配置兩個以上索引存儲介質(zhì),或者在同一索引存儲介質(zhì)中劃分多個存儲區(qū) 域用于分別存儲每一日志式文件系統(tǒng)的索引。 步驟204,在隨后的操作系統(tǒng)掛載日志式文件系統(tǒng)時,讀取索引存儲介質(zhì)中的標(biāo) 識位,判斷是否需要掃描該日志式文件系統(tǒng)對應(yīng)的存儲介質(zhì);如果判斷結(jié)果為是,執(zhí)行步驟 205 ;否則,執(zhí)行步驟206。 具體的,當(dāng)嵌入式設(shè)備具有多個日志式文件系統(tǒng)時,操作系統(tǒng)預(yù)先配置日志式文 件系統(tǒng)的系統(tǒng)標(biāo)識,根據(jù)系統(tǒng)標(biāo)識區(qū)分不同日志式文件系統(tǒng)的標(biāo)識位以及日志式文件系統(tǒng) 的各種鏈表索引信息在索引存儲介質(zhì)中的存儲區(qū)域。 考慮到嵌入式設(shè)備存在異常斷電的情況,此時,上一次日志式文件系統(tǒng)的卸載過 程并沒有順利完成,因此,不能保證索引存儲介質(zhì)中寫入卸載前內(nèi)存中的所有索引。為了保 證索引存儲介質(zhì)中的索引與日志式文件系統(tǒng)中的日志節(jié)點(diǎn)對應(yīng),當(dāng)異常斷電時,操作系統(tǒng) 需要重新掃描日志式文件系統(tǒng)對應(yīng)的存儲介質(zhì),獲取日志節(jié)點(diǎn)的索引,即執(zhí)行步驟205。否 則,操作系統(tǒng)可以執(zhí)行步驟206,將索引存儲介質(zhì)中的索引寫入內(nèi)存。 索引存儲介質(zhì)中設(shè)置標(biāo)識位標(biāo)識鏈表索引信息的獲取方式,操作系統(tǒng)通過讀取該 標(biāo)識位判斷是否需要掃描該日志式文件系統(tǒng)對應(yīng)的存儲介質(zhì),或者直接從索引存儲介質(zhì)讀 取鏈表索引信息。操作系統(tǒng)每次掛載日志式文件系統(tǒng)時,都可以根據(jù)標(biāo)識位判斷是否需要 掃描該日志式文件系統(tǒng)對應(yīng)的存儲介質(zhì),包括操作系統(tǒng)第一次掛載日志式文件系統(tǒng)時,操 作系統(tǒng)也可以根據(jù)標(biāo)識位判斷結(jié)果掃描該日志式文件系統(tǒng)對應(yīng)的存儲介質(zhì),獲取日志式文 件系統(tǒng)中日志節(jié)點(diǎn)的索引。 具體的,操作系統(tǒng)在向存儲介質(zhì)中寫入索引時,首先在預(yù)先設(shè)定的存儲位置(例 如第一塊存儲區(qū)域)寫入標(biāo)識位,該標(biāo)識位初始為OO ;當(dāng)操作系統(tǒng)將索引完全寫入索引存 儲介質(zhì)后,將標(biāo)識位更新為FF。下次操作系統(tǒng)掛載日志式文件系統(tǒng)時,操作系統(tǒng)首先讀取索 引存儲介質(zhì)中的標(biāo)識位,若該標(biāo)識位為FF,則操作系統(tǒng)直接從索引存儲介質(zhì)讀取索引,并將 標(biāo)識位更新為OO,在將內(nèi)存中的索引完全寫入索引存儲介質(zhì)后,重新將標(biāo)識位更新為FF。 如果日志式文件系統(tǒng)發(fā)生異常斷電,即沒有順利卸載,標(biāo)識位保持為OO,下次操作系統(tǒng)掛載 日志式文件系統(tǒng)時,發(fā)現(xiàn)該標(biāo)識位00,則掃描日志式文件系統(tǒng)對應(yīng)的存儲介質(zhì)。
步驟205,操作系統(tǒng)掃描日志式文件系統(tǒng)對應(yīng)的存儲介質(zhì),獲取日志式文件系統(tǒng)中 日志節(jié)點(diǎn)的索弓l,在內(nèi)存中寫入索引。 具體的,步驟205之后,當(dāng)日志式文件系統(tǒng)卸載時,操作系統(tǒng)將內(nèi)存中的索引寫入 索引存儲介質(zhì),具體過程參考上述步驟203。 步驟206,操作系統(tǒng)讀取索引存儲介質(zhì)中存儲的索引并寫入內(nèi)存,根據(jù)索引進(jìn)行文 件處理。 具體的,當(dāng)嵌入式設(shè)備中只有一個日志式文件系統(tǒng)時,索引存儲介質(zhì)存儲單一日 志式文件系統(tǒng)的索引,操作系統(tǒng)直接讀取索引存儲介質(zhì)中存儲的索引。
9
當(dāng)嵌入式設(shè)備中具有多個日志式文件系統(tǒng)時,索引存儲介質(zhì)在多個區(qū)域存儲不同 日志式文件系統(tǒng)的索引,此時,操作系統(tǒng)需要根據(jù)日志式文件系統(tǒng)的標(biāo)識在索引存儲介質(zhì) 中查找對應(yīng)的存儲區(qū)域,讀取該日志式文件系統(tǒng)對應(yīng)的索引。 本發(fā)明應(yīng)用場景中配置的索引存儲介質(zhì)可以是獨(dú)立的存儲介質(zhì),也可以作為現(xiàn)有 日志式文件系統(tǒng)對應(yīng)的存儲介質(zhì)的一部分存在,此時,日志式文件系統(tǒng)對應(yīng)的存儲介質(zhì)劃 分為兩部分存儲區(qū)域, 一部分存儲區(qū)域容量較小,作為上述索引存儲介質(zhì)存在,該部分存儲 區(qū)域具有數(shù)據(jù)讀取速度快、易于操作、而且不容易出現(xiàn)壞塊的性能,用于存儲各種鏈表索引 信息,運(yùn)行日志式文件系統(tǒng)的啟動代碼;另一部分存儲區(qū)域容量大,用于存儲日志式文件系 統(tǒng)對應(yīng)的其他文件或者數(shù)據(jù)。 采用這種存儲介質(zhì)時,若日志式文件系統(tǒng)掛載到操作系統(tǒng),則操作系統(tǒng)首先讀取 存儲介質(zhì)的索引存儲區(qū)域,根據(jù)標(biāo)識位判斷是否需要掃描索引存儲介質(zhì)外的另一部分存儲 區(qū)域。如果判斷結(jié)果為需要,操作系統(tǒng)掃描另一存儲區(qū)域獲取日志式文件系統(tǒng)的鏈表索引 信息,并在日志式文件系統(tǒng)卸載時將鏈表索引信息寫入索引存儲區(qū)域存儲。如果判斷結(jié)果 為不需要,操作系統(tǒng)直接讀取索引存儲區(qū)域存儲的鏈表索引信息索引并寫入內(nèi)存,不需要 掃描另一存儲區(qū)域。 通過采用本發(fā)明提供的方法,配置索引存儲介質(zhì)存儲日志式文件系統(tǒng)的鏈表索引 信息,在日志式文件系統(tǒng)掛載到操作系統(tǒng)時,操作系統(tǒng)可以直接從索引存儲介質(zhì)中讀取日 志式文件系統(tǒng)的鏈表索引信息,不需要掃描建立該日志式文件系統(tǒng)的存儲介質(zhì),從而減少 日志式文件系統(tǒng)的掛載時間。 本發(fā)明提供一種提高掛載日志式文件系統(tǒng)速度的設(shè)備,作為嵌入式設(shè)備,或者作 為一功能模塊集成于嵌入式設(shè)備內(nèi),如圖3所示,該設(shè)備包括索引存儲介質(zhì)、日志式文件系 統(tǒng)的存儲介質(zhì)、配置單元301、掃描單元302、寫入單元303、標(biāo)識設(shè)置單元304以及讀取單元 305,其中 所述配置單元301,與所述索引存儲介質(zhì)連接,用于配置索引存儲介質(zhì)存儲日志式 文件系統(tǒng)的鏈表索引信息。具體的,所述配置單元301還可以與讀取單元305、寫入單元303 以及標(biāo)識設(shè)置單元304連接,設(shè)定需要寫入所述索引存儲介質(zhì)中的鏈表索引信息內(nèi)容,配 置讀取單元305需要讀取的鏈表索引信息內(nèi)容、或者寫入單元303需要寫入索引存儲介質(zhì) 中的鏈表索引信息內(nèi)容,配置單元301還可以配置標(biāo)識位的具體形式,供標(biāo)識設(shè)置單元304 使用該標(biāo)識位的具體形式標(biāo)識正?;蛘弋惓!?所述掃描單元302,與所述讀取單元305以及文件系統(tǒng)存儲介質(zhì)連接,用于當(dāng)所述 日志式文件系統(tǒng)第一次掛載到所述嵌入式設(shè)備的操作系統(tǒng)時,掃描建立所述日志式文件系 統(tǒng)的存儲介質(zhì),獲取所述日志式文件系統(tǒng)的鏈表索引信息;后續(xù)當(dāng)所述讀取單元305讀取 的標(biāo)識位標(biāo)識鏈表索引信息寫入異常時,重新掃描建立所述日志式文件系統(tǒng)的存儲介質(zhì), 獲取所述鏈表索引信息。 所述寫入單元303,與所述配置單元301、標(biāo)識設(shè)置單元304、讀取單元305、以及索 引存儲介質(zhì)連接,用于當(dāng)所述日志式文件系統(tǒng)卸載時,將所述日志式文件系統(tǒng)的鏈表索引 信息寫入所述索引存儲介質(zhì)。具體的,所述寫入單元303可以將所述鏈表索引信息一次性 寫入所述索引存儲介質(zhì),或者根據(jù)預(yù)先設(shè)置分多次將所述鏈表索引信息寫入所述索引存儲 介質(zhì)。
所述標(biāo)識設(shè)置單元304,與所述寫入單元303和讀取單元305連接,用于根據(jù)所述 寫入單元303寫入所述鏈表索引信息正?;蛘弋惓TO(shè)置不同的標(biāo)識位。具體的,當(dāng)所述寫 入單元303寫入所述鏈表索引信息正常時,所述標(biāo)識設(shè)置單元304設(shè)置所述標(biāo)識位標(biāo)識正 常;當(dāng)所述寫入單元303寫入所述鏈表索引信息異常時,所述標(biāo)識設(shè)置單元304設(shè)置所述 標(biāo)識位標(biāo)識異常。當(dāng)所述讀取單元305從所述索引存儲介質(zhì)直接讀取所述鏈表索引信息之 后,所述標(biāo)識設(shè)置單元304還用于更新所述標(biāo)識位為標(biāo)識異常。 所述讀取單元305,與標(biāo)識設(shè)置單元304、索引存儲介質(zhì)、寫入單元303以及掃描單 元302連接,用于后續(xù)所述日志式文件系統(tǒng)向所述操作系統(tǒng)掛載時,讀取所述標(biāo)識設(shè)置單 元304設(shè)置的標(biāo)識位;若鏈表索引信息寫入正常,從所述索引存儲介質(zhì)直接讀取所述鏈表 索引信息;而在寫入異常時,通知所述掃描單元302掃描得到鏈表索引信息。具體的,所述 讀取單元305根據(jù)預(yù)先配置的所述鏈表索引信息在所述索引存儲介質(zhì)中的存儲位置,讀取 所述鏈表索引信息;或者根據(jù)所述日志式文件系統(tǒng)的系統(tǒng)標(biāo)識查找預(yù)先存儲的系統(tǒng)標(biāo)識與 存儲位置的對應(yīng)關(guān)系,獲取所述鏈表索引信息在所述索引存儲介質(zhì)中的存儲位置,讀取所 述鏈表索引信息。 通過采用本發(fā)明提供的設(shè)備,配置索引存儲介質(zhì)存儲日志式文件系統(tǒng)的鏈表索引 信息,在日志式文件系統(tǒng)掛載到操作系統(tǒng)時,操作系統(tǒng)可以直接從索引存儲介質(zhì)中讀取日 志式文件系統(tǒng)的鏈表索引信息,不需要掃描建立該日志式文件系統(tǒng)的存儲介質(zhì),從而減少 日志式文件系統(tǒng)的掛載時間。 通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助 軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更 佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的 部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若 干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā) 明各個實(shí)施例所述的方法。 本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流 程并不一定是實(shí)施本發(fā)明所必須的。 本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分 布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個或多個裝置中。上 述實(shí)施例的模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。
上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。 以上公開的僅為本發(fā)明的幾個具體實(shí)施例,但是,本發(fā)明并非局限于此,任何本領(lǐng) 域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種提高掛載日志式文件系統(tǒng)速度的方法,應(yīng)用于配置日志式文件系統(tǒng)的嵌入式設(shè)備,其特征在于,所述嵌入式設(shè)備中配置用以存儲日志式文件系統(tǒng)的鏈表索引信息的索引存儲介質(zhì),該方法進(jìn)一步包括以下步驟當(dāng)所述日志式文件系統(tǒng)第一次掛載到所述嵌入式設(shè)備的操作系統(tǒng)時,所述操作系統(tǒng)掃描建立所述日志式文件系統(tǒng)的存儲介質(zhì),獲取所述日志式文件系統(tǒng)的鏈表索引信息;當(dāng)所述日志式文件系統(tǒng)第一次卸載時,所述操作系統(tǒng)將所述日志式文件系統(tǒng)的鏈表索引信息寫入所述索引存儲介質(zhì),并根據(jù)寫入所述鏈表索引信息正?;蛘弋惓TO(shè)置不同的標(biāo)識位;后續(xù)所述日志式文件系統(tǒng)向所述操作系統(tǒng)掛載,所述操作系統(tǒng)讀取標(biāo)識位信息;若鏈表索引信息寫入正常,所述操作系統(tǒng)從所述索引存儲介質(zhì)直接讀取所述鏈表索引信息;若鏈表索引信息寫入異常,所述操作系統(tǒng)重新掃描建立所述日志式文件系統(tǒng)的存儲介質(zhì),獲取所述鏈表索引信息。
2. 如權(quán)利要求l所述的方法,其特征在于,所述根據(jù)寫入所述鏈表索引信息正常或者異常設(shè)置不同的標(biāo)識位包括當(dāng)寫入所述鏈表索引信息正常時,設(shè)置所述標(biāo)識位標(biāo)識正常;當(dāng)寫入所述鏈表索引信息異常時,設(shè)置所述標(biāo)識位標(biāo)識異常;所述操作系統(tǒng)從所述索引存儲介質(zhì)直接讀取所述鏈表索引信息之后,還包括所述操作系統(tǒng)將所述標(biāo)識位由標(biāo)識正常更新為標(biāo)識異常。
3. 如權(quán)利要求1或2所述的方法,其特征在于,所述嵌入式設(shè)備中配置用以存儲日志式文件系統(tǒng)的鏈表索引信息的索引存儲介質(zhì),包括在所述嵌入式設(shè)備中配置獨(dú)立的索引存儲介質(zhì),以專門用于存儲日志式文件系統(tǒng)的鏈表索引信息;或者將建立所述日志式文件系統(tǒng)的存儲介質(zhì)中讀取速度快、易操作、不易出現(xiàn)壞塊的存儲區(qū)域配置為所述索引存儲介質(zhì),存儲所述日志式文件系統(tǒng)的鏈表索引信息。
4. 如權(quán)利要求1或2所述的方法,其特征在于,所述操作系統(tǒng)從所述索引存儲介質(zhì)直接讀取所述鏈表索引信息包括所述操作系統(tǒng)預(yù)先配置所述鏈表索引信息在所述索引存儲介質(zhì)中的存儲位置,根據(jù)所述存儲位置讀取所述鏈表索引信息;或者所述操作系統(tǒng)根據(jù)所述日志式文件系統(tǒng)的系統(tǒng)標(biāo)識查找預(yù)先存儲的系統(tǒng)標(biāo)識與存儲位置的對應(yīng)關(guān)系,獲取所述鏈表索引信息在所述索引存儲介質(zhì)中的存儲位置,讀取所述鏈表索引信息。
5. 如權(quán)利要求1或2所述的方法,其特征在于,所述操作系統(tǒng)將所述日志式文件系統(tǒng)的鏈表索引信息寫入所述索引存儲介質(zhì)包括所述操作系統(tǒng)一次性將所述鏈表索引信息寫入所述索引存儲介質(zhì);或者所述操作系統(tǒng)根據(jù)預(yù)先設(shè)置分多次將所述鏈表索引信息寫入所述索引存儲介質(zhì)。
6. 如權(quán)利要求1或2所述的方法,其特征在于,所述索引存儲介質(zhì)具體為Nor-Flash存儲介質(zhì)。
7. —種應(yīng)用于權(quán)利要求1所述方法的設(shè)備,其特征在于,該設(shè)備包括索引存儲介質(zhì)、日志式文件系統(tǒng)的存儲介質(zhì)、配置單元、掃描單元、寫入單元、標(biāo)識設(shè)置單元以及讀取單元,其中所述配置單元,與所述索引存儲介質(zhì)連接,用于配置索引存儲介質(zhì)存儲日志式文件系統(tǒng)的鏈表索引信息;所述掃描單元,與所述讀取單元和日志式文件系統(tǒng)的存儲介質(zhì)連接,用于當(dāng)所述日志式文件系統(tǒng)第一次掛載到所述嵌入式設(shè)備的操作系統(tǒng)時,掃描建立所述日志式文件系統(tǒng)的存儲介質(zhì),獲取所述日志式文件系統(tǒng)的鏈表索引信息;后續(xù)當(dāng)所述讀取單元讀取的標(biāo)識位標(biāo)識鏈表索引信息寫入異常時,重新掃描建立所述日志式文件系統(tǒng)的存儲介質(zhì),獲取所述鏈表索引信息;所述寫入單元,與所述索引存儲介質(zhì)連接,用于當(dāng)所述日志式文件系統(tǒng)卸載時,將所述日志式文件系統(tǒng)的鏈表索引信息寫入所述索引存儲介質(zhì);所述標(biāo)識設(shè)置單元,與所述寫入單元以及讀取單元連接,用于根據(jù)所述寫入單元寫入所述鏈表索引信息正?;蛘弋惓TO(shè)置不同的標(biāo)識位,并后續(xù)由讀取單元讀取該標(biāo)識位;所述讀取單元,與所述標(biāo)識設(shè)置單元以及掃描單元連接,用于后續(xù)所述日志式文件系統(tǒng)向所述操作系統(tǒng)掛載時,讀取所述標(biāo)識設(shè)置單元設(shè)置的標(biāo)識位;若鏈表索引信息寫入正常,從所述索引存儲介質(zhì)直接讀取所述鏈表索引信息,而在寫入異常時,通知所述掃描單元掃描得到鏈表索引信息。
8. 如權(quán)利要求7所述的設(shè)備,其特征在于,所述標(biāo)識設(shè)置單元還用于當(dāng)所述寫入單元寫入所述鏈表索引信息正常時,設(shè)置所述標(biāo)識位標(biāo)識正常;當(dāng)所述寫入單元寫入所述鏈表索引信息異常時,設(shè)置所述標(biāo)識位標(biāo)識異常;當(dāng)所述讀取單元從所述索引存儲介質(zhì)直接讀取所述鏈表索引信息之后,將所述標(biāo)識位由標(biāo)識正常更新為標(biāo)識異常。
9. 如權(quán)利要求7或8所述的設(shè)備,其特征在于,所述配置單元還用于設(shè)定需要寫入所述索引存儲介質(zhì)中的鏈表索引信息內(nèi)容。
10. 如權(quán)利要求7或8所述的設(shè)備,其特征在于,所述讀取單元還用于根據(jù)預(yù)先配置的所述鏈表索引信息在所述索引存儲介質(zhì)中的存儲位置,讀取所述鏈表索引信息;或者根據(jù)所述日志式文件系統(tǒng)的系統(tǒng)標(biāo)識查找預(yù)先存儲的系統(tǒng)標(biāo)識與存儲位置的對應(yīng)關(guān)系,獲取所述鏈表索引信息在所述索引存儲介質(zhì)中的存儲位置,讀取所述鏈表索引信息。
11. 如權(quán)利要求7或8所述的設(shè)備,其特征在于,所述寫入單元還用于將所述鏈表索引信息一次性寫入所述索引存儲介質(zhì);或者根據(jù)預(yù)先設(shè)置分多次將所述鏈表索引信息寫入所述索引存儲介質(zhì)。
全文摘要
本發(fā)明公開了一種提高掛載日志式文件系統(tǒng)速度的方法和設(shè)備,該方法包括當(dāng)日志式文件系統(tǒng)第一次掛載到嵌入式設(shè)備的操作系統(tǒng)時,操作系統(tǒng)掃描建立日志式文件系統(tǒng)的存儲介質(zhì),獲取日志式文件系統(tǒng)的鏈表索引信息;當(dāng)日志式文件系統(tǒng)第一次卸載時,操作系統(tǒng)將日志式文件系統(tǒng)的鏈表索引信息寫入索引存儲介質(zhì),并根據(jù)寫入鏈表索引信息正常或者異常設(shè)置不同的標(biāo)識位;后續(xù)日志式文件系統(tǒng)向操作系統(tǒng)掛載,操作系統(tǒng)讀取標(biāo)識位信息;若鏈表索引信息寫入正常,操作系統(tǒng)從索引存儲介質(zhì)直接讀取鏈表索引信息;若鏈表索引信息寫入異常,操作系統(tǒng)重新掃描建立日志式文件系統(tǒng)的存儲介質(zhì),獲取鏈表索引信息。本發(fā)明降低了嵌入式設(shè)備中日志式文件系統(tǒng)的掛載時間。
文檔編號G06F17/30GK101706822SQ20091025932
公開日2010年5月12日 申請日期2009年12月18日 優(yōu)先權(quán)日2009年12月18日
發(fā)明者王濤 申請人:杭州迪普科技有限公司