一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)Windows CE5.0文件系統(tǒng)分析

英創(chuàng)信息技術(shù) ? 來(lái)源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-16 09:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

由于工控設(shè)備漸進(jìn)變化的基本特征,Windows CE5.0仍然被大量的應(yīng)用在當(dāng)前的嵌入式主板中。英創(chuàng)公司的EM9160、EM9360等型號(hào)的工控主板也都繼續(xù)預(yù)裝CE5.0操作系統(tǒng)。由于CE5.0文件系統(tǒng)是基于微軟的Windows95/98內(nèi)核的FAT文件系統(tǒng),當(dāng)基于FAT的CE5.0文件系統(tǒng)應(yīng)用到NAND Flash器件上時(shí),NandFlash的以扇區(qū)為單元的讀寫(xiě)方式、以及塊為單元的擦除方式,有可能讓CE5.0文件系統(tǒng)產(chǎn)生很大的NandFlash存儲(chǔ)單元整理工作量。大規(guī)模的NandFlash整理將消耗很大一部分CPU時(shí)間,如果此時(shí)應(yīng)用程序又有很重的數(shù)據(jù)存儲(chǔ)的任務(wù),在非常極端情況下,有可能導(dǎo)致CE5.0文件系統(tǒng)的FAT表?yè)p壞。本文則是針對(duì)這種情況,提出兩種解決方法。

目前我們通常使用的NandFlash的邏輯結(jié)構(gòu)有兩種,一種是扇區(qū)(Sector)大小為512字節(jié),一個(gè)塊(Block)包括32個(gè)扇區(qū),被稱為小扇區(qū)結(jié)構(gòu);另一種是扇區(qū)大小為2048字節(jié)(即2KB),一個(gè)塊包括64個(gè)扇區(qū),這種結(jié)構(gòu)的NandFlash通常稱為大扇區(qū)??梢匀菀姿愠觯募到y(tǒng)對(duì)NandFlash的整理,大扇區(qū)的工作量是小扇區(qū)的8倍。因此在同樣的運(yùn)行條件下,大扇區(qū)結(jié)構(gòu)的NandFlash對(duì)文件系統(tǒng)的負(fù)載就高得多。為了確定CE5.0文件系統(tǒng)的這個(gè)潛在問(wèn)題,我們選用了EM9160的精簡(jiǎn)版,其基本配置為16-bit數(shù)據(jù)寬度 32MB內(nèi)存+128MB大扇區(qū)NandFlash作為實(shí)驗(yàn)平臺(tái)。采用16-bit數(shù)據(jù)寬度是讓CPU的處理能力至少降低一倍,而128MB大扇區(qū)NandFlash為文件系統(tǒng)只提供了768個(gè)Block,從而更容易觸發(fā)文件系統(tǒng)的后臺(tái)整理進(jìn)程。

我們的基本測(cè)試程序(即應(yīng)用程序)是以低效率的小文件(一個(gè)文件大小不超過(guò)512字節(jié),試驗(yàn)文件大小為180字節(jié))為單位,256個(gè)小文件存放在一個(gè)目錄中,總共256個(gè)目錄循環(huán)寫(xiě)。同時(shí)在測(cè)試程序中啟動(dòng)一個(gè)定時(shí)線程,定時(shí)時(shí)間為5s – 100s之間的隨機(jī)數(shù),定時(shí)到時(shí)該線程強(qiáng)制重啟系統(tǒng),這樣對(duì)文件系統(tǒng)施加一個(gè)隨機(jī)重啟的沖擊。為了觀察CPU的基本工作情況,測(cè)試程序主線程每2s從調(diào)試串口輸出CPU負(fù)載率等系統(tǒng)信息?;镜脑囼?yàn)情況如下:

1、CPU常規(guī)負(fù)載率在65%水平,當(dāng)系統(tǒng)進(jìn)行NandFlash整理時(shí),負(fù)載率會(huì)上升至95%的水平,且最長(zhǎng)時(shí)間會(huì)持續(xù)近10s。

2、經(jīng)過(guò)連續(xù)24小時(shí)試驗(yàn),大約有3%的主板的FAT表會(huì)損壞,導(dǎo)致系統(tǒng)啟動(dòng)失敗。

在測(cè)試程序中采用的文件寫(xiě)方式是最直接的流程:

// CreateFile -> WriteFile -> CloseHandle

當(dāng)所寫(xiě)的文件已經(jīng)存在于NandFlash時(shí),CE5.0的TFAT文件系統(tǒng)會(huì)以某種方式保留原文件,這樣若在寫(xiě)文件過(guò)程中遇到系統(tǒng)重啟,重啟后系統(tǒng)還能恢復(fù)原來(lái)的文件。但這樣做的代價(jià)是CE5.0文件系統(tǒng)會(huì)啟動(dòng)后臺(tái)線程并行來(lái)處理這些老文件。經(jīng)過(guò)大量的試驗(yàn)分析,我們相信正是這種類似的并行操作NandFlash的機(jī)制,可能存在某種缺陷,導(dǎo)致在極端情況下FAT的損壞。

根據(jù)上面的分析,我們的第一種處理方法,就是在應(yīng)用程序中增加刪除同名文件,再進(jìn)行常規(guī)文件寫(xiě)流程,即:

// 第一種方法:

// DeleteFile -> CreateFile -> WriteFile -> CloseHandle

就可把原來(lái)需要后臺(tái)并行處理的任務(wù)變成了應(yīng)用程序線程順序執(zhí)行,從而大幅度減少多個(gè)線程并行操作NandFlash的情況。修改后的試驗(yàn)表明,F(xiàn)AT損壞率至少降低一個(gè)數(shù)量級(jí)以上,在目前的試驗(yàn)規(guī)模上已完全不能檢測(cè)到FAT損壞的情況。

第一種方法是通過(guò)應(yīng)用程序調(diào)整,來(lái)降低NandFlash操作的并行度,從而避免觸發(fā)CE5.0文件的缺陷顯現(xiàn)。但第一種方法還不能完全消除對(duì)NandFlash的并行操作,因?yàn)楹笈_(tái)的整理總是存在的。由此產(chǎn)生第二種方法,就是通過(guò)監(jiān)視CPU負(fù)載率,一旦CPU負(fù)載超過(guò)某個(gè)閾值,應(yīng)用線程就暫停文件寫(xiě)操作,這樣就能主動(dòng)避免應(yīng)用程序與后臺(tái)并行操作NandFlash。其基本流程變成:

// 第二種方法:
bRet = g_pNandMonitor->EnterNandAccess(dwTimeout); // 獲取NAND訪問(wèn)權(quán)
// 若bRet = TRUE,進(jìn)入正常NAND操作:
// DeleteFile -> CreateFile -> WriteFile -> CloseHandle
g_pNandMonitor->LeaveNandAccess(); // 歸還NAND訪問(wèn)權(quán)

在上述流程中,使用了我們構(gòu)造的一個(gè)CPU負(fù)載率監(jiān)控類NandFlashMonitor,當(dāng)CPU負(fù)載率超過(guò)指定閾值時(shí),應(yīng)用線程調(diào)用EnterNandAccess函數(shù),將導(dǎo)致應(yīng)用線程阻塞(掛起)直至超時(shí)或CPU負(fù)載率低于指定閾值。采用CPU負(fù)載率監(jiān)測(cè)手段后,可以看到在后臺(tái)整理時(shí)段,CPU負(fù)載率從原來(lái)的95%的水平下降到85%的水平,說(shuō)明在這個(gè)時(shí)段的應(yīng)用程序的NandFlash確實(shí)是停掉了,同時(shí)也說(shuō)明在這個(gè)時(shí)段分配給應(yīng)用程序的資源實(shí)際是很少的,所以寫(xiě)文件的效率是很低的。采用延時(shí)寫(xiě)的方法,是不會(huì)對(duì)總體性能影響的。需要檢測(cè)類NandFlashMonitor代碼的客戶,可郵件向英創(chuàng)技術(shù)支持索取。

總之,通過(guò)試驗(yàn)表明,CE5.0的TFAT文件系統(tǒng)對(duì)NandFlash管理策略上確實(shí)存在某種缺陷,在大扇區(qū)NandFlash及頻繁文件操作的應(yīng)用中,這種缺陷就可能對(duì)設(shè)備產(chǎn)生威脅。但我們也可以有充分的手段徹底規(guī)避這樣的風(fēng)險(xiǎn),同時(shí)又不降低系統(tǒng)的整體性能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3614

    瀏覽量

    91415
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6102

    瀏覽量

    36307
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    科普|信創(chuàng)是什么?一讀懂“信息技術(shù)應(yīng)用創(chuàng)新”戰(zhàn)略

    什么是信創(chuàng)?信創(chuàng),即“信息技術(shù)應(yīng)用創(chuàng)新”,是國(guó)家推動(dòng)IT系統(tǒng)自主可控、安全可控的重要戰(zhàn)略工程。它不僅是技術(shù)層面的創(chuàng)新,更承載著保障國(guó)家網(wǎng)絡(luò)安
    的頭像 發(fā)表于 06-13 10:06 ?2012次閱讀
    科普|信<b class='flag-5'>創(chuàng)</b>是什么?一<b class='flag-5'>文</b>讀懂“<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新”戰(zhàn)略

    服務(wù)器數(shù)據(jù)恢復(fù)—ocfs2文件系統(tǒng)被格式化為Ext4文件系統(tǒng)的數(shù)據(jù)恢復(fù)案例

    服務(wù)器存儲(chǔ)數(shù)據(jù)恢復(fù)環(huán)境&故障: 人為誤操作將Ext4文件系統(tǒng)誤裝入一臺(tái)服務(wù)器存儲(chǔ)上的Ocfs2文件系統(tǒng)數(shù)據(jù)卷上,導(dǎo)致原Ocfs2文件系統(tǒng)被格式化為Ext4文件系統(tǒng)。
    的頭像 發(fā)表于 06-10 12:03 ?216次閱讀
    服務(wù)器數(shù)據(jù)恢復(fù)—ocfs2<b class='flag-5'>文件系統(tǒng)</b>被格式化為Ext4<b class='flag-5'>文件系統(tǒng)</b>的數(shù)據(jù)恢復(fù)案例

    NFS網(wǎng)絡(luò)文件系統(tǒng)深度解析

    NFS:Network File System 網(wǎng)絡(luò)文件系統(tǒng),基于內(nèi)核的文件系統(tǒng)。Sun 公司開(kāi)發(fā),通過(guò)使用 NFS,用戶和程序可以像訪問(wèn)本地文件一樣訪問(wèn)遠(yuǎn)端系統(tǒng)上的
    的頭像 發(fā)表于 03-01 14:15 ?707次閱讀

    EE-329:在SHARC處理器上運(yùn)行FAT16文件系統(tǒng)和DOS命令

    電子發(fā)燒友網(wǎng)站提供《EE-329:在SHARC處理器上運(yùn)行FAT16文件系統(tǒng)和DOS命令.pdf》資料免費(fèi)下載
    發(fā)表于 01-06 14:22 ?0次下載
    EE-329:在SHARC處理器上運(yùn)行FAT16<b class='flag-5'>文件系統(tǒng)</b>和DOS命令

    EE-289:在ADSP-BF533 Blackfin處理器上實(shí)現(xiàn)FAT32文件系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《EE-289:在ADSP-BF533 Blackfin處理器上實(shí)現(xiàn)FAT32文件系統(tǒng).pdf》資料免費(fèi)下載
    發(fā)表于 01-05 09:13 ?0次下載
    EE-289:在ADSP-BF533 Blackfin處理器上實(shí)現(xiàn)FAT32<b class='flag-5'>文件系統(tǒng)</b>

    服務(wù)器數(shù)據(jù)恢復(fù)——Ext4文件系統(tǒng)umount失敗的數(shù)據(jù)恢復(fù)案例

    為32字節(jié),主要描述塊位圖、i-節(jié)點(diǎn)位圖及i-節(jié)點(diǎn)表的地址等信息。 超級(jí)塊(Superblock):用于存儲(chǔ)文件系統(tǒng)的配置參數(shù)(塊大小、總塊數(shù)、i-節(jié)點(diǎn)數(shù)等)和動(dòng)態(tài)信息(當(dāng)前空閑塊數(shù)和i-節(jié)點(diǎn)數(shù))。Ext4
    的頭像 發(fā)表于 11-13 13:25 ?879次閱讀
    服務(wù)器數(shù)據(jù)恢復(fù)——Ext4<b class='flag-5'>文件系統(tǒng)</b>umount失敗的數(shù)據(jù)恢復(fù)案例

    虛擬化數(shù)據(jù)恢復(fù)—UFS2文件系統(tǒng)數(shù)據(jù)恢復(fù)案例

    虛擬化數(shù)據(jù)恢復(fù)環(huán)境: SAN環(huán)境下通過(guò)iSCSI實(shí)現(xiàn)FreeNAS,F(xiàn)reeNAS采用的UFS2文件系統(tǒng)。物理存儲(chǔ)架構(gòu)在一臺(tái)服務(wù)器上,另外兩臺(tái)服務(wù)器上安裝ESXi虛擬化系統(tǒng)。整個(gè)存儲(chǔ)建立一個(gè)稀疏
    的頭像 發(fā)表于 11-11 11:02 ?621次閱讀

    讀懂MSA(測(cè)量系統(tǒng)分析)

    讀懂MSA(測(cè)量系統(tǒng)分析)
    的頭像 發(fā)表于 11-01 11:08 ?1583次閱讀
    一<b class='flag-5'>文</b>讀懂MSA(測(cè)量<b class='flag-5'>系統(tǒng)分析</b>)

    服務(wù)器數(shù)據(jù)恢復(fù)—EXT3文件系統(tǒng)下誤刪除數(shù)據(jù)的恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境: 郵件服務(wù)器中有一組由8塊盤(pán)組成的RAID5陣列, 上層是Linux操作系統(tǒng)+EXT3文件系統(tǒng)。 服務(wù)器故障: 由于誤刪除導(dǎo)致文件系統(tǒng)中的郵件數(shù)據(jù)丟失。
    的頭像 發(fā)表于 10-23 15:11 ?470次閱讀
    服務(wù)器數(shù)據(jù)恢復(fù)—EXT3<b class='flag-5'>文件系統(tǒng)</b>下誤刪除數(shù)據(jù)的恢復(fù)案例

    測(cè)量系統(tǒng)分析

    電子發(fā)燒友網(wǎng)站提供《測(cè)量系統(tǒng)分析.doc》資料免費(fèi)下載
    發(fā)表于 10-10 11:46 ?0次下載

    電路原理 電力系統(tǒng)分析電力電子電磁學(xué)

    電路原理 模電數(shù)電電力電子電磁學(xué) PLC電力系統(tǒng) 電力系統(tǒng)分析
    發(fā)表于 10-07 16:21

    Linux根文件系統(tǒng)的掛載過(guò)程

    Linux根文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點(diǎn),它是內(nèi)核啟動(dòng)時(shí)掛載的第一個(gè)文件系統(tǒng)。
    的頭像 發(fā)表于 10-05 16:50 ?969次閱讀

    時(shí)鐘噪聲對(duì)DAC性能影響系統(tǒng)分析

    電子發(fā)燒友網(wǎng)站提供《時(shí)鐘噪聲對(duì)DAC性能影響系統(tǒng)分析.pdf》資料免費(fèi)下載
    發(fā)表于 09-26 09:14 ?0次下載
    時(shí)鐘噪聲對(duì)DAC性能影響<b class='flag-5'>系統(tǒng)分析</b>

    ubuntu刪除的文件怎么恢復(fù)

    : Ubuntu文件系統(tǒng)概述 Ubuntu是一個(gè)基于Linux的操作系統(tǒng),其文件系統(tǒng)Windows系統(tǒng)有所不同。在Ubuntu中,
    的頭像 發(fā)表于 08-30 15:10 ?3210次閱讀

    如何修改buildroot和debian文件系統(tǒng)

    本文檔主要介紹在沒(méi)有編譯環(huán)境的情況下,如何修改buildroot和debian文件系統(tǒng)方法,如在buildroot文件系統(tǒng)中添加文件、修改目錄等文件操作,在debian
    的頭像 發(fā)表于 07-22 17:46 ?891次閱讀
    如何修改buildroot和debian<b class='flag-5'>文件系統(tǒng)</b>