嵌入式網絡智能控制系統(tǒng)的研究
關鍵詞:嵌入式操作系統(tǒng);Web服務器;調度算法
1引 言
隨著 Internet 技術的發(fā)展、信息家電的普及應用以及EOS(Embedded Operating System)的微型化和專業(yè)化,EOS 開始從單一的弱功能向高專業(yè)化的強功能方向發(fā)展。以基于Internet為標志的嵌入式系統(tǒng),正處在迅速發(fā)展的階段。目前大多數嵌入式系統(tǒng)還孤立于Internet之外,但隨著Internet的發(fā)展以及Internet技術與信息家電、工業(yè)控制技術等結合日益密切,嵌入式設備與Internet的結合將代表著嵌入式技術的真正未來。
本文所研究的嵌入式網絡智能終端控制系統(tǒng),以微處理系統(tǒng)直接與以太網連接的方式,將嵌入式操作系統(tǒng)和Internet 網絡有機地結合起來。以下將從嵌入式網絡智能控制系統(tǒng)的體系結構、軟件系統(tǒng)兩部分進行闡述。
2 嵌入式網絡智能控制系統(tǒng)的體系結構
嵌入式網絡智能控制系統(tǒng)的應用環(huán)境與網絡拓撲結構如圖1所示。圖1所示的拓撲結構由嵌入式網絡智能終端、調度服務器、Web服務器組[2]、Internet主機組成。嵌入式網絡智能終端采用uCLinux操作系統(tǒng)[1],該終端直接與以太網相連,將數據傳送到Internet廣域網的Web服務器。調度服務器在該系統(tǒng)中起負載調度的作用,不至于Web服務器中的某個服務器負載過重。Web服務器組收集嵌入式網絡智能終端系統(tǒng)的數據,應答廣域網主機的訪問。廣域網中的主機可以隨機訪問Web服務器獲取嵌入式網絡智能終端的數據,有特定權限的主機并可以直接訪問嵌入式網絡智能終端。
圖1系統(tǒng)應用環(huán)境與網絡拓撲結構
嵌入式網絡智能終端由微處理器、外部接口、網絡信息處理、電平轉換、擴展存儲器等幾部分組成,嵌入式網絡智能終端的硬件結構如圖2所示。
圖 2嵌入式網絡智能終端硬件結構
3 軟件系統(tǒng)
3.1嵌入式網絡智能終端軟件體系結構
根據圖1所示的環(huán)境本文選用uClinux操作系統(tǒng)作為軟件系統(tǒng)開發(fā)平臺,圖3顯示了軟件系統(tǒng)的整體構架。軟件系統(tǒng)分為兩個部分:受控對象軟件部分與嵌入式網絡智能終端軟件部分。
受控對象軟件部分涉及傳感器如何收集受控對象的信號,如何驅動受控對象和外設,怎樣將信號傳送到嵌入式網絡智能控制終端。
嵌入式網絡智能終端軟件部分涉及到內核的修改、操作系統(tǒng)的移植、文件處理、圖形用戶接口的設計、任務的處理、如何添加應用程序到uClinux中以及嵌入式網絡智能控制終端與Web服務器之間信息的交換。
圖3 軟件系統(tǒng)的整體構架
3.2 嵌入式網絡智能控制終端與Web服務器之間信息的交換
Web服務器是遠程設備導出信息的重要手段,它可以通過公共網關接口(CGI)的表單允許修改設備參數,從而進行遠程監(jiān)控[2]。Web服務器已經成為遠程管理,特別是那些沒有傳統(tǒng)用戶界面(如本文設計的嵌入式智能終端)的設備標準。Web瀏覽器可以與遠程設備進行通信,并展示相應的數據。在圖1所示的拓撲環(huán)境中Web服務器、客戶機和嵌入式網絡智能終端使用超文本協(xié)議[3](HTTP)和網路編程來實現(xiàn)信息的交換和遠程管理。
HTTP是一種基于ASCII的協(xié)議。HTTP在TCP/IP協(xié)議上面使用標準同步請求/應答模式、客戶機/服務器結構[4]。當客戶機向HTTP服務器提出請求時,需要發(fā)送一個HTTP請求報文,該報文的格式如圖4所示。
圖4 HTTP請求報文格式
圖4顯示HTTP請求報文由請求行、可選報頭、可選報文報體字段組成。請求行建立后來活動的舞臺。可選報頭指出客戶機請求的協(xié)議,以及服務器在應答之前要了解的客戶機的信息。
HTTP請求報文包含很少的一些信息,但通過這些信息可以通知服務器它的“能力和偏好”。同樣HTTP應答也采用類似的結構,在這里就不再闡述。
3.3 網絡數據的提交
實現(xiàn)嵌入式網絡智能終端應用程序網絡數據提交(圖3軟件層中的應用程序)時,嵌入式網絡智能終端與廣域網Web服務器之間的網絡通信采用客戶/服務器模式方式,即uCLinux操作系統(tǒng)環(huán)境下進行網絡編程。實現(xiàn)網絡編程(信息傳輸)包括以下五個基本過程:創(chuàng)建套接字:調用socket();綁定套接字:調用bind();創(chuàng)建連接:調用connect();監(jiān)聽連接:調用listen();建立連接:調用accept()。
3.4調度服務器的調度算法
影響圖1所示的嵌入式網絡智能控制系統(tǒng)可靠性的關鍵因素是調度服務器的網絡性能,合理進行參數計算和映射與負載定位是提升網絡性能的關鍵。
3.4.1 參數的計算和映射
CPU利用率能直接反映服務器的性能,以下給出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為第一次讀取的參數總和,total_2為第二次讀取的參數總和。
對于其他的參數,例如緩沖區(qū)的大小,可以通過調用linux操作系統(tǒng)的系統(tǒng)函數ioct1()來獲取。
獲取對應的參數以后,再將對應的參數映射到負載定位算法中,在參數的轉換過程中主要采用的算法是動態(tài)閥值算法[5]。該算法的數學模型如下:
上式中B為系統(tǒng)接口緩沖區(qū)空間的容量,Qi(t)為第i個Web服務器的隊列長度,Q(t)為當前系統(tǒng)總隊列長度,T(t)為不再連接會話的閥值參數,α為調節(jié)因子。上述公式可知,動態(tài)閥值算法根據系統(tǒng)狀態(tài)動態(tài)調整控制閥值,閥值的大小與當前系統(tǒng)中空閑的資源成正比,當某個Web服務器緩沖區(qū)空間超過閥值時,將阻塞該Web服務器,不再給該Web服務器分配負載。
3.4.2 負載定位策略
根據前面得到參數,將這些參數傳遞到調度服務器。調度服務器通過使用加權輪轉調度算法[5]來選擇合適的服務器,即將負載定位到具體Web服務器上。定位策略的算法描述如下:
假設有一組Web服務器表示為S = {S0, S1, …, Sn-1},W(Si)表示Web服務器 Si的權值,變量 i表示上一次選擇的Web服務器,變量cw表示當前調度的權值,max(S)表示集合S中所有Web服務器的最大權值,gcd(S)表示集合S中所有Web服務器權值的最大公約數。變量 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)境和結果
實驗拓撲結構采用如圖1所示的最簡系統(tǒng)。嵌入式網絡智能終端采用嵌入uClinux操作系統(tǒng),并在uClinux操作系統(tǒng)添加相應的網絡通信程序。調度服務器采用Linux9.0作為操作系統(tǒng)并實現(xiàn)3.3節(jié)的調度算法。Web服務器組、Internet主機為常見的形式。圖5是利用Ethereal網絡協(xié)議分析器獲取的數據包的情況,該圖表明本文設計的系統(tǒng)和采用的算法有效。
圖5 獲取的數據包
5 結束語
實驗表明本文提出的系統(tǒng)結構、負載計算法和調度算法實現(xiàn)了嵌入式網絡智能控制終端的遠程控制。通過采用加權輪轉調度算法和動態(tài)閥值算法解決了系統(tǒng)負載調度問題,使得系統(tǒng)具有良好的網絡性能和較高的實際應用價值。該系統(tǒng)的實現(xiàn)為進一步進行嵌入式網絡遠程控制系統(tǒng)服務的研究搭建了一個良好的網絡平臺。
參考文獻
[1] 李晶,張維新. uClinux下實時任務的一種實現(xiàn)方法[J].微計算機信息,2005(1):129-130
[2] 王東濱,方濱興,云曉春. 基于Web管理的網絡監(jiān)測技術的設計與實[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應用層協(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
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論