亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        VC多線程流水線在數(shù)據(jù)存儲系統(tǒng)中的設(shè)計與實現(xiàn)*

        2016-09-16 09:10:56胡曉峰張亮紅劉文怡王紅亮中北大學(xué)電子測試技術(shù)國家重點實驗室太原030051中北大學(xué)儀器科學(xué)與動態(tài)測試教育部重點實驗室太原030051
        電子器件 2016年4期
        關(guān)鍵詞:系統(tǒng)

        胡曉峰,張亮紅,劉文怡*,王紅亮(1.中北大學(xué)電子測試技術(shù)國家重點實驗室,太原030051;2.中北大學(xué)儀器科學(xué)與動態(tài)測試教育部重點實驗室,太原030051)

        VC多線程流水線在數(shù)據(jù)存儲系統(tǒng)中的設(shè)計與實現(xiàn)*

        胡曉峰1,2,張亮紅1,2,劉文怡1,2*,王紅亮1,2
        (1.中北大學(xué)電子測試技術(shù)國家重點實驗室,太原030051;2.中北大學(xué)儀器科學(xué)與動態(tài)測試教育部重點實驗室,太原030051)

        在航天測試領(lǐng)域,為分析測試系統(tǒng)的狀態(tài)和變化情況,經(jīng)常需要采集、處理并存儲狀態(tài)數(shù)據(jù)。針對狀態(tài)數(shù)據(jù)量大、分析處理復(fù)雜、存儲速度慢等問題,基于VisualC++編程,采用多線程、流水線、分塊存取的方式,設(shè)計數(shù)據(jù)存儲系統(tǒng)軟件,實現(xiàn)快速循環(huán)讀取數(shù)據(jù)、實時處理顯示數(shù)據(jù),并保存數(shù)據(jù)至文件,該實現(xiàn)方法避免了數(shù)據(jù)的丟失、程序的阻塞,并對數(shù)據(jù)進行實時、直觀地分析處理。經(jīng)測試,系統(tǒng)讀取數(shù)據(jù)、處理數(shù)據(jù)以及存儲數(shù)據(jù)的整體速度達400Mbyte/s以上。

        大數(shù)據(jù);多線程;流水線;實時處理

        在各類工業(yè)控制、工程測試領(lǐng)域中經(jīng)常需要采集、傳輸、存儲、處理大量數(shù)據(jù)[1]。例如,在航天測試領(lǐng)域的各類振動、電壓、沖擊、緩變、溫度、速變、高速圖像、液位等數(shù)據(jù),其具有采樣率高、采集時間長、數(shù)據(jù)量大等特點。為分析各種狀態(tài)數(shù)據(jù),需要對采集數(shù)據(jù)進行實時處理并顯示,為達到多次使用數(shù)據(jù)的目的,需將數(shù)據(jù)進行存儲,。

        軟件系統(tǒng)處理任務(wù)較多,運算量大且具實時性[2],故采用多線程實現(xiàn)并發(fā)執(zhí)行。目前,軟件系統(tǒng)針對數(shù)據(jù)讀取、處理、存儲處理方案主要有兩種,第1種,采用單線程,在單個線程里順序執(zhí)行數(shù)據(jù)操作,該方法操作簡單,但操作時間長,只適合采集速度慢、處理簡單的數(shù)據(jù)存儲系統(tǒng)[3]。第2種,采用多線程,將數(shù)據(jù)操作分別在讀線程、處理線程、存儲線程中完成,并采用臨界區(qū)的方法解決各線程間的同步問題,此方案在處理速度上較第1種方案快,但處理復(fù)雜,容易出現(xiàn)程序阻塞等問題[4-5]。結(jié)合以上兩種方案,本系統(tǒng)采用多線程、流水線方法實現(xiàn)單個線程內(nèi)數(shù)據(jù)操作順序執(zhí)行,多個線程之間以流水線形式并行執(zhí)行。

        1 數(shù)據(jù)存儲系統(tǒng)簡介

        本系統(tǒng)是基于VC++實現(xiàn)的數(shù)據(jù)存儲系統(tǒng),其系統(tǒng)組成框圖如圖1所示,系統(tǒng)通過PCI_E接口接收采集系統(tǒng)采集的數(shù)據(jù),單次數(shù)據(jù)傳輸量為8M單位。以用戶界面線程作為主線程,響應(yīng)用戶操作,顯示數(shù)據(jù)圖形,并通過3個工作者線程完成對數(shù)據(jù)的讀取、處理、存儲,為避免數(shù)據(jù)混亂,將不同線程接收的數(shù)據(jù)存儲在不同的文件中。

        圖1 系統(tǒng)組成框圖

        2 系統(tǒng)軟件設(shè)計

        2.1多線程簡介

        MFC應(yīng)用程序中的線程有兩種類型:用戶界面線程(User-interface thread)和工作者線程(Worker thread)。用戶界面線程負責處理用戶輸入、響應(yīng)用戶及系統(tǒng)所產(chǎn)生的事件和消息等。工作者線程通常用來執(zhí)行后臺計算和維護任務(wù)[6]。本系統(tǒng)根據(jù)兩種線程的不同特點,將不同的任務(wù)分配給不同線程完成,實現(xiàn)數(shù)據(jù)的讀取、處理、存儲以及顯示。

        在多線程應(yīng)用程序中,為是各線程協(xié)調(diào)一致的工作需采用線程同步。MFC提供了4種同步方法:臨界區(qū)(Critical Section)、信號燈(Semapore)、互斥量(Mutex)和事件(Event)[7]。本系統(tǒng)采用人工事件對象實現(xiàn)多線程間的通信。

        2.2多線程流水線的應(yīng)用

        由于數(shù)據(jù)采集時間長,數(shù)據(jù)總量遠遠大于內(nèi)存的總量,同時為實現(xiàn)數(shù)據(jù)處理的實時性,采取每次讀取8M單位大小的數(shù)據(jù)。又因數(shù)據(jù)操作主要包括讀取、處理、存儲三大操作階段,為充分利用CPU和I/ O資源,系統(tǒng)采用23個線程按流水線方式運行。

        本文采用Tr表示數(shù)據(jù)讀取耗時,Td表示數(shù)據(jù)處理耗時,Tw表示數(shù)據(jù)存儲時間,n表示數(shù)據(jù)塊的個數(shù)。若采用單線程總耗時T=n(Tr+Td+Tw)。最理想狀態(tài)為Tr≈Td≈Tw,多線程流水線示意圖如圖2所示,總耗時T=(n+2)Tr。

        圖2 多線程流水線示意圖

        通常情況下,Tr、Td、和Tw并不相等。例如在本系統(tǒng)中,由于數(shù)據(jù)的讀取通過PCI_E接口耗時較短,數(shù)據(jù)處理需進行頻譜分析所以耗時較長,三者耗時排序為Tr<Tw<Td。為防止線程之間爭奪資源,發(fā)生沖突,所以多線程流水線必須滿足以以下規(guī)則:

        ①第2個線程的第K次讀數(shù)據(jù)必須在第1個線程的第K個讀數(shù)據(jù)結(jié)束之后開始;

        ②第3個線程的第K次讀數(shù)據(jù)必須在第2個線程的第K個讀數(shù)據(jù)結(jié)束之后開始;

        ③第1個線程的第K次讀數(shù)據(jù)必須在第3個線程的第K-1個讀數(shù)據(jù)結(jié)束之后開始。為此,采用事件對象實現(xiàn)線程間的同步。事件允許在一個線程工作時,喚醒和啟動另一個線程。每個事件對象都有兩種狀態(tài):有信號和無信號狀態(tài)[8]。通過調(diào)用SetEvent()函數(shù)設(shè)置事件對象為有信號狀態(tài),調(diào)用ResetEvent()函數(shù)設(shè)置事件對象為無信號狀態(tài),并調(diào)用WaitForSingleObject()函數(shù)和WaitForMultiObjects()函數(shù)檢測事件的狀態(tài)。線程啟動流程序如圖3所示。當啟動程序是主線程啟動,應(yīng)用程序界面運行,當用戶點擊啟動數(shù)據(jù)存儲操作時,主線程創(chuàng)建并啟動線程1、線程2、線程3,但除線程1處理喚醒狀態(tài)外,其他2個線程處于未喚醒狀態(tài)。

        圖3 線程啟動流程

        圖4所示為線程1內(nèi)具體流程。其中event3_1為線程 1監(jiān)測事件,由線程 3喚醒;event1_2為線程 2監(jiān)測事件,由線程 1喚醒;event2_3為線程3監(jiān)測事件,由線程2喚醒。

        圖4 線程1工作流程圖

        如圖4啟動線程1后,先判斷是否首次執(zhí)行線程函數(shù)體,若不是,則調(diào)用WaitForSingleObject()函數(shù)等待event3_1為激活態(tài),當event3_1激活時則讀取PCI_E數(shù)據(jù),否則繼續(xù)等待;當首次執(zhí)行線程函數(shù)體時,則讀取 PCI_E數(shù)據(jù)。讀取完P(guān)CI_E數(shù)據(jù)后,設(shè)置event3_1為非激活狀態(tài),并激活event1_2,然后進行數(shù)據(jù)處理,將數(shù)據(jù)處理后的數(shù)據(jù)由主線程以圖形形式顯示出來,最后將數(shù)據(jù)保存至文件。當函數(shù)體執(zhí)行完成后判斷線程是否結(jié)束,若結(jié)束則終止線程,反之循環(huán)執(zhí)行。線程2和線程3的執(zhí)行流程除沒有判斷是否首次執(zhí)行函數(shù)體外,基本與線程1一致。

        2.3對比分析

        經(jīng)過充分測試,多線程流水線處理數(shù)據(jù)的讀取、處理、存儲的速度有明顯提高,采用該方法能進一步提高程序執(zhí)行效率。表1列出了單線程、原始多線程(創(chuàng)建讀數(shù)據(jù)線程、處理數(shù)據(jù)線程、存儲數(shù)據(jù)線程)、多線程流水線對不同數(shù)據(jù)總量所需的時間與數(shù)據(jù)總量的關(guān)系具體數(shù)據(jù)會因計算機、數(shù)據(jù)處理過程等的不同而不同。從表中可以看出,采用多線程流水線操作數(shù)據(jù)的速度最快,相對于單線程的操縱速度,該方法將操作時間縮短了30%左右,且隨著數(shù)據(jù)總量的增加,縮短時間百分比有所提高。由此可見,多線程流水線對大容量數(shù)據(jù)操作具有重要意義。

        表1 3種方法處理時間與記錄數(shù)據(jù)的關(guān)系比較

        3 數(shù)據(jù)存儲軟件設(shè)計

        本系統(tǒng)使用Microsoft Visual Studio 2012設(shè)計了“數(shù)據(jù)存儲軟件”,其界面效果如圖5所示。

        圖5 數(shù)據(jù)存儲軟件界面

        圖5中最上一欄為對設(shè)備的打開、關(guān)閉以及初始化操作、記錄觸發(fā)信息配置、啟動停止記錄操作、選擇文件存儲位置等。其中選擇的文件路徑為線程1文件路徑,線程2和線程3的文件路徑根據(jù)所選路徑自動生成。中間一欄為數(shù)據(jù)顯示欄,將數(shù)據(jù)經(jīng)過處理后以圖形的形式顯示。最底層為狀態(tài)信息顯示欄,將程序運行中的速度信息、錯誤信息等進行顯示。

        4 結(jié)論

        數(shù)據(jù)的實時采集、處理、存儲,并實時動態(tài)的顯示是數(shù)據(jù)存儲系統(tǒng)的基本環(huán)節(jié)。本文的主要工作在于:基于MFC圖像編程與VC多線程編程,利用Microsoft Visual Stdio 2012設(shè)計了一種數(shù)據(jù)存儲軟件,并著力提高數(shù)據(jù)操作效率,為解決此問題,本文采用多線程流水線的處理方法,并采用人工事件對象解決各線程間的同步問題,充分利用CPU的空閑時間,提高數(shù)據(jù)記錄速率。該方法較單線程和傳統(tǒng)多線程方法都有所提高,時間較單線程縮短30%左右,并隨著記錄數(shù)據(jù)的增加縮短時間百分比有所提高。

        [1] 馬志剛,劉文儀.航天測試系統(tǒng)大容量數(shù)據(jù)曲線繪制方法的研究[J].圖學(xué)學(xué)報,2014,35(4):623-629.

        [2] 馬濤,汶德勝,陳學(xué)飛,等.基于USB 2.0攝像頭的目標跟蹤平臺實現(xiàn)[J].電子器件,2008,31(3):926-930.

        [3] 張瑜.數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計[D].西安:西安電子科技大學(xué),2014.

        [4] 王世強,曹英,王宏.基于多線程的肌電信號實時采集與分析系統(tǒng)[J].儀器儀表學(xué)報,2006,27(6):1300-1301.

        [5] 郭峰,龍兵.多線程同步技術(shù)在邏輯分析儀軟件開發(fā)中的應(yīng)用[J].電子測量技術(shù),2011,34(11):48-54.

        [6] 趙曉平,張令彌,羅光坤.VC多線程編程在動態(tài)測試系統(tǒng)中的實現(xiàn)[C]//2007年第九屆全國振動理論及應(yīng)用學(xué)術(shù)會議論文集,杭州,2007:121-127.

        [7] 孟昭榮,江立輝,胡興偉,等.基于VC多線程的實時數(shù)據(jù)采集系統(tǒng)[J].艦船防化,2008(2):44-47.

        [8] 龍華.基于多線程圖像處理機測試系統(tǒng)的研究[D].華中科技大學(xué),2011.

        胡曉峰(1990-),男,漢族,山西臨汾人,中北大學(xué)碩士生,研究領(lǐng)域為測試計量技術(shù)及儀器,huxiaofeng88@163.com;

        張亮紅(1990-),女,漢族,湖南益陽人,中北大學(xué)碩士生,研究領(lǐng)域為測試計量技術(shù)及儀器,1056459843@qq.com;

        劉文怡(1970-),男,漢族,山西嵐縣人,中北大學(xué),教授,研究領(lǐng)域為測試計量技術(shù)及儀器,liuwenyi@nuc.edu.cn;

        王紅亮(1978-),男,漢族,河南林州人,中北大學(xué),副教授,研究領(lǐng)域為測試計量技術(shù)及儀器,wanghongliang@nuc.edu.cn。

        Design and Implementation of Data Storage System Based on VC Multithreading and Pipelining*

        HU Xiaofeng1,2,ZHANG Lianghong1,2,LIU Wenyi1,2*,WANG Hongliang1,2
        (1.Science and Technology on Electronic Test&Measurement Laboratory,Noah Uniυersity ofChina,Taiyuan 030051,China;2.Ministry of Education Key laboratory of Instrumentation Science&Dynamic Measurement,Noah Uniυersity of China,Taiyuan 030051,China)

        In the field ofaerospace test,for analyzing the status and change situation of testsystem,we often need to collect,process and store data.Aiming at large data,complex analysis and processing,slow storage,based on visual c++programming,multithreading,pipelining,block access were used to design the storage system software.This system can read data circularly and quickly,can real-time processand display the data,and it can save the data to a file.Thismethod avoids losing data and blocking program successfully.After testing,the reading speed and processing,storing data of the system aremore than 400Mbyte/s.

        large data;multithreading;pipelining;real-time processing

        TP311.521

        A

        1005-9490(2016)04-0964-04

        項目來源:國家自然科學(xué)基金重點項目(51275491)

        2015-05-20修改日期:2015-06-28

        EEACC:762010.3969/j.issn.1005-9490.2016.04.040

        猜你喜歡
        系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
        半沸制皂系統(tǒng)(下)
        FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統(tǒng) 德行天下
        PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
        久久精品成人亚洲另类欧美| 成人av一区二区三区四区| 国产亚洲91精品色在线| 美女不带套日出白浆免费视频| 丰满人妻被黑人中出849| 午夜视频网址| 高清成人在线视频播放| 中文字幕亚洲乱码成熟女1区| 日韩久久无码免费毛片软件| 开心五月激情综合婷婷| 专区亚洲欧洲日产国码AV | 亚洲av永久无码精品秋霞电影影院| 国产精品va在线观看一| 精品精品国产三级av在线| 亚洲国产aⅴ成人精品无吗| 爽爽午夜影视窝窝看片| 亚洲成a人片在线网站| 日本一区二区在线看看| 精品国产成人av久久| 中国人妻与老外黑人| 无码国产69精品久久久孕妇| 亚洲 日韩 在线精品| 日本女u久久精品视频| 免费又黄又爽又色的视频| 人妻无码一区二区三区四区| 亚洲成a人片在线观看高清| 国产精品自产拍在线18禁| 日本污ww视频网站| 中文字幕熟妇人妻在线视频 | 亚洲欧美日韩在线一区| 国产欧美激情一区二区三区| 中文资源在线一区二区三区av| 国产精品中文久久久久久久 | 国产午夜在线视频观看| 在线不卡av片免费观看| 亚洲V无码一区二区三区四区观看 久久精品国产亚洲综合色 | 国产成人aa在线观看视频| 精品综合久久88少妇激情| 欧美人妻少妇精品久久黑人| 国产成人一区二区三中文| 国产精品久久一区二区蜜桃|