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

        ?

        ELIS成像測井地面采集系統(tǒng)多線程設計及實現(xiàn)

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

        蘭洪霞

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

        關鍵詞:測井系統(tǒng) 數(shù)據(jù)采集 多線程 同步

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

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

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

        1 設計思想

        ELIS地面采集系統(tǒng)最初采用的是單線程設計,其中網(wǎng)絡接收、數(shù)據(jù)處理、數(shù)據(jù)顯示、界面響應、命令發(fā)送等功能都在同一個線程內(nèi)順序執(zhí)行,即執(zhí)行玩、完一個功能,才能執(zhí)行下一個功能,其示意如圖1所示。

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

        把原有的單線程設計改為多線程設計,即把網(wǎng)絡接收、數(shù)據(jù)處理、數(shù)據(jù)顯示、界面響應、命令發(fā)送、文件存儲劃分為獨立的線程,并行執(zhí)行。

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

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

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

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

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

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

        在ELIS地面采集系統(tǒng)軟件中充分利用了多線程的優(yōu)勢:

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

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

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

        (4)提高網(wǎng)絡接收線程的優(yōu)先級,確保實時采集的數(shù)據(jù)包不丟失。

        Message函數(shù)發(fā)送線程間消息,讓網(wǎng)絡接收、數(shù)據(jù)處理等線程停下來,完成內(nèi)存分配及初始化后再發(fā)送線程間消息重啟線程,達到線程間的調(diào)度和協(xié)調(diào)。

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

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

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

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

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

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

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

        (2)線程同步問題。

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

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

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

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

        2 程序實現(xiàn)

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

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

        關鍵詞:測井系統(tǒng) 數(shù)據(jù)采集 多線程 同步

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

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

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

        1 設計思想

        ELIS地面采集系統(tǒng)最初采用的是單線程設計,其中網(wǎng)絡接收、數(shù)據(jù)處理、數(shù)據(jù)顯示、界面響應、命令發(fā)送等功能都在同一個線程內(nèi)順序執(zhí)行,即執(zhí)行玩、完一個功能,才能執(zhí)行下一個功能,其示意如圖1所示。

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

        把原有的單線程設計改為多線程設計,即把網(wǎng)絡接收、數(shù)據(jù)處理、數(shù)據(jù)顯示、界面響應、命令發(fā)送、文件存儲劃分為獨立的線程,并行執(zhí)行。

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

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

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

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

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

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

        在ELIS地面采集系統(tǒng)軟件中充分利用了多線程的優(yōu)勢:

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

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

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

        (4)提高網(wǎng)絡接收線程的優(yōu)先級,確保實時采集的數(shù)據(jù)包不丟失。

        Message函數(shù)發(fā)送線程間消息,讓網(wǎng)絡接收、數(shù)據(jù)處理等線程停下來,完成內(nèi)存分配及初始化后再發(fā)送線程間消息重啟線程,達到線程間的調(diào)度和協(xié)調(diào)。

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

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

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

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

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

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

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

        (2)線程同步問題。

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

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

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

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

        2 程序實現(xiàn)

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

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

        關鍵詞:測井系統(tǒng) 數(shù)據(jù)采集 多線程 同步

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

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

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

        1 設計思想

        ELIS地面采集系統(tǒng)最初采用的是單線程設計,其中網(wǎng)絡接收、數(shù)據(jù)處理、數(shù)據(jù)顯示、界面響應、命令發(fā)送等功能都在同一個線程內(nèi)順序執(zhí)行,即執(zhí)行玩、完一個功能,才能執(zhí)行下一個功能,其示意如圖1所示。

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

        把原有的單線程設計改為多線程設計,即把網(wǎng)絡接收、數(shù)據(jù)處理、數(shù)據(jù)顯示、界面響應、命令發(fā)送、文件存儲劃分為獨立的線程,并行執(zhí)行。

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

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

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

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

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

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

        在ELIS地面采集系統(tǒng)軟件中充分利用了多線程的優(yōu)勢:

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

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

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

        (4)提高網(wǎng)絡接收線程的優(yōu)先級,確保實時采集的數(shù)據(jù)包不丟失。

        Message函數(shù)發(fā)送線程間消息,讓網(wǎng)絡接收、數(shù)據(jù)處理等線程停下來,完成內(nèi)存分配及初始化后再發(fā)送線程間消息重啟線程,達到線程間的調(diào)度和協(xié)調(diào)。

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

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

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

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

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

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

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

        (2)線程同步問題。

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

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

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

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

        2 程序實現(xiàn)

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

        猜你喜歡
        同步數(shù)據(jù)采集
        素質(zhì)教育理念下藝術教育改革的思路
        政府職能的轉變與中國經(jīng)濟結構調(diào)整的同步
        商情(2016年42期)2016-12-23 14:26:58
        公共藝術與城市設計的協(xié)調(diào)與同步
        CS5463在植栽用電子鎮(zhèn)流器老化監(jiān)控系統(tǒng)中的應用
        大數(shù)據(jù)時代高校數(shù)據(jù)管理的思考
        科技視界(2016年18期)2016-11-03 22:51:40
        鐵路客流時空分布研究綜述
        基于廣播模式的數(shù)據(jù)實時采集與處理系統(tǒng)
        軟件工程(2016年8期)2016-10-25 15:54:18
        通用Web表單數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)
        軟件工程(2016年8期)2016-10-25 15:52:53
        基于開源系統(tǒng)的綜合業(yè)務數(shù)據(jù)采集系統(tǒng)的開發(fā)研究
        有源應答器DBPL解碼算法研究及FPGA實現(xiàn)
        亚洲五月婷婷久久综合| 屁屁影院ccyy备用地址 | 乱子伦视频在线看| 国产一区二区三区4区| 在线观看视频国产一区二区三区 | 野花在线无码视频在线播放| 91短视频在线观看免费| 日本一区二区三区精品不卡| 日韩女同视频在线网站| 亚洲午夜精品a片久久www慈禧| 亚洲精品有码在线观看| 美女草逼视频免费播放| 亚洲中文字幕av天堂自拍| 日本牲交大片免费观看| 国产精品流白浆喷水| 中文字幕日本五十路熟女| 老鸭窝视频在线观看| 全部孕妇毛片| 不卡a v无码在线| 国产毛片精品av一区二区| 国产98色在线 | 国产| 中文亚洲av片在线观看不卡| 久久精品视频按摩| 日韩高清不卡一区二区三区| 久久精品人妻无码一区二区三区| 色综合久久丁香婷婷| 一区二区三区日本在线| 欧美午夜理伦三级在线观看| 国产香蕉尹人在线观看视频| 欧美日韩高清一本大道免费| 久久精品国产亚洲av一般男女| 宅男666在线永久免费观看| 国产欧美乱夫不卡无乱码| 国产一品二品三品精品久久| 亚无码乱人伦一区二区| 色欲av亚洲一区无码少妇| 亚洲男人在线无码视频| 国产实拍日韩精品av在线| 人妻少妇边接电话边娇喘| 在线观看一区二区女同| 日产分东风日产还有什么日产|