999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ELIS成像測井地面采集系統多線程設計及實現

2014-11-07 10:24:12蘭洪霞
科技資訊 2014年4期
關鍵詞:同步數據采集

蘭洪霞

摘 要:本文介紹了ELIS海洋石油成像測井地面采集系統多線程應用的設計及實現,分析多線程技術的優缺點,并對使用多線程技術后的ELIS地面采集系統和使用前做了性能分析對比,證明多線程技術應用對ELIS地面采集系統性能的提升。

關鍵詞:測井系統 數據采集 多線程 同步

中圖分類號:TE3 文獻標識碼:A 文章編號:1672-3791(2014)02(a)-0027-03

ELIS海洋石油成像測井系統(Enhanced Logging Imaging System)是中海油田股份有限公司自主研發具有自主知識產權的用于海上石油勘探開發的電纜測井成像系統,它主要由地面采集系統、井下儀器和數據解釋處理三個部分組成。

ELIS地面采集系統基于前后臺方式(客戶端/服務器),通過網絡進行數據交換。前端機系統做為服務器,完成實時數據采集和預處理,后臺主機實現數據的處理和顯示,用戶接口,為操作工程師提供各種井下儀器的實時控制界面,完成服務表的編輯和加載,數據的處理和顯示、存儲、出圖。由于后臺主機要同事處理多個任務,且有很高的實時性要求,所以采用多線程設計開發模式,取得了良好的效果。

1 設計思想

ELIS地面采集系統最初采用的是單線程設計,其中網絡接收、數據處理、數據顯示、界面響應、命令發送等功能都在同一個線程內順序執行,即執行玩、完一個功能,才能執行下一個功能,其示意如圖1所示。

在掛接常規井下測井儀器時這種設計模式沒有問題,但是在掛接采樣率高、數據量大、計算復雜的高端測井儀器時由于網絡接收、數據處理占用了大量CPU時間,出現了界面響應慢、儀器命令無法下發、顯示刷新慢等問題,經過重新設計,把ELIS地面采集系統由單線程設計改進為多線程設計,其設計圖如圖2所示。

把原有的單線程設計改為多線程設計,即把網絡接收、數據處理、數據顯示、界面響應、命令發送、文件存儲劃分為獨立的線程,并行執行。

線程本質上是一個獨立運行的代碼段,是CPU調度和分配的基本單元,多線程設計將應用程序劃分為多個獨立的任務,其優點:

(1)當前沒有進行處理的任務時可以將處理器時間讓給其它任務。

(2)占用大量處理時間的任務可以定期將處理器時間讓給其它任務。

(3)多線程技術使程序的響應速度更快,因為用戶界面可以在進行其它工作的同時一直處于活動狀態。

(4)可以隨時停止任務。

(5)可以分別設置各個任務的優先級以優化性能。

在ELIS地面采集系統軟件中充分利用了多線程的優勢:

(1)網絡接收作為獨立的線程,采用阻塞的Socket模型,即網絡上來數據了接收,沒有數據的時候等待,等待時把處理器時間讓給其它任務,提高了效率。

(2)數據處理線程占用大量處理時間,在其中使用PeekMessage函數響應界面及其它線程的消息。

(3)單線程設計因為其它任務繁忙,界面響應緩慢,無法及時下發儀器控制命令,多線程技術使程序的響應速度更快,成功得解決了這個問題。

(4)提高網絡接收線程的優先級,確保實時采集的數據包不丟失。

Message函數發送線程間消息,讓網絡接收、數據處理等線程停下來,完成內存分配及初始化后再發送線程間消息重啟線程,達到線程間的調度和協調。

但是多線程也存在一些缺點,主要包括:

(1)線程的使用會給系統帶來上下文切換的額外負擔,負擔超過一定程度時,多線程的效率就會降低。

(2)當多個線程需要對公有變量進行寫操作時,后一個線程往往會修改掉前一個線程存放的數據,即線程同步問題。

(3)即較長時間的等待或資源競爭以及死鎖等多線程癥狀。

(4)程序復雜度增加,調試困難。

為了克服上述缺點,對ELIS地面采集系統軟件進行了精心設計:

(1)線程不能過多,過多會給系統帶來上下文切換的額外負擔,降低系統效率,而且會調度協調困難,需要合理劃分功能模塊,界定模塊邊界,我們把系統設計為網絡接收、數據處理、數據顯示、界面響應、命令發送、文件存儲六個線程,經實踐證明這樣劃分科學高效。

(2)線程同步問題。

①使用臨界區(CCriticalSection)和互斥量(CMutex)保護共享資源,當多個線程訪問一個共享資源時,可以使用臨界區或互斥量對該共享資源進行保護,保證同一時刻只有一個線程可以訪問該共享資源,其他希望訪問共享資源的線程將被掛起等待,直到擁有共享資源的線程放棄共享資源為止,這樣就保證了不會在同一時刻出現多個線程訪問共享資源。

②事件(CEvent),事件是一個允許一個線程在某種情況發生時,喚醒另外一個線程的同步對象。例如數據處理線程處理完一包數據就會發送一個特定的事件通知數據顯示和數據存儲線程更新。

③互斥量(CMutex),互斥對象與臨界區對象很像.互斥對象與臨界區對象的不同在于:互斥對象可以在進程間使用,而臨界區對象只能在同一進程的各線程間使用。當然,互斥對象也可以用于同一進程的各個線程間,但是在這種情況下,使用臨界區會更節省系統資源,更有效率。

(3)由于多線程各線程之間是并行的任務搶占式工作方式,各線程的執行次序不可預期,導致有些錯誤只有在特定情況才會出現,不易重現,難以調試定位,我們采用在程序內部添加TRACE調試語句及外部線程觀測器兩種方式定位問題。

2 程序實現

程序用VC++6.0實現,VC++6.0的MFC類庫提供了兩種類型的線程:輔助線程(Worker

摘 要:本文介紹了ELIS海洋石油成像測井地面采集系統多線程應用的設計及實現,分析多線程技術的優缺點,并對使用多線程技術后的ELIS地面采集系統和使用前做了性能分析對比,證明多線程技術應用對ELIS地面采集系統性能的提升。

關鍵詞:測井系統 數據采集 多線程 同步

中圖分類號:TE3 文獻標識碼:A 文章編號:1672-3791(2014)02(a)-0027-03

ELIS海洋石油成像測井系統(Enhanced Logging Imaging System)是中海油田股份有限公司自主研發具有自主知識產權的用于海上石油勘探開發的電纜測井成像系統,它主要由地面采集系統、井下儀器和數據解釋處理三個部分組成。

ELIS地面采集系統基于前后臺方式(客戶端/服務器),通過網絡進行數據交換。前端機系統做為服務器,完成實時數據采集和預處理,后臺主機實現數據的處理和顯示,用戶接口,為操作工程師提供各種井下儀器的實時控制界面,完成服務表的編輯和加載,數據的處理和顯示、存儲、出圖。由于后臺主機要同事處理多個任務,且有很高的實時性要求,所以采用多線程設計開發模式,取得了良好的效果。

1 設計思想

ELIS地面采集系統最初采用的是單線程設計,其中網絡接收、數據處理、數據顯示、界面響應、命令發送等功能都在同一個線程內順序執行,即執行玩、完一個功能,才能執行下一個功能,其示意如圖1所示。

在掛接常規井下測井儀器時這種設計模式沒有問題,但是在掛接采樣率高、數據量大、計算復雜的高端測井儀器時由于網絡接收、數據處理占用了大量CPU時間,出現了界面響應慢、儀器命令無法下發、顯示刷新慢等問題,經過重新設計,把ELIS地面采集系統由單線程設計改進為多線程設計,其設計圖如圖2所示。

把原有的單線程設計改為多線程設計,即把網絡接收、數據處理、數據顯示、界面響應、命令發送、文件存儲劃分為獨立的線程,并行執行。

線程本質上是一個獨立運行的代碼段,是CPU調度和分配的基本單元,多線程設計將應用程序劃分為多個獨立的任務,其優點:

(1)當前沒有進行處理的任務時可以將處理器時間讓給其它任務。

(2)占用大量處理時間的任務可以定期將處理器時間讓給其它任務。

(3)多線程技術使程序的響應速度更快,因為用戶界面可以在進行其它工作的同時一直處于活動狀態。

(4)可以隨時停止任務。

(5)可以分別設置各個任務的優先級以優化性能。

在ELIS地面采集系統軟件中充分利用了多線程的優勢:

(1)網絡接收作為獨立的線程,采用阻塞的Socket模型,即網絡上來數據了接收,沒有數據的時候等待,等待時把處理器時間讓給其它任務,提高了效率。

(2)數據處理線程占用大量處理時間,在其中使用PeekMessage函數響應界面及其它線程的消息。

(3)單線程設計因為其它任務繁忙,界面響應緩慢,無法及時下發儀器控制命令,多線程技術使程序的響應速度更快,成功得解決了這個問題。

(4)提高網絡接收線程的優先級,確保實時采集的數據包不丟失。

Message函數發送線程間消息,讓網絡接收、數據處理等線程停下來,完成內存分配及初始化后再發送線程間消息重啟線程,達到線程間的調度和協調。

但是多線程也存在一些缺點,主要包括:

(1)線程的使用會給系統帶來上下文切換的額外負擔,負擔超過一定程度時,多線程的效率就會降低。

(2)當多個線程需要對公有變量進行寫操作時,后一個線程往往會修改掉前一個線程存放的數據,即線程同步問題。

(3)即較長時間的等待或資源競爭以及死鎖等多線程癥狀。

(4)程序復雜度增加,調試困難。

為了克服上述缺點,對ELIS地面采集系統軟件進行了精心設計:

(1)線程不能過多,過多會給系統帶來上下文切換的額外負擔,降低系統效率,而且會調度協調困難,需要合理劃分功能模塊,界定模塊邊界,我們把系統設計為網絡接收、數據處理、數據顯示、界面響應、命令發送、文件存儲六個線程,經實踐證明這樣劃分科學高效。

(2)線程同步問題。

①使用臨界區(CCriticalSection)和互斥量(CMutex)保護共享資源,當多個線程訪問一個共享資源時,可以使用臨界區或互斥量對該共享資源進行保護,保證同一時刻只有一個線程可以訪問該共享資源,其他希望訪問共享資源的線程將被掛起等待,直到擁有共享資源的線程放棄共享資源為止,這樣就保證了不會在同一時刻出現多個線程訪問共享資源。

②事件(CEvent),事件是一個允許一個線程在某種情況發生時,喚醒另外一個線程的同步對象。例如數據處理線程處理完一包數據就會發送一個特定的事件通知數據顯示和數據存儲線程更新。

③互斥量(CMutex),互斥對象與臨界區對象很像.互斥對象與臨界區對象的不同在于:互斥對象可以在進程間使用,而臨界區對象只能在同一進程的各線程間使用。當然,互斥對象也可以用于同一進程的各個線程間,但是在這種情況下,使用臨界區會更節省系統資源,更有效率。

(3)由于多線程各線程之間是并行的任務搶占式工作方式,各線程的執行次序不可預期,導致有些錯誤只有在特定情況才會出現,不易重現,難以調試定位,我們采用在程序內部添加TRACE調試語句及外部線程觀測器兩種方式定位問題。

2 程序實現

程序用VC++6.0實現,VC++6.0的MFC類庫提供了兩種類型的線程:輔助線程(Worker

摘 要:本文介紹了ELIS海洋石油成像測井地面采集系統多線程應用的設計及實現,分析多線程技術的優缺點,并對使用多線程技術后的ELIS地面采集系統和使用前做了性能分析對比,證明多線程技術應用對ELIS地面采集系統性能的提升。

關鍵詞:測井系統 數據采集 多線程 同步

中圖分類號:TE3 文獻標識碼:A 文章編號:1672-3791(2014)02(a)-0027-03

ELIS海洋石油成像測井系統(Enhanced Logging Imaging System)是中海油田股份有限公司自主研發具有自主知識產權的用于海上石油勘探開發的電纜測井成像系統,它主要由地面采集系統、井下儀器和數據解釋處理三個部分組成。

ELIS地面采集系統基于前后臺方式(客戶端/服務器),通過網絡進行數據交換。前端機系統做為服務器,完成實時數據采集和預處理,后臺主機實現數據的處理和顯示,用戶接口,為操作工程師提供各種井下儀器的實時控制界面,完成服務表的編輯和加載,數據的處理和顯示、存儲、出圖。由于后臺主機要同事處理多個任務,且有很高的實時性要求,所以采用多線程設計開發模式,取得了良好的效果。

1 設計思想

ELIS地面采集系統最初采用的是單線程設計,其中網絡接收、數據處理、數據顯示、界面響應、命令發送等功能都在同一個線程內順序執行,即執行玩、完一個功能,才能執行下一個功能,其示意如圖1所示。

在掛接常規井下測井儀器時這種設計模式沒有問題,但是在掛接采樣率高、數據量大、計算復雜的高端測井儀器時由于網絡接收、數據處理占用了大量CPU時間,出現了界面響應慢、儀器命令無法下發、顯示刷新慢等問題,經過重新設計,把ELIS地面采集系統由單線程設計改進為多線程設計,其設計圖如圖2所示。

把原有的單線程設計改為多線程設計,即把網絡接收、數據處理、數據顯示、界面響應、命令發送、文件存儲劃分為獨立的線程,并行執行。

線程本質上是一個獨立運行的代碼段,是CPU調度和分配的基本單元,多線程設計將應用程序劃分為多個獨立的任務,其優點:

(1)當前沒有進行處理的任務時可以將處理器時間讓給其它任務。

(2)占用大量處理時間的任務可以定期將處理器時間讓給其它任務。

(3)多線程技術使程序的響應速度更快,因為用戶界面可以在進行其它工作的同時一直處于活動狀態。

(4)可以隨時停止任務。

(5)可以分別設置各個任務的優先級以優化性能。

在ELIS地面采集系統軟件中充分利用了多線程的優勢:

(1)網絡接收作為獨立的線程,采用阻塞的Socket模型,即網絡上來數據了接收,沒有數據的時候等待,等待時把處理器時間讓給其它任務,提高了效率。

(2)數據處理線程占用大量處理時間,在其中使用PeekMessage函數響應界面及其它線程的消息。

(3)單線程設計因為其它任務繁忙,界面響應緩慢,無法及時下發儀器控制命令,多線程技術使程序的響應速度更快,成功得解決了這個問題。

(4)提高網絡接收線程的優先級,確保實時采集的數據包不丟失。

Message函數發送線程間消息,讓網絡接收、數據處理等線程停下來,完成內存分配及初始化后再發送線程間消息重啟線程,達到線程間的調度和協調。

但是多線程也存在一些缺點,主要包括:

(1)線程的使用會給系統帶來上下文切換的額外負擔,負擔超過一定程度時,多線程的效率就會降低。

(2)當多個線程需要對公有變量進行寫操作時,后一個線程往往會修改掉前一個線程存放的數據,即線程同步問題。

(3)即較長時間的等待或資源競爭以及死鎖等多線程癥狀。

(4)程序復雜度增加,調試困難。

為了克服上述缺點,對ELIS地面采集系統軟件進行了精心設計:

(1)線程不能過多,過多會給系統帶來上下文切換的額外負擔,降低系統效率,而且會調度協調困難,需要合理劃分功能模塊,界定模塊邊界,我們把系統設計為網絡接收、數據處理、數據顯示、界面響應、命令發送、文件存儲六個線程,經實踐證明這樣劃分科學高效。

(2)線程同步問題。

①使用臨界區(CCriticalSection)和互斥量(CMutex)保護共享資源,當多個線程訪問一個共享資源時,可以使用臨界區或互斥量對該共享資源進行保護,保證同一時刻只有一個線程可以訪問該共享資源,其他希望訪問共享資源的線程將被掛起等待,直到擁有共享資源的線程放棄共享資源為止,這樣就保證了不會在同一時刻出現多個線程訪問共享資源。

②事件(CEvent),事件是一個允許一個線程在某種情況發生時,喚醒另外一個線程的同步對象。例如數據處理線程處理完一包數據就會發送一個特定的事件通知數據顯示和數據存儲線程更新。

③互斥量(CMutex),互斥對象與臨界區對象很像.互斥對象與臨界區對象的不同在于:互斥對象可以在進程間使用,而臨界區對象只能在同一進程的各線程間使用。當然,互斥對象也可以用于同一進程的各個線程間,但是在這種情況下,使用臨界區會更節省系統資源,更有效率。

(3)由于多線程各線程之間是并行的任務搶占式工作方式,各線程的執行次序不可預期,導致有些錯誤只有在特定情況才會出現,不易重現,難以調試定位,我們采用在程序內部添加TRACE調試語句及外部線程觀測器兩種方式定位問題。

2 程序實現

程序用VC++6.0實現,VC++6.0的MFC類庫提供了兩種類型的線程:輔助線程(Worker

猜你喜歡
同步數據采集
素質教育理念下藝術教育改革的思路
政府職能的轉變與中國經濟結構調整的同步
商情(2016年42期)2016-12-23 14:26:58
公共藝術與城市設計的協調與同步
CS5463在植栽用電子鎮流器老化監控系統中的應用
大數據時代高校數據管理的思考
科技視界(2016年18期)2016-11-03 22:51:40
鐵路客流時空分布研究綜述
基于廣播模式的數據實時采集與處理系統
軟件工程(2016年8期)2016-10-25 15:54:18
通用Web表單數據采集系統的設計與實現
軟件工程(2016年8期)2016-10-25 15:52:53
基于開源系統的綜合業務數據采集系統的開發研究
有源應答器DBPL解碼算法研究及FPGA實現
主站蜘蛛池模板: 国产亚洲视频免费播放| 国产成人精品日本亚洲77美色| 亚洲午夜国产精品无卡| 亚洲国产一区在线观看| 偷拍久久网| 国产性生大片免费观看性欧美| 国产欧美在线观看一区| 欧美一区二区精品久久久| 在线播放国产一区| 毛片三级在线观看| 国产尹人香蕉综合在线电影| 国产亚洲精品97AA片在线播放| 黄色在线不卡| 女人毛片a级大学毛片免费| 无码乱人伦一区二区亚洲一| 欧美a级完整在线观看| 国产精品久久久免费视频| 久草视频中文| 日韩在线播放欧美字幕| 欧美亚洲一二三区| 国产人免费人成免费视频| 国产浮力第一页永久地址| 九色免费视频| 97在线免费| 国产日本一区二区三区| 亚洲中文字幕手机在线第一页| 国产a v无码专区亚洲av| 99久久国产自偷自偷免费一区| 99re精彩视频| 六月婷婷精品视频在线观看| 欧美精品一区二区三区中文字幕| 狠狠色综合网| 精品人妻无码中字系列| 午夜久久影院| 72种姿势欧美久久久久大黄蕉| 99精品伊人久久久大香线蕉 | av一区二区人妻无码| 欧美成一级| 精品视频一区在线观看| 国产美女91呻吟求| 亚洲第一极品精品无码| 国产一区成人| 国产激情无码一区二区免费| 小蝌蚪亚洲精品国产| 亚洲日韩精品无码专区97| 国产日本欧美在线观看| 亚洲欧美精品日韩欧美| 天堂网亚洲综合在线| 国产午夜无码专区喷水| 亚洲一级毛片在线观| 欧美亚洲一区二区三区在线| 国产欧美视频在线| 亚洲色图欧美| 国产成人一区在线播放| 午夜欧美理论2019理论| 国产97视频在线| 国产黄色爱视频| 国产欧美日韩综合在线第一| 精品無碼一區在線觀看 | 欧美激情成人网| 久久国产V一级毛多内射| 免费人成在线观看成人片| 色一情一乱一伦一区二区三区小说| 国产人碰人摸人爱免费视频| 少妇人妻无码首页| 在线视频亚洲欧美| 精品国产亚洲人成在线| 日本影院一区| 亚洲精品自产拍在线观看APP| 亚洲天堂啪啪| 午夜视频免费试看| 国产性生交xxxxx免费| 伊人激情久久综合中文字幕| 欧美高清三区| 久久伊人色| 91精品在线视频观看| 亚洲熟妇AV日韩熟妇在线| 色久综合在线| 丁香六月激情综合| 国产在线八区| 精久久久久无码区中文字幕| 亚洲精品无码成人片在线观看 |