国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種應(yīng)用于分區(qū)操作系統(tǒng)的虛擬化SOCKET通信方法

2017-10-21 20:54:49周霆郭芳超
科技風(fēng) 2017年8期

周霆 郭芳超

摘 要:綜合化航空電子系統(tǒng)進(jìn)一步提升綜合化水平以后,大量應(yīng)用通過(guò)分區(qū)操作系統(tǒng)提供的分區(qū)執(zhí)行環(huán)境共存于同一硬件處理平臺(tái),可能出現(xiàn)有限的TCP/IP網(wǎng)絡(luò)硬件難以滿足多個(gè)分區(qū)并行網(wǎng)絡(luò)通信的問(wèn)題,因此本文提出一種基于C/S服務(wù)的SOCKET通信虛擬化機(jī)制。該方法通過(guò)建立SERVER端分區(qū)來(lái)提供網(wǎng)絡(luò)服務(wù),并在充當(dāng)CLIENT端的普通應(yīng)用分區(qū)向用戶提供透明的SOCKET樁接口,同時(shí)利用操作系統(tǒng)的IPC通信機(jī)制實(shí)現(xiàn)SERVER端和CLIENT端的服務(wù)通信,從而實(shí)現(xiàn)在SOCKET層的網(wǎng)絡(luò)虛擬化,解決多個(gè)分區(qū)在物理網(wǎng)絡(luò)設(shè)備有限的情況下并行使用SOCKET進(jìn)行網(wǎng)絡(luò)通信的問(wèn)題,實(shí)現(xiàn)了一定程度的虛擬化網(wǎng)絡(luò)共享服務(wù)。

關(guān)鍵詞:分區(qū)操作系統(tǒng);SOCKET通信;C/S服務(wù);網(wǎng)絡(luò)虛擬化

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

隨著航空電子技術(shù)的發(fā)展,在一個(gè)物理處理平臺(tái)上將集成越來(lái)越多,甚至來(lái)自于多個(gè)機(jī)載子系統(tǒng)的軟件任務(wù)[ 1 ],綜合化模塊化航空電子系統(tǒng)(Integrated Modular Avionics,簡(jiǎn)稱IMA)進(jìn)一步提升綜合的水平成為必然發(fā)展趨勢(shì)。未來(lái)綜合范圍將從航電向機(jī)電、飛控進(jìn)一步擴(kuò)展,實(shí)現(xiàn)跨系統(tǒng)大綜合,越來(lái)越多的應(yīng)用系統(tǒng)將集成在同一個(gè)操作系統(tǒng)平臺(tái)之上。

為了解決綜合化帶來(lái)的故障隔離和確定性問(wèn)題,現(xiàn)有的高安全機(jī)載操作系統(tǒng)都采用了分區(qū)機(jī)制,提供分區(qū)間隔離與分區(qū)間通信能力,但對(duì)于高度綜合化以后引發(fā)的I/O資源不足和沖突的問(wèn)題卻沒(méi)有充分考慮[ 2 ]。

本文提出一種虛擬化SOCKET通信方法,解決分區(qū)操作系統(tǒng)多個(gè)分區(qū)共享網(wǎng)絡(luò)設(shè)備的情況下使用SOCKET機(jī)制和接口進(jìn)行網(wǎng)絡(luò)通信的問(wèn)題。隨著航空電子技術(shù)的發(fā)展,在一個(gè)物理處理平臺(tái)上將集成越來(lái)越多,甚至來(lái)自于多個(gè)機(jī)載子系統(tǒng)的軟件任務(wù),綜合化模塊化航空電子系統(tǒng)(Integrated Modular Avionics,簡(jiǎn)稱IMA)進(jìn)一步提升綜合的水平成為必然發(fā)展趨勢(shì)。

目前,越來(lái)越多的IMA應(yīng)用都駐留于分區(qū)操作系統(tǒng)提供的分區(qū)應(yīng)用運(yùn)行環(huán)境中,由于應(yīng)用系統(tǒng)的復(fù)雜性,多個(gè)分區(qū)的任務(wù)很可能需要進(jìn)行通信或者數(shù)據(jù)交互。常見(jiàn)的如IPC、共享內(nèi)存等數(shù)據(jù)通信方式存在一些不足,IPC通信效率不高,需要多次數(shù)據(jù)拷貝且通信數(shù)據(jù)量受限,普通的共享內(nèi)存則會(huì)出現(xiàn)數(shù)據(jù)安全問(wèn)題?;谏鲜鲈颍枰M(jìn)一步研究分區(qū)操作系統(tǒng)的分區(qū)間通信機(jī)制的實(shí)現(xiàn),在保證通信效率的同時(shí),提升通信數(shù)據(jù)的safety和security安全防護(hù)能力。

1 概述

典型的分區(qū)操作系統(tǒng)架構(gòu)包括多個(gè)應(yīng)用分區(qū)和服務(wù)分區(qū)。應(yīng)用分區(qū)向用戶提供時(shí)間、空間隔離的獨(dú)立應(yīng)用運(yùn)行環(huán)境。應(yīng)用分區(qū)作為客戶端(CLIENT)可以向作為服務(wù)端(SERVER)的公共服務(wù)分區(qū)以C/S服務(wù)的形式申請(qǐng)組件/中間件/設(shè)備服務(wù)[ 3 ]。

在這種架構(gòu)下,一方面,由于在同一平臺(tái)上的應(yīng)用任務(wù)數(shù)量的增多,導(dǎo)致更多的分區(qū)產(chǎn)了通信需求。以TCP/IP網(wǎng)絡(luò)為例,目前主流的機(jī)載綜合處理硬件平臺(tái)如PowerPC 75x和86xx系列,都僅提供最多2路物理網(wǎng)卡,面對(duì)大量同平臺(tái)應(yīng)用可能出現(xiàn)的網(wǎng)絡(luò)通信需求,顯然是不夠用的,如果不支持設(shè)備共享,將無(wú)法解決網(wǎng)絡(luò)和I/O設(shè)備不夠用的問(wèn)題。

另一方面,如果多應(yīng)用混合場(chǎng)景下多個(gè)應(yīng)用分區(qū)直接操縱同一網(wǎng)絡(luò)或I/O設(shè)備,對(duì)任務(wù)的執(zhí)行時(shí)間確定性和數(shù)據(jù)正確性都會(huì)產(chǎn)生不確定的影響。在硬件設(shè)備資源有限的情況下,虛擬化多分區(qū)的系統(tǒng)架構(gòu)勢(shì)必引起資源訪問(wèn)和狀態(tài)控制的沖突。分區(qū)操作系統(tǒng)需要在軟件層面來(lái)解決多任務(wù)間的硬件資源沖突,實(shí)現(xiàn)任務(wù)級(jí)的資源隔離。

使用SOCKET(套接字)的機(jī)制和接口進(jìn)行任務(wù)間網(wǎng)絡(luò)通信已經(jīng)成為目前主流的網(wǎng)絡(luò)編程開(kāi)發(fā)方式。由于分區(qū)空間的隔離性,目前分區(qū)操作系統(tǒng)的SOCKET應(yīng)用都建立在本地駐留TCP/IP協(xié)議棧和物理網(wǎng)卡的基礎(chǔ)之上?;谏鲜隹赡艹霈F(xiàn)的網(wǎng)絡(luò)資源不足和訪問(wèn)沖突問(wèn)題,本文給出一種基于C/S服務(wù)的SOCKET虛擬化機(jī)制,以解決在分區(qū)操作系統(tǒng)中多個(gè)分區(qū)共享網(wǎng)絡(luò)設(shè)備時(shí)使用SOCKET并行進(jìn)行網(wǎng)絡(luò)通信的引發(fā)的網(wǎng)絡(luò)網(wǎng)卡不足和訪問(wèn)沖突問(wèn)題。

2 統(tǒng)一設(shè)備管理框架

首先,本文提出一種統(tǒng)一設(shè)備管理框架來(lái)用作軟件層面的設(shè)備虛擬化解決方案,以解決在多分區(qū)系統(tǒng)中包括網(wǎng)絡(luò)設(shè)備在內(nèi)的多種I/O設(shè)備所存在的共享沖突問(wèn)題和設(shè)備的統(tǒng)一化管理問(wèn)題。

本文擬搭建的設(shè)備管理框架如圖1所示。所有分區(qū)通過(guò)I/O管理模塊統(tǒng)一管理包括獨(dú)占設(shè)備和共享設(shè)備在內(nèi)的兩類分區(qū)設(shè)備。對(duì)于獨(dú)占設(shè)備,其地址空間映射在所有者的分區(qū)地址空間內(nèi),分區(qū)應(yīng)用程序直接使用本分區(qū)的原始設(shè)備驅(qū)動(dòng)對(duì)設(shè)備進(jìn)行訪問(wèn);對(duì)于共享設(shè)備,其地址空間位于設(shè)備服務(wù)分區(qū)內(nèi),共享設(shè)備采用客戶(CLIENT)/服務(wù)器(SERVER)模式完成共享設(shè)備訪問(wèn)。其中,設(shè)備服務(wù)分區(qū)作為SERVER端,包含真實(shí)設(shè)備驅(qū)動(dòng)程序和協(xié)議棧接口。

客戶端分區(qū)的樁驅(qū)動(dòng)通過(guò)IPC通信向服務(wù)端分區(qū)發(fā)送設(shè)備訪問(wèn)請(qǐng)求,服務(wù)端分區(qū)包含專門(mén)的設(shè)備服務(wù)器,調(diào)用真實(shí)的設(shè)備驅(qū)動(dòng)或協(xié)議棧完成設(shè)備訪問(wèn)動(dòng)作。SERVER端服務(wù)器將使用帶截止期的事務(wù)鏈等機(jī)制來(lái)將混合任務(wù)可能發(fā)起的并行化I/O操作轉(zhuǎn)化為時(shí)間確定的串行化事務(wù)。

在這種管理框架下,所有的設(shè)備驅(qū)動(dòng)程序都位于內(nèi)核之外的用戶態(tài)空間,具有以下優(yōu)點(diǎn):

1)大量的操作系統(tǒng)BUG都處于設(shè)備驅(qū)動(dòng)程序中,將這些設(shè)備驅(qū)動(dòng)程序從內(nèi)核中去除,將顯著提升內(nèi)核可靠性;

2)把設(shè)備驅(qū)動(dòng)程序置于內(nèi)核之外可以大幅降低內(nèi)核的代碼規(guī)模,獲取更小的內(nèi)核尺寸,從而能夠滿足目前的形式化驗(yàn)證方法對(duì)內(nèi)核代碼規(guī)模的約束。

3 C/S模式的虛擬化SOCKET服務(wù)框架

根據(jù)C/S服務(wù)的一般原理,完整的虛擬化SOCKET的C/S模式框架包括客戶端配置、服務(wù)器端配置,以及客戶端和服務(wù)器端的通信配置。一個(gè)配置物理網(wǎng)卡和完整TCP/IP協(xié)議棧的網(wǎng)絡(luò)服務(wù)分區(qū)充當(dāng)Sever端,提供SOCKET通信服務(wù);其他需要以共享方式使用SOCKET的分區(qū)(CLIENT端)在本地使用虛擬化的SOCKET接口,向SERVER端發(fā)送服務(wù)請(qǐng)求;SERVER端和CLIENT端使用IPC通信進(jìn)行命令轉(zhuǎn)發(fā),使用共享內(nèi)存進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)[ 4 ]。

3.1 SERVER端分區(qū)功能

a)一個(gè)負(fù)責(zé)處理外部網(wǎng)絡(luò)與CLIENT端SOCKET命令雙向動(dòng)作的設(shè)備監(jiān)聽(tīng)與響應(yīng)任務(wù)A,此任務(wù)循環(huán)等待并依次處理物理網(wǎng)卡的數(shù)據(jù)收發(fā)和任務(wù)B轉(zhuǎn)發(fā)而來(lái)的CLIENT端請(qǐng)求,并向CLIENT端進(jìn)行必要的回復(fù);

b)一個(gè)專門(mén)接收CLIENT端SOCKET命令(以IPC消息的形式存在)的處理任務(wù)B,此任務(wù)在接收到CLIENT端命令后,激活任務(wù)A進(jìn)行相應(yīng)處理。

3.2 CLIENT端分區(qū)功能

一組用IPC通信重新實(shí)現(xiàn)的虛擬化SOCKET接口庫(kù),在下文描述中使用v_XX來(lái)指代虛擬化的SOCKET接口,v_XX接口調(diào)用都通過(guò)IPC操作將相應(yīng)的服務(wù)命令發(fā)送給SERVER端的任務(wù)B。

3.3 IPC通信功能配置

a)CLIENT端分區(qū)的應(yīng)用程序任務(wù)Y需要使用IPC_SEND向SERVER端的任務(wù)B發(fā)送SOCKET服務(wù)請(qǐng)求,使用IPC_RECV向SERVER端的任務(wù)A請(qǐng)求服務(wù)回復(fù)。

b)SERVER端分區(qū)的任務(wù)A使用IPC_SEND向CLIENT端應(yīng)用程序任務(wù)Y發(fā)送服務(wù)回復(fù)。

4 虛擬化SOCKET的工作原理

如圖2所示,是一套完整的虛擬化SOCKET工作流程,CLIENT端分區(qū)_1通過(guò)虛擬化SOCKET接口,借助IPC通信機(jī)制與SERVER端分區(qū)交互,SERVER端分區(qū)利用協(xié)議棧和網(wǎng)卡驅(qū)動(dòng),通過(guò)物理網(wǎng)卡與系統(tǒng)外部進(jìn)行網(wǎng)絡(luò)交互。

a)分區(qū)操作系統(tǒng)啟動(dòng)以后,SERVER分區(qū)的任務(wù)A進(jìn)入處理循環(huán),等待依次處理網(wǎng)卡事件和任務(wù)B轉(zhuǎn)發(fā)而來(lái)的CLIENT端命令,任務(wù)B等待接收CLIENT端發(fā)來(lái)的IPC消息(包含套接字命令和相關(guān)信息);

b)CLIENT端任務(wù)Y開(kāi)始建立套接字準(zhǔn)備進(jìn)行網(wǎng)絡(luò)通信,首先調(diào)用v_socket、v_bind等接口建立SOCKET設(shè)備和連接(如果是TCP通信,則調(diào)用v_listen或v_connect來(lái)監(jiān)聽(tīng)或建立連接,如果應(yīng)用程序是服務(wù)端,則在監(jiān)聽(tīng)到請(qǐng)求之后調(diào)用v_accept接收請(qǐng)求。UDP通信可以不用建立連接),通過(guò)IPC_SEND向SERVER端的任務(wù)發(fā)送套接字命令請(qǐng)求(此時(shí)可使用v_read/v_write、v_recv/v_send等套接字讀寫(xiě)接口進(jìn)行網(wǎng)絡(luò)通信),并調(diào)用IPC_RECV等待從任務(wù)A返回執(zhí)行結(jié)果。

c)SERVER分區(qū)的任務(wù)B接受到CLIENT端的v_socket、v_bind等服務(wù)請(qǐng)求后激活任務(wù)A進(jìn)行SOCKET設(shè)備的創(chuàng)建和連接建立操作,并進(jìn)行額外的共享內(nèi)存建立工作,以便于后續(xù)與CLIENT分區(qū)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的讀/寫(xiě)轉(zhuǎn)發(fā),隨后將套接字句柄和網(wǎng)絡(luò)地址等信息通過(guò)IPC_SEND回復(fù)給任務(wù)Y,此時(shí)SOCKET通信準(zhǔn)備就緒。

d)CLIENT端任務(wù)Y通過(guò)套接字進(jìn)行網(wǎng)絡(luò)收據(jù)收/發(fā),所有收發(fā)命令都與步驟b)和c)一樣轉(zhuǎn)發(fā)給任務(wù)A執(zhí)行,并在接收到任務(wù)A的回復(fù)后完成一次SOCKET通信動(dòng)作。

5 數(shù)據(jù)包和服務(wù)命令的通信配置

虛擬化SOCKET通信機(jī)制包含大量的服務(wù)端和客戶端之間的通信,大量的通信交互行為成為制約虛擬化SOCKET性能的瓶頸所在。梳理上述的SOCKET通信流程,可以看出大部分的交互消息屬于服務(wù)命令,而不是大數(shù)據(jù)量的網(wǎng)絡(luò)數(shù)據(jù)包,因此需要著重提升服務(wù)命令的通信性能。因此,為了提升服務(wù)性能,本方法對(duì)分區(qū)之間的數(shù)據(jù)交互采取了特異化處理。對(duì)服務(wù)命令采用短IPC通信的方式,對(duì)大數(shù)據(jù)量的數(shù)據(jù)包采用共享內(nèi)存的方式。

短IPC利用系統(tǒng)調(diào)用上下文保存和恢復(fù)的過(guò)程完成消息在用戶態(tài)和操作系統(tǒng)內(nèi)核之間的傳遞,在內(nèi)核只需要1次拷貝就可以完成數(shù)據(jù)傳遞。同時(shí),IPC機(jī)制是一種任務(wù)間的同步通信方式,適用于C/S模式要求的任務(wù)間的同步阻塞工作機(jī)制。

6 結(jié)語(yǔ)

本文深入研究了機(jī)載嵌入式分區(qū)操作系統(tǒng)在綜合化程度提升以后出現(xiàn)的設(shè)備共享和互斥保護(hù)問(wèn)題,給出了解決多分區(qū)網(wǎng)絡(luò)共享,基于C/S服務(wù)的虛擬化SOCKET通信方法,解決了SOCKET層的網(wǎng)絡(luò)共享問(wèn)題。通過(guò)在某分區(qū)實(shí)時(shí)操作系統(tǒng)中的實(shí)現(xiàn),證實(shí)文中涉及的設(shè)計(jì)和實(shí)現(xiàn)方法是高效可行的。在今后的工作中,我們將進(jìn)一步進(jìn)行策略和機(jī)制的抽象,研究能夠覆蓋多種設(shè)備的,統(tǒng)一的分區(qū)操作系統(tǒng)設(shè)備共享方案。

參考文獻(xiàn):

[1] Gernot Heiser,Chief Technology.Virtualization for Embedded Systems,OK 40036:2007.

[2] Asif Iqbal,Nayeema Sadeque,Rafika Ida Mutia.An Overview of Microkernel,Hypervisor and Microvisor Virtualization Approaches for Embedded Systems,Sweden.

[3] 郝繼鋒,任曉瑞,胡寧.一種基于微核架構(gòu)的虛擬化設(shè)備高效訪問(wèn)模型.電子技術(shù),2013 42(7):4-6.

[4] VxWorks中任務(wù)恢復(fù)機(jī)制的設(shè)計(jì)與實(shí)現(xiàn)[J].空軍工程大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,14(5):3-4.

作者簡(jiǎn)介:

周霆(1984-),男,陜西洋縣人,主要從事嵌入式實(shí)時(shí)操作系統(tǒng)方向的研究。

沙坪坝区| 丽水市| 乌鲁木齐县| 漯河市| 武功县| 正宁县| 建水县| 临沭县| 山阴县| 丹阳市| 洛南县| 永清县| 五莲县| 中宁县| 夏津县| 淅川县| 衡阳市| 宁津县| 勃利县| 含山县| 阿城市| 乌苏市| 绥德县| 丹巴县| 双牌县| 莆田市| 洛扎县| 威海市| 北票市| 黔东| 桂林市| 三河市| 伊春市| 宝丰县| 武胜县| 同仁县| 长沙市| 荣昌县| 青川县| 巴中市| 博爱县|