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

        ?

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

        2022-03-19 01:57:20劉浩方含章方青
        電腦知識(shí)與技術(shù) 2022年2期
        關(guān)鍵詞:負(fù)載均衡嵌入式軟件數(shù)據(jù)驅(qū)動(dòng)

        劉浩 方含章 方青

        摘要:在電子類產(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)用廣泛?;コ饬窟m用于管理共享資源。由于互斥量在實(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 性能測試

        本文將并行軟件處理架構(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)探測時(shí),由于地面背景的強(qiáng)反射,導(dǎo)致雷達(dá)檢測后的點(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á)探測區(qū)域按照探測距離劃分成多個(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公里的測繪帶分為三個(gè)子帶分別進(jìn)行處理,三個(gè)子帶對(duì)應(yīng)三個(gè)處理線程,為了保證對(duì)穿越不同區(qū)域目標(biāo)跟蹤的正確性,相鄰區(qū)域存在一定的重疊,重疊區(qū)域的大小一般可設(shè)置為觀測目標(biāo)最大運(yùn)動(dòng)速度在一個(gè)掃描周期內(nèi)運(yùn)動(dòng)距離的2到3倍,如圖8所示。

        按照雷達(dá)探測區(qū)域劃分子任務(wù),各子帶處理線程在處理過程中不需要進(jìn)行同步和通信,在收到偵查的點(diǎn)跡數(shù)據(jù)后,按照距離將數(shù)據(jù)向多個(gè)處理線程進(jìn)行分發(fā),各線程獨(dú)立進(jìn)行處理,輸出各子帶航跡數(shù)據(jù),最后由綜合處理模塊對(duì)各子任務(wù)處理結(jié)果進(jìn)行合并,獲取全測繪帶的航跡數(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)編輯:謝媛媛】

        猜你喜歡
        負(fù)載均衡嵌入式軟件數(shù)據(jù)驅(qū)動(dòng)
        實(shí)時(shí)嵌入式軟件的測試技術(shù)
        電子測試(2018年10期)2018-06-26 05:54:08
        全景相機(jī)遙控器嵌入式軟件V1.0 相關(guān)操作分析
        電子制作(2017年17期)2017-12-18 06:40:56
        異構(gòu)環(huán)境下改進(jìn)的LATE調(diào)度算法
        基于網(wǎng)絡(luò)與數(shù)據(jù)智能化的數(shù)碼印花產(chǎn)品設(shè)計(jì)定制模式研究
        數(shù)據(jù)驅(qū)動(dòng)理念在大學(xué)英語課程中的應(yīng)用
        青春歲月(2016年20期)2016-12-21 18:48:37
        大數(shù)據(jù)背景下的警務(wù)模式創(chuàng)新研究
        科技視界(2016年26期)2016-12-17 15:59:49
        基于負(fù)載均衡的云資源調(diào)度策略研究
        《計(jì)算機(jī)控制技術(shù)》課程教改探討
        科技視界(2016年1期)2016-03-30 12:52:04
        多站點(diǎn)同步更新系統(tǒng)的設(shè)計(jì)
        科技視界(2016年3期)2016-02-26 20:16:57
        模糊理論在Ad hoc網(wǎng)絡(luò)通信領(lǐng)域的應(yīng)用
        科技視界(2015年25期)2015-09-01 16:07:00
        日韩一区av二区三区| 国产WW久久久久久久久久| 国产AV秘 无码一区二区三区| 成人在线观看视频免费播放| 插插射啊爱视频日a级| 国产免费人成视频在线观看| 在线视频这里只有精品| 日本精品国产1区2区3区| 大量漂亮人妻被中出中文字幕| 51看片免费视频在观看| 风流少妇又紧又爽又丰满| 国产精品国产午夜免费看福利| 精品一区二区三区亚洲综合| 日本熟妇美熟bbw| 伦人伦xxxx国语对白| 精品国产午夜久久久久九九| 国产精品麻豆一区二区三区| 四虎国产成人永久精品免费| 五十路熟妇高熟无码视频| 久久久久亚洲AV片无码乐播| 国产一区二区资源在线观看| 国产激情艳情在线看视频| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 亚洲欧洲国无码| 一本色道精品亚洲国产一区| 亚洲亚洲人成综合丝袜图片| 亚洲成成品网站源码中国有限公司| 欧洲国产成人精品91铁牛tv| 精品久久一品二品三品| 乱中年女人伦av三区| 青青草国产成人99久久| 国产精品一区二区av白丝在线| 激情在线一区二区三区视频| 亚洲一区二区三区播放| 国产一区二区三区小说| 国产av午夜精品一区二区入口| 色欲色香天天天综合vvv| 欧美粗大无套gay| 免费国产调教视频在线观看| 中文字幕乱码日本亚洲一区二区| 国产性生交xxxxx无码|