TW201308193A - 一種文件分配表的資料儲存方法 - Google Patents

一種文件分配表的資料儲存方法 Download PDF

Info

Publication number
TW201308193A
TW201308193A TW101122384A TW101122384A TW201308193A TW 201308193 A TW201308193 A TW 201308193A TW 101122384 A TW101122384 A TW 101122384A TW 101122384 A TW101122384 A TW 101122384A TW 201308193 A TW201308193 A TW 201308193A
Authority
TW
Taiwan
Prior art keywords
cluster
file
written
idle state
current
Prior art date
Application number
TW101122384A
Other languages
English (en)
Inventor
Xiao-Wei Qio
Mei Lan
Original Assignee
Byd Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Byd Co Ltd filed Critical Byd Co Ltd
Publication of TW201308193A publication Critical patent/TW201308193A/zh

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一種檔分配表的資料存儲方法,包括:將檔寫入到磁片內空閒狀態的簇內,且檔在寫完後記錄其所寫入的最後一個簇,作為該檔的當前簇。克服了現有檔分配表資料存儲方法,當檔進行續寫時,需要從該檔的第一個簇開始,根據簇鏈關係依次尋找下一個簇,直至找到最後一個簇後才開始進行檔的續寫,這樣隨著檔的容量越來越大,則使得尋找該檔的最後一個簇所花的時間也將越長,從而影響了檔的續寫速度。因此,相對現有技術來說,本發明檔分配表的資料存儲方法省去了尋找最後一個簇所花的時間,從而大大提高了檔的續寫速度。

Description

一種文件分配表的資料儲存方法
本發明屬於文檔系統的資料存儲領域,具體涉及一種檔分配表的資料存儲方法。

文件分配表(英文:File Allocation Table,簡稱:FAT)作為一種文檔系統,廣泛應用於各類具有資料存儲功能的器件(例如SD卡)。申請人在現有的檔分配表進行資料存儲時發現,當對已創建的檔進行續寫時,需要從該檔的第一個簇開始,根據簇鏈關係依次尋找下一個簇,直至找到最後一個簇後才開始進行檔的續寫,然而隨著檔的容量越來越大,則使得尋找該檔的最後一個簇所花的時間也將越長,從而影響了檔的續寫速度。
為解決現有的檔分配表,由於尋找該檔的最後一個簇所花的時間較長,從而影響了檔的續寫速度的技術問題,本發明實施例提供了一種提高檔續寫速度的檔分配表的資料存儲方法。
本發明的技術方案是:
一種檔分配表的資料存儲方法,包括以下步驟:獲得磁片內為空閒狀態的簇;以及將檔寫入到所述磁片內一個或多個空閒狀態的簇內,並且在所述檔寫完後記錄所述檔所寫入的最後一個簇,並將所述最後一個簇作為所述檔的當前簇。
優選地,當檔需要續寫時,在該檔寫完並記錄當前簇後進一步包括以下步驟:
步驟S1:獲取所述文件的當前簇;
步驟S2:判斷所述當前簇是否寫滿,當未寫滿時,執行步驟S3,否則執行步驟S4;
步驟S3:先寫滿所述當前簇,接著尋找所述磁片內空閒狀態的簇繼續續寫所述檔,且在所述檔續寫完後記錄所述檔所寫入的最後一個簇,且將所述最後一個簇重新記作為所述檔的當前簇;
步驟S4:尋找所述磁片內空閒狀態的簇繼續續寫檔,且在所述檔續寫完後記錄所述檔所寫入的最後一個簇,且將所述最後一個簇重新記作為所述檔的當前簇。
優選地,所述尋找空閒狀態的簇繼續續寫檔具體包括以下步驟:
步驟T1:按照預設順序依次查找所述磁片內的簇,並判斷查找的當前簇是否為空閒狀態:
步驟T2:當所述查找的當前簇為空閒狀態時,在所述查找的當前簇內繼續續寫所述檔,否則返回執行步驟T1繼續查找。
優選地,所述將檔寫入到磁片內空閒狀態的簇內具體為:
查詢磁片內所有簇的狀態,並將磁片內所有空閒狀態的簇記錄在空閒簇列表上;
根據記錄的空閒簇列表獲取空閒狀態的簇寫入檔,且即時更新記錄的空閒簇列表。
優選地,當檔需要續寫時,包括以下步驟:
步驟A1:獲取該文件的當前簇;
步驟A2:判斷當前簇是否寫滿,當未寫滿時,執行步驟A3;否則執行步驟A4;
步驟A3:先寫滿當前簇,接著根據記錄的空閒簇列表獲取空閒狀態的簇繼續續寫檔,且在檔續寫完後記錄其所寫入的最後一個簇,且將該最後一個簇重新記作為該檔的當前簇,並繼續執行步驟A5;
步驟A4:根據記錄的空閒簇列表獲取空閒狀態的簇繼續續寫檔,且在檔續寫完後記錄其所寫入的最後一個簇,且將該最後一個簇重新記作為該檔的當前簇, 並繼續執行步驟A5;
步驟A5:根據該檔續寫所寫入的簇,對記錄的空閒簇列表進行更新。
優選地,所述根據記錄的空閒簇列表獲取空閒狀態的簇繼續續寫文件具體為:
從記錄的空閒簇列表獲取空閒狀態的簇,並按照距離當前簇由近到遠的順序地繼續續寫檔。
本發明的優點:從本發明的上述技術方案可以得知,檔分配表的資料存儲方法包括:將檔寫入到磁片內空閒狀態的簇內,且檔在寫完後記錄其所寫入的最後一個簇,作為該檔的當前簇,這樣,由於檔在寫完後記錄了當前簇,因此當該檔需要續寫時,可以快速找到該當前簇,並尋找空閒狀態的簇繼續續寫檔。現有的檔分配表資料存儲方法,當檔進行續寫時,需要從該檔的第一個簇開始,根據簇鏈關係依次尋找下一個簇,直至找到最後一個簇後才開始進行檔的續寫,然而隨著檔的容量越來越大,則使得尋找該檔的最後一個簇所花的時間也將越長,從而影響了檔的續寫速度。因此,相對現有技術來說,本發明檔分配表的資料存儲方法省去了尋找最後一個簇所花的時間,從而大大提高了檔的續寫速度。
為了使本發明所解決的技術問題、技術方案及有益效果更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
現有的檔分配表資料存儲方法,當檔進行續寫時,需要從該檔的第一個簇開始,根據簇鏈關係依次尋找下一個簇,直至找到最後一個簇後才開始進行檔的續寫,而且隨著檔的容量越來越大,使得尋找該檔的最後一個簇所花的時間也將越長,從而影響了檔的續寫速度。為了解決現有技術存在的技術問題,申請人經過自己創造性的勞動,終於找到了解決上述技術問題的方案,即檔在寫完後記錄其所寫入的最後一個簇,作為該檔的當前簇,這樣便可省去了檔每次在續寫時需尋找最後一個簇所花的時間,從而大大提高了檔的續寫速度。下面詳細描述本發明的技術方案。
一種檔分配表的資料存儲方法,包括以下步驟:獲得磁片內為空閒狀態的簇;以及將檔寫入到所述磁片內一個或多個空閒狀態的簇內,並且在所述檔寫完後記錄所述檔所寫入的最後一個簇,並將所述最後一個簇作為所述檔的當前簇。。在本發明的一個實施例中,該檔指檔分配表檔。且在發明的實施例中,如果檔僅寫入一個空閒狀態的簇,則該簇就為檔的當前簇,如果檔寫入多個空閒狀態的簇,則最後一個簇作為檔的當前簇。
由上述方案可知,該方案使得檔在續寫時,可以快速找到該檔寫入的最後一個簇(即當前簇),從而可以使得檔能夠達到快速續寫的目的。下面具體描述檔續寫的步驟,可理解的是,以下檔續寫的步驟執行於該檔寫完並記錄當前簇之後。
當檔需要續寫時,包括以下步驟:
步驟S1:獲取該文件的當前簇;
步驟S2:判斷當前簇是否寫滿,當未寫滿時,執行步驟S3;否則執行步驟S4;
步驟S3:先寫滿當前簇,接著尋找磁片內空閒狀態的簇繼續續寫檔,且在檔續寫完後記錄其所寫入的最後一個簇,且將該最後一個簇重新記作為該檔的當前簇;
步驟S4:尋找磁片內空閒狀態的簇繼續續寫檔,且在該檔續寫完後記錄其所寫入的最後一個簇,且將該最後一個簇重新記作為該檔的當前簇。
具體實施中,上述尋找空閒狀態的簇繼續續寫檔可具體包括以下步驟:
步驟T1:按照預設順序依次查找磁片內的簇,並判斷查找的當前簇是否為空閒狀態:
步驟T2:當查找的當前簇為空閒狀態時,在查找的當前簇內繼續續寫檔,否則返回執行步驟T1繼續查找。
優選地,所述預設順序可為:距離當前簇由近到遠的順序。可以理解的是,該預設順序是由設計人員預先設定的順序,其不限上述順序,其還可為其他任一設定順序,在此不做一一說明。
作為本發明的一種優選方案,將檔寫入到磁片內空閒狀態的簇內具體為:
查詢磁片內所有簇的狀態,並將磁片內所有空閒狀態的簇的簇記錄在空閒簇列表上;
根據記錄的空閒簇列表獲取空閒狀態的簇並在空閒狀態的簇內寫入檔,且即時更新記錄的空閒簇列表。
在上述方案的基礎上進一步優選,當檔需要續寫時,進一步包括以下步驟:
步驟A1:獲取該文件的當前簇;
步驟A2:判斷當前簇是否寫滿,當未寫滿時,執行步驟A3,否則執行步驟A4;
步驟A3:先寫滿當前簇,接著根據記錄的空閒簇列表獲取空閒狀態的簇繼續續寫檔,且在檔續寫完後記錄其所寫入的最後一個簇,且將該最後一個簇重新記作為該檔的當前簇,並繼續執行步驟A5;
步驟A4:根據記錄的空閒簇列表獲取空閒狀態的簇繼續續寫檔,且在檔續寫完後記錄其所寫入的最後一個簇,且將該最後一個簇重新記作為該檔的當前簇, 並繼續執行步驟A5;
步驟A5:根據該檔續寫所寫入的簇,對記錄的空閒簇列表進行更新。
綜上可知,以上是將檔寫入到磁片內空閒狀態的簇內的一種優選方案,該方案通過包括:查詢磁片內所有簇的狀態,並將磁片內所有空閒狀態的簇的簇記錄在空閒簇列表上;根據記錄的空閒簇列表獲取空閒狀態的簇寫入檔,且即時更新記錄的空閒簇列表。可使得檔在寫入或下次續寫時,不需要通過判斷簇的狀態來尋找空閒狀態的簇來寫入或續寫檔,而可直接從記錄的空閒簇列表上獲取哪些是簇是空閒狀態從而省去了尋找空閒狀態的簇的時間,進而提高了檔的寫入或續寫速度。
可以理解的是,將檔寫入到磁片內空閒狀態的簇內不限於上述方案,還可以為現有技術中任一其他方案,例如:查找並判斷某一簇(例如A簇)的狀態,當該簇為空閒狀態時,在該簇內寫檔,否則繼續查找並判斷A簇的下一個簇(即B簇)的狀態,當該簇為空閒狀態時,在該簇內寫檔,否則繼續查找並判斷B簇的下一個簇的狀態……直至檔寫完。
具體實施中,所述根據記錄的空閒簇列表獲取空閒狀態的簇繼續續寫文件具體為:
從記錄的空閒簇列表獲取空閒狀態的簇,並按照距離當前簇由近到遠的順序繼續續寫檔。
當然,上述根據記錄的空閒簇列表獲取空閒狀態的簇繼續續寫檔不限於按照距離當前簇由近到遠的順序繼續續寫檔,還可以按照其他任一順序進行檔的續寫,在此不做一一說明。
下面參照附圖並結合較佳實施例詳細描述本發明的技術方案。
第1圖為本發明檔分配表的資料存儲方法提供的較佳實施例的方法流程圖,該實施例檔分配表的資料存儲方法依次包括檔的寫入和檔的續寫兩個部分,如第1圖所示,檔分配表的資料存儲方法包括以下步驟:
步驟11:查詢磁片內所有簇的狀態,並將磁片內所有空閒狀態的簇記錄在空閒簇列表上;
由現有技術可知,磁區是磁片最小的物理存儲單元,但由於作業系統無法對數目眾多的磁區進行定址,所以作業系統就將相鄰的磁區組合在一起,形成一個簇,然後再對簇進行管理,每個簇可以包括2、4、8、16、32或64個磁區。根據簇是否寫入檔,簇的狀態為空閒狀態和存滿狀態(即非空閒狀態)。
步驟12:根據記錄的空閒簇列表獲取空閒狀態的簇寫入檔,並即時更新記錄的空閒簇列表,且在檔寫完後記錄最後一個簇(即當前簇);
此處的更新是指,隨著檔在寫入,使得空閒簇列表上的簇由狀態轉變為非空閒狀態,因此當檔在寫入時,需即時將空閒簇列表上由狀態轉變為非空閒狀態的簇去掉,即達到空閒簇列表更新的目的。
步驟13:獲取該文件的當前簇;
步驟14:判斷當前簇是否寫滿,當未寫滿時,執行步驟15,否則執行步驟16;
步驟15:先寫滿當前簇,接著根據記錄的空閒簇列表獲取空閒狀態的簇繼續續寫檔,且在檔續寫完後記錄其所寫入的最後一個簇,且將該最後一個簇重新記作為該檔的當前簇,並繼續執行步驟17;
步驟16:根據記錄的空閒簇列表獲取空閒狀態的簇繼續續寫檔,且在檔續寫完後記錄其所寫入的最後一個簇,且將該最後一個簇重新記作為該檔的當前簇, 並繼續執行步驟17;
步驟17:根據該檔續寫所寫入的簇,對記錄的空閒簇列表進行更新。
可以理解的是,步驟17的更新類似於步驟12中的更新,因此在此不做具體說明。
該實施例,通過將磁片內所有空閒狀態的簇記錄在空閒簇列表上,以及在檔寫入或續寫完後記錄最後一個簇,這樣不僅省去了需要通過判斷簇的狀態來尋找空閒狀態的簇所花的時間,而且也省去了檔每次在續寫時需從第一個開始,依次尋找,直到尋找最後一個簇所花的時間,因此本實施例大大提高了檔的寫入和續寫速度。
在此需說明的是,該實施例僅以一個檔的寫入和檔的一次續寫為例進行了說明,事實上,檔的第二次、第三次等後續的操作均可參照上述檔的依次續寫方法(具體包括步驟13-步驟17),例如每續寫一次檔,則執行一次步驟13-步驟17。另外,其他檔的寫入同樣參照上述檔的寫入(具體包括步驟11-步驟12),同理其多次續寫同樣可參照上述檔的續寫,且每續寫一次檔,則執行一次步驟13-步驟17。
以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護範圍之內。
第1圖為本發明檔分配表的資料存儲方法提供的較佳實施例的方法流程圖。

Claims (7)

  1. 一種檔分配表的資料存儲方法,其特徵在於,包括以下步驟:
    獲得磁片內為空閒狀態的簇;以及
    將檔寫入到所述磁片內一個或多個空閒狀態的簇內,並且在所述檔寫完後記錄所述檔所寫入的最後一個簇,並將所述最後一個簇作為所述檔的當前簇。
  2. 如申請專利範圍第1項所述的檔分配表的資料存儲方法,其特徵在於,當所述檔需要續寫時,包括以下步驟:
    步驟S1:獲取所述文件的當前簇;
    步驟S2:判斷所述當前簇是否寫滿,當未寫滿時,執行步驟S3,否則執行步驟S4;
    步驟S3:先寫滿所述當前簇,接著尋找所述磁片內空閒狀態的簇繼續續寫所述檔,且在所述檔續寫完後記錄所述檔所寫入的最後一個簇,且將所述最後一個簇重新記作為所述檔的當前簇;
    步驟S4:尋找所述磁片內空閒狀態的簇繼續續寫檔,且在所述檔續寫完後記錄所述檔所寫入的最後一個簇,且將所述最後一個簇重新記作為所述檔的當前簇。
  3. 如申請專利範圍第2項所述的檔分配表的資料存儲方法,其特徵在於,所述尋找空閒狀態的簇繼續續寫檔具體包括以下步驟:
    步驟T1:按照預設順序依次查找所述磁片內的簇,並判斷查找的當前簇是否為空閒狀態:
    步驟T2:當所述查找的當前簇為空閒狀態時,在所述查找的當前簇內繼續續寫所述檔,否則返回執行步驟T1繼續查找。
  4. 如申請專利範圍第3項所述的檔分配表的資料存儲方法,其特徵在於,所述預設順序為:距離所述當前簇由近到遠的順序。
  5. 如申請專利範圍第1項所述的檔分配表的資料存儲方法,其特徵在於,所述將檔寫入到磁片內空閒狀態的簇內具體包括以下步驟:
    查詢所述磁片內所有簇的狀態,並將所述磁片內所有空閒狀態的簇記錄在空閒簇列表上;
    根據記錄的所述空閒簇列表獲取空閒狀態的簇並在所述空閒狀態的簇內寫入所述檔,且即時地更新記錄的所述空閒簇列表。
  6. 如申請專利範圍第5項所述的檔分配表的資料存儲方法,其特徵在於,當檔需要續寫時,包括以下步驟:
    步驟A1:獲取所述文件的當前簇;
    步驟A2:判斷所述當前簇是否寫滿,當未寫滿時,執行步驟A3,否則執行步驟A4;
    步驟A3:先寫滿所述當前簇,接著根據記錄的所述空閒簇列表獲取空閒狀態的簇並繼續續寫所述檔,且在所述檔續寫完後記錄所述檔所寫入的最後一個簇,且將該最後一個簇重新記作為所述檔的當前簇,並繼續執行步驟A5;
    步驟A4:根據記錄的所述空閒簇列表獲取空閒狀態的簇並繼續續寫檔,且在所述檔續寫完後記錄所述檔所寫入的最後一個簇,且將該最後一個簇重新記作為該檔的當前簇, 並繼續執行步驟A5;
    步驟A5:根據所述檔續寫所寫入的簇,對記錄的所述空閒簇列表進行更新。
  7. 如申請專利範圍第6項所述的檔分配表的資料存儲方法,其特徵在於,所述根據記錄的空閒簇列表獲取空閒狀態的簇並繼續續寫檔具體包括以下步驟:
    從記錄的所述空閒簇列表獲取空閒狀態的簇,並按照距離當前簇由近到遠的順序地繼續續寫檔。
TW101122384A 2011-06-22 2012-06-22 一種文件分配表的資料儲存方法 TW201308193A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011101691535A CN102841894A (zh) 2011-06-22 2011-06-22 一种文件分配表的数据存储方法

Publications (1)

Publication Number Publication Date
TW201308193A true TW201308193A (zh) 2013-02-16

Family

ID=47369267

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101122384A TW201308193A (zh) 2011-06-22 2012-06-22 一種文件分配表的資料儲存方法

Country Status (2)

Country Link
CN (1) CN102841894A (zh)
TW (1) TW201308193A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918021A (zh) * 2014-11-05 2019-06-21 华为技术有限公司 数据处理方法和装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105912267B (zh) * 2016-04-05 2019-01-18 深圳市四季宏胜科技有限公司 一种文件分配表处理方法和装置
CN109697019B (zh) * 2017-10-20 2022-12-27 北京京东尚科信息技术有限公司 基于fat文件系统的数据写入的方法和系统
CN111177070A (zh) * 2019-12-03 2020-05-19 贵州朗盛科技股份有限公司 文件分配方法和存储设备
CN111367474B (zh) * 2020-03-02 2021-03-02 湖南师范大学 面向嵌入式存储器的fat文件系统后分配方法及系统
CN114489478A (zh) * 2021-12-20 2022-05-13 山西转型综改示范区华纳方盛科技有限公司 数据记录仪的数据存储方法、数据存储模块及数据记录仪

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4487954B2 (ja) * 2006-02-28 2010-06-23 ソニー株式会社 データ記録装置、データ記録方法、及びプログラム
CN100543748C (zh) * 2007-04-25 2009-09-23 北京中星微电子有限公司 一种利用文件分配表进行文件寻道的方法及系统
CN100507919C (zh) * 2007-05-11 2009-07-01 北京中星微电子有限公司 一种fat文件系统及其处理方法
CN101303667B (zh) * 2008-06-25 2010-06-09 炬力集成电路设计有限公司 建立磁盘空簇表及查找磁盘空簇的方法和装置
CN101853275A (zh) * 2010-05-05 2010-10-06 北京中星微电子有限公司 一种fat文件系统的数据管理方法和系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918021A (zh) * 2014-11-05 2019-06-21 华为技术有限公司 数据处理方法和装置

Also Published As

Publication number Publication date
CN102841894A (zh) 2012-12-26

Similar Documents

Publication Publication Date Title
US9292217B2 (en) Logical volume space sharing
JP6309103B2 (ja) スナップショットおよびクローンの複製
TW201308193A (zh) 一種文件分配表的資料儲存方法
EP2863310B1 (en) Data processing method and apparatus, and shared storage device
US9478249B2 (en) Cache data management for program execution
WO2016086819A1 (zh) 将数据写入叠瓦状磁记录smr硬盘的方法及装置
WO2017185579A1 (zh) 一种数据存储方法及装置
WO2016165597A1 (zh) 数据存储的处理方法及装置
WO2016101718A1 (zh) 数据补全方法和装置
RU2008106228A (ru) Клонирование и управление фрагментами базы данных
US20070156778A1 (en) File indexer
WO2012083754A1 (zh) 处理脏数据的方法及装置
WO2018171296A1 (zh) 一种文件合并方法及控制器
US10423580B2 (en) Storage and compression of an aggregation file
US9442656B2 (en) Efficient use of metadata accompanying file writing to media
CN106484719B (zh) 一种扩展手机存储的方法及终端
WO2016082559A1 (zh) 一种数据写入方法及存储设备
JP5729479B2 (ja) 仮想テープ装置及び仮想テープ装置の制御方法
JP5985529B2 (ja) ハイバネーションからの迅速な再開のための装置、方法およびデバイス
WO2016206070A1 (zh) 一种文件更新方法及存储设备
WO2013123758A1 (zh) 一种磁盘访问控制方法、装置及系统
US9965491B2 (en) Method and device for recording system log
US8655892B2 (en) Data reorganization
JP2003271439A (ja) 情報処理装置およびプログラム
US20140089356A1 (en) Data storage device and operating method thereof