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

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

2016-02-23 09:07:54
計算機技術與發展 2016年2期
關鍵詞:進程系統

陳 楠

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

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

陳 楠

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

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

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

0 引 言

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

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

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

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

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

1 需求調研

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

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

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

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

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

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

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

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

2 關鍵技術研究

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

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

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

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

2.2 D-Bus技術開發與試驗

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

表1 Linux系統下常用的進程間通信方式

表2 Windows系統下常用的進程間通信方式

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的規范里,unique connection name和well-known name都叫做Bus Name。Bus Name是應用進程和Message Bus之間的連接的名稱。應用進程和Message Bus之間的連接也被稱為Service,當應用進程連接到Message Bus上時,該應用進程可以在Bus上創建一到多個Object(可以把D-Bus的Object理解成面向對象語言里的Object)。Service通過Object為其他應用進程提供訪問接口[6-10]。因為在Message Bus上,一個應用程序可以對應多個Object,所以不同的Object必須由Object Path(類似于文件系統的路徑)來區分。Object Path的格式如“/path/obj”。

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

圖1描述了地震作業監控進程與作業工作進程的關系。

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

3 架構設計

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

4 軟件研發平臺

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

圖1 地震作業監控進程

圖2 系統架構圖

5 應用效果

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

圖3 作業監控界面

監控進程隨時收集統計各工作進程的狀態信息,圖4為工作進程的物理內存使用情況。

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

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

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

6 結束語

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

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

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

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

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

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

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

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

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

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

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

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

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

[9] 唱江盛,郭爭光.基于DOS的實時多任務操作系統的實現及其應用[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] 劉翠鮮.多線程技術在實時監控系統中的應用[J].太原重型機械學院學報,2003,24(4):274-278.

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

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

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

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

[18] 侯 爽,宋穎慧.一種實時系統中的多任務可預測調度算法[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-),男,高級工程師,研究方向為油氣地球物理方法與軟件開發。

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

猜你喜歡
進程系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
主站蜘蛛池模板: 成人福利在线看| 欧美亚洲一区二区三区在线| 亚洲国产欧洲精品路线久久| 国产精品香蕉在线观看不卡| 国产精品女主播| 亚洲第一成年网| 成人在线视频一区| 一本视频精品中文字幕| 草草线在成年免费视频2| 日韩色图区| 亚洲大尺度在线| 视频二区国产精品职场同事| 国产乱视频网站| 久久久久亚洲AV成人网站软件| 国产一区二区精品福利| 尤物国产在线| 第九色区aⅴ天堂久久香| 欧美有码在线| 色综合天天综合| 亚洲区第一页| 亚洲AV成人一区国产精品| 久久精品国产一区二区小说| 日韩第一页在线| 亚洲三级片在线看| 亚洲精品午夜天堂网页| 日韩欧美国产区| 欧美 国产 人人视频| 色综合狠狠操| 国产女人综合久久精品视| 国产视频欧美| 中文字幕 日韩 欧美| 亚洲精选高清无码| 91精品啪在线观看国产60岁| 亚洲国产看片基地久久1024| 日韩东京热无码人妻| 五月婷婷中文字幕| 中文字幕在线播放不卡| 免费一级大毛片a一观看不卡| 99久久精品国产麻豆婷婷| 五月婷婷丁香综合| 激情六月丁香婷婷四房播| 国产精品女主播| 秋霞午夜国产精品成人片| jijzzizz老师出水喷水喷出| 色婷婷综合在线| 精品91在线| 亚洲免费播放| 青青草a国产免费观看| 毛片网站在线播放| 久久久久青草线综合超碰| 欧美一级专区免费大片| 国产成a人片在线播放| 亚洲成在线观看| 亚洲天堂免费| 欧美一级高清免费a| 免费观看男人免费桶女人视频| 一级毛片在线直接观看| 国产农村1级毛片| 一级爱做片免费观看久久| 99视频在线看| 亚洲精品天堂在线观看| 天天做天天爱夜夜爽毛片毛片| 久久a级片| 综合社区亚洲熟妇p| 亚洲三级电影在线播放| 久久精品视频一| 国产一区免费在线观看| 久久久久无码国产精品不卡| 精品国产91爱| 尤物视频一区| 国产精品视频观看裸模| 日韩美毛片| 99视频精品全国免费品| www.av男人.com| 婷婷亚洲最大| 欧美国产日韩在线| 她的性爱视频| 国产在线视频二区| 欧美精品成人| 亚洲一道AV无码午夜福利| a级毛片一区二区免费视频| 久久大香伊蕉在人线观看热2|