• 
    

    
    

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

      ?

      ExtremeDB在實(shí)時(shí)多傳感器數(shù)據(jù)采集系統(tǒng)中的應(yīng)用

      2010-09-08 02:13:14松,王
      關(guān)鍵詞:線程內(nèi)存調(diào)度

      韓 松,王 威

      (海軍工程大學(xué)管理工程系,湖北武漢 430033)

      實(shí)時(shí)多傳感器數(shù)據(jù)采集系統(tǒng)對(duì)數(shù)據(jù)有著實(shí)時(shí)性強(qiáng)、準(zhǔn)確性高的要求。如何在大量采樣數(shù)據(jù)接收的情況下,解決系統(tǒng)處理數(shù)據(jù)的有效性和快速性是該研究的熱點(diǎn)也是難點(diǎn)問題。

      我國目前對(duì)該問題正處在研究階段,主要的研究文獻(xiàn)見參考文獻(xiàn)[1-2]。在該文獻(xiàn)中,作者主要將ExtremeDB數(shù)據(jù)庫分別應(yīng)用在故障子系統(tǒng)和現(xiàn)場控制站中,有效提高了系統(tǒng)的使用效率。筆者借鑒其中的一些數(shù)據(jù)庫設(shè)計(jì)的思想,并結(jié)合實(shí)際情況,將ExtremeDB應(yīng)用在實(shí)時(shí)多傳感器數(shù)據(jù)采集系統(tǒng)中,提高了數(shù)據(jù)實(shí)時(shí)處理的速度,增強(qiáng)了系統(tǒng)的快速反應(yīng)能力。通過與傳統(tǒng)數(shù)據(jù)庫接口測(cè)試對(duì)比,證明ExtremeDB數(shù)據(jù)庫在數(shù)據(jù)的處理方面具有較大的優(yōu)勢(shì)??s短了系統(tǒng)的開發(fā)周期,增強(qiáng)了系統(tǒng)的穩(wěn)定性。

      1 ExtremeDB實(shí)時(shí)內(nèi)存數(shù)據(jù)庫

      實(shí)時(shí)數(shù)據(jù)庫系統(tǒng)的主要目標(biāo)是使盡量多的事務(wù)在規(guī)定的時(shí)間要求內(nèi)完成,而不是公平地分配系統(tǒng)以使所有的事項(xiàng)都得到執(zhí)行。由于主要目標(biāo)的不同,一方面是所有的商用數(shù)據(jù)庫管理系統(tǒng)不能滿足實(shí)時(shí)領(lǐng)域的要求,另一方面又要求人們重新研究數(shù)據(jù)庫的實(shí)時(shí)實(shí)現(xiàn)策略,以保證其主要目標(biāo)的實(shí)現(xiàn)。為了滿足上述要求,McObject公司開發(fā)了內(nèi)存嵌入式數(shù)據(jù)庫系統(tǒng)ExtremeDB,該系統(tǒng)適用于各種嵌入式系統(tǒng)和其他需要高性能、小尺寸、緊密存儲(chǔ)、零內(nèi)存分配的應(yīng)用領(lǐng)域[3-4]。

      2 實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)構(gòu)建

      在實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)的構(gòu)建中,采用面向?qū)ο蠓治?OOA)的方法進(jìn)行構(gòu)建[5-7]。在整個(gè)大的系統(tǒng)中按功能劃分為3個(gè)子系統(tǒng),即主控系統(tǒng)、數(shù)據(jù)調(diào)度系統(tǒng)和顯控系統(tǒng)。由于網(wǎng)絡(luò)架構(gòu)的需求,3個(gè)子系統(tǒng)分別運(yùn)行在不同的計(jì)算機(jī)主機(jī)中。主控系統(tǒng)主要負(fù)責(zé)系統(tǒng)的整體運(yùn)行情況,如設(shè)備參數(shù)的調(diào)整、系統(tǒng)運(yùn)行狀態(tài)檢測(cè)、數(shù)據(jù)格式轉(zhuǎn)換、設(shè)備狀態(tài)檢測(cè)、整體運(yùn)行方案的選擇和根據(jù)請(qǐng)求啟動(dòng)其他需要的程序等。顯控程序?yàn)橄到y(tǒng)的前臺(tái),主要將傳輸來的數(shù)據(jù)進(jìn)行顯示。數(shù)據(jù)調(diào)度系統(tǒng)主要負(fù)責(zé)采集數(shù)據(jù)的緩存和處理。系統(tǒng)的模塊及模塊之間的通信如圖1所示。

      圖1 系統(tǒng)的模塊及模塊之間的通信

      由圖1可以看出顯控模塊發(fā)出數(shù)據(jù)操作請(qǐng)求,主控模塊收到請(qǐng)求后啟動(dòng)數(shù)據(jù)調(diào)度模塊,數(shù)據(jù)調(diào)度模塊通過內(nèi)部各線程功能模塊完成數(shù)據(jù)的計(jì)算和處理,并通過組播將處理后的數(shù)據(jù)傳輸?shù)斤@示控制端。

      3 需求分析

      從實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)的總體結(jié)構(gòu)的3個(gè)子系統(tǒng)的分析中可知,數(shù)據(jù)調(diào)度模塊是主控程序的執(zhí)行者和顯示控制程序的輸送者,直接面向數(shù)據(jù)。

      數(shù)據(jù)調(diào)度系統(tǒng)負(fù)責(zé)接收數(shù)據(jù)并對(duì)采集數(shù)據(jù)進(jìn)行處理后發(fā)送到顯示控制端,其內(nèi)部包含多個(gè)處理數(shù)據(jù)的線程模塊[8],如表1所示。

      表1 數(shù)據(jù)調(diào)度系統(tǒng)各線程模塊

      在數(shù)據(jù)調(diào)度系統(tǒng)的設(shè)計(jì)中,因?qū)崟r(shí)采集的數(shù)據(jù)具有變化快、突發(fā)性強(qiáng)的特點(diǎn),實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)應(yīng)具有很高的實(shí)時(shí)性,應(yīng)能對(duì)采集來的數(shù)據(jù)進(jìn)行快速處理,這樣才能保證數(shù)據(jù)的實(shí)時(shí)性和準(zhǔn)確性。因此只有將數(shù)據(jù)放在內(nèi)存中減少數(shù)據(jù)的I/O操作,提高數(shù)據(jù)的讀取速度才能滿足要求。ExtremeDB具有尺寸小、微秒級(jí)的處理等特點(diǎn),完全可以滿足數(shù)據(jù)調(diào)度系統(tǒng)的要求。

      4 ExtremeDB在數(shù)據(jù)采集系統(tǒng)的應(yīng)用

      (1)對(duì)象的抽象分類。實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)的相關(guān)數(shù)據(jù)處理模塊主要處理兩種類型的數(shù)據(jù),一類是采樣數(shù)據(jù)的基本信息,一類是采樣的具體數(shù)據(jù)。采樣數(shù)據(jù)的基本信息主要包括采樣點(diǎn)控制器的編號(hào)、通道序號(hào)、包序號(hào)、傳感器類型和數(shù)據(jù)的起始時(shí)間等。采樣的具體數(shù)據(jù)就是采集得到的波形值。系統(tǒng)應(yīng)能保存從當(dāng)前時(shí)間開始的幾個(gè)小時(shí)以內(nèi)的信息,且應(yīng)能把每個(gè)具體的波形值聯(lián)系到其所對(duì)應(yīng)的基本參數(shù)信息上。當(dāng)數(shù)據(jù)處理完畢后,新的數(shù)據(jù)到來時(shí),系統(tǒng)應(yīng)能及時(shí)更新數(shù)據(jù)庫中的采樣數(shù)據(jù)。數(shù)據(jù)必須被足夠快地寫入數(shù)據(jù)庫以便能跟上采集速度。系統(tǒng)接收的每個(gè)數(shù)據(jù)對(duì)象都會(huì)被分配一個(gè)傳感器唯一標(biāo)識(shí)符。

      遵循上述數(shù)據(jù)庫設(shè)計(jì)方法,可以引入兩個(gè)類來反映現(xiàn)實(shí)生活中的對(duì)象,如波形基本信息類和波形具體數(shù)據(jù)類。波形基本信息必須包括點(diǎn)控制器編號(hào)和起始時(shí)間等字段。

      (2)形式化描述數(shù)據(jù)。進(jìn)行分類后就要形式化描述數(shù)據(jù),在數(shù)據(jù)調(diào)度系統(tǒng)的設(shè)計(jì)中主要有2張表。數(shù)據(jù)庫中的表1是關(guān)于各個(gè)監(jiān)控點(diǎn)的每時(shí)每刻的具體數(shù)據(jù)值。數(shù)據(jù)庫中的表2是各個(gè)監(jiān)控點(diǎn)基本信息說明。數(shù)據(jù)庫表1的具體數(shù)值說明如表2所示。數(shù)據(jù)庫表2的測(cè)控點(diǎn)信息說明如表3所示。

      表2 數(shù)據(jù)庫表1的具體數(shù)值說明

      表3 數(shù)據(jù)庫表2的測(cè)控點(diǎn)信息說明

      打開文本編輯器按照數(shù)據(jù)庫的語法模式來創(chuàng)建數(shù)據(jù)庫定義文件。保存為Text.mco文件格式。Text.mco文件的代碼如下:

      此段代碼說明數(shù)據(jù)庫表1在senid和time上建立一個(gè)組合索引,按senid的時(shí)間把value列出來;數(shù)據(jù)庫表2表格可以用senid作為關(guān)鍵字建立兩個(gè)表之間的聯(lián)系。數(shù)據(jù)庫表2采用唯一樹索引并以senid作為關(guān)鍵字進(jìn)行查找。

      編輯完代碼內(nèi)容以后,就需要進(jìn)行編譯從而形成應(yīng)用程序需要的接口函數(shù),用hostin目錄里的mcocomp.exe程序在DOS命令行模式下將test.mco編譯生成,設(shè)置調(diào)用mcocomp.exe的執(zhí)行路徑為:

      進(jìn)入到保存test.mco文件的目錄下執(zhí)行命令mcocomp test.mco。其窗口界面圖如圖2所示。具體編譯過程界面圖如圖3所示。通過編譯將生成.h和.c文件,如圖4所示。

      圖2 test.mco文件的窗口界面圖

      圖4中的test.mco是保存的編譯文件,sensor.c和sensor.h是數(shù)據(jù)庫的接口文件。文件的名字和文本編譯中聲明的數(shù)據(jù)庫名字相同。

      5 ExtremeDB內(nèi)存數(shù)據(jù)與傳統(tǒng)數(shù)據(jù)庫對(duì)比

      圖3 用mcocomp.exe編譯test.mco文件界面圖

      圖4 通過編譯將生成.h和.c文件

      該系統(tǒng)中有一個(gè)模塊是將采集的數(shù)據(jù)存儲(chǔ)到硬盤,硬盤數(shù)據(jù)庫使用MySql 3.23.54。在用ExtremeDB進(jìn)行開發(fā)后,主要對(duì)開發(fā)結(jié)果進(jìn)行對(duì)比。建立4個(gè)線程進(jìn)行數(shù)據(jù)庫的查詢、刪除、插入和修改,每個(gè)線程單獨(dú)鏈接sql service。選用的數(shù)據(jù)庫為MySql 3.23.54,數(shù)據(jù)庫引擎為InnorDB。對(duì)10萬條記錄進(jìn)行測(cè)試。表4為數(shù)據(jù)庫表的鍵值以及索引占空間的大小。

      表4 數(shù)據(jù)庫表鍵值及占硬盤(內(nèi)存)空間

      測(cè)試使用的是MySql缺省參數(shù),用MySql和ExtremeDB提供的API,采用C語言編寫測(cè)試程序[9]。測(cè)試程序?yàn)?

      ExtremeDB與MySql數(shù)據(jù)庫對(duì)比如表5所示。

      表5 ExtremeDB與MySql數(shù)據(jù)庫對(duì)比

      通過數(shù)據(jù)庫對(duì)比測(cè)試,可以看出ExtremeDB數(shù)據(jù)庫的性能要遠(yuǎn)遠(yuǎn)優(yōu)于MySql。

      6 結(jié)論

      通過ExtremeDB內(nèi)存數(shù)據(jù)庫和硬盤數(shù)據(jù)庫的對(duì)比可以看出ExtremeDB在各個(gè)方面都有著卓越的表現(xiàn)。由于其代碼體積小易于維護(hù)、占用空間少、提高資源利用率等,可有效縮短系統(tǒng)開發(fā)周期,提高系統(tǒng)的運(yùn)算效率。在充分借鑒前人設(shè)計(jì)ExtremeDB內(nèi)存數(shù)據(jù)庫思想的基礎(chǔ)上,通過實(shí)際的操作流程、更加詳細(xì)的數(shù)據(jù)庫設(shè)計(jì)和應(yīng)用,展示了ExtremeDB內(nèi)存數(shù)據(jù)庫在實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)中的開發(fā)過程。使用ExtremeDB可提高系統(tǒng)快速處理數(shù)據(jù)的能力,但由于采集數(shù)據(jù)量大,系統(tǒng)的數(shù)據(jù)處理各模塊和采集模塊的時(shí)間上還不是很統(tǒng)一,今后將在這方面進(jìn)行進(jìn)一步研究。

      [1]SCOTT R L.C++技巧與使用[M].北京:航天航空大學(xué)出版社,1995:69-89.

      [2]汪翔,袁輝.Visual C++實(shí)踐與提高:網(wǎng)絡(luò)編程[M].北京:中國鐵道出版社,2001:167-186.

      [3]李東江,聶學(xué)斌.內(nèi)存數(shù)據(jù)庫extremeDB在故障信息子站系統(tǒng)的應(yīng)用研究[J].計(jì)算機(jī)與信息技術(shù),2008(2):35-37.

      [4]王鋒,韓璞.ExtremeDB數(shù)據(jù)庫在DCS現(xiàn)場控制站的設(shè)計(jì)與應(yīng)用[J].華北電力大學(xué)學(xué)報(bào),2006,33(4):12-15.

      [5]COOD P,YOURDON E.Object-oriented analysis[M].NJ:Prentice-Hall,1991:68-79.

      [6]邵維忠,楊芙清.面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)[M].北京:清華大學(xué)出版社,2003:160-174.

      [7]田寶杰,卓斌,張賽娜.基于面向?qū)ο蠼<夹g(shù)構(gòu)建服裝企業(yè)管理信息系統(tǒng)[J].電腦知識(shí)與技術(shù),2008,8(2):280-282.

      [8]馮鐘.多線程技術(shù)在數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)中的應(yīng)用[J].通化師范學(xué)院學(xué)報(bào),2008,9(8):33-35.

      [9]鄭惠,范忠誠.零基礎(chǔ)學(xué)Visual C++[M].北京:機(jī)械工業(yè)出版社,2008:46-67.

      猜你喜歡
      線程內(nèi)存調(diào)度
      《調(diào)度集中系統(tǒng)(CTC)/列車調(diào)度指揮系統(tǒng)(TDCS)維護(hù)手冊(cè)》正式出版
      一種基于負(fù)載均衡的Kubernetes調(diào)度改進(jìn)算法
      “春夏秋冬”的內(nèi)存
      虛擬機(jī)實(shí)時(shí)遷移調(diào)度算法
      淺談linux多線程協(xié)作
      基于內(nèi)存的地理信息訪問技術(shù)
      SVC的RTP封裝及其在NS2包調(diào)度中的應(yīng)用研究
      Linux線程實(shí)現(xiàn)技術(shù)研究
      么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
      上網(wǎng)本為什么只有1GB?
      博乐市| 普安县| 弥渡县| 平果县| 黄龙县| 民权县| 苏尼特右旗| 潮州市| 周宁县| 登封市| 滕州市| 中江县| 襄樊市| 康保县| 溧水县| 天水市| 井陉县| 新沂市| 西峡县| 柳江县| 板桥市| 体育| 乌拉特前旗| 迭部县| 开江县| 余干县| 方正县| 太原市| 沂南县| 德保县| 广德县| 彭州市| 安徽省| 门头沟区| 凤凰县| 厦门市| 孝义市| 鹰潭市| 建昌县| 武邑县| 邢台县|