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

        ?

        基于D-Bus技術的地震作業(yè)管理架構設計

        2016-02-23 09:07:54
        計算機技術與發(fā)展 2016年2期
        關鍵詞:間通信批量進程

        陳 楠

        (中國石油化工股份有限公司石油物探技術研究院,江蘇 南京 211103)

        基于D-Bus技術的地震作業(yè)管理架構設計

        陳 楠

        (中國石油化工股份有限公司石油物探技術研究院,江蘇 南京 211103)

        油氣地球物理軟件研發(fā)隨著勘探領域的技術進步面臨著越來越大的壓力。通過對Windows和Linux系統(tǒng)下進程間通信機制和技術的研究與試驗,描述了一個基于D-Bus技術的單機多任務并行處理軟件架構。結合對油氣地球物理勘探領域地震數據批量處理的需求調研,進行了兩種操作系統(tǒng)下的D-Bus兼容試驗,并結合試驗成果設計了針對地震批處理作業(yè)管理的框架結構,以“自頂向下,分工明確,高聚合,低耦合”的設計原則,編寫了相應的程序,研發(fā)了一套批量處理軟件產品。通過在實際地震勘探室內生產中的應用測試結果表明,該產品具備良好的跨平臺特性,從運行速度、硬件資源的利用率以及系統(tǒng)穩(wěn)定性方面較以前的單機單任務實時處理模式有顯著的提高,解決了進程并發(fā)處理模式下導致的系統(tǒng)資源不足的瓶頸問題。

        D-Bus;批處理;并行;Qt;架構

        0 引 言

        大數據量任務處理一直是地球物理軟件研發(fā)面臨的重要技術難題。在生產領域,調試參數與后續(xù)的批量計算往往是先后關系,在科研領域里也是一樣,不同之處在于科研階段的測試數據往往相對較小,批量運算不影響交互操作,所以許多專業(yè)功能軟件在開發(fā)初期將軟件的執(zhí)行模式設計為實時批處理,即用戶交互操作的同時同一進程進行批量處理工作,這種模式的優(yōu)點在于開發(fā)周期短、工程進度快,可以將開發(fā)重點偏重于功能(地球物理)算法研發(fā)方面,從而忽略了系統(tǒng)的可擴展性。

        隨著近年來野外勘探技術的快速發(fā)展,高精度、高密度、高覆蓋次數地震采集技術的進步[1],使得地震數據日趨龐大?,F狀是,在算法不變、數據量逐漸增大的過程中,傳統(tǒng)的單機單任務批量處理模式存在幾個方面的問題:

        (1)硬件資源沒有得到合理的使用;

        (2)交互-批處理爭奪有限的硬件資源,增加了操作系統(tǒng)的資源分配周期,導致應用程序運行效率降低;

        (3)常有內存不足的情況發(fā)生,使得應用程序異常退出,影響生產進度。

        1 需求調研

        “疊前疊后聯合解釋軟件“是一套集實時疊前分析、偏移距/入射角部分疊加、AVO屬性分析及儲層方位各向異性分析等功能于一體的疊前流體識別和裂縫檢測工具,軟件工程方面的特點是集交互分析、批量處理為一體的系統(tǒng)。針對引言中提出的幾個問題,結合實際生產項目,某工區(qū)4個方位的CRP疊前道集數據所占用磁盤空間約4*500 G=2 TB大小。內存使用情況方面,在不考慮優(yōu)化的條件下,進程導入該數據道頭字所占用內存空間約600 M,按采樣時間4 000 ms,采樣間隔1 ms,最大覆蓋次數為512次的一個3×3宏面元占用約(3×3×512×4 000)×4 Byte=73 728 000 Byte,換算后大約70 M內存空間,即是說在進行單點宏面元AVO交互分析時,軟件將占用至少670 M內存空間。在Windows系統(tǒng)下,32位程序理論尋址空間能有4 GB左右的內存可用,不過實際上系統(tǒng)會把其中2 GB的地址留給內核使用,所以單一進程最大能用2 GB的內存。除去其他開銷(應用程序框架),mingw-32-g++編譯器能夠malloc申請到的內存就只有1.9 GB左右,32位的Linux系統(tǒng)CPU可直接尋址的地址空間是4 GB,每個進程獨享4 GB私有虛擬空間,其中3 GB給程序用,1 GB內核用。

        綜上所述,大數據操作留給一個32位應用程序進程批量處理的內存容量已非常有限,雖然目前64位操作系統(tǒng)已成為主流,但32位應用程序還未完全徹底退出,在近年來的軟件項目中還占據著較大的比例。另一方面,在64位操作系統(tǒng)運行環(huán)境下,尋址空間大幅提升,內存分配上限的瓶頸雖然可以解決,但批量處理與交互處理在同一進程也降低了應用程序的執(zhí)行效率。

        常用的地震資料處理軟件CGG、Omega、FOCUS等早已發(fā)展為分布式并行處理模式,這種機制在資源共享、海量運算、并行處理、負載平衡等方面發(fā)揮了很大的優(yōu)勢,不過這種模式大都是基于CPU資源不足而共享的假設之上,通過設計合理的負載平衡算法,當獲得有效CPU資源,數據就“移動”至相應節(jié)點計算開始,然后返回計算結果。其缺點是大部分時間被消耗在了數據傳輸過程中[2]。從進行常規(guī)處理模塊流程來講,個人PC的單機多任務批量處理系統(tǒng)模式理論上能夠勝任工作。

        在單機模式下,一個比較合理的辦法就是分散處理,把計算任務分發(fā)到不同的工作進程,工作進程由監(jiān)控進程統(tǒng)一管理,監(jiān)控進程負責收集多個工作進程的工作狀態(tài)、執(zhí)行情況和資源分配等信息,工作進程與監(jiān)控進程可以互通信息并發(fā)送指令[3-5]。該模式的特點:

        (1)硬件資源得到充分的利用;

        (2)交互操作與批量處理分開管理,避免資源爭奪;

        (3)各個進程分配各自的存儲空間,增加了可用內存容量,降低了內存不足的現象;

        (4)軟件開發(fā)人員對批處理任務的執(zhí)行情況細節(jié)掌握更精準,減少了軟件的糾錯時間,降低了維護成本。

        2 關鍵技術研究

        2.1 進程間通信技術研究與試驗

        單機多任務批量處理模式中,進程間的通信是關鍵的一環(huán),穩(wěn)定性、實用性、跨平臺方面都要予以考慮。Windows和Linux系統(tǒng)下的進程間通信技術較多,通過大量的研究實驗,各種技術對比分析見表1和表2。

        地震作業(yè)管理系統(tǒng)的任務進程主要由1個監(jiān)控進程和多個工作進程組成。監(jiān)控進程與各工作進程建立通信并互通消息,消息的內容包含各種執(zhí)行狀態(tài)、資源信息和指令隊列,雙方根據接收的指令執(zhí)行相應的操作,工作進程間原則上不建立通信連接。通過對各種進程間通信技術測試代碼的編寫和試驗,從進程間通信頻率較高的需求方面,管道模式在雙向通信能力方面不能有效避免同步和阻塞問題,從跨平臺的角度考慮,大多數模式即使在不同系統(tǒng)下的機制相似,但開發(fā)時需要設計兩套不同的代碼流程,增加了項目的開發(fā)成本和周期。

        通過測試demo對各種機制的應用試驗,提出一種基于D-Bus的進程間通信技術。D-Bus本身是構建在Sockets機制之上。真正的通信還是由Sockets來完成的,Sockets本身支持跨平臺開發(fā),在數據信息雙向傳輸方面方便快捷。D-Bus則是在這之上,制定了一些通信協(xié)議,并提供了更高一層的接口,更方便應用程序之間進行數據的交互傳遞,這樣就有效解決了Sockets僅提供底層API而導致的開發(fā)工作量大的難題。

        2.2 D-Bus技術開發(fā)與試驗

        D-Bus提供了多種Message Bus用于應用程序之間的通信,但用途比較廣泛的主要是System Bus和Session Bus兩種。System Bus主要用于內核和一些系統(tǒng)全局的Service之間的通信,Session Bus主要用于桌面應用程序之間的通信,兩者之間不能互相通信。所以任何應用程序不能欺騙系統(tǒng)事件,安全性很好。D-Bus的架構原理、工作方式不是文中的重點討論內容,所以不再詳述。

        表1 Linux系統(tǒng)下常用的進程間通信方式

        表2 Windows系統(tǒng)下常用的進程間通信方式

        D-Bus中用于通信的基本單元叫做Message,當應用程序連接到Message Bus上時,D-Bus會自動分配一個unique connection name,這個unique name通常的格式舉例為“:01-001”。unique name以“:”開頭,后面的數字沒有特別的意義,只是為了保證這個unique name的唯一性。另外,應用進程還可以向Message Bus請求一個well-known name,格式如同一個反置的域名,例如“swty.news.monitor”。當一個應用進程連接到Message Bus上時,可以擁有兩種名稱:unique connection name和well-known name。這兩種名稱可以理解為IP地址和域名的關系。在D-Bus的規(guī)范里,unique connection name和well-known name都叫做Bus Name。Bus Name是應用進程和Message Bus之間的連接的名稱。應用進程和Message Bus之間的連接也被稱為Service,當應用進程連接到Message Bus上時,該應用進程可以在Bus上創(chuàng)建一到多個Object(可以把D-Bus的Object理解成面向對象語言里的Object)。Service通過Object為其他應用進程提供訪問接口[6-10]。因為在Message Bus上,一個應用程序可以對應多個Object,所以不同的Object必須由Object Path(類似于文件系統(tǒng)的路徑)來區(qū)分。Object Path的格式如“/path/obj”。

        筆者從事項目主要考慮桌面應用進程間通訊,與操作系統(tǒng)內核并無關聯需求,所以各進程主要建立在Session Bus通信基礎上。

        圖1描述了地震作業(yè)監(jiān)控進程與作業(yè)工作進程的關系。

        D-BUS Daemon為后臺進程,作為D-Bus的消息中轉樞紐,類似于IP網絡中的路由器,在Linux系統(tǒng)下稱為守護進程,在Windows系統(tǒng)下可稱為常駐監(jiān)控進程,負責接收、處理并轉發(fā)進程發(fā)送來的消息指令[11-13]?!皊wty.news.monitor”為監(jiān)控進程,負責管理進程執(zhí)行過程,完成系統(tǒng)資源統(tǒng)計與分配?!皊wty.news.offsettoangle”、“swty.news.Anisotropic”、“swty.news.Prestack”為3個工作進程,任務單一,分別完成角度道集轉換、方位各向異性分析和道集疊加功能,并實時將執(zhí)行狀態(tài)反饋至監(jiān)控進程。

        3 架構設計

        圖2是整個地震作業(yè)管理機制的抽象描述。本著“自頂向下,分工明確,高聚合,低耦合”的設計原則,將主框架分為“主應用進程”、“監(jiān)控進程”、“工作進程”、“作業(yè)管理框架”等子系統(tǒng),每個子系統(tǒng)都是獨立單元,按照功能分配提供必要的I/O接口。這里的I/O接口不僅是地震數據的輸入輸出,也包括子系統(tǒng)內部的工作狀態(tài)、執(zhí)行情況、資源利用率等服務信息。作為執(zhí)行主體,“工作進程”承擔了主要的運算,提供與底層數據庫的I/O和D-Bus總線的信息交換,根據不同的計算粒度,進程內采用多核多線程的并行機制,提高了獨立運算速度。整個架構的明顯優(yōu)勢在于,各功能元素各自運行[14-18],工作情況完全透明,監(jiān)控系統(tǒng)可以監(jiān)測、收集并統(tǒng)計每個對象的相關信息,并且保證在局部運行出錯的情況下不影響整個系統(tǒng)的穩(wěn)定性。

        4 軟件研發(fā)平臺

        基于前面的系統(tǒng)架構與說明,在開發(fā)平臺的選擇方面,考慮到dbus官方源碼編譯的庫文件提供的都是較低級的API,從開發(fā)經驗來講,API越低級,開發(fā)人員的靈活性就越高,同時帶來的缺陷也比較明顯,即降低了軟件的可讀性,加大了維護成本。鑒于此,選擇使用Qt作為集成開發(fā)平臺。Qt是目前比較常用的跨平臺開發(fā)工具,在對D-Bus的支持方面,封裝了對D-Bus的鏈接、綁定、注冊以及消息響應機制,但是Qt官方聲明它的dbus封裝是不支持Windows平臺的,所以要針對Windows平臺作系統(tǒng)適應性編譯和改造,改造后的QtDBus庫才能支持跨平臺統(tǒng)一開發(fā)。

        圖1 地震作業(yè)監(jiān)控進程

        圖2 系統(tǒng)架構圖

        5 應用效果

        利用焦石壩某工區(qū)的實際地震資料作為疊前道集測試數據,圖3是同時在本機進行的10個地震批量作業(yè)的執(zhí)行監(jiān)控情況,等待作業(yè)隊列里還有3個等待執(zhí)行的定時任務。

        圖3 作業(yè)監(jiān)控界面

        監(jiān)控進程隨時收集統(tǒng)計各工作進程的狀態(tài)信息,圖4為工作進程的物理內存使用情況。

        從兩個作業(yè)完成后的內存曲線來看,作業(yè)B的內存落差明顯較小,所以可以判定該進程內部存在內存泄漏現象。

        工作進程獨立執(zhí)行,完全脫離交互引用,每個進程在32位系統(tǒng)下理論可支持2 GB堆內存空間分配,進程內部支持多核并行運算。從實際測試結果來看,已沒有出現系統(tǒng)資源緊迫或不足的現象,并且硬件資源也得到了充分利用,在CPU和物理內存高效率利用的情況下,疊前疊后聯合解釋交互系統(tǒng)依然可以穩(wěn)定運行,沒有出現明顯的卡機或者停滯現象。

        圖4 工作進程的物理內存使用情況

        6 結束語

        通過對多種進程間通信技術的研究與試驗,結合油氣地球物理學軟件的現狀,分析、研究并設計了一套滿足當前硬、軟件需求的地震作業(yè)管理架構,開發(fā)了適用于地震生產項目的軟件版本。該軟件系統(tǒng)具備以下幾個方面的特點:

        (1)基于D-Bus總線系統(tǒng),跨平臺工作,信息傳遞穩(wěn)定性和安全性高;

        (2)分層結構設計,接口清晰,軟件維護方便快捷;

        (3)解決了常規(guī)軟件交互與批量在同一進程導致的系統(tǒng)資源爭奪問題,大幅提高了硬件資源使用率。

        下一步將在實際生產應用中繼續(xù)推廣和完善。

        [1] 陳 楠,祝媛媛,張光德,等.基于QT的地震勘探可擴展平臺研發(fā)與應用[J].華北地震科學,2013,31(4):31-36.

        [2] 桂兵祥,何 健.基于高性能云的分布式數據并行處理機制[J].武漢工業(yè)學院學報,2010,29(1):60-63.

        [3] 王秀閩,劉 洪,劉永江,等.地震數據處理系統(tǒng)中交互作業(yè)編輯與運行[J].地球物理學進展,2007,22(3):860-864.

        [4] 羅 旦.基于DBUS的嵌入式系統(tǒng)應用程序接口的研究[D].武漢:華中科技大學,2011.

        [5] 孟令斌.基于桌面總線的嵌入式應用框架的設計與實現[D].武漢:華中科技大學,2013.

        [6] 潘永雄.基于過程的單片機多任務程序結構及實現方法[J].電子工程師,2005,31(3):5-7.

        [7] 陳家新,彭寧嵩.DOS環(huán)境下實時多任務調度策略的實現[J].計算機應用,2000,20(5):45-47.

        [8] 潘瑋華.用C++語言模擬主存動態(tài)分配管理[J].電腦編程技巧與維護,2010(12):14-17.

        [9] 唱江盛,郭爭光.基于DOS的實時多任務操作系統(tǒng)的實現及其應用[J].計算機工程與應用,1994(11):66-69.

        [10] 楊傳安,王國夫,張海勛.Linux下的多線程編程[J].應用科技,2001,28(5):28-30.

        [11] 卓能文,巨世杰.Win95/98/NT進程間實時通信的實現[J].艦船電子工程,1999(1):30-34.

        [12] 徐洪斌,蘇鐵熊,董小瑞.多線程技術及其實現[J].山西電子技術,2003(3):15-16.

        [13] 劉翠鮮.多線程技術在實時監(jiān)控系統(tǒng)中的應用[J].太原重型機械學院學報,2003,24(4):274-278.

        [14] 曲紹云.分布式異構系統(tǒng)中任務調度問題的研究[D].青島:青島大學,2005.

        [15] 陳 杰,何援軍.基于軟件總線CAD軟件體系結構研究[J].計算機輔助設計與圖形學學報,2004,16(9):1319-1323.

        [16] 張志杰.基于分層結構的管理信息系統(tǒng)架構設計[J].計算機技術與發(fā)展,2010,20(10):146-149.

        [17] 武新立.協(xié)同軟件開發(fā)的可視化平臺研究與實現[D].上海:東華大學,2010.

        [18] 侯 爽,宋穎慧.一種實時系統(tǒng)中的多任務可預測調度算法[J].計算機工程,2004,30(16):67-69.

        Design of Seismic Operation Management Architecture Based on D-Bus Technology

        CHEN Nan

        (Sinopec Geophysical Research Institute,Nanjing 211103,China)

        Oil and gas geophysical software R&D is facing more and more pressure with the technical progress of the exploration area.Based on the research and experiment of communication mechanism and technology between procedures in Windows and Linux system,describe a single multi task parallel processing software architecture based on D-Bus technology.The D-Bus compatibility test is carried out in two different operating systems combined with the demand studying for seismic data batch processing of oil and gas geophysical field,and design the framework according to seismic batch operation management in combination of test result,and write the corresponding program with principle of "top down,clear division of labor,high polymerization and low coupling",and develop a set of batch processing software product.The test results of application show that the product has a good cross platform characteristics,and has a significant improvement from the operating speed,the utilization rate of hardware resource and the system stability,solving the bottleneck of system resource shortage caused by parallel processing.

        D-Bus;batch;parallel;Qt;architecture

        2015-05-26

        2015-08-31

        時間:2016-01-26

        國家科技重大專項(2011ZX05035)

        陳 楠(1980-),男,高級工程師,研究方向為油氣地球物理方法與軟件開發(fā)。

        http://www.cnki.net/kcms/detail/61.1450.TP.20160126.1521.070.html

        TP311.52

        A

        1673-629X(2016)02-0179-06

        10.3969/j.issn.1673-629X.2016.02.040

        猜你喜歡
        間通信批量進程
        細胞間通信預測方法研究進展
        批量提交在配置分發(fā)中的應用
        科學家(2021年24期)2021-04-25 12:55:27
        債券市場對外開放的進程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        綜合航電分區(qū)間通信元模型設計研究
        淺議高校網銀批量代發(fā)
        基于AUTOIT3和VBA的POWERPOINT操作題自動批量批改
        考慮價差和再制造率的制造/再制造混合系統(tǒng)生產批量研究
        社會進程中的新聞學探尋
        民主與科學(2014年3期)2014-02-28 11:23:03
        我國高等教育改革進程與反思
        Linux僵死進程的產生與避免
        国产成人精品一区二区日出白浆| 亚洲国产成人久久一区| 91在线精品老司机免费播放| 日本成熟妇人高潮aⅴ| 极品夫妻一区二区三区| 国产av国片精品有毛| 色翁荡息又大又硬又粗又视频图片| 在线观看国产三级av| 网址视频在线成人亚洲| 成年丰满熟妇午夜免费视频| 无码精品人妻一区二区三区人妻斩 | 国产一区二区精品尤物| 人妻精品人妻一区二区三区四五| 国产一区二区三区激情视频| 在熟睡夫面前侵犯我在线播放| 日本a在线看| av成人资源在线播放| 天堂视频在线观看一二区| 双腿张开被9个男人调教| 无码人妻专区免费视频 | 中文字幕日韩有码国产| 日本高清视频永久网站www| 精品88久久久久88久久久| 一亚洲一区二区中文字幕| 午夜被窝精品国产亚洲av香蕉| 亚洲老妈激情一区二区三区| a级福利毛片| 亚洲最大不卡av网站| 麻豆网神马久久人鬼片| 美女扒开内裤让男生桶| 99精品国产成人一区二区在线| 亚洲一区二区在线观看免费视频| 毛片a级毛片免费观看| 久久频精品99香蕉国产| 亚洲一区在线二区三区| 99久久久无码国产精品秋霞网| 国产精品丝袜黑色高跟鞋| av网址不卡免费在线观看| 麻豆资源在线观看视频| 无遮无挡爽爽免费视频| 99久久精品国产片|