• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Linux C應(yīng)用程序的文件操作優(yōu)化

    2011-06-09 10:14:28翟劍錕
    電子設(shè)計工程 2011年22期
    關(guān)鍵詞:進(jìn)程通訊監(jiān)控

    趙 宇, 翟劍錕, 劉 偉

    (1.北京信息科技大學(xué) 北京 100085;2.中科院計算與通信學(xué)院 北京 100049;3.北京德潤興業(yè)科技開發(fā)公司 北京100195)

    在主流技術(shù)應(yīng)用開發(fā)過程中,對于那些已經(jīng)存在的很多理論和技術(shù),在實現(xiàn)的過程中需要有針對性性地刪減和優(yōu)化,以此達(dá)到應(yīng)用級別開發(fā)的目的。在集成測試過程中無法發(fā)現(xiàn)的很多問題,在系統(tǒng)測試中,要采用更加極端的手段來甄別系統(tǒng)的穩(wěn)定性和高性能。

    1 應(yīng)用處理進(jìn)程描述

    應(yīng)用處理部分包括小鍵盤的處理響應(yīng)、液晶顯示、監(jiān)控模塊的數(shù)據(jù)內(nèi)容和執(zhí)行機(jī)構(gòu)等。

    應(yīng)用進(jìn)程中的微型數(shù)據(jù)庫操作分布在設(shè)備參數(shù)記錄的讀取中,按照用戶信息查詢當(dāng)前用戶信息的存款記錄,完成操作后的應(yīng)用通訊記錄的插入和應(yīng)用記錄的插入等。

    人機(jī)界面的處理包括用戶鍵盤信息的響應(yīng)、液晶顯示界面和蜂鳴器提示等。

    監(jiān)控模塊的數(shù)據(jù)校驗是必須的在運(yùn)行過程中,會出現(xiàn)很多意想不到的情況,只有在數(shù)據(jù)校驗通過的前提下才能保證執(zhí)行機(jī)構(gòu)工作的正確性。

    圖1 應(yīng)用處理流程圖Fig.1 Flow chart of application process

    2 監(jiān)控通訊進(jìn)程描述

    后臺監(jiān)控軟件負(fù)責(zé)設(shè)備的平臺監(jiān)視和控制命令。

    設(shè)備通訊模式分為在線控制模式、在線監(jiān)視模式、離線工作模式3種。

    1)在線控制模式 監(jiān)控人員有設(shè)備啟動、停止、停止用戶消費的控制權(quán)限。在發(fā)現(xiàn)用戶消費過程中信息以及操作有問題的情況下可以立即停止消費行為,并暫時取消用戶的消費權(quán)限,用來控制用戶消費的合法性和合理性。

    2)在線監(jiān)視模式 監(jiān)控人員可以看到設(shè)備狀態(tài),用戶消費的全部信息無任何控制權(quán)限。

    3)離線工作模式 設(shè)備網(wǎng)絡(luò)通訊故障時,離線工作。消費記錄存儲在設(shè)備內(nèi),在線后可以上傳至監(jiān)控軟件。

    通訊進(jìn)程使用設(shè)備的配置參數(shù)和后臺軟件通訊,傳輸用戶信息,消費狀態(tài),消費記錄、信息。以此達(dá)到監(jiān)控用戶消費全過程過程,收集用戶消費信息的目的。

    圖2 通訊監(jiān)控處理流程圖Fig.2 Flow chort of communication process

    3 集成測試未發(fā)現(xiàn)問題

    應(yīng)用處理進(jìn)程響應(yīng)用戶操作并生成消費數(shù)據(jù)記錄,監(jiān)控通訊進(jìn)程負(fù)責(zé)傳送消費數(shù)據(jù)記錄給監(jiān)控軟件,進(jìn)程間使用消息通訊。

    當(dāng)設(shè)備工作在線模式時,監(jiān)控軟件垂詢設(shè)備當(dāng)前的工作狀態(tài)。其中一項是消費數(shù)據(jù)記錄的狀態(tài),有兩種狀態(tài)當(dāng)前沒有新的數(shù)據(jù)記錄和有新的數(shù)據(jù)記錄。應(yīng)用處理進(jìn)程在查詢當(dāng)前所有消費數(shù)據(jù)之后得到了一個新的數(shù)據(jù)記錄的數(shù)目,并發(fā)消息給監(jiān)控通訊進(jìn)程。或者監(jiān)控通訊進(jìn)程自己去查詢當(dāng)前數(shù)據(jù)記錄的狀態(tài)。

    在微型數(shù)據(jù)庫的建立過程中使用的是最簡單的順序存儲,并且未對任何屬性建立有效的索引。在消費記錄中有一個字段是是否上傳標(biāo)志。在監(jiān)控通訊進(jìn)程中,需要查詢是否有未上傳的數(shù)據(jù)并設(shè)置當(dāng)前的通訊狀態(tài)。監(jiān)控程序?qū)崟r查詢設(shè)備的狀態(tài),包括是否有問上傳的數(shù)據(jù)。

    4 試點過程中的故障

    開發(fā)完成并功能測試后,順利的進(jìn)入了試點測試階段。

    試點現(xiàn)場安裝了4臺設(shè)備,開始的兩個星期內(nèi)沒有任何問題,設(shè)備運(yùn)行良好、通訊正常、消費數(shù)據(jù)記錄完整。

    到了第3個星期,突然一臺設(shè)備無法正常通訊。拆機(jī)檢查后沒有發(fā)現(xiàn)任何硬件故障和軟件問題,無奈之下更換新的設(shè)備。過了一個星期,一臺設(shè)備又出現(xiàn)了通訊故障。嚴(yán)重時4臺設(shè)備完全通訊不上,無法監(jiān)控設(shè)備狀態(tài)。只能離線運(yùn)行模式,使用U盤采集離線數(shù)據(jù)后上傳到監(jiān)控軟件。

    圖3 現(xiàn)場設(shè)備布局示意圖Fig.3 Field device location

    現(xiàn)場發(fā)現(xiàn)了一個問題,在通訊過程中,如果數(shù)據(jù)記錄的條數(shù)超過了1 000條,通訊就會出現(xiàn)時斷時續(xù)的情況。如果超過了5 000條,通訊基本上就斷開了。在清除了數(shù)據(jù)記錄后銅尊正常。也就是在數(shù)據(jù)記錄條數(shù),小于1 000條時通訊正常,大于1 000條通訊時,通訊異常。

    5 針對性測試和文件系統(tǒng)操作優(yōu)化

    現(xiàn)場反饋的問題總結(jié)非常清晰明了。在測試了文件操作的過程中發(fā)現(xiàn),文件操作嚴(yán)重制約了實時響應(yīng)速度。

    下面這個函數(shù)是在消費記錄中讀取是否有未上傳數(shù)據(jù),在記錄操作1 000條后,執(zhí)行時間大于100 ms,這個時間在通訊監(jiān)控程序的響應(yīng)范圍之外。這時就會出現(xiàn)通訊中斷的情況。

    優(yōu)化策略一:添加文件上傳標(biāo)志索引文件。

    建立一個索引文件,在生成數(shù)據(jù)記錄的同時記錄當(dāng)前數(shù)據(jù)記錄的指針和數(shù)據(jù)記錄的匯總信息包括未上傳數(shù)據(jù)記錄的個數(shù)。結(jié)構(gòu)和操作如圖4所示。

    圖4 索引文件、記錄文件物理關(guān)系示意圖Fig.4 Relationship of index file and record file

    對應(yīng)的操作有生成記錄時的是否上傳判斷,添加至交易記錄中。如果未上傳修改索引文件的記錄數(shù)量,并添加未上傳指針。在通訊正常情況下,上傳未上傳交易記錄數(shù)量,按照指針提取交易記錄。上傳記錄成功后,修改交易記錄標(biāo)志,修改未上傳記錄數(shù)目,刪除未上傳指針。

    圖5 記錄操作流程圖Fig.5 Flow chart of record operation

    在經(jīng)過一段時間的程序調(diào)整和測試發(fā)現(xiàn),當(dāng)前應(yīng)用程序完全符合實時要求。但是程序的修改和實時響應(yīng)的優(yōu)化代價實在是太大了。在應(yīng)用處理和通訊的流程中,添加了太多的操作。使得程序的可讀性和可維護(hù)性變得越來越差。

    優(yōu)化策略二:添加通訊文件

    經(jīng)過一段時間的調(diào)整和測試,最終采用了添加一個通訊文件的模式。在記錄生成的同時在通訊文件和記錄文件添加,記錄文件中的上傳屬性作廢。

    圖6 記錄存儲示意圖Fig.6 Schematic diagram of record storage

    圖7 記錄操作示意圖Fig.7 Schematic diagram of record operation

    不需要生成未上傳記錄數(shù)目。在通訊文件內(nèi)都是未上傳的記錄。查詢未上傳記錄數(shù)目,只要獲取通訊文件的尺寸除以一個元組的尺寸就是當(dāng)前未上傳記錄的數(shù)目。

    不需要生成未上傳記錄指針。通訊文件內(nèi)都是未上傳記錄,順次上傳即可。同時不需要操作記錄文件內(nèi)的記錄。

    按照這個模式優(yōu)化的結(jié)果。操作簡單、實時響應(yīng)比第一種的還要快,完全滿足通訊要求。通過現(xiàn)場測試,經(jīng)過策略二的優(yōu)化的應(yīng)用程序 完全滿足應(yīng)用需要。結(jié)構(gòu)簡單、實時性強(qiáng)。

    6 結(jié) 論

    在了解標(biāo)準(zhǔn)文件操作的時效性后,按照數(shù)據(jù)庫技術(shù)哈希索引的技術(shù)指導(dǎo),建立了一個高效率的索引文件,提高了數(shù)據(jù)搜索的效率。然而卻帶來了文件操操作的延時。對于嵌入式開發(fā)來講,應(yīng)用程序結(jié)構(gòu)簡單、操作方便和高效率、實時性才是更加重要的。對于大型的數(shù)據(jù)庫系統(tǒng)技術(shù)指導(dǎo)下的實現(xiàn)方法一般結(jié)構(gòu)都相對復(fù)雜,處理流程過長。需要在各種技術(shù)指導(dǎo)下,改進(jìn)和選擇最簡單、有效的方法來實現(xiàn)嵌入式應(yīng)用。通過本文的應(yīng)用程序的文件操作優(yōu)化過程,希望能讓更多的人了解到結(jié)構(gòu)簡單的應(yīng)用程序、效率高的文件操作才是嵌入式應(yīng)用追求的目標(biāo)之一。

    參考資料:

    [1]孫瓊.嵌入式Linux應(yīng)用程序開發(fā)詳解[M].北京:人民郵電出版社,2006.

    [2]Molay B.Understanding unix/Linux programming[M].北京:清華大學(xué)出版,2004.

    [3]朱義君,楊育紅,趙凱,等.AT91系列ARM微控制器體系結(jié)構(gòu)與開發(fā)實例[M].北京:北京航空航天大學(xué)出版社,2005.

    [4]Silberschatz A.數(shù)據(jù)庫系統(tǒng)概念[M].5版.唐世渭,馬秀莉,楊冬青,譯.北京:機(jī)械工業(yè)出版社,2008.

    [5]孫瓊.嵌入式Linux應(yīng)用程序開發(fā)詳解[M].北京:人民郵電出版社,2006.

    [6]Owens M.The definitive guide to SQLite[M].Apress,2006.

    猜你喜歡
    進(jìn)程通訊監(jiān)控
    《茶葉通訊》簡介
    茶葉通訊(2022年2期)2022-11-15 08:53:56
    《茶葉通訊》簡介
    茶葉通訊(2022年3期)2022-11-11 08:43:50
    通訊報道
    The Great Barrier Reef shows coral comeback
    債券市場對外開放的進(jìn)程與展望
    中國外匯(2019年20期)2019-11-25 09:54:58
    你被監(jiān)控了嗎?
    Zabbix在ATS系統(tǒng)集中監(jiān)控中的應(yīng)用
    看監(jiān)控攝像機(jī)的4K之道
    通訊簡史
    社會進(jìn)程中的新聞學(xué)探尋
    丹东市| 公主岭市| 龙南县| 柯坪县| 滁州市| 宁夏| 藁城市| 白河县| 洛阳市| 罗江县| 靖西县| 抚松县| 丁青县| 龙胜| 安义县| 晋州市| 建德市| 神农架林区| 彭山县| 格尔木市| 乐至县| 新津县| 明水县| 丘北县| 静海县| 宜州市| 鹤峰县| 长海县| 长寿区| 奈曼旗| 潞城市| 澳门| 景东| 新巴尔虎左旗| 徐州市| 三明市| 平乡县| 洛浦县| 桂平市| 铁力市| 清流县|