




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、隨著嵌入式操作系統(tǒng)在通信領(lǐng)域大范圍內(nèi)的應(yīng)用,針對操作系統(tǒng)的各種優(yōu)化也被大家所熟悉起來,在滿足系統(tǒng)實(shí)時(shí)性要求的前提下,如何提高利用率,如何提高內(nèi)存的分CPU 配的快速性、可靠性、高效性,也是需要重點(diǎn)研究的課題。什么是內(nèi)存分配快速性呢?快速性就是由于在嵌入式系統(tǒng)中對系統(tǒng)實(shí)時(shí)性的要求,要求內(nèi)存分配過程要盡可能快,因此在嵌入式系統(tǒng)中,不可能采用通用操作系統(tǒng)中復(fù)雜而慢上的內(nèi)存分配策略,一般都采用簡單、快速的內(nèi)存分配方案。當(dāng)然,對實(shí)時(shí)性要求的程序不同,分配方案也有所不同。例如,采用簡單的最先匹配,如立即聚合方法;VxWorks 采用多個(gè)固定尺寸的方案??煽啃跃褪莾?nèi)存分VRTX binning 配的請求必須
2、得到滿足。如果分配失敗,則可能會帶來災(zāi)難性的后果。嵌入式系統(tǒng)應(yīng)用的環(huán)境千變?nèi)f化,其中有一些對可靠性要求極高。高效性,就是內(nèi)存分配要盡可能地少浪費(fèi)。不可能為了保證滿足所有的內(nèi)存分配請求而將內(nèi)存配置得無限大。一方面,嵌入式系統(tǒng)對成本的要求高使得內(nèi)存在其中只是一種很有限的資源;另一方面,即使不考慮成本的因素,系統(tǒng)有限的空間和有限的板面積決定了可配置的內(nèi)存容量是很限的。在一般的嵌入式操作系統(tǒng)中內(nèi)存管理完成兩個(gè)主要功能:一是內(nèi)存分配管理;二是內(nèi)存保護(hù)。在內(nèi)存分配管理算法中,一般有首次使用算法,自身提供的內(nèi)存管理VxWorks 函數(shù)采用算法。該算法在搜索可用的內(nèi)存塊時(shí),從空first-fit 閑隊(duì)列頭開始
3、進(jìn)行搜索,當(dāng)找到第一個(gè)空間足夠的空閑內(nèi)存塊時(shí),即將該空閑塊分配給其使用,剩余部分重新加入空閑隊(duì)列。在通信領(lǐng)域中,由于通信量大,在以消息為驅(qū)動(dòng)的基礎(chǔ)上,釋放、分配內(nèi)存空間非常頻繁,因此內(nèi)存分配回收的快慢對整體的性能起著很大的作用,綜合通信領(lǐng)域特殊的需求,這種算法不適用于我們的系統(tǒng)。采用算法,一是first-fit 內(nèi)存分配的實(shí)時(shí)性得不到保證;二是具體的搜索時(shí)間和已分配的內(nèi)存塊個(gè)數(shù)成的關(guān)系。O(N為了提高內(nèi)存分配與回收的時(shí)間,一般采用的措施是采取空間換時(shí)間,如采用固定的分區(qū),當(dāng)需要分配一個(gè)內(nèi)存空間時(shí),不需要從頭開始搜索,直到找到一個(gè)合適的分區(qū),固定分區(qū),只需要從內(nèi)存分區(qū)頭取出第一個(gè)分區(qū)就行了,具體
4、搜索時(shí)間和已分配的內(nèi)存塊個(gè)數(shù)成(,通信領(lǐng)域是以O(shè) 1消息進(jìn)行驅(qū)動(dòng)的,消息一般有固定的長度,如果分區(qū)選擇合適的話,那么因?yàn)楣潭ǚ謪^(qū)所產(chǎn)生的內(nèi)存碎片基本上可以忽略不計(jì)這就是一次分配多次使用的思想。,通信領(lǐng)域的安全性,需要進(jìn)行內(nèi)存保護(hù),對內(nèi)VxWorks 存只實(shí)現(xiàn)了簡單的保護(hù),沒有對堆棧、數(shù)據(jù)區(qū)進(jìn)行保護(hù),這對安全性要求高的系統(tǒng)顯然不適合。在通信設(shè)備中的內(nèi)存保護(hù)與桌面操作系統(tǒng)的要求有很大的差別,更加強(qiáng)調(diào)異常的現(xiàn)場保護(hù)和錯(cuò)誤的定位。另外由于一般的嵌入式操作系統(tǒng)對,內(nèi)存使用情況的查詢做得不夠理想如果我們需要查詢內(nèi)存,的使用情況或者堆棧的使用情況一般操作系統(tǒng)的內(nèi)存查詢,是無能為力的??紤]到通信行業(yè)的特殊需求
5、,提出了本模塊的實(shí)現(xiàn)算法,此處管理的內(nèi)存對象只針對堆。至于子任務(wù)棧和私有數(shù)據(jù)區(qū),由于涉及到內(nèi)存保護(hù),要作另外的考慮。內(nèi)存管理結(jié)構(gòu)1 為了能理解本文中所闡述的內(nèi)存管理的實(shí)現(xiàn),我們先簡短描述一下的內(nèi)存結(jié)構(gòu)圖是其內(nèi)存鏡像。VxWorks , 1的內(nèi)存管理函數(shù)存在于個(gè)庫中;VxWorks 2 memPartLib面向通信領(lǐng)域通用內(nèi)存管理單元的算法和實(shí)現(xiàn)劉飛,蘆東昕,繆敬中興通訊公司有限公司,成都( 610041摘要:由于快速性、實(shí)時(shí)性、可靠性的要求,使得許多嵌入式應(yīng)用使用自己的內(nèi)存管理程序,該文概要地分析了嵌入式操作內(nèi)存管理的實(shí)現(xiàn)原理以及它們的內(nèi)存分配與回收、內(nèi)存保護(hù)算法。在此基礎(chǔ)上詳細(xì)闡述面向通信領(lǐng)
6、域的一種內(nèi)存管理方法內(nèi)存分塊管理內(nèi)存管理UB(算法,并描述了它的實(shí)現(xiàn)方法。關(guān)鍵詞:核心數(shù)據(jù)區(qū);子任務(wù)區(qū);區(qū);內(nèi)存管理;操作系統(tǒng)支持UB UBAlgorithm and Implementation of Memory Managerof RTOS in the TelecomLIU Fei, LU Dongxin, MIAO Jing(Institute of Chengdu, ZTE Corporation, Chengdu 610041【】Abstract Because of the demand of the celerity, real time and credibility ,
7、most of the application of embedded system has used themselves memory management. This paper discusses the design principal of the memory management of embedded operating system and described its arithmetic of distribute , reclaim and protection. In this base , a new measure of memory management , a
8、lgorithm of UB (memory part management memory management are described particular, and its implemention is depicted.【】Key words Core part; Proc part; UB part; UB memory management; OSS第卷第期2922Vol.29 22計(jì)算機(jī)工程Computer Engineering年月200312 December 2003專題論文中圖分類號:TP316.2 文章編號:10003428(200322 008003文獻(xiàn)標(biāo)識碼:A
9、80(緊湊的內(nèi)存分區(qū)管理器和(完整的內(nèi)存分區(qū)管memLib 理器。前者(提供的工具用于從內(nèi)存分區(qū)中memPartLib 分配內(nèi)存塊。該庫包含兩類程序:一類是通用工具創(chuàng)建和管理內(nèi)存分區(qū)并從這些分區(qū)中分配和管理內(nèi)存塊;另一類是標(biāo)準(zhǔn)的程序提供與內(nèi)存分區(qū)的接口。系統(tǒng)內(nèi)存分區(qū)malloc/free (其為是一個(gè)全局變量在內(nèi)核初始化時(shí)由ID memSysPartId 調(diào)用創(chuàng)建。其開始地址為中緊接著usrRoot memInit RAM 的段之后,大小為所有空閑內(nèi)存。VxWorks BSS 圖內(nèi)存布局1 VxWorks 當(dāng)創(chuàng)建其它分區(qū)時(shí),一般需要先調(diào)用從系統(tǒng)內(nèi)存malloc 分區(qū)中分配一段內(nèi)存才能創(chuàng)建。內(nèi)存
10、分區(qū)的結(jié)構(gòu)定義為mem ,包含個(gè)對象標(biāo)記、個(gè)雙向鏈表管理空閑塊、個(gè)信_part 111號量保護(hù)該分區(qū)及一些統(tǒng)計(jì)信息,如總尺寸、最大塊尺寸、調(diào)試選項(xiàng)、已分配的塊數(shù)、已分配的尺寸等。一般系統(tǒng)中只有個(gè)內(nèi)存分區(qū),即系統(tǒng)分區(qū),所有任務(wù)1所需要的內(nèi)存直接調(diào)用從其中分配。分配采用malloc First-Fit 算法(注意這種算法容易導(dǎo)致大量碎片,通過釋放的free 內(nèi)存將被聚合以形成更大的空閑塊。這就是的內(nèi)存VxWorks 分配機(jī)理。分配時(shí)可以要求一定的對齊格式。注意,不同的架構(gòu)有不同的對齊要求。為了優(yōu)化性能,返回的CPU malloc 指針是經(jīng)過對齊的,為此的開銷隨結(jié)構(gòu)不同而不同。例如,為對齊,開銷;為
11、對齊,開銷;68k 4B 8B SPARC 8B 12B 為對齊,開銷;為對齊,開銷MIPS 16B 12B I96016B 16B.但是,使用動(dòng)態(tài)內(nèi)存分配時(shí)要注意到以下幾malloc/free 方面的限制:因?yàn)橄到y(tǒng)內(nèi)存分區(qū)是一種臨界資源,由信(1 號量保護(hù),使用會導(dǎo)致當(dāng)前調(diào)用掛起,所示它不能用malloc 于中斷服務(wù)程序;因?yàn)檫M(jìn)行內(nèi)存分配需要執(zhí)行查找算(2 法,其執(zhí)行時(shí)間與系統(tǒng)當(dāng)前的內(nèi)存使用情況相關(guān),是不確定的,所以對于有規(guī)定時(shí)限的操作它是不適宜的;由于采(3 用簡單的最先匹配算法,因此容易導(dǎo)致系統(tǒng)中存在大量的內(nèi)存碎片,降低內(nèi)存使用效率和系統(tǒng)性能。針對這種情況,我們提出面向通信領(lǐng)域內(nèi)存管理單
12、元的算法和實(shí)現(xiàn),它是從系統(tǒng)重新劃分出一塊內(nèi)存空間,也就是利用實(shí)時(shí)操作系統(tǒng)的功能劃分出一塊內(nèi)存空間,malloc/free 這塊內(nèi)存空間的管理與分配采用文中提出的算法,它有效地縮短了內(nèi)存分配回收的時(shí)間,增強(qiáng)了內(nèi)存管理的健壯性提,高了內(nèi)存的利用率。內(nèi)存管理實(shí)現(xiàn)2 本文闡述的所管理內(nèi)存位于部分,我們將User Reserved 所管理內(nèi)存分為以下幾部分:核心數(shù)據(jù)區(qū)(;(1Core Part 子程序堆棧和數(shù)據(jù)區(qū)(簡稱子任務(wù)區(qū),;(2Proc Part 區(qū)(。(3 UB UB Part 它們的排列如圖所示。2 端端UBPart離區(qū),屬性為i n v a l i dProcPartCorePart圖內(nèi)存劃
13、分圖2 如圖,部分分成個(gè),并且在每個(gè)區(qū)2User Reserved 3Part 加入一個(gè)的虛擬隔離區(qū),這是為了加強(qiáng)內(nèi)存的健壯1MB 性。核心數(shù)據(jù)區(qū)的管理2.1 核心數(shù)據(jù)區(qū)是存放操作系統(tǒng)支撐自身運(yùn)作所需的OSS(重要數(shù)據(jù)(實(shí)際上就是,本內(nèi)存模塊只需在初始化時(shí)PCB 根據(jù)計(jì)算出的核心數(shù)據(jù)區(qū)大小從內(nèi)存分配出一塊,并在兩頭各加入一個(gè)的虛擬隔離區(qū),返回此塊的起始地址即1MB 可。在層里提供計(jì)算核心數(shù)據(jù)區(qū)大小的函數(shù)。OSS 子任務(wù)調(diào)度模塊可以用調(diào)用本模塊提供的接口函數(shù)得到核心數(shù)據(jù)區(qū)的頭指針,然后就可在此空間存儲重要數(shù)據(jù)了。子任務(wù)堆棧與數(shù)據(jù)區(qū)管理2.2 這兩部分內(nèi)存都與子任務(wù)有關(guān),所以放在同一個(gè)Part 中
14、,它們的保護(hù)都采用加虛擬隔離頁的方式(堆棧是在棧頂加一個(gè)虛擬隔離頁;私有數(shù)據(jù)區(qū)是在高低兩端各加一個(gè)虛擬隔離頁。在內(nèi)存初始化時(shí)計(jì)算該塊內(nèi)存大小,并在子任務(wù)初始化時(shí)對堆棧和私有數(shù)據(jù)區(qū)采用與區(qū)加虛擬隔離頁相UB 同的方式加上頁保護(hù)(見下一節(jié),最后返回虛擬地址。本模塊提供分配子任務(wù)堆棧和分配子任務(wù)私有數(shù)據(jù)區(qū)的接口。在堆棧分配時(shí),會將整個(gè)堆棧添滿“”,用于0xA5檢測堆棧使用狀況,放置堆棧時(shí),是將其向高端靠齊;在分配數(shù)據(jù)區(qū)時(shí),放置私有數(shù)據(jù)時(shí),仍然將其向高端靠齊。堆棧狀況的查詢 本模塊提供堆棧狀況查詢接口,目的是為子任務(wù)設(shè)置合適的堆棧大小提供參考。此接口首先是通過子任務(wù)號找到相應(yīng)子任務(wù),然后通過調(diào)用子任務(wù)
15、調(diào)度模塊提供的接口獲得棧底地址,堆棧的大小,當(dāng)前堆棧使用量,通過檢查“”標(biāo)記獲得該堆棧0xA5曾經(jīng)使用的峰值。輸出以下信息:堆棧所屬子任務(wù)Process 棧底地址StackBottom 堆棧大小StackSize 當(dāng)前的消耗量CurConsume 最大的消耗量MaxConsume區(qū)的管理2.3 UB 區(qū)采用內(nèi)存分塊管理的方式。先就內(nèi)存分塊管理UB (也稱池管理作一個(gè)介紹:UB 81區(qū)的初始化圖。首先根據(jù)如下的用戶池配(1 UB (3 UB 置,從系統(tǒng)中分配一大塊內(nèi)存,然后將這塊內(nèi)存若干個(gè)池,每個(gè)池中的內(nèi)存塊大小相同,數(shù)目一定。 內(nèi)存池固定內(nèi)存固定內(nèi)存對于每個(gè)池,用一個(gè)結(jié)構(gòu)來描述。對于T_UBP
16、oolItem 所有池,本模塊用結(jié)構(gòu)的一個(gè)數(shù)組(稱UB T_UBPoolItem UB 池?cái)?shù)組進(jìn)行登記,每個(gè)池在這個(gè)數(shù)組中有對應(yīng)的一項(xiàng)。初始化時(shí),這個(gè)數(shù)組放在的開始位置(最低地址。UB Part 池內(nèi)的每個(gè)塊都對應(yīng)有個(gè)頭,塊就是用這個(gè)UB UB UB 頭來描述的,頭存放塊的控制信息,這些信息在UB UB UB 分配和釋放時(shí)要用到。頭用數(shù)據(jù)結(jié)構(gòu)進(jìn)行UB UB T_UBHead 描述。初始化時(shí)先分配出一個(gè)內(nèi)存頭區(qū)出來(這個(gè)區(qū)域在物理上緊接作為池?cái)?shù)組,這個(gè)區(qū)域存放所有的頭。UB UB UB 在結(jié)構(gòu)中有一個(gè)指針數(shù)組保存本池中所有T_ UBPoolItem UB 頭的指針。控制頭的作用有如下個(gè):UB 3
17、提高釋放效率;1避免重復(fù)或非法釋放;2在調(diào)試版本中對內(nèi)存使用情況作統(tǒng)計(jì),為內(nèi)存出錯(cuò)調(diào)試作查3找依據(jù)。的分配。每個(gè)池的空閑頭指針排成一個(gè)循(2UB UB UB 環(huán)隊(duì)列。分配過程也就是搜索內(nèi)存池、尋找滿足要求的內(nèi)存塊的過程。對于每次內(nèi)存塊(又稱的申請:首先根UB 據(jù)申請的大小查找快速索引表很快確定出滿足要求的UB 池;然后判斷找到的池的頭空閑指針隊(duì)列是否為UB UB 空;如果不空,則從該隊(duì)列頭取一個(gè)頭的指針,通過 UB 這個(gè)指針找頭,修改其中塊的占用標(biāo)志;然后調(diào)整UB UB 池的空閑頭指針隊(duì)列,并修改該池的數(shù)據(jù)結(jié)構(gòu);UB UB UB 將找到的頭中記錄的塊的指針返回給調(diào)用者。在 UB UB 的判斷中
18、,如果頭空閑指針隊(duì)列空,則直接返回UB NULL.的釋放。由于在初始化時(shí)就保證了頭和塊(3UB UB UB 是按某種有序的、固定的對應(yīng)關(guān)系構(gòu)造起來,同時(shí)在頭UB 中也記錄了池索引號,因此內(nèi)存釋放相對簡單和高效。UB 其實(shí)質(zhì)就是:根據(jù)的指針找到相應(yīng)的頭,再將其標(biāo)記UB UB 為自由內(nèi)存并歸還給相應(yīng)的池的過程。UB 使用狀況的統(tǒng)計(jì)。本模塊為上層提供較完善的(4 UB 調(diào)試信息,便于調(diào)試和定位故障。提供顯示池信息的接口,循環(huán)顯示每個(gè)池的如下UB UB 統(tǒng)計(jì)信息:池號POOL UB該池大小SIZE UB該池總數(shù)量TOTAL UB 該池預(yù)留給的數(shù)量RESV_CNT OSSUB 當(dāng)前空閑數(shù)量FREE 申請
19、失敗的次數(shù)GET_FAIL_CNT UB釋放失敗的次數(shù)FREE_FAIL_CNTUB 該大小已釋放后被重復(fù)釋放的次數(shù)RETDUP_CNT UB該大小最大的消耗量MAX_CONSUME UB提供顯示塊為給定大小的池的統(tǒng)計(jì)信息的接口,UB UB 依次輸出調(diào)試信息:占用或空閑ISUSED 申請釋放時(shí)間WHEN (tick /申請釋放子任務(wù)WHO /占用地址ADDRESS 申請大小SIZE申請釋放行數(shù)LINE /申請釋放文件FILENAME /高端映射地址的管理2.4 在本模塊中,區(qū)、子任務(wù)堆棧與私有數(shù)據(jù)區(qū)都采用UB 了用高端地址作虛擬隔離頁的內(nèi)存保護(hù)方式。能夠被映射的高端地址和由用MAP_START
20、 MAP_END 戶配置。我們有一個(gè)全局變量記錄當(dāng)前可以被映射的高端地址,初始化時(shí)被置為,每映射一塊內(nèi)存后,其MAP_START 值增加。此外用一單向鏈記錄每個(gè)隔離頁的信息。當(dāng)?shù)投说?、堆棧和私有?shù)據(jù)區(qū)需做保護(hù)時(shí),可調(diào)用UB 本模塊提供的一專門接口來實(shí)現(xiàn)。該接口主要是做物理頁到虛擬頁的映射,并加上虛擬隔離頁,最后返回調(diào)整后的虛擬地址。圖表示返回的情況。46圖UB(4: 返回的地址UB 隔離頁 Low High圖隔離模式4 UB 子任務(wù)堆棧圖 (5 :返回的地址隔離頁堆棧Low High圖堆棧隔離模式5 子任務(wù)私有數(shù)據(jù)區(qū)圖(6:返回的地址隔離頁私有數(shù)據(jù)區(qū)隔離頁 Low High 圖私有數(shù)據(jù)隔離模式
21、6 當(dāng)發(fā)生內(nèi)存越界、堆棧溢出等情況時(shí),會發(fā)生頁不存在異常,這種系統(tǒng)異常可觸發(fā)系統(tǒng)異常處理函數(shù),(Page fault可以用自己的異常捕獲和處理函數(shù)代替系統(tǒng)異常處理函數(shù),并保留異?,F(xiàn)場,對異常進(jìn)行分析并執(zhí)行恢復(fù)策略。然后輸出調(diào)試信息。輸出的調(diào)試信息包括申請內(nèi)存空間的函數(shù)所在的文件名及其行號等。結(jié)束語3 許多嵌入式應(yīng)用在提供的的基礎(chǔ)上編RTOS malloc/free 寫自己的內(nèi)存管理方案。編寫這樣的內(nèi)存管理方案,目的無非有兩個(gè):一是減少對的依賴,從而避免由之帶malloc/free 來的內(nèi)存碎片、時(shí)間不確定等;另一個(gè)是增強(qiáng)程序的查錯(cuò)能力,如增加頁保護(hù),堆棧保護(hù)等,送還內(nèi)存使用錯(cuò)誤并定位錯(cuò)誤的位置
22、。對于在嵌入式系統(tǒng)中廣泛存在的數(shù)據(jù)庫類型的內(nèi)存需求,即分配多個(gè)固定尺寸的內(nèi)存單元的要求,內(nèi)UB 存管理的方案無疑是一種很好的解決之道。本文所設(shè)計(jì)的內(nèi)存管理很好地滿足了目前大數(shù)據(jù)業(yè)UB 務(wù)量的需求,具有很高的推廣和實(shí)用價(jià)值,目前已應(yīng)用在通下轉(zhuǎn)第頁 (10582圖內(nèi)存池、內(nèi)存頭和塊的關(guān)系3 UB為,確定這些行為是否與其它的聯(lián)邦成員有關(guān)。確定訂購類的需求。確定聯(lián)邦成員希望從其它聯(lián)邦2成員中輸入的數(shù)據(jù)及其類型。確定要公布的屬性與參數(shù)。確定公布的對象類在將3來聯(lián)邦里可能有用的屬性和公布的交互類中的參數(shù)。確定待訂購的屬性。細(xì)化可訂購類的描述。4以上步的結(jié)果都要在的詞典中備案。4FOM/SOM完成對象類結(jié)構(gòu)
23、表。將詞典中記錄的所有對象5 SOM類在對象類結(jié)構(gòu)表中按層次結(jié)構(gòu)組織起來。完成對象交互表。6完成屬性參數(shù)表:將、兩步確定的屬性與參數(shù)記7 34入屬性參數(shù)表。完成擴(kuò)展表可選。記錄任何未來聯(lián)邦開發(fā)者可8 OMT(能感興趣但表不能直接記錄的信息。OMT的開發(fā)(2 FOM開發(fā)前先要完成以下工作:清楚地描述聯(lián)邦的需FOM1求;定義聯(lián)邦想定;確定聯(lián)邦中的對象和交互類;聯(lián)234邦參與者按照標(biāo)準(zhǔn)建立各自的的開發(fā)必須以HLA SOM. FOM為基礎(chǔ),依據(jù)具體的仿真需求,建立聯(lián)邦參與對象之SOM間信息交互的對象模型。的開發(fā)工作包括:確定聯(lián)邦的公布與訂購能FOM 1力:根據(jù)決定聯(lián)邦能公布那些類,需要預(yù)訂那些類。SO
24、M2確定聯(lián)邦的公布責(zé)任:確定聯(lián)邦中應(yīng)包括的對象類和交互類以及各成員應(yīng)負(fù)責(zé)的類。確定屬性和參數(shù)的需求:通過比3較公布的信息和訂購的信息,刪除公布但未訂購的屬性,修改軟件增加訂購了但未公布的屬性或修改軟件刪除該訂購,檢查既公布又訂購了的屬性是否匹配。后面的步驟和建立的步驟基本相同。SOM58開發(fā)聯(lián)邦成員2.2.3利用前面產(chǎn)生的結(jié)果,進(jìn)行聯(lián)邦成員模型的開發(fā)。聯(lián)邦成員模型的內(nèi)容主要包括個(gè)部分:聯(lián)邦成員實(shí)體模型,交3互模型和運(yùn)行邏輯。實(shí)體模型直接描述實(shí)體自身的行為特征,主執(zhí)行邏輯是實(shí)體模型的執(zhí)行體。交互模型描述系統(tǒng)中各實(shí)體間的交互作用,它基于的和,按HLA OMT FOM SOM照的的接口規(guī)范進(jìn)行說明。
25、這部分有機(jī)地結(jié)合在HLA/RTI3一起,構(gòu)成一個(gè)聯(lián)邦成員,完成特定的仿真任務(wù)。圖表示4了聯(lián)邦成員的運(yùn)行結(jié)構(gòu)。聯(lián)邦成員通過調(diào)用提供的的標(biāo)準(zhǔn)服務(wù)RTI RTI- ,完成加入聯(lián)邦、設(shè)置時(shí)間管理方式、發(fā)布和預(yù)Ambassador定對象類和交互類,更新對象類的數(shù)據(jù),在特定的時(shí)刻發(fā)送交互類信息等工作。同時(shí),又通過回調(diào)RTI接口將聯(lián)邦成員預(yù)定的其他聯(lián)邦成員的FederateAmbassador對象類屬性傳遞給本聯(lián)邦成員。其中發(fā)布和預(yù)定的對象類和交互類在文件中給出定義和描述。聯(lián)邦成員自身的行為FED特征和與其它聯(lián)邦成員間的信息交互按照一定的邏輯運(yùn)行,構(gòu)成了該聯(lián)邦成員的仿真模型。集成并測試聯(lián)邦2.2.4基于具體
26、的開發(fā)平臺,利用前段結(jié)果進(jìn)行系統(tǒng)的整體編程開發(fā),然后進(jìn)行的功能和性能測試,通過測試確HLA/RTI定仿真系統(tǒng)平臺的功能和性能是否滿足仿真應(yīng)用的要求,發(fā)現(xiàn)系統(tǒng)軟硬件平臺、開發(fā)軟件工具及仿真應(yīng)用前期階段開發(fā)工作中存在的問題,并加以改進(jìn),以保證整個(gè)仿真系統(tǒng)開發(fā)的有效實(shí)施。結(jié)束語3研究開發(fā)-執(zhí)行的標(biāo)準(zhǔn)過程并根據(jù)具體的HLA FEDEP仿真需求實(shí)現(xiàn)各步的設(shè)計(jì)是開發(fā)基于的仿真應(yīng)用系統(tǒng)HLA的關(guān)鍵,而聯(lián)邦對象模型和的開發(fā)則是核心。本(FOM SOM文從應(yīng)用的角度給出了上述開發(fā)工作的一般方法,具體應(yīng)用時(shí)應(yīng)與仿真需求結(jié)合,有針對性地實(shí)現(xiàn)各步內(nèi)容。參考文獻(xiàn)柴旭東1 .高層體系結(jié)構(gòu)實(shí)施技術(shù)的初步實(shí)踐與進(jìn)一步研究J.系統(tǒng)仿真學(xué)報(bào),2002,14(2: 152-155邱曉剛,黃柯棣2 .對象模型的概念、描述與建立HLAJ.計(jì)算機(jī)仿真,1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 住宅認(rèn)購定金合同范本
- 倉儲保管填寫合同范本
- 2025年四川貨運(yùn)從業(yè)資格證考試的技巧
- 一房三賣買賣合同范本
- 停息掛賬律師委托合同范本
- 個(gè)人外匯貸款合同范本
- 助資合同范本
- 個(gè)人買房購房合同范本
- 公司稅貸合同范本
- 個(gè)人店面整體裝修合同范本
- 《做自己的心理醫(yī)生 現(xiàn)代人的心理困惑和自我療愈策略》讀書筆記思維導(dǎo)圖PPT模板下載
- 小學(xué)音樂組集體備課計(jì)劃
- 電力需求側(cè)自測題4科
- 稿件修改說明(模板)
- 血液透析安全注射臨床實(shí)踐專家共識解讀
- GB/T 41873-2022塑料聚醚醚酮(PEEK)樹脂
- SB/T 10940-2012商用制冰機(jī)
- GB/T 25945-2010鋁土礦取樣程序
- GB/T 16604-2017滌綸工業(yè)長絲
- 2023年教師資格證考試歷年小學(xué)綜合素質(zhì)寫作題及范文
- GB 18451.1-2001風(fēng)力發(fā)電機(jī)組安全要求
評論
0/150
提交評論