两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

嵌入式可裁剪式虛擬機(jī)的制作方法

文檔序號:6337907閱讀:290來源:國知局
專利名稱:嵌入式可裁剪式虛擬機(jī)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種嵌入式可裁剪式虛擬機(jī),屬于嵌入式系統(tǒng)領(lǐng)域。
背景技術(shù)
物聯(lián)網(wǎng)嵌入式虛擬機(jī)技術(shù)是一種用于工業(yè)現(xiàn)場,通過網(wǎng)絡(luò)實現(xiàn)動態(tài)配置、腳本控 制的技術(shù),被廣泛用于嵌入式設(shè)備、網(wǎng)絡(luò)、機(jī)器視覺等眾多領(lǐng)域。在自動化生產(chǎn)線、遠(yuǎn)程設(shè)備 調(diào)試上,嵌入式虛擬機(jī)技術(shù)起著關(guān)鍵性作用。廠家使用嵌入式虛擬機(jī)技術(shù)通過網(wǎng)絡(luò)進(jìn)行系 統(tǒng)配置、遠(yuǎn)程調(diào)試與控制,從而可降低現(xiàn)場人工操作量、提高調(diào)試效率、方便控制系統(tǒng)流程。目前,國際市場中根據(jù)虛擬機(jī)的應(yīng)用領(lǐng)域分為3類,即服務(wù)器虛擬機(jī)、PC虛擬機(jī)、 嵌入式虛擬機(jī)。服務(wù)器虛擬機(jī)有Hyper-V、VMware Server、Xen, Virtual Server等,在系 統(tǒng)安全性、部署軟件、開發(fā)測試等方面具有重要作用。PC虛擬機(jī)有VMware Workstation, Virtualbox,Virtualbox等,使單一架構(gòu)的PC機(jī)同時具有多種操作系統(tǒng),并能同時訪問。嵌 入式虛擬機(jī)還處于發(fā)展階段,目前主要有g(shù)oogle公司的DalviKCognex公司用于機(jī)器視覺 腳本的虛擬機(jī),但均無可裁剪性。意味著它們只能運用在嵌入式中高端芯片之上,對于那些 低端的8位、16位CPU,則無法展示其優(yōu)勢,甚至無法運行。隨著物聯(lián)網(wǎng)的快速發(fā)展,對嵌入式底層設(shè)備提出了更高要求。物聯(lián)網(wǎng)將底層設(shè)備 統(tǒng)一在一起,這就勢必引出遠(yuǎn)程配置、控制、調(diào)試、安全等關(guān)鍵技術(shù)問題。為使其有一個公共 的開發(fā)平臺,研發(fā)一種高性價比、通用性強(qiáng)的嵌入式可裁剪式虛擬機(jī)具有重要意義。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,用戶需要基于底層嵌入式設(shè)備實現(xiàn)遠(yuǎn)程系統(tǒng)配置與調(diào) 試。嵌入式底層設(shè)備具有多樣化性,如果為每個嵌入式底層設(shè)備開發(fā)相關(guān)網(wǎng)絡(luò)通信模塊,勢 必加大投入。目前,只有Tridium公司推出開源軟件編程開放平臺,包括Sedona編程語言、 工具包、虛擬機(jī)、編譯器、圖形化開發(fā)調(diào)試工具等。它是控制網(wǎng)成為物聯(lián)網(wǎng)形態(tài)一種軟件體 系架構(gòu),目的是把現(xiàn)場總線上的物理設(shè)備形成Sedona設(shè)備,通過B/S訪問模式對Sedona設(shè) 備進(jìn)行管理和監(jiān)控。但該種結(jié)構(gòu)只是簡單的通過網(wǎng)絡(luò)將各種資源整合到服務(wù)器中,而且只 能對某一區(qū)域內(nèi)的設(shè)備進(jìn)行“物聯(lián)”,還沒有達(dá)到遠(yuǎn)程配置調(diào)試的目的。嵌入式可裁剪式虛擬機(jī)可以根據(jù)實際需求動態(tài)改變自身功能,滿足不同的嵌入式 環(huán)境需求,向上可以滿足ARM、DSP這種高性能芯片,向下可以用于單片機(jī)這類低端芯片,并 且該虛擬機(jī)的可移植層提高了虛擬機(jī)跨平臺的能力,用戶只需簡單的配置就可以將虛擬機(jī) 移植到所需平臺上。再者,該虛擬機(jī)可以通過腳本進(jìn)行遠(yuǎn)程配置系統(tǒng)信息,遠(yuǎn)程調(diào)試,減少 人力。

發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,提供一種嵌入式可裁剪式虛擬機(jī), 可根據(jù)需求實現(xiàn)模塊的裁剪,既滿足需求,又節(jié)省系統(tǒng)資源,是一種適合于工業(yè)現(xiàn)場遠(yuǎn)程調(diào) 控和配置,并滿足功能要求的嵌入式可裁剪式虛擬機(jī)。按照本發(fā)明提供的技術(shù)方案,所述嵌入式可裁剪式虛擬機(jī)包括
3一個用于管理虛擬機(jī)內(nèi)存的內(nèi)存管理模塊,負(fù)責(zé)一切實例對象及相關(guān)內(nèi)存的申請與銷毀;
一個用于class文件編譯成本地代碼的即時編譯模塊,以提高程序執(zhí)行效率; 一個用于解釋執(zhí)行字節(jié)碼的解釋器; 一個用于管理線程的線程管理模塊; 一個本地接口,負(fù)責(zé)調(diào)用相關(guān)工具模塊;
一個運行時數(shù)據(jù)區(qū),用于存儲包括方法區(qū)、堆、運行時棧、本地方法棧信息; 一個可移植層,以提升虛擬機(jī)的跨平臺能力;
所述內(nèi)存管理模塊與所述即時編譯模塊、解釋器、本地接口、運行時數(shù)據(jù)區(qū)和可移植層 均相連;運行時數(shù)據(jù)區(qū)與所述即時編譯模塊、解釋器、本地接口和可移植層均相連;即時編 譯模塊連接本地接口 ;解釋器連接本地接口 ;虛擬機(jī)整體與可移植層相連。所述線程管理模塊分為用戶級和內(nèi)核級兩種管理方式,當(dāng)腳本程序中沒有人機(jī)交 互指令時采用用戶級線程管理,否則采用內(nèi)核級線程管理。所述可移植層將底層的不同應(yīng)用程序編程接口抽象成統(tǒng)一接口,供虛擬機(jī)調(diào)用。該虛擬機(jī)采用自身的內(nèi)存管理算法,或采用可移植層中所提供的內(nèi)存管理算法, 或采用用戶自定義的內(nèi)存管理算法。所述可移植層包含內(nèi)存、網(wǎng)絡(luò)、線程、I/O、文件五部分模塊,通過網(wǎng)絡(luò)進(jìn)行系統(tǒng)動 態(tài)配置。本發(fā)明的優(yōu)點是由于采用模塊化設(shè)計,降低開發(fā)成本,促進(jìn)軟件復(fù)用,方便二次 開發(fā)。解釋器和即時編譯模塊的存在提升了嵌入式系統(tǒng)的選擇空間,本地接口設(shè)計加強(qiáng)了 功能的擴(kuò)展,可移植層模塊提高了虛擬機(jī)的可移植性。嵌入式可裁剪式虛擬機(jī)的發(fā)明使物 聯(lián)網(wǎng)嵌入式底層設(shè)備的遠(yuǎn)程動態(tài)配置、調(diào)試更加快捷。該嵌入式可裁剪式虛擬機(jī)通過腳本 文件進(jìn)行遠(yuǎn)程配置、調(diào)試,用戶無需攜帶專業(yè)設(shè)備到工業(yè)現(xiàn)場進(jìn)行調(diào)試,既提高了效率,又 減少了開發(fā)成本。


圖1為本發(fā)明的結(jié)構(gòu)框圖。圖2為可裁剪式虛擬機(jī)組件層次結(jié)構(gòu)圖。圖3(a)為虛擬機(jī)自身的內(nèi)存申請流程圖。圖3(b)為虛擬機(jī)自身的內(nèi)存調(diào)整流程圖。圖3(c)為虛擬機(jī)自身的內(nèi)存釋放流程圖。圖4為解釋器和即時編譯模塊執(zhí)行流程圖。圖5為可移植層原理圖。圖6(a)為可移植層內(nèi)部模塊內(nèi)存調(diào)用流程圖。圖6(b)為可移植層內(nèi)部模塊線程管理流程圖。
具體實施例方式下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步說明。如圖1所示,所述的嵌入式可裁剪式虛擬機(jī)由內(nèi)存管理、即時編譯、解釋器、線程管理、本地接口、可移植層等模塊組成。具體包括一個用于管理虛擬機(jī)內(nèi)存的內(nèi)存管理模 塊,負(fù)責(zé)一切實例對象及其它相關(guān)內(nèi)存的申請與銷毀;一個用于class文件編譯成本地代 碼的即時編譯模塊,以提高程序執(zhí)行效率;一個用于解釋執(zhí)行字節(jié)碼的解釋器;一個用于 管理線程的線程管理模塊;一個本地接口,負(fù)責(zé)調(diào)用相關(guān)工具模塊;一個運行時數(shù)據(jù)區(qū),存 儲了方法區(qū)、堆、運行時棧、本地方法棧等信息;一個包含多種軟硬平臺的可移植層,負(fù)責(zé)虛 擬機(jī)的跨軟硬兩種平臺。虛擬機(jī)在類裝載、運行等過程中需要大量申請內(nèi)存,只要和內(nèi)存相關(guān)部分,都由內(nèi) 存管理模塊維護(hù),內(nèi)存管理模塊連接虛擬機(jī)其他的所有模塊;即時編譯模塊是將class文 件編譯成本地代碼所用,連接本地接口、運行時數(shù)據(jù)區(qū)、內(nèi)存管理;解釋器主要完成代碼的 解釋執(zhí)行,連接本地接口、運行時數(shù)據(jù)區(qū)、內(nèi)存管理;線程管理主要對用戶腳本內(nèi)的各個線 程進(jìn)行管理,與運行時數(shù)據(jù)區(qū)、內(nèi)存管理相連;本地接口主要為虛擬機(jī)提供調(diào)用本地方法的 接口,與運行時數(shù)據(jù)區(qū)、解釋器、即時編譯模塊、內(nèi)存管理相連;運行時數(shù)據(jù)區(qū)與虛擬機(jī)的其 他模塊均相連;可移植層與整個虛擬機(jī)相連,提升虛擬機(jī)的跨平臺能力。所述的內(nèi)存管理模塊對裝載和運行過程中產(chǎn)生的內(nèi)存進(jìn)行管理。即時編譯模塊可 根據(jù)實際需求將腳本程序編譯成本地代碼,提高運行速度。解釋器模塊對腳本程序解釋執(zhí) 行。本地接口調(diào)用嵌入式本地工具代碼,提高系統(tǒng)運行速度。所述的嵌入式可裁剪式虛擬機(jī)可移植層主要由多種平臺的內(nèi)存、線程、網(wǎng)絡(luò)、文 件、I/O等部分組成,具體采用何種平臺代碼由虛擬機(jī)運行時動態(tài)確定。用戶腳本(User Script)采用Java語言編寫,編譯后通過網(wǎng)絡(luò)將class文件下載 到RAM中;配置信息則是對相關(guān)終端設(shè)備進(jìn)行配置。虛擬機(jī)在配置完成后,通過Java本地 接口(Java Native Interface,JNI)調(diào)用相關(guān)模塊或其它本地代碼來完成用戶腳本的執(zhí) 行,最后達(dá)到控制、顯示的效果。圖2所示,該虛擬機(jī)由解釋器、線程、即時編譯模塊、網(wǎng)絡(luò)、內(nèi)存等組成,不同平臺 對應(yīng)不同組件,虛擬機(jī)會根據(jù)實際需求而生成。另外,用戶還可以自行開發(fā)某個組件來替換 原有組件。如圖3 (a) (b) (c)所示的嵌入式可裁剪式虛擬機(jī)自身的內(nèi)存管理方式,虛擬機(jī) 在實現(xiàn)時會多次申請內(nèi)存,如果都由系統(tǒng)內(nèi)核來管理,勢必造成額外的運行開銷,并產(chǎn)生內(nèi) 存碎片。虛擬機(jī)自身具有可靠的內(nèi)存管理避免了虛擬機(jī)無法申請到內(nèi)存而造成崩潰。虛擬 機(jī)采用兩個雙向鏈表空閑表和使用表,為了便于代碼實現(xiàn),分配時從尾端開始向前進(jìn)行分 配,每次分配后需修改IdleBlockSize (IdleBlockSize為空閑區(qū)的大小)。內(nèi)存節(jié)點結(jié)構(gòu) 由 DataSize、RealSize、TestBlock、Memory、OtherBlock 組成,其含義分別為申請的內(nèi)存大 小、該結(jié)構(gòu)所占空間大小、檢測塊,為四個字節(jié)的字符‘T’、實際申請的內(nèi)存塊、空間余量,主 要用于內(nèi)存調(diào)整函數(shù)。圖4所示,虛擬機(jī)會根據(jù)運行環(huán)境的資源開銷程度來確定是否采用即時編譯技 術(shù),一旦采用該技術(shù),虛擬機(jī)會檢測運行環(huán)境并將代碼編譯成本地代碼,提高運行速度,但 也增加了系統(tǒng)開銷。而解釋器的運行速度雖然沒有即時編譯那么快,但也足以在許多場合 適用,且其系統(tǒng)開銷較小。圖5所示,本發(fā)明嵌入式可裁剪式虛擬機(jī)將底層的不同API(應(yīng)用程序編程接口 )抽 象成統(tǒng)一接口以達(dá)到虛擬機(jī)的高效移植。這些模塊主要有線程、內(nèi)存、網(wǎng)絡(luò)等,抽象后的模塊分別命名為P1 thread、ρlmemory、ρInet,在各個模塊的名字前加“ρ 1 ”表示這是可移植層 抽象后的模塊。以線程(Thread)模塊為例,虛擬機(jī)只會調(diào)用plthread,由此提高了虛擬機(jī) 的移植性。各模塊連接方式如圖5所示各個平臺的線程模塊被抽象到plthread模塊中,內(nèi) 存模塊抽象到Plmemory中,網(wǎng)絡(luò)模塊抽象到plnet中,其它模塊類似。抽象后的plthread、 plmem0ry、plnet、其它模塊整合成可移植層,可移植層與虛擬機(jī)相連接,為虛擬機(jī)的跨平臺 提供可能。所述的可移植層將底層不同平臺中具有同一功能API抽象成統(tǒng)一接口,主要包含 各種平臺的內(nèi)存、網(wǎng)絡(luò)、線程、I/O、文件五部分模塊,并能通過網(wǎng)絡(luò)進(jìn)行系統(tǒng)動態(tài)配置。以線 程模塊為例,不同平臺(DSP、ARM或其它)的線程模塊被抽象成可移植層的plthread模塊, 虛擬機(jī)只會調(diào)用plthread,并根據(jù)初始的宏定義來確定具體采用何種平臺的相關(guān)代碼。開 發(fā)者只要將可移植層設(shè)計完善,使其盡量包含多的平臺,用戶只需簡單的定義相關(guān)宏就能 實現(xiàn)虛擬機(jī)的移植,以滿足不同的嵌入式環(huán)境需求,既可以滿足ARM、DSP這種高性能芯片, 又可以用于單片機(jī)這類低端芯片,提高了開發(fā)效率和應(yīng)用范圍。有了可移植層的支持,不同 類庫中的與平臺相關(guān)的代碼完全被可移植層捕獲,并由其確定調(diào)用對象,加強(qiáng)了系統(tǒng)的功 能擴(kuò)展。所述的可移植層包含多種軟硬平臺信息,使虛擬機(jī)完全可以跨平臺,而不單單是 腳本程序的跨平臺,該方案大大提高了虛擬機(jī)的可移植性。圖6 (a) (b)所示,虛擬機(jī)可以采用自身的內(nèi)存管理算法,也可以采用可移植層中 所提供的內(nèi)存管理算法,更可以采用用戶開發(fā)的高效算法,這完全取決于用戶。可移植層為 虛擬機(jī)提供了兩種方式的線程管理用戶級線程管理和內(nèi)核級線程管理。對于需要人機(jī)交 互的多線程進(jìn)行API重寫,使虛擬機(jī)中對于線程API的調(diào)用都依賴可移植層,提高了可移植 性;在確定沒有人機(jī)交互的腳本程序,對線程進(jìn)行用戶級管理,這樣可以避免內(nèi)核調(diào)度,節(jié) 約運行時間。本嵌入式可裁剪式虛擬機(jī)采用“即時編譯+解釋器”的組合模式,根據(jù)系統(tǒng)執(zhí)行的 代碼量和所能承受的負(fù)擔(dān)來確定采用何種方式,提高處理效率。虛擬機(jī)模塊化、可裁剪,動 態(tài)調(diào)用工具模塊,動態(tài)配置系統(tǒng)信息,功能強(qiáng),可廣泛用于物聯(lián)網(wǎng)底層各種嵌入式設(shè)備,如 機(jī)器視覺,覆蓋領(lǐng)域廣闊。
權(quán)利要求
1.嵌入式可裁剪式虛擬機(jī),其特征是包括一個用于管理虛擬機(jī)內(nèi)存的內(nèi)存管理模塊,負(fù)責(zé)一切實例對象及相關(guān)內(nèi)存的申請與銷毀;一個用于Class文件編譯成本地代碼的即時編譯模塊,以提高程序執(zhí)行效率; 一個用于解釋執(zhí)行字節(jié)碼的解釋器; 一個用于管理線程的線程管理模塊; 一個本地接口,負(fù)責(zé)調(diào)用相關(guān)工具模塊;一個運行時數(shù)據(jù)區(qū),用于存儲包括方法區(qū)、堆、運行時棧、本地方法棧信息; 一個可移植層,以提升虛擬機(jī)的跨平臺能力;所述內(nèi)存管理模塊與所述即時編譯模塊、解釋器、本地接口、運行時數(shù)據(jù)區(qū)和可移植層 均相連;運行時數(shù)據(jù)區(qū)與所述即時編譯模塊、解釋器、本地接口和可移植層均相連;即時編 譯模塊連接本地接口 ;解釋器連接本地接口 ;虛擬機(jī)整體與可移植層相連。
2.如權(quán)利要求1所述嵌入式可裁剪式虛擬機(jī),其特征是所述線程管理模塊分為用戶級 和內(nèi)核級兩種管理方式,當(dāng)腳本程序中沒有人機(jī)交互指令時采用用戶級線程管理,否則采 用內(nèi)核級線程管理。
3.如權(quán)利要求1所述嵌入式可裁剪式虛擬機(jī),其特征是所述可移植層將底層的不同應(yīng) 用程序編程接口抽象成統(tǒng)一接口,供虛擬機(jī)調(diào)用。
4.如權(quán)利要求1所述嵌入式可裁剪式虛擬機(jī),其特征是虛擬機(jī)采用自身的內(nèi)存管理算 法,或采用可移植層中所提供的內(nèi)存管理算法,或采用用戶自定義的內(nèi)存管理算法。
5.如權(quán)利要求1所述嵌入式可裁剪式虛擬機(jī),其特征是所述可移植層包含內(nèi)存、網(wǎng)絡(luò)、 線程、I/O、文件五部分模塊,通過網(wǎng)絡(luò)進(jìn)行系統(tǒng)動態(tài)配置。
全文摘要
本發(fā)明提供了一種應(yīng)用于物聯(lián)網(wǎng)底層嵌入式設(shè)備的可裁剪式虛擬機(jī),包括一個內(nèi)存管理模塊、一個即時編譯模塊、一個解釋器模塊、一個線程管理模塊、一個本地接口模塊、一個運行時數(shù)據(jù)區(qū)、一個可移植層模塊??梢浦矊影瑑?nèi)存、網(wǎng)絡(luò)、線程、文件、I/O等模塊,通過網(wǎng)絡(luò)進(jìn)行系統(tǒng)動態(tài)配置,使虛擬機(jī)實現(xiàn)跨平臺??刹眉羰教摂M機(jī)適用于物聯(lián)網(wǎng)底層不同層次嵌入式設(shè)備的需求,具有應(yīng)用范圍廣、體積小、能耗低、功能強(qiáng)、配置靈活的特點,可廣泛用于物聯(lián)網(wǎng)底層各種嵌入式設(shè)備,如機(jī)器視覺,覆蓋領(lǐng)域廣闊。
文檔編號G06F9/455GK102004662SQ20101057677
公開日2011年4月6日 申請日期2010年12月7日 優(yōu)先權(quán)日2010年12月7日
發(fā)明者白瑞林, 趙潔 申請人:江南大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
河北区| 沂南县| 湖北省| 琼结县| 保德县| 仁化县| 岢岚县| 镶黄旗| 河津市| 阿图什市| 东莞市| 南通市| 浪卡子县| 尚义县| 普陀区| 淮阳县| 德化县| 时尚| 革吉县| 加查县| 周至县| 鹤壁市| 临泽县| 普陀区| 盱眙县| 泰顺县| 伊宁市| 老河口市| 梧州市| 深圳市| 河源市| 麦盖提县| 磴口县| 揭东县| 扬中市| 勐海县| 伊金霍洛旗| 福鼎市| 剑河县| 屯留县| 株洲市|