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

基于共享內(nèi)存的測試指揮顯示系統(tǒng)進程數(shù)據(jù)同步技術(shù)研究

2020-12-14 09:12:38涂二看見
計算機應用與軟件 2020年12期
關(guān)鍵詞:進程系統(tǒng)

李 強 涂二看見 張 明

(中國華陰兵器試驗中心 陜西 華陰 714200)

0 引 言

測試指揮顯示系統(tǒng)能將測試系統(tǒng)的數(shù)據(jù)收集并進行顯示,對于指揮員掌握試驗整體態(tài)勢、了解試驗進程、輔助進行決策分析具有重要的作用。指揮員在進行試驗測試數(shù)據(jù)實時評估分析或者對試驗的關(guān)鍵進程進行決策時,需要測試指揮顯示系統(tǒng)將試驗中能反映出試驗總體進程的態(tài)勢數(shù)據(jù)、關(guān)鍵設(shè)備測試數(shù)據(jù)、實時監(jiān)視視頻、指令進程數(shù)據(jù)、調(diào)度語音、氣象數(shù)據(jù)、電磁環(huán)境參數(shù)、靶標毀傷數(shù)據(jù)等進行匯集并同步顯示,這就要求測試指揮顯示系統(tǒng)的各個構(gòu)件之間數(shù)據(jù)的高度協(xié)調(diào)和同步。測試指揮顯示系統(tǒng)在設(shè)計時,按照“一體化”軟件集成的思想,將通用服務、數(shù)據(jù)接口以及顯示框架以構(gòu)件方式進行劃分,便于后期功能拓展。系統(tǒng)運行時,終端上部署的通用服務、數(shù)據(jù)接口以及不同的顯示構(gòu)件間需要保持數(shù)據(jù)的一致性,使得呈現(xiàn)在指揮員面前的各類原始數(shù)據(jù)、結(jié)果數(shù)據(jù)、態(tài)勢曲線分析圖表等保持同步。本文主要針對測試指揮顯示系統(tǒng)多個進程間的數(shù)據(jù)同步問題進行分析,并提出解決的思路。

1 進程間數(shù)據(jù)同步的主要方式

進程間的數(shù)據(jù)同步通常可以采用管道、套接字、共享內(nèi)存等機制[1]。管道是一種通過具有兩個端點的固定緩沖區(qū)進行數(shù)據(jù)交換的方式,它采用的是類似于通信中半雙工信道的進程通信機制,一個管道可以實現(xiàn)雙向數(shù)據(jù)傳輸,而同一個時刻只能最多有一個方向的傳輸,管道提供了一種進程間簡單的消息同步方式,管道中的數(shù)據(jù)通常是以FIFO方式保存,在管道的兩端,進程一邊寫入數(shù)據(jù),另一邊則讀取數(shù)據(jù)[2]。共享內(nèi)存則是將某一段內(nèi)存空間通過映射的方式投影在多個用戶進程空間,從而實現(xiàn)多個進程間的數(shù)據(jù)共享,是進程間進行通信最快捷的方式。使用共享內(nèi)存技術(shù),不同進程可以同時訪問相同的內(nèi)存區(qū)域,能夠通過共享它們地址空間的若干部分,對存儲在共享內(nèi)存中的數(shù)據(jù)進行讀寫,從而實現(xiàn)彼此直接通信[3]。采用共享內(nèi)存方式進行數(shù)據(jù)通信時,為避免訪問中出現(xiàn)的同步和互斥問題,需要通過信號量的方式進行進程間的同步和協(xié)調(diào)操作。套接字則是通過操作系統(tǒng)為用戶進程通信提供一種抽象數(shù)據(jù)結(jié)構(gòu)來進行用戶進程間的網(wǎng)絡通信和連接的一種方式[3]。套接字實際上是提供進程通信的端點,通過此端點完成數(shù)據(jù)傳遞。文獻[4]對進程間的數(shù)據(jù)同步方式進行了測試分析,結(jié)果表明使用管道的方式進行數(shù)據(jù)同步,其數(shù)據(jù)傳輸時間基本固定,不隨數(shù)據(jù)報文大小的變化而變化(其傳輸時間基本由管道建立的時間決定),而采用共享內(nèi)存和套接字的方式其數(shù)據(jù)傳輸時間都隨傳輸數(shù)據(jù)報文大小的增加而增加。因此,當傳輸較大數(shù)據(jù)報文時,采用管道方法比較理想;而在傳輸較小的數(shù)據(jù)報文時,共享內(nèi)存方式優(yōu)勢就比較明顯。從文獻中的測試數(shù)據(jù)情況來看,在傳輸數(shù)據(jù)報文小于10 KB時,采用共享內(nèi)存方式性能最優(yōu)。進程通信性能測試比較結(jié)果如圖1所示。

圖1 進程通信性能測試比較

本文研究的測試指揮顯示系統(tǒng)包括態(tài)勢綜合顯示、態(tài)勢管理和綜合數(shù)據(jù)采集服務三大部分。在網(wǎng)絡上部署系統(tǒng)時,通常在一臺終端上部署態(tài)勢管理和綜合數(shù)據(jù)采集服務,在另外多個終端上部署態(tài)勢綜合顯示。為保證多個終端與態(tài)勢管理之間數(shù)據(jù)顯示的一致性,通常需要各終端之間快速的數(shù)據(jù)同步。同步的數(shù)據(jù)包括各類測試數(shù)據(jù)、地圖顯示參數(shù)、編組信息、錄入?yún)?shù)、統(tǒng)計結(jié)果、標繪信息、操作指令等。按照測試顯示系統(tǒng)數(shù)據(jù)交互協(xié)議,目前接收的測試數(shù)據(jù)為固定字長78 B,編組信息、地圖顯示參數(shù)、統(tǒng)計結(jié)果數(shù)據(jù)其數(shù)據(jù)包均小于10 KB,因此按照上文進程通信性能測試的結(jié)果,測試指揮顯示系統(tǒng)最終采用共享內(nèi)存方式實現(xiàn)多進程間的數(shù)據(jù)同步。

2 基于多環(huán)形隊列的共享內(nèi)存異步傳輸數(shù)據(jù)同步機制

2.1 共享內(nèi)存的一般模型

共享內(nèi)存方式實現(xiàn)進程間數(shù)據(jù)同步可以用圖2進行描述。按照共享內(nèi)存的數(shù)據(jù)寫入或讀取方式,將用戶進程分為客戶端和服務端。客戶端讀取數(shù)據(jù)和服務端寫入數(shù)據(jù)。服務器端寫入數(shù)據(jù)時(圖中用進程A表示)首先建立共享內(nèi)存,然后可以往共享內(nèi)存中寫入數(shù)據(jù),并將內(nèi)存區(qū)映射成可以被多個進程訪問的共享內(nèi)存;客戶端讀取數(shù)據(jù)時(圖中用進程B表示)首先獲得共享內(nèi)存的地址,然后通過地址映射,就可以從中讀出數(shù)據(jù)。文獻[4]設(shè)計了單項鏈表的共享內(nèi)存方式進行進程同步測試,其數(shù)據(jù)同步帶寬遠遠大于測試指揮顯示系統(tǒng)同步的需求。

圖2 共享內(nèi)存通信一般模型

然而,測試指揮顯示系統(tǒng)的數(shù)據(jù)同步涉及多個進程,因此在設(shè)計共享內(nèi)存時,需要為每個進程分別建立一個數(shù)據(jù)緩沖區(qū)進行數(shù)據(jù)同步。由于各進程內(nèi)部處理數(shù)據(jù)的速率并不一樣,處理每一批數(shù)據(jù)所消耗時間也就不相同,當這種差別較大時,就會造成相對應的數(shù)據(jù)緩沖區(qū)阻塞,對整個系統(tǒng)運行的性能產(chǎn)生影響,特別是在數(shù)據(jù)長度比較大時,需要引入信號量來協(xié)調(diào)對共享內(nèi)存段的訪問,這會增加較多的時間開銷。因此在共享內(nèi)存需求不斷增大時,需要采用一定的方式對共享內(nèi)存數(shù)據(jù)同步方式進行優(yōu)化,以消除共享內(nèi)存增長引入信號量帶來的性能影響。

針對上述不足,本文提出一種基于多環(huán)形隊列的共享內(nèi)存異步傳輸同步機制,將數(shù)據(jù)讀寫分別用多個環(huán)形隊列進行調(diào)度,很好地解決共享內(nèi)存段讀寫互斥操作帶來的信號量開銷問題,同時降低收發(fā)進程構(gòu)件的耦合度,提高系統(tǒng)整體性能。

2.2 設(shè)計思路

多環(huán)形隊列共享內(nèi)存異步傳輸數(shù)據(jù)同步模型如圖3所示。

圖3 多環(huán)形隊列共享內(nèi)存異步傳輸數(shù)據(jù)同步模型

在多環(huán)形隊列共享內(nèi)存異步傳輸數(shù)據(jù)同步機制中,系統(tǒng)進行數(shù)據(jù)同步的共享內(nèi)存區(qū)分成兩部分:管理控制塊和數(shù)據(jù)區(qū)。管理控制塊由管理控制信息、多個寫隊列環(huán)、多個讀隊列環(huán)組成,管理控制信息保存各寫隊列環(huán)對應的數(shù)據(jù)區(qū)大小,各寫隊列環(huán)寫入數(shù)據(jù)索引和讀取狀態(tài)標志等。寫隊列環(huán)保存的是一組空閑數(shù)據(jù)內(nèi)存塊的索引;讀隊列環(huán)保存的則是已經(jīng)讀取到顯示構(gòu)件中的數(shù)據(jù)內(nèi)存塊索引。

系統(tǒng)工作時,首先申請一塊內(nèi)存區(qū)域作為共享內(nèi)存緩沖池,并根據(jù)接入數(shù)據(jù)的種類和顯示構(gòu)件多少生成相應數(shù)量的寫隊列環(huán)和讀隊列環(huán),同時系統(tǒng)為各寫隊列環(huán)分配不同大小的空閑數(shù)據(jù)塊。空閑數(shù)據(jù)塊的大小和對應的數(shù)據(jù)類型有關(guān),為了節(jié)省系統(tǒng)開銷,空閑數(shù)據(jù)塊大小固定。

數(shù)據(jù)發(fā)送時,系統(tǒng)根據(jù)發(fā)送的數(shù)據(jù)類型,查找相應的寫隊列環(huán),并在這個寫隊列環(huán)上獲取到一個空閑數(shù)據(jù)塊索引,并將數(shù)據(jù)拷貝到該數(shù)據(jù)塊中,并更新管理控制數(shù)據(jù)塊中對應的寫入隊列的寫入索引。數(shù)據(jù)讀取時,系統(tǒng)根據(jù)管理控制數(shù)據(jù)塊中的標志位,將寫入塊索引放至讀取環(huán)的末尾,只有所有讀取環(huán)都寫入該索引后,管理控制數(shù)據(jù)塊中的標志位才重新復位,并更新對應的寫隊列環(huán)中數(shù)據(jù)索引。通過對讀寫環(huán)形隊列的不間斷交替操作,極大地弱化了共享內(nèi)存空間物理結(jié)構(gòu)帶來的影響,從而實現(xiàn)了收發(fā)雙方數(shù)據(jù)的異步傳輸,降低了模塊間的耦合度。采用這種共享內(nèi)存動態(tài)管理的模式可以極大地提高內(nèi)存的利用效率,并且使用多個讀寫隊列環(huán)進行數(shù)據(jù)同步還可以避免多個進程訪問調(diào)度帶來的性能影響。

3 方法設(shè)計

3.1 測試指揮顯示系統(tǒng)構(gòu)成

測試指揮顯示系統(tǒng)為了實現(xiàn)各顯示終端與系統(tǒng)管理端的主從控制模式,設(shè)計了基于多環(huán)形隊列的共享內(nèi)存和多進程協(xié)作機制,通過終端系統(tǒng)軟件的進程管理對共享內(nèi)存中的資源以及進行資源請求的事件進行統(tǒng)一管理。每個終端軟件都有共享內(nèi)存管理進程,可以對資源池中的共享內(nèi)存塊進行調(diào)度管理,將人員編組、地圖標繪、控制指令、態(tài)勢信息等按相應的數(shù)據(jù)包大小構(gòu)建寫隊列環(huán)。讀隊列環(huán)則按照終端系統(tǒng)軟件部署的顯示構(gòu)件進行分配。調(diào)度管理進程通過共享內(nèi)存資源池中定義的管理控制信息對讀寫進程進行調(diào)度管理。每個終端軟件上還需要部署數(shù)據(jù)收發(fā)進程,在系統(tǒng)進程管理下實時對系統(tǒng)端的數(shù)據(jù)進行數(shù)據(jù)同步操作,及時更新資源池中的數(shù)據(jù),使各終端數(shù)據(jù)與系統(tǒng)管理端保持同步。測試指揮顯示系統(tǒng)結(jié)構(gòu)如圖4所示。

圖4 測試指揮顯示系統(tǒng)結(jié)構(gòu)圖

3.2 讀寫數(shù)據(jù)同步的工作流程

系統(tǒng)進行數(shù)據(jù)同步機制設(shè)計時,在共享內(nèi)存空間內(nèi)需要根據(jù)發(fā)送數(shù)據(jù)的類型創(chuàng)建不同的寫隊列環(huán),包括人員編組、地圖標繪、控制指令、態(tài)勢信息等。發(fā)送進程訪問管理控制塊中相應的寫隊列環(huán),如果隊列環(huán)不為空,則執(zhí)行出隊操作,將寫隊列環(huán)head指針指向的空閑數(shù)據(jù)塊初始化,然后進行數(shù)據(jù)拷貝操作,同時將指向該數(shù)據(jù)塊的索引寫入管理控制塊的管理控制信息中,并通過該共享內(nèi)存塊結(jié)構(gòu)體內(nèi)的條件變量,向管理進程發(fā)布數(shù)據(jù)更新事件消息。所有的顯示構(gòu)件(接收方)在收到事件消息提醒后,遍歷對應的讀隊列環(huán),獲取head索引指向的數(shù)據(jù)塊的數(shù)據(jù),同時將數(shù)據(jù)塊結(jié)構(gòu)體中的計算器增加1,若判斷計算器的數(shù)量等于寫隊列環(huán)的數(shù)量,則判斷所有接收進程都已經(jīng)完成數(shù)據(jù)的讀取操作,并更新管理控制信息相應寫隊列環(huán)索引的標志位。終端進程發(fā)送接收流程如圖5所示。

圖5 系統(tǒng)數(shù)據(jù)同步工作流程

4 系統(tǒng)性能分析

為了驗證系統(tǒng)采用多環(huán)形隊列共享內(nèi)存異步傳輸數(shù)據(jù)同步方式的實際性能是否滿足系統(tǒng)的實時性要求,采用VC++9.0編寫模擬數(shù)據(jù)發(fā)送軟件(軟件界面如圖6所示),對測試指揮顯示系統(tǒng)的數(shù)據(jù)讀取、顯示進行比較測試。測試環(huán)境為:主機:CPU i7-6700內(nèi)存8 GB;網(wǎng)絡環(huán)境:百兆局域網(wǎng)。測試指揮顯示系統(tǒng)終端顯示軟件如圖7所示。

圖6 模擬數(shù)據(jù)發(fā)送軟件界面

圖7 測試指揮顯示系統(tǒng)終端軟件界面

4.1 數(shù)據(jù)傳輸延遲測試

為了測試數(shù)據(jù)傳輸延遲,模擬數(shù)據(jù)發(fā)送軟件以固定頻率向系統(tǒng)管理終端發(fā)送一定大小的數(shù)據(jù),需要從管理端同步數(shù)據(jù)的顯示端數(shù)量從1增加到4。利用數(shù)據(jù)發(fā)送和顯示端接收的時間差計算傳輸?shù)难舆t。在本實驗中,發(fā)送方每秒分別發(fā)送500、1 000、1 500、2 000、2 500個固定大小的數(shù)據(jù)包,計算各自的平均數(shù)據(jù)傳輸延遲,實驗結(jié)果如圖8所示。可見,多環(huán)形隊列共享內(nèi)存異步傳輸數(shù)據(jù)同步,數(shù)據(jù)傳輸延遲均隨著傳輸數(shù)據(jù)大小及接收方數(shù)量的增加而緩慢增加,但受同步終端數(shù)量影響不明顯。

圖8 數(shù)據(jù)測試結(jié)果

4.2 最大吞吐量測試

測試指揮顯示系統(tǒng)接收外部數(shù)據(jù),每個數(shù)據(jù)包最大不超過5 KB,因此,在進行系統(tǒng)最大吞吐量測試時,模擬數(shù)據(jù)發(fā)送端傳輸?shù)臄?shù)據(jù)包大小固定為5 KB。發(fā)送方總計發(fā)送10 000個數(shù)據(jù)包,測試在不同發(fā)送頻率下的帶寬。帶寬的計算方式為:帶寬=數(shù)據(jù)包數(shù)量×5KB/時間,其中帶寬、數(shù)據(jù)包、時間均按發(fā)送和接收分別計算。最大吞吐量則為其不丟包時的最大帶寬。數(shù)據(jù)測試結(jié)果如圖9所示。

圖9 數(shù)據(jù)測試結(jié)果

進程間交換數(shù)據(jù)的傳統(tǒng)方法是在共享內(nèi)存中開辟數(shù)組,系統(tǒng)數(shù)據(jù)交換性能在數(shù)據(jù)包個數(shù)一定范圍內(nèi)是基本穩(wěn)定的,但在數(shù)據(jù)超過共享內(nèi)存空間時,系統(tǒng)響應時間會產(chǎn)生比較大的性能滑坡。采用多環(huán)形隊列共享內(nèi)存異步傳輸數(shù)據(jù)同步對共享空間訪問進行優(yōu)化,可以顯著提升系統(tǒng)性能,其傳輸延遲和吞吐量受客戶端數(shù)量影響不大。

5 結(jié) 語

測試指揮顯示系統(tǒng)將試驗中的態(tài)勢數(shù)據(jù)、關(guān)鍵設(shè)備測試數(shù)據(jù)、實時監(jiān)視視頻、指令進程數(shù)據(jù)、調(diào)度語音、氣象數(shù)據(jù)、電磁環(huán)境參數(shù)、靶標毀傷數(shù)據(jù),以及各類數(shù)據(jù)統(tǒng)計結(jié)果進行綜合顯示,是試驗指揮決策的關(guān)鍵環(huán)節(jié)。系統(tǒng)進程間數(shù)據(jù)的同步效率,直接影響其效能的發(fā)揮。本文針對較大數(shù)據(jù)量的數(shù)據(jù)同步問題,設(shè)計一種基于多環(huán)形隊列共享內(nèi)存異步傳輸數(shù)據(jù)同步方法,替代傳統(tǒng)的內(nèi)存數(shù)組的共享方式,很好地解決了大數(shù)據(jù)量匯集時共享內(nèi)存數(shù)據(jù)同步效率降低的問題,提高了系統(tǒng)的適應性和可靠性,也為設(shè)計需要匯集較大數(shù)據(jù)量,且有多個進程進行數(shù)據(jù)同步協(xié)同工作類似指揮顯示系統(tǒng)軟件提供很好的解決思路。

猜你喜歡
進程系統(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)
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
我國高等教育改革進程與反思
Linux僵死進程的產(chǎn)生與避免
男女平等進程中出現(xiàn)的新矛盾和新問題
主站蜘蛛池模板: 国产亚洲日韩av在线| 一本色道久久88| 国产精品第一区| 天天色综网| 国产在线自在拍91精品黑人| 国产精品福利尤物youwu| 亚洲伊人天堂| 国产成人做受免费视频| 成人毛片在线播放| 一级毛片无毒不卡直接观看| 亚洲国产系列| 久久成人免费| 日本手机在线视频| 伊人丁香五月天久久综合| 国产小视频a在线观看| 欧美色99| 在线va视频| 欧洲在线免费视频| 国产精品亚洲一区二区三区z| 午夜视频日本| 啪啪永久免费av| 区国产精品搜索视频| 少妇精品网站| 国产一级视频久久| 日本精品中文字幕在线不卡| 极品性荡少妇一区二区色欲| 国产18在线| 喷潮白浆直流在线播放| 国产二级毛片| 免费无码AV片在线观看中文| 亚洲无码91视频| 日韩无码视频专区| 亚洲一区二区约美女探花| 2020精品极品国产色在线观看| 国产欧美精品一区aⅴ影院| 亚洲男人的天堂久久精品| 91九色最新地址| swag国产精品| 国产成a人片在线播放| 久久精品只有这里有| 国产日韩精品欧美一区灰| 国产视频一区二区在线观看 | 国产网友愉拍精品视频| 蜜桃视频一区二区| 欧美黄色网站在线看| 国产经典在线观看一区| 精品人妻AV区| 欧美区国产区| 国产午夜精品鲁丝片| 国产欧美日韩va另类在线播放| 国产特一级毛片| 亚洲视频a| 欧洲欧美人成免费全部视频| 色香蕉网站| 午夜电影在线观看国产1区| 伊人久久大香线蕉影院| 亚洲无码视频一区二区三区| 日韩欧美国产成人| 高清国产va日韩亚洲免费午夜电影| 欧美日韩动态图| 啪啪永久免费av| 狠狠做深爱婷婷综合一区| 8090成人午夜精品| 欧美一级在线| 视频二区中文无码| 黄色网址手机国内免费在线观看| 日本a∨在线观看| 九九久久精品国产av片囯产区| 黄色网在线| 久久国产亚洲欧美日韩精品| 国产欧美日韩另类精彩视频| 欧美高清日韩| 久久无码av三级| 国产成人高清精品免费软件| 色悠久久久| 国产拍揄自揄精品视频网站| 91丝袜乱伦| 久久黄色免费电影| 99久久99视频| 亚洲国产成人精品一二区| 在线观看欧美国产| 99福利视频导航|