基于flash存儲器的嵌入式文件系統(tǒng)的設(shè)計與實現(xiàn)

基于flash存儲器的嵌入式文件系統(tǒng)的設(shè)計與實現(xiàn)

ID:10734773

大?。?4.50 KB

頁數(shù):4頁

時間:2018-07-08

基于flash存儲器的嵌入式文件系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
基于flash存儲器的嵌入式文件系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
基于flash存儲器的嵌入式文件系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
基于flash存儲器的嵌入式文件系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
資源描述:

《基于flash存儲器的嵌入式文件系統(tǒng)的設(shè)計與實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、基于FLASH存儲器的嵌入式文件系統(tǒng)的設(shè)計與實現(xiàn)

2、第1摘要:基于FLASH存儲器的嵌入式文件系統(tǒng)要求:實現(xiàn)數(shù)據(jù)可維護性;提高數(shù)據(jù)安全性;針對FLASH的特性進行合理的優(yōu)化。我們以嵌入式操作系統(tǒng)ASIXOS中的文件系統(tǒng)為實例,從存儲空間管理,文件實現(xiàn),目錄實現(xiàn),多任務(wù)的實現(xiàn)四個方面描述文件系統(tǒng)基本功能的設(shè)計,接著提出了針對FLASH作為存儲介質(zhì)的嵌入式文件系統(tǒng)的優(yōu)化設(shè)計。關(guān)鍵詞:嵌入式;操作系統(tǒng);文件系統(tǒng)FLASH;設(shè)計;實現(xiàn)  在嵌入式手持移動終端中,應(yīng)用程序需要存儲和檢索大量的用戶信息,這些信息在應(yīng)用程序退出時應(yīng)該被記錄保存下來,同時這

3、些信息要能被多個應(yīng)用程序并發(fā)使用,比如本中的數(shù)據(jù)要能夠被,短消息,名片等多個應(yīng)用程序共享。為達到以上要求,就引出了文件的概念,把這些用戶信息以文件的形式存儲在外部介質(zhì)上,獨立于任何應(yīng)用程序?! ∧壳巴ㄓ糜嬎銠C上已經(jīng)有很多成熟的文件系統(tǒng),如DOS下的FAT文件系統(tǒng)、中的FILE-S結(jié)構(gòu)體的數(shù)組,用來保存已打開的文件信息,數(shù)組的大小就是當(dāng)前文件系統(tǒng)中支持同時打開文件的最大數(shù)目。在實際系統(tǒng)中我們用宏定義了數(shù)組的大小,便于今后修改。FILE層模塊負責(zé)所有文件I/O的打開和終止,維護設(shè)備的輸入輸出,調(diào)度,修改文件當(dāng)前狀態(tài)等工作?! CB層模塊處理

4、主存與輔存系統(tǒng)之間的數(shù)據(jù)交換,提供一整套文件的FCB在FLASH和RAM之間的映射關(guān)系。所謂FCB就是filecontrolblock的縮寫?! lock層模塊完成在輔存中動態(tài)的申請和釋放Block塊的工作,同時維護BlockBitmap表。這張表記錄了當(dāng)前Block塊使用和空閑狀態(tài)?! /O緩沖層模塊直接調(diào)用驅(qū)動的讀寫函數(shù),完成FLASH和RAM中數(shù)據(jù)的交互。為了增強FLASH文件系統(tǒng)在不同F(xiàn)LASH存儲器上的移植能力,設(shè)計時把它獨立出來。2 文件系統(tǒng)基本功能的實現(xiàn)    從基本功能的角度來說,文件系統(tǒng)首先要能夠?qū)崿F(xiàn)存儲空間管理,文

5、件管理,目錄管理以及多任務(wù)的支持。以下就是ASIXOS中文件系統(tǒng)幾種功能的實現(xiàn)方式。① 存儲空間管理  同大多數(shù)文件系統(tǒng)一樣,我們把文件劃分為固定大小的塊(Block)來存儲,各個塊之間不必相鄰。塊大小是設(shè)計時要考慮的重要因素。塊越小,每個塊內(nèi)碎片造成的空間的浪費就越小,F(xiàn)LASH存儲信息的效率就越高。但是時間和空間永遠是一對矛盾體,隨著塊變小,讀取文件的時間也會增加??紤]到嵌入式系統(tǒng)中文件的大小不會太大,初步確定每個塊的大小在64~2048byte之間。在I/O緩沖模塊完成構(gòu)建后,通過進行效率方面的模擬測試,考慮到時空效率上的折中,我們

6、用宏定義塊的大小是512byte。這樣我們就達到了前面提到的從系統(tǒng)角度根據(jù)數(shù)據(jù)吞吐量,從用戶角度根據(jù)相應(yīng)時間,優(yōu)化性能的目的?! ∫坏┐_定了塊大小,文件系統(tǒng)還需要能夠記錄塊的使用情況,以便在出現(xiàn)新文件和現(xiàn)有文件增長時知道可以使用哪些塊。在這里我們使用了向量位表,每一位上用1表示空閑,用0表示使用。這樣對于每次擦寫64kb,每個塊大小512byte的FLASH來說,只需要128bit,即16byte就可以清楚記錄當(dāng)前所有塊的使用情況。② 文件管理  實現(xiàn)文件管理,最重要的一個問題是如何記錄具體的文件使用到哪些塊,以及這些塊之間的順序。以往的

7、文件系統(tǒng)多采用:連續(xù)分配,鏈接表分配,使用索引的鏈接表分配,i節(jié)點等方式來解決。例如,MSDOS中是使用索引的鏈接表分配,UNIX中是i節(jié)點?! ♂槍η度胧较到y(tǒng)的特點,我們汲取了UNIX中i節(jié)點的設(shè)計思想,并簡化它,設(shè)計了主(輔)文件控制塊的分配方式,具體結(jié)構(gòu)如圖2所示。它不但清楚的記錄了文件數(shù)據(jù)塊的地址及其之間的順序,同時可以方便的進行文件控制塊之間的索引。500)this.style.ouseg(this)">  采用以上的結(jié)構(gòu),對于尺寸超出主文件控制塊記錄范圍的文件,可以很方便的進行管理,如圖3所示。500)this.style.o

8、useg(this)">③ 目錄管理  對文件操作前,系統(tǒng)首先要利用用戶給出的路徑找到相應(yīng)的目錄,在目錄中查找文件的信息。有關(guān)目錄的實現(xiàn),我們也借鑒了文件的實現(xiàn)思想。文件系統(tǒng)中的每個目錄控制塊占512byte,存放目錄控制信息以及目錄子項的標識信息。目錄控制信息借用了主文件控制塊結(jié)構(gòu)描述,目錄子項的標識信息就是下一級子目錄和文件的信息。具體結(jié)構(gòu)如圖4、圖5所示。500)this.style.ouseg(this)">  從上面的描述,可以很清楚的看出已經(jīng)實現(xiàn)了目錄樹的結(jié)構(gòu)。500)this.style.ouseg(this)">④ 多任務(wù)

9、的實現(xiàn)  在每一個任務(wù)控制塊中加上T-FSCB結(jié)構(gòu)體,對每個任務(wù)所能打開的文件個數(shù)作出限制。這樣在創(chuàng)建任務(wù)的時候,對T-FSCB結(jié)構(gòu)體進行初始化,全部為0。在結(jié)構(gòu)體T-FSCB中定義了T-FS

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。