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

一種嵌入式軟件并行處理框架設(shè)計(jì)

2022-03-19 01:57:20劉浩方含章方青
電腦知識(shí)與技術(shù) 2022年2期

劉浩 方含章 方青

摘要:在電子類產(chǎn)品設(shè)計(jì)中,嵌入式軟件對(duì)提升產(chǎn)品自動(dòng)化、智能化水平,發(fā)揮著不可替代的重要作用,同時(shí)系統(tǒng)對(duì)嵌入式軟件的實(shí)時(shí)處理和并發(fā)處理能力也提出了更高的設(shè)計(jì)要求。該文提出了基于組件的數(shù)據(jù)驅(qū)動(dòng)運(yùn)行方式,采用FIFO+信號(hào)量+線程+CPU負(fù)載均衡等編程技術(shù)實(shí)現(xiàn)了一種任務(wù)級(jí)并行處理架構(gòu)(適用于Windows和Linux操作系統(tǒng)),并在工程上得到了很好的應(yīng)用。

關(guān)鍵詞:嵌入式軟件;OSE;數(shù)據(jù)驅(qū)動(dòng);并行處理;負(fù)載均衡

中圖分類號(hào):TP311.11 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2022)02-0064-05

1 引言

在各類電子產(chǎn)品和系統(tǒng)設(shè)計(jì)中,嵌入式軟件[1- 3]得到了廣泛應(yīng)用,特別是利用大數(shù)據(jù)和人工智能技術(shù),嵌入式軟件對(duì)提升這類產(chǎn)品和系統(tǒng)的自動(dòng)化、智能化水平,發(fā)揮著不可替代的重要作用;同時(shí)系統(tǒng)對(duì)嵌入式軟件的實(shí)時(shí)處理和并發(fā)處理能力也提出了更高的設(shè)計(jì)要求。

一般地,嵌入式軟件基于強(qiáng)實(shí)時(shí)操作系統(tǒng)(如vxWorks),采用串行處理邏輯實(shí)現(xiàn)對(duì)設(shè)備的實(shí)時(shí)控制和數(shù)據(jù)采集、分析、處理等任務(wù),基本能保證系統(tǒng)的實(shí)時(shí)性和數(shù)據(jù)處理任務(wù)的需要。但隨著系統(tǒng)任務(wù)處理復(fù)雜程度的與日俱增和新技術(shù)的應(yīng)用(大數(shù)據(jù)、人工智能技術(shù)),串行處理架構(gòu)很難滿足多任務(wù)實(shí)時(shí)處理的需要。

當(dāng)前,主流嵌入式軟件基于組件化架構(gòu)[4-5]進(jìn)行軟件開發(fā),在一定程度上實(shí)現(xiàn)了業(yè)務(wù)和過程層面的多任務(wù)并行處理,本文提出一種并行處理軟件設(shè)計(jì)框架,試圖解決任務(wù)級(jí)并行處理軟件設(shè)計(jì)問題。

對(duì)于嵌入式軟件,其業(yè)務(wù)組件基本運(yùn)行方式有兩種(見圖1):一種基于數(shù)據(jù)驅(qū)動(dòng)的信號(hào)量通知方式,另一種為基于系統(tǒng)定時(shí)器調(diào)用方式。其中數(shù)據(jù)驅(qū)動(dòng)方式是一種被動(dòng)方式,一旦有外部數(shù)據(jù)輸入時(shí)系統(tǒng)會(huì)自動(dòng)喚醒該線程并進(jìn)行相應(yīng)任務(wù)處理,如果該任務(wù)處理結(jié)果產(chǎn)生新的數(shù)據(jù),則同時(shí)需要將數(shù)據(jù)推送給與之關(guān)聯(lián)的組件;系統(tǒng)周期性任務(wù)的處理一般采用系統(tǒng)定時(shí)器方式,完成周期性任務(wù)處理。本文提出的任務(wù)級(jí)并行處理架構(gòu)正是基于組件數(shù)據(jù)驅(qū)動(dòng)的運(yùn)行方式,采用FIFO+信號(hào)量+線程+CPU負(fù)載均衡等編程技術(shù)來實(shí)現(xiàn)。

2 操作系統(tǒng)擴(kuò)展(OSE)

操作系統(tǒng)擴(kuò)展(OSE)是一種跨平臺(tái)編程方法,本文采用標(biāo)準(zhǔn)C語言設(shè)計(jì)一組OSE公用庫,為應(yīng)用軟件開發(fā)提供線程、互斥量、信號(hào)量以及線程(進(jìn)程)延遲等與操作系統(tǒng)密切關(guān)聯(lián)的高級(jí)編程功能模塊,可以支持跨平臺(tái)、跨操作系統(tǒng)的擴(kuò)展功能,一般采用宏定義方式來兼容不同操作系統(tǒng)對(duì)線程、互斥量和信號(hào)量的處理,宏定義一般定義示例如下。

#if defined SYSTEM_UNIX ? //適合Linux 系統(tǒng)

#define WP_Mutex ?pthread_mutex_t ?//互斥量

#define WP_Handle ?pthread_t ? //線程句柄

#define WP_Semaphore sem_t* ? ?//信號(hào)量

#elif defined WIN32 ? ?//適合Windows 系統(tǒng)

#define WP_Mutex ? CRITICAL_SECTION //互斥量

#define WP_Handle ? HANDLE ? //線程句柄

#define WP_Semaphore ?HANDLE ? //信號(hào)量

#endif

2.1 互斥量

互斥量[4]在多任務(wù)、多線程、并行處理等計(jì)算機(jī)軟件設(shè)計(jì)中應(yīng)用廣泛。互斥量適用于管理共享資源。由于互斥量在實(shí)現(xiàn)時(shí)既容易又有效,這使得互斥量在實(shí)現(xiàn)用戶線程保護(hù)時(shí)非常有用。互斥量基本操作函數(shù)使用示例如(表1)所示。

2.2 信號(hào)量

信號(hào)量[4](Semaphore),是在多線程環(huán)境下使用的一種保護(hù)措施,可以用來保證兩個(gè)或多個(gè)關(guān)鍵代碼段不被并發(fā)調(diào)用。在并行處理設(shè)計(jì)中,信號(hào)量可以用來通知線程有新數(shù)據(jù)進(jìn)入以便及時(shí)啟動(dòng)任務(wù)處理,信號(hào)量基本操作函數(shù)有信號(hào)量的創(chuàng)建、銷毀、觸發(fā)量和等待,信號(hào)量基本函數(shù)示例如(表2)所示。

2.3 線程

線程(thread)是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位。它被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)作單位。一個(gè)進(jìn)程中可以并發(fā)多個(gè)線程,每條線程并行執(zhí)行不同的任務(wù),在進(jìn)行嵌入式軟件設(shè)計(jì)時(shí),根據(jù)軟件任務(wù)需求,對(duì)軟件的功能進(jìn)行分解,并為每一個(gè)軟件任務(wù)設(shè)計(jì)和實(shí)現(xiàn)一個(gè)相應(yīng)功能的工作線程,屬于“任務(wù)一線程”模式[6]。

在多核、多CPU處理器上使用多線程程序設(shè)計(jì)的好處是顯而易見,大大提高了程序的執(zhí)行吞吐率。在單CPU單核的計(jì)算機(jī)上,使用多線程技術(shù),也可以把進(jìn)程中負(fù)責(zé)I/O處理、人機(jī)交互而常被阻塞的部分與密集計(jì)算的部分分開來執(zhí)行,編寫專門的workhorse線程執(zhí)行密集計(jì)算,從而提高了程序的執(zhí)行效率。線程基本操作函數(shù)有線程創(chuàng)建和線程停止&釋放(表3)。

3 嵌入式軟件并行處理框架設(shè)計(jì)

一般的嵌入式軟件主要任務(wù)是完成對(duì)設(shè)備的數(shù)據(jù)采集、分析、加工(處理)和應(yīng)用,復(fù)雜的電子設(shè)備或者系統(tǒng)對(duì)實(shí)時(shí)數(shù)據(jù)處理和高頻度并發(fā)處理的要求更高,除了增加計(jì)算機(jī)數(shù)量和提高計(jì)算機(jī)CPU處理性能外,采用并行處理更是一種高效地提高實(shí)時(shí)數(shù)據(jù)處理能力的最佳途徑。

本文采用FIFO+信號(hào)量+多線程+CPU負(fù)載均衡等編程技術(shù)實(shí)現(xiàn)了一種數(shù)據(jù)任務(wù)并行處理架構(gòu),其基本思路是將基本數(shù)據(jù)處理任務(wù)線程化(根據(jù)計(jì)算機(jī)CPU內(nèi)核數(shù)創(chuàng)建一定數(shù)量的數(shù)據(jù)任務(wù)處理線程,并放入任務(wù)線程池中實(shí)施統(tǒng)一管理),采用FIFO管理任務(wù)的輸入數(shù)據(jù),任務(wù)系統(tǒng)通過對(duì)各個(gè)線程處理任務(wù)的飽和度動(dòng)態(tài)評(píng)估,將實(shí)時(shí)數(shù)據(jù)分配給任務(wù)飽和度最輕的任務(wù),各個(gè)線程啟動(dòng)任務(wù)處理的方式是任務(wù)系統(tǒng)在分配數(shù)據(jù)后觸發(fā)信號(hào)量來通知相應(yīng)線程開始處理數(shù)據(jù)。

并行處理基本框架的數(shù)據(jù)結(jié)構(gòu)主要有標(biāo)準(zhǔn)FIFO任務(wù)處理(FiFoTask)(表4)和并行任務(wù)管理(FiFoTaskManager)(表5)。

嵌入式軟件并行處理基本任務(wù)有框架創(chuàng)建和數(shù)據(jù)均衡分配,其中框架創(chuàng)建主要完成系統(tǒng)任務(wù)管理參數(shù)的配置、資源系統(tǒng)資源申請(qǐng)、FIFO創(chuàng)建以及任務(wù)數(shù)據(jù)處理線程、數(shù)據(jù)均衡分配線程的創(chuàng)建和管理;數(shù)據(jù)均衡分配主要負(fù)責(zé)實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)的任務(wù)分配和觸發(fā)任務(wù)線程運(yùn)行管理(見圖2)。

數(shù)據(jù)均衡分配例程是本框架的核心處理,負(fù)責(zé)數(shù)據(jù)的動(dòng)態(tài)分配、CPU負(fù)載均衡處理(新的任務(wù)線程創(chuàng)建和CPU核分配),并負(fù)責(zé)任務(wù)線程運(yùn)行管理(見圖3)。

任務(wù)數(shù)據(jù)處理例程是并行處理任務(wù)的主體,是根據(jù)軟件業(yè)務(wù)處理要求設(shè)計(jì)的基本任務(wù)處理單元,典型處理流程見圖4。

4 軟件并行處理框架實(shí)現(xiàn)

根據(jù)上節(jié)嵌入式軟件并行處理框架設(shè)計(jì),本節(jié)給出框架主要模塊組成和設(shè)計(jì)邏輯,框架主要模塊有組成初始化標(biāo)準(zhǔn)FIFO處理任務(wù)(vLoadFiFoProcessTask)、退出標(biāo)準(zhǔn)FIFO處理任務(wù)(vExitFiFoProcessTask)、申請(qǐng)一個(gè)標(biāo)準(zhǔn)任務(wù)(lpApplyOneTask)、初始化標(biāo)準(zhǔn)FIFO任務(wù)參數(shù)(vInitFiFoTaskPara)、退出FIFO處理任務(wù)(vFreeFiFoTask)、FIFO任務(wù)分配(數(shù)據(jù)均衡分配)(vTaskBanlanceAssignProcess)和任務(wù)數(shù)據(jù)處理(vTaskDataProcessThread),具體說明見表6。

初始化標(biāo)準(zhǔn)FIFO處理任務(wù)、退出標(biāo)準(zhǔn)FIFO處理任務(wù)、申請(qǐng)一個(gè)標(biāo)準(zhǔn)任務(wù)的典型處理流程見圖5。

系統(tǒng)任務(wù)參數(shù)管理、釋放系統(tǒng)任務(wù)的典型處理流程見圖6。

FIFO任務(wù)分配(數(shù)據(jù)均衡分配)、任務(wù)數(shù)據(jù)處理的典型處理流程參見圖2、圖3,這里不再重復(fù)。

5 性能測(cè)試

本文將并行軟件處理架構(gòu)應(yīng)用到機(jī)載GMTI雷達(dá)數(shù)據(jù)處理中,數(shù)據(jù)處理系統(tǒng)接收到信號(hào)處理送來的點(diǎn)跡,一般按照?qǐng)D7所示流程進(jìn)行處理[7],傳統(tǒng)的方法采用單線程進(jìn)行下圖中流程處理。機(jī)載GMTI雷達(dá)在進(jìn)行對(duì)地動(dòng)目標(biāo)探測(cè)時(shí),由于地面背景的強(qiáng)反射,導(dǎo)致雷達(dá)檢測(cè)后的點(diǎn)跡數(shù)據(jù)量非常大,傳統(tǒng)的方法在進(jìn)行機(jī)載GMTI雷達(dá)數(shù)據(jù)處理時(shí),由于采用的是單線程順序處理,導(dǎo)致處理效率低下,航跡延遲較大,影響雷達(dá)工作效能[8]。

針對(duì)機(jī)載GMTI雷達(dá)點(diǎn)跡數(shù)據(jù)量大的問題,基于多線程并行軟件處理架構(gòu),并根據(jù)雷達(dá)數(shù)據(jù)的局部性特征,把雷達(dá)探測(cè)區(qū)域按照探測(cè)距離劃分成多個(gè)不同的區(qū)域,每個(gè)區(qū)域的數(shù)據(jù)處理設(shè)計(jì)一個(gè)處理線程,負(fù)責(zé)其中一塊區(qū)域的處理,各區(qū)域之間的數(shù)據(jù)相互獨(dú)立,不會(huì)發(fā)生數(shù)據(jù)互聯(lián),因此各區(qū)域處理任務(wù)可以并行處理。圖8是機(jī)載GMTI雷達(dá)數(shù)據(jù)處理示例,在進(jìn)行數(shù)據(jù)處理時(shí),將150公里的測(cè)繪帶分為三個(gè)子帶分別進(jìn)行處理,三個(gè)子帶對(duì)應(yīng)三個(gè)處理線程,為了保證對(duì)穿越不同區(qū)域目標(biāo)跟蹤的正確性,相鄰區(qū)域存在一定的重疊,重疊區(qū)域的大小一般可設(shè)置為觀測(cè)目標(biāo)最大運(yùn)動(dòng)速度在一個(gè)掃描周期內(nèi)運(yùn)動(dòng)距離的2到3倍,如圖8所示。

按照雷達(dá)探測(cè)區(qū)域劃分子任務(wù),各子帶處理線程在處理過程中不需要進(jìn)行同步和通信,在收到偵查的點(diǎn)跡數(shù)據(jù)后,按照距離將數(shù)據(jù)向多個(gè)處理線程進(jìn)行分發(fā),各線程獨(dú)立進(jìn)行處理,輸出各子帶航跡數(shù)據(jù),最后由綜合處理模塊對(duì)各子任務(wù)處理結(jié)果進(jìn)行合并,獲取全測(cè)繪帶的航跡數(shù)據(jù),因此并行處理效率比較高。

通過搭建試驗(yàn)平臺(tái),對(duì)真實(shí)裝備采集的機(jī)載GMTI雷達(dá)數(shù)據(jù)進(jìn)行處理,數(shù)據(jù)總時(shí)長200s,如表7所示,分別采用單任務(wù)和多個(gè)任務(wù)進(jìn)行處理,并對(duì)結(jié)果進(jìn)行了統(tǒng)計(jì)分析。

由表7可以看出,采用少于3個(gè)處理線程時(shí),處理時(shí)效性不能滿足要求,有一定的延遲,而當(dāng)線程數(shù)達(dá)到4個(gè)時(shí),能夠滿足時(shí)效性要求,因此采用并行處理架構(gòu)進(jìn)行數(shù)據(jù)處理,處理效率能夠得到明顯提升,從而驗(yàn)證了并行處理架構(gòu)的有效性。

6 結(jié)束語

基于FIFO+信號(hào)量+線程+CPU負(fù)載均衡等編程技術(shù)實(shí)現(xiàn)的嵌入式軟件任務(wù)級(jí)并行處理架構(gòu),適合于單機(jī)嵌入式軟件開發(fā)使用,并在工程上得到了很好的應(yīng)用。但隨著大數(shù)據(jù)、人工智能技術(shù)在電子類產(chǎn)品和系統(tǒng)上的深入廣泛應(yīng)用,系統(tǒng)對(duì)嵌入式軟件處理的實(shí)時(shí)性、并發(fā)性和大容量、高頻度數(shù)據(jù)處理等提出了更高的處理性能要求,下一步將著力基于多機(jī)和服務(wù)器集群平臺(tái)以及云計(jì)算平臺(tái)的實(shí)時(shí)數(shù)據(jù)并行處理需要展開研究,不斷完善并行處理框架,以適應(yīng)不同平臺(tái)和系統(tǒng)的并行處理需要。

參考文獻(xiàn):

[1] Van Der Linde P.C專家編程[M].徐波,譯.北京:人民郵電出版社,2008.

[2] Koenig A.C陷阱與缺陷[M].高巍,譯.北京:人民郵電出版社,2003.

[3] Weiss M A.數(shù)據(jù)結(jié)構(gòu)與算法分析:Java語言描述[M]. 馮舜璽,譯.北京:機(jī)械工業(yè)出版社,2004.

[4] 馮利美. 嵌入式Linux應(yīng)用程序開發(fā)標(biāo)準(zhǔn)教程[M].北京:人民郵電出版社,2016.

[5] 彭東.深度探索嵌入式操作系統(tǒng):從零開始設(shè)計(jì)、架構(gòu)和開發(fā)[M].北京:機(jī)械工業(yè)出版社,2015.

[6] 謝文杰,艾賽江,張映昊.雷達(dá)數(shù)據(jù)實(shí)時(shí)處理軟件多線程技術(shù)的改進(jìn)[J].計(jì)算機(jī)應(yīng)用,2018,38(S2):250-253,275.

[7] 何友,修建娟,張晶煒.雷達(dá)數(shù)據(jù)處理及應(yīng)用[M].2版.北京:電子工業(yè)出版社,2009.

[8] 朱海濤,倪世道.并行處理技術(shù)在雷達(dá)數(shù)據(jù)處理中的應(yīng)用研究[J].計(jì)算技術(shù)與自動(dòng)化,2013,32(2):109-114.

【通聯(lián)編輯:謝媛媛】

主站蜘蛛池模板: 日本不卡在线视频| 成年人福利视频| 婷婷五月在线视频| 99视频精品全国免费品| 一级成人欧美一区在线观看 | 91精品国产福利| 国产精品亚洲va在线观看| 日本不卡免费高清视频| 91久久国产成人免费观看| 亚洲91在线精品| 国产日韩欧美在线视频免费观看 | 国产精品香蕉在线| 九色综合视频网| 91蜜芽尤物福利在线观看| 国产麻豆aⅴ精品无码| 免费一看一级毛片| 国产在线专区| 国产资源免费观看| 亚洲无码久久久久| 国产福利免费视频| 一级爱做片免费观看久久| 国产在线观看99| 国内精品伊人久久久久7777人| 亚洲av无码片一区二区三区| 成人看片欧美一区二区| 亚洲一级毛片免费观看| 日韩AV无码免费一二三区| 亚洲天堂首页| 国产黑人在线| 露脸真实国语乱在线观看| 欧美三级视频网站| 2020精品极品国产色在线观看| 欧美a在线视频| 天天躁夜夜躁狠狠躁图片| 久综合日韩| 99成人在线观看| 亚洲精品国产自在现线最新| 日韩精品无码免费一区二区三区 | 欧美在线观看不卡| aⅴ免费在线观看| 久草热视频在线| 欧美成人一级| 亚洲妓女综合网995久久| 欧美97色| 全部免费毛片免费播放| 自慰高潮喷白浆在线观看| 一级一级一片免费| 中文字幕人成乱码熟女免费| 国产成人精品男人的天堂| 欧美日韩专区| 国产一区二区人大臿蕉香蕉| 日本欧美视频在线观看| 亚洲精品中文字幕午夜| 精品亚洲麻豆1区2区3区| 99热这里只有成人精品国产| 亚洲欧美综合另类图片小说区| 依依成人精品无v国产| 日韩 欧美 小说 综合网 另类| 8090成人午夜精品| 色有码无码视频| 亚洲精品无码成人片在线观看| 永久成人无码激情视频免费| 免费a级毛片18以上观看精品| 久久久无码人妻精品无码| 国产又色又刺激高潮免费看| 第一页亚洲| 久久久精品久久久久三级| 999精品在线视频| 亚洲精品制服丝袜二区| 丰满人妻被猛烈进入无码| 中文字幕在线观看日本| 潮喷在线无码白浆| 国产精品蜜臀| 99无码中文字幕视频| 亚洲国产精品久久久久秋霞影院| 91免费国产高清观看| 国产精品自拍露脸视频| 成人福利免费在线观看| 国产男女免费视频| 日韩在线视频网站| 性色一区| 伊人五月丁香综合AⅤ|