易于移植的文件系統(tǒng)及其對外置存儲器數(shù)據(jù)的管理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及文件管理技術(shù)領(lǐng)域,尤其涉及一種易于移植的文件系統(tǒng)以及其對外置存儲器數(shù)據(jù)的管理方法。
【背景技術(shù)】
[0002]現(xiàn)有的某些小型嵌入式系統(tǒng),需要管理外部存儲器,但是對于外部存儲器又沒有一個好的文件管理方案,導(dǎo)致大量的空間浪費(fèi),這些小型嵌入式系統(tǒng)代碼中文件管理的部分也容易出錯,導(dǎo)致數(shù)據(jù)訪問的錯誤或者誤刪除數(shù)據(jù)。而使用現(xiàn)有的文件系統(tǒng)又因?yàn)樾⌒颓度胧较到y(tǒng)的內(nèi)存過小,導(dǎo)致不能直接使用,移植起來異常繁瑣,即使能夠移植,現(xiàn)有的文件系統(tǒng)需要大量的內(nèi)存空間來完成,很多大量冗余的不必要信息被其頻繁讀寫,使得管理過程進(jìn)行緩慢。
【發(fā)明內(nèi)容】
[0003]針對現(xiàn)有技術(shù)的不足,本發(fā)明的目的之一在于易于移植的文件系統(tǒng),其只需要利用很少一部分內(nèi)存,提供簡單易用的接口,易于移植,同時(shí)可以方便的管理外置存儲的數(shù)據(jù)。
[0004]為了實(shí)現(xiàn)上述目的,本發(fā)明采取如下技術(shù)方案:
[0005]—種易于移植的文件系統(tǒng),所述文件系統(tǒng)用于對外置存儲器數(shù)據(jù)進(jìn)行管理,所述外置存儲器按照其擦除大小分成多個存儲塊,所述多個存儲塊包括第一存儲塊、第二存儲塊,剩余的存儲塊為文件存儲塊,其中,第一存儲塊用于記錄每個文件存儲塊的使用情況以及保存的文件數(shù)量,所述第二存儲塊用于保存每個文件的文件節(jié)點(diǎn);所述文件系統(tǒng)包括:
[0006]文件創(chuàng)建接口,用于在外置存儲器中某個文件存儲塊內(nèi)建立新文件,并根據(jù)該新文件信息對第一存儲塊和第二存儲塊進(jìn)行更新;
[0007]文件刪除接口,用于對外置存儲器中某個文件進(jìn)行刪除,并在刪除該文件后對第一存儲塊和第二存儲塊進(jìn)行更新;
[0008]文件讀取接口,用于通過第二存儲塊查詢要讀取文件對應(yīng)的文件節(jié)點(diǎn),并讀取該要讀取文件的數(shù)據(jù);
[0009]文件寫入接口,用于通過第二存儲塊查詢要寫入文件對應(yīng)的文件節(jié)點(diǎn),并該要寫入文件中寫入相應(yīng)的數(shù)據(jù),同時(shí)對第一存儲塊和第二存儲塊進(jìn)行更新。
[0010]優(yōu)選地,所述第一存儲塊用于記錄每個文件存儲塊的使用情況為記錄每個文件存儲塊內(nèi)所有文件占用該文件存儲塊的大小;所述文件節(jié)點(diǎn)包括該文件節(jié)點(diǎn)對應(yīng)的文件的大小和關(guān)鍵字。
[0011]作為本發(fā)明的另一種實(shí)施方式,所述文件系統(tǒng)進(jìn)一步包括一內(nèi)置存儲單元,所述第一存儲塊的數(shù)據(jù)信息與該內(nèi)置存儲單元中的數(shù)據(jù)信息同步。
[0012]作為本發(fā)明的另一種實(shí)施方式,在剩余存儲塊中選擇一個作為文件系統(tǒng)與外置存儲器之間數(shù)據(jù)讀寫的交換區(qū)。
[0013]本發(fā)明的另一目的在于提供一種采用上述文件系統(tǒng)對外置存儲器數(shù)據(jù)的管理方法,其可以方便地在外置存儲器中創(chuàng)建文件、刪除文件、以及讀取文件數(shù)據(jù)和對某文件進(jìn)行數(shù)據(jù)寫入的操作。
[0014]為實(shí)現(xiàn)上述目的,本發(fā)明采取如下技術(shù)方案:
[0015]—種外置存儲器數(shù)據(jù)管理方法,所述外置存儲器按照其擦除大小分成多個存儲塊,所述多個存儲塊包括第一存儲塊、第二存儲塊,剩余的存儲塊為文件存儲塊,其中,第一存儲塊用于記錄每個文件存儲塊的使用情況以及保存的文件數(shù)量,所述第二存儲塊用于保存每個文件的文件節(jié)點(diǎn);所述數(shù)據(jù)管理方法包括以下步驟:
[0016]在外置存儲器中某個文件存儲塊內(nèi)建立新文件,并根據(jù)該新文件信息對第一存儲塊和第二存儲塊進(jìn)行更新;
[0017]對外置存儲器中某個文件進(jìn)行刪除,并在刪除該文件后對第一存儲塊和第二存儲塊進(jìn)行更新;
[0018]通過第二存儲塊查詢要讀取文件對應(yīng)的文件節(jié)點(diǎn),并讀取該要讀取文件的數(shù)據(jù);
[0019]通過第二存儲塊查詢要寫入文件對應(yīng)的文件節(jié)點(diǎn),并該要寫入文件中寫入相應(yīng)的數(shù)據(jù),同時(shí)對第一存儲塊和第二存儲塊進(jìn)行更新。
[0020]優(yōu)選地,第一存儲塊用于記錄每個文件存儲塊的使用情況為記錄每個文件存儲塊內(nèi)所有文件占用該文件存儲塊的大小;所述文件節(jié)點(diǎn)包括該文件節(jié)點(diǎn)對應(yīng)的文件的大小和關(guān)鍵字。
[0021]優(yōu)選地,所述在外置存儲器中某個文件存儲塊內(nèi)建立新文件,并根據(jù)該新文件信息對第一存儲塊和第二存儲塊進(jìn)行更新的方法包括以下步驟:
[0022]步驟S11、在第二存儲塊中尋找要創(chuàng)建的新文件的關(guān)鍵字,如果未找到,則在第二存儲塊中增加一新的文件節(jié)點(diǎn);
[0023]步驟S12、查詢外置存儲器剩余空間大小是否足夠創(chuàng)建該新文件,如果足夠,則根據(jù)該新文件大小申請要保存的文件存儲塊;
[0024]步驟SI3、在該要保存的文件存儲塊中創(chuàng)建新文件;
[0025]步驟S14、將新的文件節(jié)點(diǎn)保存該新文件的文件大小和關(guān)鍵字,以對第二存儲塊的更新,同時(shí)將該新文件保存到的文件存儲塊的使用情況和文件數(shù)量進(jìn)行更新,以對第一存儲塊的更新。
[0026]優(yōu)選地,所述對外置存儲器中某個文件進(jìn)行刪除,并在刪除該文件后對第一存儲塊和第二存儲塊進(jìn)行更新的方法包括以下步驟:
[0027]步驟S21、在第二存儲塊中查找要刪除文件的關(guān)鍵字,如果找到,則刪除該關(guān)鍵字對應(yīng)的文件節(jié)點(diǎn);
[0028]步驟S22、將第一存儲塊中的文件數(shù)量的數(shù)值減I;
[0029]步驟S23、釋放該要刪除文件占用的文件存儲塊;
[0030]步驟S24、將該刪除文件初始所在的文件存儲塊的使用情況進(jìn)行更新。
[0031]優(yōu)選地,所述通過第二存儲塊查詢要讀取文件對應(yīng)的文件節(jié)點(diǎn),并讀取該要讀取文件的數(shù)據(jù)的方法包括以下步驟:
[0032]步驟S31、根據(jù)要讀取文件的關(guān)鍵字在第二存儲塊中查找對應(yīng)的文件節(jié)點(diǎn),如果找至IJ,則通過該對應(yīng)的文件節(jié)點(diǎn)計(jì)算偏移位置;
[0033]步驟S32、讀取該偏移位置的數(shù)據(jù)并傳送到用戶的緩沖器中。
[0034]優(yōu)選地,所述通過第二存儲塊查詢要寫入文件對應(yīng)的文件節(jié)點(diǎn),并該要寫入文件中寫入相應(yīng)的數(shù)據(jù),同時(shí)對第一存儲塊和第二存儲塊進(jìn)行更新的方法包括以下步驟:
[0035]步驟S41、根據(jù)要寫入數(shù)據(jù)的關(guān)鍵字在第二存儲塊中查找對應(yīng)的文件節(jié)點(diǎn),如果找至IJ,根據(jù)該對應(yīng)的文件節(jié)點(diǎn)計(jì)算偏移位置,所述偏移位置即為要寫入數(shù)據(jù)的文件;
[0036]步驟S42、判斷要寫入數(shù)據(jù)的大小是否超過該偏移位置所在文件存儲塊剩余空間的大小,如果不超過,則向該偏移位置寫入相應(yīng)的數(shù)據(jù);
[0037]步驟S43、更新該偏移位置對應(yīng)的文件節(jié)點(diǎn)中文件的大小,以對第二存儲塊進(jìn)行更新;同時(shí)對第一存儲塊中該偏移位置所在文件存儲塊的使用情況進(jìn)行更新。
[0038]作為另一種實(shí)施方式,所述數(shù)據(jù)管理方法還包括以下步驟:
[0039]建立內(nèi)置存儲單元,并將第一存儲塊的數(shù)據(jù)信息與該內(nèi)置存儲單元中的數(shù)據(jù)信息同步。
[0040]作為再一種實(shí)施方式,所述數(shù)據(jù)管理方法還包括以下步驟:
[0041]在剩余存儲塊中選擇一個作為文件系統(tǒng)與外置存儲器之間數(shù)據(jù)讀寫的交換區(qū)。
[0042]本發(fā)明闡述的易于移植的文件系統(tǒng)以及其對外置存儲器數(shù)據(jù)的管理方法,其有益效果在于:
[0043]1、通過在操作系統(tǒng)中選擇較小的內(nèi)存空間建立文件系統(tǒng),該文件系統(tǒng)只需要提供簡單易用的接口,即可方便地對外置存儲器中創(chuàng)建文件、刪除文件、以及讀取文件數(shù)據(jù)和對某文件進(jìn)行數(shù)據(jù)寫入的管理。
[0044]2、在操作系統(tǒng)中選擇較小的內(nèi)存空間,用于加載超級存儲塊(即第一存儲塊)的數(shù)據(jù)信息,從而更加方便申請創(chuàng)建或刪除文件。
[0045]3、在外置存儲器的各存儲塊中選擇一個作為文件系統(tǒng)與外置存儲器之間數(shù)據(jù)讀寫的交換區(qū),提高讀寫速度。
【附圖說明】
[0046]圖1是本發(fā)明易于移植的文件系統(tǒng)實(shí)施例一的結(jié)構(gòu)圖;
[0047]圖2是本發(fā)明易于移植的文件系統(tǒng)實(shí)施例二的結(jié)構(gòu)圖;
[0048]圖