嵌入式網(wǎng)絡(luò)智能控制系統(tǒng)的研究
關(guān)鍵詞:嵌入式操作系統(tǒng);Web服務(wù)器;調(diào)度算法
1引 言
隨著 Internet 技術(shù)的發(fā)展、信息家電的普及應(yīng)用以及EOS(Embedded Operating System)的微型化和專業(yè)化,EOS 開始從單一的弱功能向高專業(yè)化的強功能方向發(fā)展。以基于Internet為標(biāo)志的嵌入式系統(tǒng),正處在迅速發(fā)展的階段。目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,但隨著Internet的發(fā)展以及Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等結(jié)合日益密切,嵌入式設(shè)備與Internet的結(jié)合將代表著嵌入式技術(shù)的真正未來。
本文所研究的嵌入式網(wǎng)絡(luò)智能終端控制系統(tǒng),以微處理系統(tǒng)直接與以太網(wǎng)連接的方式,將嵌入式操作系統(tǒng)和Internet 網(wǎng)絡(luò)有機地結(jié)合起來。以下將從嵌入式網(wǎng)絡(luò)智能控制系統(tǒng)的體系結(jié)構(gòu)、軟件系統(tǒng)兩部分進(jìn)行闡述。
2 嵌入式網(wǎng)絡(luò)智能控制系統(tǒng)的體系結(jié)構(gòu)
嵌入式網(wǎng)絡(luò)智能控制系統(tǒng)的應(yīng)用環(huán)境與網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。圖1所示的拓?fù)浣Y(jié)構(gòu)由嵌入式網(wǎng)絡(luò)智能終端、調(diào)度服務(wù)器、Web服務(wù)器組[2]、Internet主機組成。嵌入式網(wǎng)絡(luò)智能終端采用uCLinux操作系統(tǒng)[1],該終端直接與以太網(wǎng)相連,將數(shù)據(jù)傳送到Internet廣域網(wǎng)的Web服務(wù)器。調(diào)度服務(wù)器在該系統(tǒng)中起負(fù)載調(diào)度的作用,不至于Web服務(wù)器中的某個服務(wù)器負(fù)載過重。Web服務(wù)器組收集嵌入式網(wǎng)絡(luò)智能終端系統(tǒng)的數(shù)據(jù),應(yīng)答廣域網(wǎng)主機的訪問。廣域網(wǎng)中的主機可以隨機訪問Web服務(wù)器獲取嵌入式網(wǎng)絡(luò)智能終端的數(shù)據(jù),有特定權(quán)限的主機并可以直接訪問嵌入式網(wǎng)絡(luò)智能終端。
圖1系統(tǒng)應(yīng)用環(huán)境與網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
嵌入式網(wǎng)絡(luò)智能終端由微處理器、外部接口、網(wǎng)絡(luò)信息處理、電平轉(zhuǎn)換、擴展存儲器等幾部分組成,嵌入式網(wǎng)絡(luò)智能終端的硬件結(jié)構(gòu)如圖2所示。
圖 2嵌入式網(wǎng)絡(luò)智能終端硬件結(jié)構(gòu)
3 軟件系統(tǒng)
3.1嵌入式網(wǎng)絡(luò)智能終端軟件體系結(jié)構(gòu)
根據(jù)圖1所示的環(huán)境本文選用uClinux操作系統(tǒng)作為軟件系統(tǒng)開發(fā)平臺,圖3顯示了軟件系統(tǒng)的整體構(gòu)架。軟件系統(tǒng)分為兩個部分:受控對象軟件部分與嵌入式網(wǎng)絡(luò)智能終端軟件部分。
受控對象軟件部分涉及傳感器如何收集受控對象的信號,如何驅(qū)動受控對象和外設(shè),怎樣將信號傳送到嵌入式網(wǎng)絡(luò)智能控制終端。
嵌入式網(wǎng)絡(luò)智能終端軟件部分涉及到內(nèi)核的修改、操作系統(tǒng)的移植、文件處理、圖形用戶接口的設(shè)計、任務(wù)的處理、如何添加應(yīng)用程序到uClinux中以及嵌入式網(wǎng)絡(luò)智能控制終端與Web服務(wù)器之間信息的交換。
圖3 軟件系統(tǒng)的整體構(gòu)架
3.2 嵌入式網(wǎng)絡(luò)智能控制終端與Web服務(wù)器之間信息的交換
Web服務(wù)器是遠(yuǎn)程設(shè)備導(dǎo)出信息的重要手段,它可以通過公共網(wǎng)關(guān)接口(CGI)的表單允許修改設(shè)備參數(shù),從而進(jìn)行遠(yuǎn)程監(jiān)控[2]。Web服務(wù)器已經(jīng)成為遠(yuǎn)程管理,特別是那些沒有傳統(tǒng)用戶界面(如本文設(shè)計的嵌入式智能終端)的設(shè)備標(biāo)準(zhǔn)。Web瀏覽器可以與遠(yuǎn)程設(shè)備進(jìn)行通信,并展示相應(yīng)的數(shù)據(jù)。在圖1所示的拓?fù)洵h(huán)境中Web服務(wù)器、客戶機和嵌入式網(wǎng)絡(luò)智能終端使用超文本協(xié)議[3](HTTP)和網(wǎng)路編程來實現(xiàn)信息的交換和遠(yuǎn)程管理。
HTTP是一種基于ASCII的協(xié)議。HTTP在TCP/IP協(xié)議上面使用標(biāo)準(zhǔn)同步請求/應(yīng)答模式、客戶機/服務(wù)器結(jié)構(gòu)[4]。當(dāng)客戶機向HTTP服務(wù)器提出請求時,需要發(fā)送一個HTTP請求報文,該報文的格式如圖4所示。
圖4 HTTP請求報文格式
圖4顯示HTTP請求報文由請求行、可選報頭、可選報文報體字段組成。請求行建立后來活動的舞臺??蛇x報頭指出客戶機請求的協(xié)議,以及服務(wù)器在應(yīng)答之前要了解的客戶機的信息。
HTTP請求報文包含很少的一些信息,但通過這些信息可以通知服務(wù)器它的“能力和偏好”。同樣HTTP應(yīng)答也采用類似的結(jié)構(gòu),在這里就不再闡述。
3.3 網(wǎng)絡(luò)數(shù)據(jù)的提交
實現(xiàn)嵌入式網(wǎng)絡(luò)智能終端應(yīng)用程序網(wǎng)絡(luò)數(shù)據(jù)提交(圖3軟件層中的應(yīng)用程序)時,嵌入式網(wǎng)絡(luò)智能終端與廣域網(wǎng)Web服務(wù)器之間的網(wǎng)絡(luò)通信采用客戶/服務(wù)器模式方式,即uCLinux操作系統(tǒng)環(huán)境下進(jìn)行網(wǎng)絡(luò)編程。實現(xiàn)網(wǎng)絡(luò)編程(信息傳輸)包括以下五個基本過程:創(chuàng)建套接字:調(diào)用socket();綁定套接字:調(diào)用bind();創(chuàng)建連接:調(diào)用connect();監(jiān)聽連接:調(diào)用listen();建立連接:調(diào)用accept()。
3.4調(diào)度服務(wù)器的調(diào)度算法
影響圖1所示的嵌入式網(wǎng)絡(luò)智能控制系統(tǒng)可靠性的關(guān)鍵因素是調(diào)度服務(wù)器的網(wǎng)絡(luò)性能,合理進(jìn)行參數(shù)計算和映射與負(fù)載定位是提升網(wǎng)絡(luò)性能的關(guān)鍵。
3.4.1 參數(shù)的計算和映射
CPU利用率能直接反映服務(wù)器的性能,以下給出linux操作系統(tǒng)中獲取CPU利用率過程,linux操作系統(tǒng)中通過讀取/proc/stat文件,該文件中記錄有sys、user、nice和idle變量。計算CPU利用率時只要兩次讀取這些變量,然后利用公式:
Total_1=user_1+nice_1+sys_1+idel_1;
Total_2=user_2+nice_2+sys_1+idel_2;
IntCpuRate=(int)(((float)((user_2+sys_2+nice_2)-(user_1+sys_1+nice_1))/(float)(total_2-total_1))*100);
其中total_1為第一次讀取的參數(shù)總和,total_2為第二次讀取的參數(shù)總和。
對于其他的參數(shù),例如緩沖區(qū)的大小,可以通過調(diào)用linux操作系統(tǒng)的系統(tǒng)函數(shù)ioct1()來獲取。
獲取對應(yīng)的參數(shù)以后,再將對應(yīng)的參數(shù)映射到負(fù)載定位算法中,在參數(shù)的轉(zhuǎn)換過程中主要采用的算法是動態(tài)閥值算法[5]。該算法的數(shù)學(xué)模型如下:
上式中B為系統(tǒng)接口緩沖區(qū)空間的容量,Qi(t)為第i個Web服務(wù)器的隊列長度,Q(t)為當(dāng)前系統(tǒng)總隊列長度,T(t)為不再連接會話的閥值參數(shù),α為調(diào)節(jié)因子。上述公式可知,動態(tài)閥值算法根據(jù)系統(tǒng)狀態(tài)動態(tài)調(diào)整控制閥值,閥值的大小與當(dāng)前系統(tǒng)中空閑的資源成正比,當(dāng)某個Web服務(wù)器緩沖區(qū)空間超過閥值時,將阻塞該Web服務(wù)器,不再給該Web服務(wù)器分配負(fù)載。
3.4.2 負(fù)載定位策略
根據(jù)前面得到參數(shù),將這些參數(shù)傳遞到調(diào)度服務(wù)器。調(diào)度服務(wù)器通過使用加權(quán)輪轉(zhuǎn)調(diào)度算法[5]來選擇合適的服務(wù)器,即將負(fù)載定位到具體Web服務(wù)器上。定位策略的算法描述如下:
假設(shè)有一組Web服務(wù)器表示為S = {S0, S1, …, Sn-1},W(Si)表示W(wǎng)eb服務(wù)器 Si的權(quán)值,變量 i表示上一次選擇的Web服務(wù)器,變量cw表示當(dāng)前調(diào)度的權(quán)值,max(S)表示集合S中所有Web服務(wù)器的最大權(quán)值,gcd(S)表示集合S中所有Web服務(wù)器權(quán)值的最大公約數(shù)。變量 i 和cw最初都被初始化為零。算法描述如下:
while (true) {
if (i == 0) {
cw = cw - gcd(S);
if (cw <= 0) {
cw = max(S);
if (cw == 0)
return NULL;
}
} else i = (i + 1) mod n;
if (W(Si) >= cw)
return Si; }
4實驗環(huán)境和結(jié)果
實驗拓?fù)浣Y(jié)構(gòu)采用如圖1所示的最簡系統(tǒng)。嵌入式網(wǎng)絡(luò)智能終端采用嵌入uClinux操作系統(tǒng),并在uClinux操作系統(tǒng)添加相應(yīng)的網(wǎng)絡(luò)通信程序。調(diào)度服務(wù)器采用Linux9.0作為操作系統(tǒng)并實現(xiàn)3.3節(jié)的調(diào)度算法。Web服務(wù)器組、Internet主機為常見的形式。圖5是利用Ethereal網(wǎng)絡(luò)協(xié)議分析器獲取的數(shù)據(jù)包的情況,該圖表明本文設(shè)計的系統(tǒng)和采用的算法有效。
圖5 獲取的數(shù)據(jù)包
5 結(jié)束語
實驗表明本文提出的系統(tǒng)結(jié)構(gòu)、負(fù)載計算法和調(diào)度算法實現(xiàn)了嵌入式網(wǎng)絡(luò)智能控制終端的遠(yuǎn)程控制。通過采用加權(quán)輪轉(zhuǎn)調(diào)度算法和動態(tài)閥值算法解決了系統(tǒng)負(fù)載調(diào)度問題,使得系統(tǒng)具有良好的網(wǎng)絡(luò)性能和較高的實際應(yīng)用價值。該系統(tǒng)的實現(xiàn)為進(jìn)一步進(jìn)行嵌入式網(wǎng)絡(luò)遠(yuǎn)程控制系統(tǒng)服務(wù)的研究搭建了一個良好的網(wǎng)絡(luò)平臺。
參考文獻(xiàn)
[1] 李晶,張維新. uClinux下實時任務(wù)的一種實現(xiàn)方法[J].微計算機信息,2005(1):129-130
[2] 王東濱,方濱興,云曉春. 基于Web管理的網(wǎng)絡(luò)監(jiān)測技術(shù)的設(shè)計與實[J]. 計算機工程, 2002(10),2003-2004
[3] J. Gettys J. Mogul Hypertext Transfer Protocol -- HTTP/1.1[S] RFC2068
[4] M.tim jones 嵌入式系統(tǒng)TCP/IP應(yīng)用層協(xié)議[M]. 北京:電子工業(yè)出版社,2003.91-96.
[5] Hahme E L, Choudhury A K. Dynamic queue length threshold for mulitiple loss priorities. IEEE/ACM Trans Networking[J],2002,10(3):368-380