• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種可靠高效的閃存文件系統(tǒng)

      2013-09-25 03:05:16
      關(guān)鍵詞:空余扇區(qū)啟動

      王 江

      (上海貝爾股份有限公司N&P,上海201206)

      引 言

      支持閃存的文件系統(tǒng)多種多樣,常見的有JFFS、YAFFS、TrueFFS等,它們各有所長,但卻都不適合管理系統(tǒng)啟動時的配置文件和軟件。為此,筆者開發(fā)了一款可靠高效的文件系統(tǒng)——EFFS(Efficient Flash File System,高效閃存文件系統(tǒng))。

      1 文件系統(tǒng)的特點

      因為這款文件系統(tǒng)的首要服務(wù)對象是系統(tǒng)啟動,系統(tǒng)啟動要求快速而穩(wěn)定,所以它的文件系統(tǒng)必須具有以下特點:

      ①快速。啟動速度快無疑會給用戶留下美好的印象,所以初始化文件系統(tǒng)、搜索和讀取文件應(yīng)該盡可能快速。

      ②可靠??煽啃泽w現(xiàn)在三個方面。首先,目錄和文件的完整性——通過校驗碼來保證;其次,文件的冗余性,如果一個文件被破壞或者加載失敗,自動后退加載同一功能的另一個文件,不影響系統(tǒng)的啟動;最后,記錄文件和目錄的信息表有備份,破壞后能夠自動恢復(fù)。

      這是一款以扇區(qū)為基礎(chǔ)的文件系統(tǒng),層次結(jié)構(gòu)如圖1[1]所示,閃存驅(qū)動層屏蔽了閃存芯片的具體信息,例如閃存種類、緩存大小、分區(qū)大小。因為文件系統(tǒng)必須支持各種類型的閃存,所以該層的一個重要特性是可以識別多種閃存芯片。扇區(qū)管理層負責(zé)物理扇區(qū)和邏輯扇區(qū)的映射,實現(xiàn)壞塊管理和磨損均衡。API層提供了豐富的接口給外部應(yīng)用,可使文件系統(tǒng)內(nèi)部改變,而不致影響外部應(yīng)用接口。OS(操作系統(tǒng))在啟動階段時指啟動程序,例如BIOS、Bootloader,啟動完成后指應(yīng)用所依賴的Linux、WinCE等操作系統(tǒng)。

      圖1 文件系統(tǒng)層次結(jié)構(gòu)

      2 文件系統(tǒng)的結(jié)構(gòu)

      整個文件系統(tǒng)的架構(gòu)如圖2(a)所示,共分為5個區(qū)域:3個目錄(目錄0~目錄2)、2個文件系統(tǒng)信息表。這2個文件系統(tǒng)信息表互為備份,默認使用信息表0。如果信息表0損壞,則使用信息表1,同時把信息表1的數(shù)據(jù)復(fù)制到信息表0,即修復(fù)信息表0。每個文件信息表占用閃存的若干個扇區(qū)。其存放位置由用戶自定義,一般位于閃存的末尾。

      每個目錄由目錄信息表、文件和空閑區(qū)域組成。目錄信息表中存放了目錄和文件的屬性,其組織格式如表1所列。信息表的頭部是目錄屬性,定義了目錄名稱、版本、創(chuàng)建日期、長度、空余空間、校驗和等,緊接著目錄屬性,是每個文件的屬性。目錄中有幾個文件,就有幾個文件屬性的表項。

      文件屬性定義了文件名稱、版本、校驗和、在目錄中的偏移地址、長度等。因為有些文件可以執(zhí)行,例如故障診斷軟件和操作系統(tǒng),所以文件屬性中包含了一項入口地址,對于不可執(zhí)行文件,這一項設(shè)置為0。為了節(jié)省閃存空間,目前文件系統(tǒng)支持兩種壓縮格式:gzip和bz2,即文件可以壓縮后存放在閃存中,同時在“文件壓縮類型”記錄對應(yīng)的壓縮格式。當(dāng)文件被讀取時,根據(jù)“文件壓縮類型”選擇適合的解壓縮算法。

      圖2 文件系統(tǒng)架構(gòu)

      表1 目錄信息表格式

      物理上的3個目錄在邏輯上分別被定義為當(dāng)前(C)、先前(P)和原始(O)3個目錄。目錄0在硬件上設(shè)置為寫保護,所以原始目錄一般指向目錄0,該目錄中在出廠時存放一個最保險的、能夠讓系統(tǒng)穩(wěn)定運行的軟件版本。該設(shè)計可以使得其他2個目錄都損壞時,系統(tǒng)仍然有一個基本的能正常啟動的軟件備份。當(dāng)前目錄指向目錄2還是目錄1、先前目錄指向目錄2還是目錄1允許用戶自定義。對于每種類型的文件,在文件系統(tǒng)信息表中均有選擇開關(guān),指示下次啟動加載哪個目錄中的文件。所以文件系統(tǒng)信息表的組織如表2所列,主要定義了3個目錄在閃存中的地址、物理目錄和邏輯目錄的對應(yīng)關(guān)系、各個文件選擇的目錄和實際加載成功的目錄等。

      表2 文件系統(tǒng)信息表格式

      2.1 文件的選擇

      當(dāng)文件系統(tǒng)被加載,即文件系統(tǒng)初始化時,程序?qū)⑹紫葯z查文件系統(tǒng)信息表的完整性,然后根據(jù)信息表,檢查各個目錄的完整性,這些檢查結(jié)果都會記錄在內(nèi)存的一個數(shù)據(jù)結(jié)構(gòu)中。如果今后文件系統(tǒng)沒有改變,就可以直接使用內(nèi)存中的數(shù)據(jù),無需再次檢查,提高了系統(tǒng)性能。

      接著,啟動程序會根據(jù)文件系統(tǒng)信息表中的設(shè)置將文件加載到相應(yīng)的器件中。文件是根據(jù)邏輯目錄來進行選擇的。如果文件選擇的目錄為當(dāng)前目錄,則先在當(dāng)前目錄中查找該文件,如果文件不存在、損壞或者加載失敗,則從先前目錄中查找。如果先前目錄中的文件也不存在、損壞或加載失敗,則從原始目錄加載,原始目錄中的文件肯定是存在的,因為它們是寫保護并且在出廠時就燒錄好的。

      如果文件選擇的目錄為先前目錄,則從先前目錄中查找,如果文件不存在、損壞或者加載失敗,則加載原始目錄中的文件。如果文件選擇的目錄為原始目錄,則直接從原始目錄中查找和加載。文件的選擇如圖3所示。所以在使用時,一般將待測的最新版本的軟件存放在當(dāng)前目錄,而將測試通過的軟件存放在先前目錄,而文件選擇開關(guān)通常設(shè)置為當(dāng)前目錄,這樣可以充分利用3個目錄逐級備份的冗余特性,提高系統(tǒng)的可靠性。

      圖3 文件的選擇

      每個文件加載成功后,系統(tǒng)將在文件系統(tǒng)信息表中記錄加載成功的目錄,用戶可以根據(jù)這個信息,結(jié)合“文件選擇目錄”信息,判斷出所選擇文件是否運行成功。

      2.2 運行軟件的選擇

      啟動程序?qū)⑴渲梦募虞d到NPU、DSP、FPGA等器件之后,最后的使命是根據(jù)文件系統(tǒng)信息表中“操作系統(tǒng)文件”選項加載軟件,該軟件可以是故障診斷程序、Linux或VxWorks等操作系統(tǒng)。這個特征允許同一硬件平臺支持安裝和運行不同的操作系統(tǒng)。

      2.3 相關(guān)的用戶命令

      與文件系統(tǒng)密切配合的是簡潔實用的用戶命令,詳見表3,它們方便了用戶查看、增減目錄和文件,選擇啟動軟件等。

      表3 文件系統(tǒng)命令列表

      命令主要分為三類:一是與目錄操作相關(guān)的,包括查看目錄屬性、創(chuàng)建目錄、刪除目錄、升級目錄和目錄碎片整理;二是與文件操作相關(guān)的,包括查看文件屬性、新增文件、刪除文件、升級文件;三是其他操作命令,包括設(shè)置系統(tǒng)運行的軟件、指定文件首選的目錄、建立邏輯目錄和物理目錄之間的關(guān)系,例如選擇哪個目錄為當(dāng)前目錄,哪個目錄為先前目錄。

      其中新增文件命令較為復(fù)雜。如果有壓縮要求,它首先對文件進行壓縮,然后根據(jù)壓縮后的文件大小在目錄中搜尋空余空間,如果沒有找到,則調(diào)用目錄碎片整理程序整理碎片,將分散的不連續(xù)小尺寸的碎片組合成連續(xù)的大尺寸空間,整理完成后再次搜尋。找到空間后調(diào)用閃存驅(qū)動將文件寫入,接著計算校驗和,更新目錄信息表中的文件數(shù)目,同時寫入文件偏移地址、長度和其他文件屬性。值得注意的是,在多內(nèi)核或多任務(wù)操作系統(tǒng)中,目錄空余空間的搜尋代碼需要用互斥鎖保護起來,否則當(dāng)一個任務(wù)正在搜尋空余空間時,被中斷或被另一個優(yōu)先級更高的任務(wù)所搶占,后者恰巧也調(diào)用了搜尋空余空間的函數(shù),則可能導(dǎo)致兩個任務(wù)都得到了相同地址的空余空間,導(dǎo)致操作失敗或者目錄損壞。其他需要互斥鎖保護的還有目錄中文件數(shù)目選項的更新等。

      當(dāng)多次在同一目錄中執(zhí)行增加和刪除文件操作后,目錄中可能出現(xiàn)不連續(xù)的空余空間,即碎片,系統(tǒng)將碎片整理程序作為一個低優(yōu)先級的任務(wù)或線程在后臺運行,一旦處理器有空閑,則對目錄碎片進行整理,有效提高了下一次寫入文件操作的速度。

      3 與其他文件系統(tǒng)的比較

      JFFS/JFFS2和YAFFS/YAFFS2是業(yè)界應(yīng)用較廣的閃存文件系統(tǒng),針對系統(tǒng)啟動,加載智能芯片的配置文件方面的應(yīng)用,與EFFS相比稍遜一籌。表4列舉了3種閃存文件系統(tǒng)在幾個關(guān)鍵指標(biāo)上的對比。

      表4 文件系統(tǒng)性能比較

      由表可見,在閃存類型方面,JFFS2[2]和YAFFS2[3]各有偏愛,而EFFS都能適用。在文件系統(tǒng)的加載速度上,EFFS處于微秒級水平,且于閃存容量無關(guān),遠快于其他2種文件系統(tǒng),后者比較慢且與閃存容量成正比。在可靠性方面,EFFS能夠在加載一個文件失敗后,自動尋找并加載同類型的文件,JFFS2和YAFFS2卻無能為力。

      結(jié) 語

      本文提出了一種適合系統(tǒng)啟動閃存使用的文件系統(tǒng)。這種文件系統(tǒng)不僅加載速度快,而且可靠性高,易于移植和擴展。經(jīng)過測試,其性能并且占用內(nèi)存少,完全能夠幫助用戶實現(xiàn)對智能芯片文件的高效管理并滿足系統(tǒng)的啟動要求。

      [1] Numonyx Inc.閃存文件系統(tǒng)概況,2008.

      [2] IBM Inc.JFFS2文件系統(tǒng)及新特性介紹,2005.

      [3] How Yaffs works[OL] .(2012-06)[2013-06] .http://www.yaffs.net/documents/how-yaffs-works.

      猜你喜歡
      空余扇區(qū)啟動
      漫畫2則
      分階段調(diào)整增加扇區(qū)通行能力策略
      南北橋(2022年2期)2022-05-31 04:28:07
      初夏山茶
      U盤故障排除經(jīng)驗談
      霧霾來襲 限產(chǎn)再次啟動
      安發(fā)生物啟動2017
      基于貝葉斯估計的短時空域扇區(qū)交通流量預(yù)測
      相思曲
      參花(下)(2016年6期)2016-06-12 22:21:35
      重建分區(qū)表與FAT32_DBR研究與實現(xiàn)
      西部最大規(guī)模云計算中心啟動
      盖州市| 乌恰县| 阜平县| 仙桃市| 清丰县| 丹东市| 遂宁市| 东平县| 文山县| 韶山市| 冕宁县| 时尚| 中江县| 和林格尔县| 威宁| 二连浩特市| 门头沟区| 光山县| 永嘉县| 松阳县| 陆川县| 黔东| 赤城县| 徐水县| 涡阳县| 南皮县| 镇宁| 伊宁市| 秦皇岛市| 汝州市| 丰原市| 简阳市| 肥西县| 佳木斯市| 泰和县| 会宁县| 平昌县| 芦溪县| 扎鲁特旗| 新巴尔虎右旗| 寻乌县|