侯 琛 王海波 劉鳳之 史祥賓 趙千川
(1.清華大學自動化系, 北京 100084; 2.中國農(nóng)業(yè)科學院果樹研究所, 興城 125100)
溫室環(huán)境監(jiān)控系統(tǒng)網(wǎng)關多進程調度方法
侯 琛1王海波2劉鳳之2史祥賓2趙千川1
(1.清華大學自動化系, 北京 100084; 2.中國農(nóng)業(yè)科學院果樹研究所, 興城 125100)
作為應用層與感知層的橋梁,網(wǎng)關通常具有多個進程。溫室環(huán)境監(jiān)控系統(tǒng)中各個進程間的調度是否合理直接影響到網(wǎng)關甚至溫室環(huán)境監(jiān)控系統(tǒng)的性能。針對網(wǎng)關的多進程調度問題,研究并設計了一種網(wǎng)關的多進程調度算法(Multiple thread schedule algorithm, MTSA)。該算法先通過網(wǎng)關向服務器推送數(shù)據(jù)的時間間隔、進程數(shù)目、最大功率與有效功率的關系來確定每個進程被掛起的時間片,然后通過合理地控制每一個進程的執(zhí)行順序及執(zhí)行時間片來有效地降低數(shù)據(jù)阻塞度。在實驗中,本文方法的數(shù)據(jù)丟失率為3.4%,而啟發(fā)式方法的數(shù)據(jù)丟失率為56%,表明本文方法優(yōu)于啟發(fā)式方法。
溫室環(huán)境; 監(jiān)控系統(tǒng); 網(wǎng)關; 多進程; 調度
農(nóng)業(yè)物聯(lián)網(wǎng)致力于農(nóng)業(yè)的智能化與信息化,以軟件和信息為中心,通過農(nóng)業(yè)現(xiàn)場的大量傳感器節(jié)點、自動化設備、網(wǎng)絡設備和遠程監(jiān)控設備改變了農(nóng)業(yè)生產(chǎn)方式,提高了土地利用率,降低了農(nóng)業(yè)污染,解放了農(nóng)業(yè)生產(chǎn)力[1-5]。
在物聯(lián)網(wǎng)的推動下,人類已經(jīng)在溫室環(huán)境監(jiān)控領域取得了一系列先進的成果。例如,張猛等[6]研究并實現(xiàn)了一種基于ZigBee與Internet的溫室群環(huán)境遠程監(jiān)控系統(tǒng)。王浩云等[7]在有限狀態(tài)機和事件晶格的基礎上搭建了時空溫室環(huán)境監(jiān)控系統(tǒng)。楊瑋等[8]研究并實現(xiàn)了以ZigBee為無線通信模塊的溫室智能終端。PARK等[9]提出了一種基于無線傳感網(wǎng)絡的溫室環(huán)境監(jiān)控系統(tǒng)。HWANG 等[10]提出了一種溫室環(huán)境監(jiān)控服務器系統(tǒng)。
溫室環(huán)境監(jiān)控系統(tǒng)涉及多個處理器:嵌入式微處理器、嵌入式微控制器、嵌入式數(shù)字信號處理器、嵌入式片上處理器和通用計算機處理器[11]。不同處理器可能處于不同的狀態(tài),例如休眠狀態(tài)、工作狀態(tài)和認證狀態(tài)[12]。一個處理器代表著一個進程,各處理器間的高效通信依附于網(wǎng)關[13]。為了滿足這種高效通信,一個網(wǎng)關往往具備并需要調度多個進程,以降低數(shù)據(jù)阻塞。
針對網(wǎng)關的多進程調度問題,CHEN等[14]提出了一種基于動態(tài)中央處理單元的頻率水準測量法來減少多處理器中的數(shù)據(jù)阻塞。姚偉等[15]在上位機檢測軟件與下位機可編程邏輯控制器合理交互的基礎上搭建了溫室大棚智能環(huán)境檢測與調節(jié)系統(tǒng)。GIL等[16]提出了一種多線程標色方案用于管理處理器的資源信息。LOOMANS[17]提出了一系列多線程管理技術以降低異步環(huán)境下的不同線程間的沖突。RODGERS等[18]提出了一種多線程身份標注方法用于檢測多線程的變動情況。JIANG等[19]提出了一種多進程間的通信方法。OTTONI等[20]采用軟件解耦流水線法完成了多線程的提取。
但已有工作所采用的多進程調度方法的進程掛起時間片大多根據(jù)經(jīng)驗設置。進程掛起時間片的確定沒有考慮系統(tǒng)的具體工作情況。本文研究并設計一種網(wǎng)關的多進程調度算法(Multiple thread schedule algorithm,MTSA)。該算法先通過網(wǎng)關向服務器推送數(shù)據(jù)的時間間隔、最大功率與有效功率的關系來確定每個進程被掛起的時間,然后通過合理地控制每一個進程的執(zhí)行順序及執(zhí)行時間片來有效地降低數(shù)據(jù)阻塞度。
網(wǎng)關是溫室環(huán)境監(jiān)控系統(tǒng)的重要組成部分。本文的溫室環(huán)境監(jiān)控系統(tǒng)先采集溫室內(nèi)的溫度、濕度和光照,然后將其上傳至Web服務器。系統(tǒng)的硬件架構如圖1a所示[10],數(shù)據(jù)流如圖1b所示。網(wǎng)關具備6個進程,是應用層與感知層間的橋梁。圖2列出了網(wǎng)關的6個進程(服務器含有卷膜/簾機的控制命令)。
圖1 系統(tǒng)硬件架構與數(shù)據(jù)流Fig.1 Hardware structure and data stream of system
圖2 網(wǎng)關中的進程Fig.2 Multiple threads in gateway
2.1 MTSA算法的具體步驟
在一個周期內(nèi)(雖然干擾與延遲的存在使得此處的周期并不固定,但是根據(jù)大數(shù)定律,可以認為此處的周期服從正態(tài)分布),網(wǎng)關按照如下步驟調度各個進程:
步驟1:網(wǎng)關開啟“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的進程,將讀取數(shù)據(jù)的請求發(fā)送至底層傳感器(讀取數(shù)據(jù)的請求幀攜帶有對象傳感器的標識信息)。
步驟2:根據(jù)是否成功接收到傳感器的確認信息判斷接下來的動作。
步驟2.1:當網(wǎng)關確認步驟1的請求發(fā)送完畢且傳感器成功收到該請求后(傳感器成功收到該請求后會向網(wǎng)關發(fā)送確認信息幀),掛起“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的進程2 s,并開啟“從底層傳感器獲取環(huán)境參數(shù)采樣”的進程。
步驟2.2:如果網(wǎng)關沒有接收到傳感器的確認信息,那么循環(huán)執(zhí)行“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的操作。網(wǎng)關如果在10 s內(nèi)仍然沒有收到該傳感器的確認信息,那么認為該傳感器已經(jīng)卸載或發(fā)生了故障,并記錄下該傳感器的標識信息,隨后掛起“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的進程2 s。
步驟3:如果步驟2.1執(zhí)行順利,即網(wǎng)關能夠收到傳感器的確認信息,那么網(wǎng)關接收并暫時存儲該傳感器的采樣,然后掛起“從底層傳感器獲取環(huán)境參數(shù)采樣”的進程2 s;如果步驟2.2執(zhí)行順利,即網(wǎng)關發(fā)現(xiàn)了卸載或故障的傳感器,那么在下一個周期中,網(wǎng)關停止讀取該傳感器的數(shù)據(jù)。
步驟4:網(wǎng)關開啟“給底層卷膜/簾機發(fā)送讀取狀態(tài)請求并獲取該狀態(tài)”的進程,將讀取卷膜/簾機狀態(tài)的請求發(fā)送至底層卷膜/簾機模塊(讀取狀態(tài)的請求幀攜帶有對象卷膜/簾機的標識信息)。
步驟5:根據(jù)是否成功接收到卷膜/簾機模塊的確認信息判斷接下來的動作。
步驟5.1:當網(wǎng)關確認步驟4的請求發(fā)送完畢且接收到卷膜/簾機的狀態(tài)后,掛起“給底層卷膜/簾機發(fā)送讀取狀態(tài)請求并獲取該狀態(tài)”的進程2 s。
步驟5.2:如果網(wǎng)關沒有接收到卷膜/簾機的狀態(tài),那么循環(huán)執(zhí)行“給底層卷膜/簾機發(fā)送讀取狀態(tài)請求并獲取該狀態(tài)”的操作。網(wǎng)關如果在10 s內(nèi)仍然沒有收到該卷膜/簾機的狀態(tài),那么認為該卷膜/簾機已經(jīng)卸載或發(fā)生了故障,并記錄下該卷膜/簾機的標識信息,隨后掛起“給底層卷膜/簾機發(fā)送讀取狀態(tài)并獲取該狀態(tài)”的進程2 s。
步驟6:如果步驟5.1執(zhí)行順利,即網(wǎng)關能夠收到卷膜/簾機的狀態(tài),那么網(wǎng)關暫時存儲該卷膜/簾機的狀態(tài);如果步驟5.2執(zhí)行順利,即網(wǎng)關發(fā)現(xiàn)了卸載或故障的卷膜/簾機,那么在下一個周期中,網(wǎng)關停止讀取該卷膜/簾機的狀態(tài)。
步驟7:判斷本周期的卷膜/簾機的狀態(tài)是否與上一個周期的相同,如果相同,那么接下來的步驟8無需將卷膜/簾機狀態(tài)推送至Web服務器,否則需要推送(卷膜/簾機狀態(tài)的變化頻率遠低于環(huán)境參數(shù)的變化頻率,當卷膜/簾機狀態(tài)與上一個周期的狀態(tài)不相同時,網(wǎng)關才會將該狀態(tài)推送至服務器,否則無需推送,同時,服務器將卷膜/簾機在此周期的狀態(tài)取為上一個周期內(nèi)的狀態(tài))。
步驟8:網(wǎng)關開啟“向服務器推送數(shù)據(jù)”的進程,將獲取到的與傳感器有關的信息(如果數(shù)據(jù)讀取正常,那么該信息就是網(wǎng)關自身的標識信息和傳感器的環(huán)境參數(shù)采樣;如果不正常,那么該信息就是網(wǎng)關自身的標識信息和卸載或故障傳感器的標識信息)以及與卷膜/簾機有關的信息(如果狀態(tài)讀取正常且在相鄰2個周期內(nèi)讀取到的狀態(tài)不相同,那么該信息就是網(wǎng)關自身的標識信息和卷膜/簾機的實際狀態(tài);如果不正常,那么該信息就是網(wǎng)關自身的標識信息和卸載或故障卷膜/簾機的標識信息)推送至Web服務器。
步驟9:根據(jù)是否成功推送數(shù)據(jù)判斷接下來的動作。
步驟9.1:當網(wǎng)關確認步驟8的信息推送完畢且收到了來自Web服務器的確認信息后,就掛起“向服務器推送數(shù)據(jù)”的進程2 s,隨后開啟“從服務器獲取控制命令”的進程。
步驟9.2:如果網(wǎng)關沒有接收到Web服務器的確認信息,那么循環(huán)執(zhí)行“向服務器推送數(shù)據(jù)”的操作。網(wǎng)關如果在10 s內(nèi)仍然沒有收到該Web服務器的確認信息,那么認為此刻的網(wǎng)絡不利于數(shù)據(jù)的推送,于是,暫時存儲該信息,并掛起“向服務器推送數(shù)據(jù)”的進程。
步驟10:如果步驟9.1執(zhí)行順利,即網(wǎng)關能夠收到Web服務器的確認信息,那么網(wǎng)關掛起“從服務器獲取控制命令”的進程2 s,并暫時存儲該控制命令;如果上述步驟9.2能夠被順利執(zhí)行,即認為此刻的網(wǎng)絡不利于數(shù)據(jù)的推送,那么網(wǎng)關在下一個周期內(nèi)除了要向服務器推送該周期內(nèi)需要推送的信息,還需要繼續(xù)向服務器推送步驟9.2需要推送的信息,如果在連續(xù)3個周期內(nèi),步驟9.2需要推送的信息都無法被推送到服務器,那么丟棄該信息。
步驟11:判斷步驟10接收到的控制命令是否與被控對象矛盾,即判斷對象卷膜/簾機是否卸載或故障,如果是,那么跳過“給卷膜/簾機發(fā)送控制命令”的進程,并報警提示;如果不是,那么開啟“給卷膜/簾機發(fā)送控制命令”的進程。如果在10 s之內(nèi),網(wǎng)關檢測不到卷膜/簾機的正確動作,那么認為該命令不正確,并再次向服務器獲取控制命令。如果在本周期內(nèi),命令不正確的現(xiàn)象出現(xiàn)3次,那么停止向卷膜機/簾機發(fā)送控制命令。
步驟12:關閉所有進程,然后再開啟,跳回步驟1。
2.2 MTSA算法進程掛起時間片的確定
在本文的調度方法中,每個進程被單獨掛起到下一個進程被單獨開啟的時間間隔是2 s。其確認方法如下:根據(jù)大數(shù)定律,可以認為MTSA的周期服從正態(tài)分布。因為網(wǎng)關需要每隔2 min,即120 s,向服務器推送一次數(shù)據(jù),所以認為MTSA的周期服從均值為120 s、方差未知的正態(tài)分布,即,如果用T、μ和σ2分別表示周期、均值和方差,那么得到
T~N(μ,σ2)
(1)
(2)
因為在MTSA中,當需要循環(huán)執(zhí)行某個進程時,循環(huán)的總時間為10 s,所以每一個進程被單獨掛起到下一個進程被單獨開啟的時間間隔為
(120-10×4)×[1-P(μ-2σ 2 s (3) 其中等式左端的向下取整符號表示保留運算結果的整數(shù)部分。 2.3 MTSA算法對數(shù)據(jù)阻塞的影響 一方面,MTSA的時間間隔為進程的切換提供了緩沖空間,這能避免多進程擁塞所帶來的數(shù)據(jù)阻塞;另一方面,MTSA通過如下措施排除無需發(fā)送的信息或冗余的信息來降低數(shù)據(jù)阻塞: (1)MTSA的步驟2.2能夠將卸載或故障的傳感器從系統(tǒng)剔除,所以,在下一個周期內(nèi),網(wǎng)關無需占用總線資源向該傳感器發(fā)送讀取數(shù)據(jù)的請求,這有利于降低總線上的數(shù)據(jù)阻塞。 (2)MTSA的步驟5.2能夠將卸載或故障的卷膜/簾機從系統(tǒng)剔除,所以,在下一個周期內(nèi),網(wǎng)關無需占用總線資源向該卷膜/簾機發(fā)送讀取狀態(tài)的請求,這也有利于降低總線上的數(shù)據(jù)阻塞。 (3)MTSA的步驟7先判斷本周期的卷膜/簾機的狀態(tài)是否與上一個周期的相同,如果相同,那么步驟8無需將本周期的卷膜/簾機的狀態(tài)推送至Web服務器,所以,網(wǎng)關無需占用網(wǎng)絡資源將重復的卷膜/簾機的狀態(tài)推送至Web服務器,這有利于降低Web通信的數(shù)據(jù)阻塞。 (4)MTSA的步驟9.2在認為網(wǎng)絡不利于數(shù)據(jù)的推送時,暫時停止向服務器推送數(shù)據(jù),這也有利于降低Web通信的數(shù)據(jù)阻塞,同時能夠減小數(shù)據(jù)的丟失。 (5)在MTSA的步驟10中,如果在連續(xù)3個周期內(nèi),步驟9.2需要推送的信息都無法被推送到服務器,則丟棄該信息,所以,網(wǎng)關無需再占用網(wǎng)絡資源將此貶值的信息推送至Web服務器,這有利于降低Web通信的數(shù)據(jù)阻塞。 (6)MTSA的步驟11先判斷收到的控制命令是否與被控對象矛盾,即判斷被控的卷膜/簾機是否已經(jīng)卸載或故障,如果是,那么網(wǎng)關無需將控制命令發(fā)送至該卷膜/簾機,所以,網(wǎng)關無需占用總線資源向該卷膜/簾機發(fā)送控制命令,這有利于降低總線上的數(shù)據(jù)阻塞。 3.1 環(huán)境監(jiān)控系統(tǒng) 在清華大學信息科學與技術國家實驗室和遼寧省興城市中國農(nóng)業(yè)科學院果樹研究所的葡萄栽培試驗基地對本文的多進程調度算法(MTSA)進行了實驗驗證。搭建溫室環(huán)境監(jiān)控系統(tǒng),如圖3所示。Web服務器及其數(shù)據(jù)庫被安裝在清華大學信息科學與技術國家實驗室的3區(qū)624房間內(nèi),將系統(tǒng)的其余部分(包括網(wǎng)關),安放在遼寧省興城市中國農(nóng)業(yè)科學院果樹研究所葡萄溫室內(nèi)。 圖3 環(huán)境監(jiān)控系統(tǒng)及其工作環(huán)境Fig.3 Environment-monitoring system and its working environment 在環(huán)境監(jiān)控系統(tǒng)的基礎上,通過比較MTSA與啟發(fā)式方法(Heuristic method,HM)[21-28]來驗證MTSA的性能。具體操作如下:使MTSA和HM交替地工作在同一個網(wǎng)關上(采用同一個網(wǎng)關能避免不同網(wǎng)關之間的差異所帶來的影響。交替工作意味著MTSA工作時,HM休息,HM與 MTSA不能同時工作。表1列出了HM與 MTSA各自工作的時間段。這些時間段是隨機選擇的,所以其長度并不相等),并觀察環(huán)境監(jiān)控系統(tǒng)在 “MTSA正常工作”與“HM正常工作”期間的溫度、濕度和光照采樣是否符合正常采樣。如果某一時間段內(nèi)的采樣接近正常采樣,那么說明這一時間段內(nèi)的數(shù)據(jù)阻塞小,反之,數(shù)據(jù)阻塞嚴重。一組采樣包括一個溫度采樣、一個相對濕度采樣和一個光照采樣。網(wǎng)關每隔63 s向Web服務器推送一組采樣,在沒有數(shù)據(jù)丟失的情況下,Web服務器應該從網(wǎng)關獲取400組傳感器采樣。 表1 交替工作時MTSA與HM各自工作的時間段Tab.1 Running time of MTSA and HM when they worked alternatively 3.2 HM方法的具體實現(xiàn) 在解決具體問題時,HM方法是一種根據(jù)經(jīng)驗規(guī)則進行發(fā)現(xiàn)的方法。實踐活動經(jīng)常采用“請求數(shù)據(jù)—獲取數(shù)據(jù)—傳輸處理數(shù)據(jù)—根據(jù)數(shù)據(jù)傳達命令”的經(jīng)驗規(guī)則或框架。本文的HM方法符合文獻[21-28]HM方法所采用的經(jīng)驗規(guī)則或框架。所以,HM方法在本文通訊應用的具體實現(xiàn)步驟如下: (1)網(wǎng)關開啟“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的進程,將讀取數(shù)據(jù)的請求發(fā)送至底層傳感器。 (2)當確認步驟(1)的命令被發(fā)送完畢且傳感器接收到該請求后,掛起“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的進程,并開啟“從底層傳感器獲取采樣”的進程;否則,循環(huán)執(zhí)行“給底層傳感器發(fā)送讀取數(shù)據(jù)請求”的進程,直到底層傳感器接收到該請求。 (3)掛起“從底層傳感器獲取采樣”的進程,然后開啟“給底層卷膜/簾機發(fā)送讀取狀態(tài)請求并獲取該狀態(tài)”的進程,直到網(wǎng)關獲取到膜/簾機的狀態(tài)。 (4)掛起“給底層卷膜/簾機發(fā)送讀取狀態(tài)請求并獲取該狀態(tài)”的進程,然后開啟“向服務器推送數(shù)據(jù)”的進程將傳感器的采樣與膜/簾機的狀態(tài)推送至服務器,直到數(shù)據(jù)推送成功。 (5)掛起“向服務器推送數(shù)據(jù)”的進程,然后開啟“從服務器獲取控制命令”的進程,直到網(wǎng)關獲取到該控制命令。 (6)掛起“從服務器獲取控制命令”的進程,并開啟“給卷膜/簾機發(fā)送控制命令”的進程,直到膜/簾機獲取到該命令,隨后跳轉到步驟(1)。 3.3 實驗中數(shù)據(jù)傳輸?shù)牧炕瘻y量 實驗中的數(shù)據(jù)分為Web服務器接收到的數(shù)據(jù)與丟失的數(shù)據(jù),實驗按照如下步驟進行數(shù)據(jù)傳輸?shù)牧炕瘻y量: (1)設置傳感器采樣在Web服務器端的記錄形式。在某一時刻,如果發(fā)生了數(shù)據(jù)阻塞,那么網(wǎng)關無法正常地將此刻的傳感器采樣推送至Web服務器,此刻的傳感器采樣在Web服務器端被記為0。如果數(shù)據(jù)傳輸正常,那么此刻的傳感器采樣能夠正常地傳送至Web服務器并被Web服務器存儲。 (2)設置實驗時間。實驗時間是10:00—17:00。網(wǎng)關每隔63 s向Web服務器推送一組傳感器采樣(一組傳感器采樣包含這一時刻的溫度、相對濕度和光照),在現(xiàn)有實驗條件和沒有數(shù)據(jù)丟失的情況下,Web服務器應該從網(wǎng)關獲取400組非零的傳感器采樣。 (3)設置MTSA和HM的工作時間段。如前所述,為了避免不同網(wǎng)關之間的差異所帶來的影響,讓MTSA和HM交替工作在同一個網(wǎng)關上。3.1節(jié)的表1顯示MTSA的工作時間段是10:00—10:40、11:50—14:30和15:50—17:00,而HM的工作時間段是10:40—11:50和14:30—15:50。所以,在現(xiàn)有實驗條件和沒有數(shù)據(jù)丟失的情況下,MTSA應該讓Web服務器接收到293組非零的傳感器采樣,而HM應該讓Web服務器接收到107組非零的傳感器采樣。 (4)記錄使用HM與MTSA情況下Web服務器收集到的和丟失的傳感器采樣組數(shù)(Web服務器端傳感器采樣值被記錄為0的組數(shù))。丟失率為丟失的傳感器采樣組數(shù)比上接收到的傳感器采樣組數(shù)與丟失的傳感器采樣組數(shù)的和,由此計算HM和MTSA的丟失率。 3.4 溫度、相對濕度和光照的正常采樣 為了得到更加鮮明的對比,在傳感器校準的情況下,圖4分別給出了2015年9月20日10:00—17:00的溫度、濕度和光照的正常采樣。 在圖4c的11:00左右,光照大幅度下降,這是因為,在11:00左右,溫室管理人員減小了溫室薄膜的開合度以避免溫室內(nèi)葡萄接觸強光。在14:40與15:50之間,溫度下降,濕度升高,光照再一次下降,這是因為,在這段時間內(nèi),溫室管理人員在溫室內(nèi)以灑水的方式降低溫度,提升濕度,并再次以減小溫室薄膜開合度的方式避免葡萄接觸強光。 3.5 MTSA與HM的實驗結果對比 在傳感器校準的情況下,MTSA和HM交替工作在同一個網(wǎng)關上的實驗結果如圖5所示。圖5與圖4同時說明: (1)在MTSA正常工作而HM休息的時間段內(nèi),溫室內(nèi)的溫度、濕度和光照采樣接近正常采樣。 (2)在HM正常工作而MTSA休息的時間段內(nèi),溫室內(nèi)的溫度、濕度和光照采樣為0,不正常。 圖4 10:00—17:00的溫度、相對濕度和光照的正常采樣結果Fig.4 Normal samples of temperature, relative humidity and illuminance from 10:00 to 17:00 圖5 MTSA與HM交替工作時, 10:00—17:00的溫度、相對濕度和光照采樣結果Fig.5 Samples of temperature, relative humidity and illuminance when MTSA and HM worked alternatively from 10:00 to 17:00 (3)采樣的大量丟失正好發(fā)生在環(huán)境參數(shù)變化比較明顯的時間段內(nèi),這說明使用HM方法獲取到的采樣不能有效地反映溫室內(nèi)環(huán)境參數(shù)的變化情況。 HM的數(shù)據(jù)丟失率是56%,MTSA的數(shù)據(jù)丟失率是3.4%,遠低于HM的數(shù)據(jù)丟失率。具體如表2所示。 表2 HM和MTSA的數(shù)據(jù)丟失率Tab.2 Data loss rate of HM and MTSA 如前所述,一組采樣包括一個溫度采樣、一個相對濕度采樣、一個光照采樣。此實驗結果驗證了MTSA的性能,即能夠合理地調度多進程從而降低數(shù)據(jù)阻塞。 3.6 HM導致數(shù)據(jù)阻塞的原因 (1)與MTSA不同,HM不具備為進程間的切換提供緩沖空間的進程掛起時間片,從而導致多進程擁塞,進而帶來數(shù)據(jù)阻塞。 (2)與MTSA不同,HM沒有將卸載或故障的傳感器、卷膜/簾機從系統(tǒng)剔除,使得這些故障設備仍占用一定的總線資源,從而加大數(shù)據(jù)阻塞。 (3)與MTSA不同,HM沒有對命令進行分析,使得沒有更新的或者與被控對象矛盾的命令仍占用Web通信資源,從而加大數(shù)據(jù)阻塞。 (4)與MTSA不同,HM沒有對Web通信環(huán)境進行判斷,使得“網(wǎng)關向Web服務器推送數(shù)據(jù)”的操作在通信環(huán)境不利的情況下仍被執(zhí)行,從而加大數(shù)據(jù)阻塞。 (5)與MTSA不同,HM沒有丟棄掉貶值的信息,使得該信息仍占用通信資源,從而加大數(shù)據(jù)阻塞。 針對網(wǎng)絡通信數(shù)據(jù)阻塞問題,提出了一種溫室環(huán)境監(jiān)控系統(tǒng)網(wǎng)關的多進程調度算法(MTSA),給出了相應的理論依據(jù),分析了該調度算法對數(shù)據(jù)阻塞的影響。在正常采樣的參照下,MTSA方法與HM方法的對比驗證了MTSA的性能(MTSA方法的數(shù)據(jù)丟失率為3.4%,遠低于HM方法的丟失率56%)。 1 葛文杰, 趙春江. 農(nóng)業(yè)物聯(lián)網(wǎng)研究與應用現(xiàn)狀及發(fā)展對策研究 [J/OL].農(nóng)業(yè)機械學報, 2014, 45(7): 222-230. http:∥www.j-csam.org/jcsam/ch/reader/view_abstract.aspx?file_no=20140735&flag=1.DOI:10.6041/j.issn.1000-1298.2014.07.035. GE Wenjie, ZHAO Chunjiang. State-of-the-art and developing strategies of agricultural internet of things[J/OL]. Transactions of the Chinese Society for Agricultural Machinery, 2014, 45(7): 222-230.(in Chinese) 2 何勇,聶鵬程,劉飛.農(nóng)業(yè)物聯(lián)網(wǎng)與傳感儀器研究進展 [J/OL].農(nóng)業(yè)機械學報, 2013, 44(10): 216-226. http:∥www.j-csam.org/jcsam/ch/reader/view_abstract.aspx?file_no=20131035&flag=1. DOI:10.6041/j.issn.1000-1298.2013.10.035. HE Yong, NIE Pengcheng, LIU Fei. Advancement and trend of internet of things in agriculture and sensing instrument [J/OL]. Transactions of the Chinese Society for Agricultural Machinery, 2013, 44(10): 216-226.(in Chinese) 3 顏波,石平.基于物聯(lián)網(wǎng)的水產(chǎn)養(yǎng)殖智能化監(jiān)控系統(tǒng) [J/OL]. 農(nóng)業(yè)機械學報, 2014, 45(1): 259-265. http:∥www.j-csam.org/jcsam/ch/reader/view_abstract.aspx?file_no=20140140&flag=1. DOI:10.6041/j.issn.1000-1298.2014.01.040. YAN Bo, SHI Ping.Intelligent monitoring system for aquiculture based on internet of things [J/OL]. Transactions of the Chinese Society for Agricultural Machinery,2014, 45(1): 259-265.(in Chinese) 4 HOU Chen, ZHAO Qianchuan. Bayesian prediction-based energy-saving algorithm for embedded intelligent terminal [J]. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2015,23(12):2902-2912. 5 HOU Chen, ZHAO Qianchuan. A new optimal algorithm for energy saving in embedded system with multiple sleep modes [J]. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2016, 24(2): 706-719. 6 張猛, 房俊龍, 韓雨. 基于ZigBee和Internet 的溫室群環(huán)境遠程監(jiān)控系統(tǒng)設計[J]. 農(nóng)業(yè)工程學報,2013, 29(25): 171-176. ZHANG Meng, FANG Junlong, HAN Yu. Design on remote monitoring and control system for greenhouse group based on ZigBee and Internet [J]. Transactions of the CASE, 2013, 29(25): 171-176.(in Chinese) 7 王浩云,劉佼佼,侯思宇,等.信息物理系統(tǒng) (cyber-physical system) 時空建模方法及在溫室控制中的應用[J].農(nóng)業(yè)工程學報, 2015,31(15): 183-190. WANG Haoyun, LIU Jiaojiao, HOU Siyu, et al. Cyber-physical system spatio-temporal modeling method and its application in greenhouse control[J]. Transactions of the CASE, 2015,31(15): 183-190.(in Chinese) 8 楊瑋,呂科,張棟,等.基于 ZigBee 技術的溫室無線智能控制終端開發(fā)[J].農(nóng)業(yè)工程學報, 2010, 26(3): 198-202. YANG Wei, Lü Ke, ZHANG Dong, et al. Development of wireless intelligent control terminal of greenhouse based on ZigBee[J]. Transactions of the CSAE, 2010, 26(3): 198-202.(in Chinese) 9 PARK D, PARK J. Wireless sensor network-based greenhouse environment monitoring and automatic control system for dew condensation prevention[J]. Sensors, 2011, 11(4): 3640-3651. 10 HWANG J, SHIN C, YOE H. Study on an agricultural environment monitoring server system using wireless sensor networks[J]. Sensors, 2010, 10(12): 11189-11211. 11 侯琛,趙千川,李海濤,等.物聯(lián)網(wǎng)中的嵌入式終端 [J]. 電子測量技術, 2014, 37(10): 113-118. HOU Chen, ZHAO Qianchuan, LI Haitao, et al. The embedded terminal in the Internet of Things[J]. Electric Measurement Technology, 2014, 37(10): 113-118.(in Chinese) 12 侯琛, 趙千川, 馮浩然, 等. 一種物聯(lián)網(wǎng)智能數(shù)據(jù)采集系統(tǒng)的研究與實現(xiàn) [J]. 電子測量技術, 2014, 37(6): 108-114. HOU Chen, ZHAO Qianchuan, FENG Haoran, et al. Research and implementation of a kind of intelligent data-collection system in the Internet of Things[J]. Electric Measurement Technology, 2014, 37(6): 108-114.(in Chinese) 13 侯琛.嵌入式物聯(lián)網(wǎng)網(wǎng)關及應用方案的設計與實現(xiàn) [D].北京:清華大學, 2015. HOU Chen. Design and realization on the embedded gateway in the Internet of Things[D]. Beijing: Tsinghua University, 2015.(in Chinese) 14 CHEN K, CHEN F, HOU T. The power-saving approach by critical section detections of multi-cores embedded systems[C]∥2010 2nd International Conference on Mechanical and Electronics Engineering (ICMEE), 2010, 1: V1-117-V1-121. 15 姚偉, 徐世許, 殷欣, 等. 溫室大棚環(huán)境智能檢測與調節(jié)系統(tǒng)研究 [J]. 青島大學學報: 工程技術版, 2015, 30(3): 38-42. YAO Wei, XU Shixu, YIN Xin, et al. Intelligent measurement and conditioning system research on greenhouse environment[J]. Journal of Qingdao University: Engineering Technology Edition, 2015, 30(3): 38-42.(in Chinese) 16 GIL M, PINILLA R. Thread coloring: a scheduler proposal from user to hardware threads[J]. ACM SIGOPS Operating Systems Review, 2005, 39(2): 54-70. 17 LOOMANS J. Techniques for managing multiple threads in a browser environment: US 6,728,960[P]. 2004-04-27. 18 RODGERS D, BOGGS D, MERCHANT A, et al. Method and apparatus for entering and exiting multiple threads within a multithreaded processor: US 6,889,319[P]. 2005-05-03. 19 JIANG H, DWYER M. Thread to thread communication: US 7,861,249[P]. 2010-12-28. 20 OTTONI G, RANGAN R, STOLER A, et al. Automatic thread extraction with decoupled software pipelining[C]∥Proceedings of the 38th Annual IEEE/ACM International Symposium on Microarchitecture, 2005: 105-118. 21 NOCERA S, MAINO F, CAVALLARO F. A heuristic method for determining CO2efficiency in transportation planning[J]. European Transport Research Review, 2012, 4(2): 91-106. 22 DHULIPALA V R S, KARTHIK N, CHANDRASEKARAN R M. A novel heuristic approach based trust worthy architecture for wireless sensor networks [J]. Wireless Personal Communications, 2013, 70(1): 189-205. 23 譚文學, 趙春江, 陸玲, 等. 基于啟發(fā)式規(guī)則推理的多媒體農(nóng)業(yè)專家系統(tǒng)開發(fā)平臺的開發(fā)與研究 [J]. 計算機與現(xiàn)代化, 2003(7): 1-3. TAN Wenxue, ZHAO Chunjiang, LU Ling, et al. Research and development of illuming-rule-based reasoning multimedia platform for agricultural intelligent system development [J]. Computer and Modernization, 2003(7): 1-3.(in Chinese) 24 DE FRUTOS R M G, CASAA-MENDEZ B V. A hybrid heuristic algorithm with application to a graphical interface for vehicle routing optimization in an agricultural cooperative [C]. arXiv:1607.02377, 2016. 25 趙斌, 王克奇, 匡麗紅. 溫室環(huán)境進化 RBF 網(wǎng)絡控制模型的研究 [J]. 中國農(nóng)學通報, 2010, 26(8): 341-344. ZHAO Bin, WANG Keqi, KUANG Lihong. Research on greenhouse environmental RBFNN control model based on ES [J]. Chinese Agricultural Science Bulletin, 2010, 26(8): 341-344.(in Chinese) 26 李迎霞, 杜尚豐. 可控環(huán)境專家控制初探 [C]∥2003年中國智能自動化會議論文集(上冊), 2003: 21-24. LI Yingxia, DU Shangfeng. Research on expert control of controlled environment [C]∥The Conference Proceedings of CIAC2003, 2003: 21-24.(in Chinese) 27 MARTINSEN J K, GRAHN H, ISBERG A. Heuristics for thread-level speculation in web applications[J]. IEEE Computer Architecture Letters, 2014, 13(2): 77-80. 28 BULPIN J R, PRATT I. Hyper-threading aware process scheduling heuristics[C]∥USENIX Annual Technical Conference, 2005: 399-402. Schedule Algorithm of Multiple Threads of Gateway of Environmental Monitoring System in Greenhouse HOU Chen1WANG Haibo2LIU Fengzhi2SHI Xiangbin2ZHAO Qianchuan1 As Internet of things (IoT) has stepped out of the infancy and is gaining more and more popularity around the world, the gateway of environmental monitoring system has also always been attracting people’s eyes. With the capability to bridge application layer with sensing layer, gateway usually possesses multiple threads. Reasonably scheduling these threads matters most to the performance of gateway even the environmental monitoring system. Targeting at reasonable schedule, a kind of multiple threads schedule algorithm was researched and developed (MTSA) to weaken data jam by suitable duration of pending each thread and reasonable control for the execution sequence of thread. This duration was subject to the interval between two operations of pushing data from gateway to Web Server,the number of threads, and the relationship between maximal and effective power consumption. In order to overcome the difficulty in deciding the duration of pending each thread just by experience, the multiple threads integrated into the gateway of the environmental monitoring system were firstly displayed, and then the specific steps of MTSA were presented. In addition, the duration of pending each thread in MTSA was determined by taking the relationship between the maximal and effective power consumption into consideration, and the impact of MTSA on weakening data jam was also analyzed. With the purpose of demonstrating the performance of MTSA, a field experiment in the grape greenhouse was carried out. In this experiment, the comparison between MTSA and a popular algorithm of heuristic method (HM) was done in terms of decreasing the data loss to check the higher efficiency of MTSA than HM in guaranteeing that Web was capable of receiving the environment data, including temperature, relative humidity and illumine. As for the experiment results, data loss by NTSA was only 3.4%, which was much more less than that of 56% by HM, which verified the use of MSTA. environment in greenhouse; monitoring system; gateway; multiple threads; schedule 2016-08-31 2016-09-29 國家自然科學基金項目(61425027、61425024)、 國家重點研發(fā)計劃項目(2016YFB0901901)、中國農(nóng)業(yè)科學院創(chuàng)新工程項目 (CAAS-ASTIP-2015-RIP-04)和信息物理融合系統(tǒng)創(chuàng)新聯(lián)合研究中心項目 侯琛(1989—),男,博士生,主要從事資源約束條件下的物聯(lián)網(wǎng)運行控制研究,E-mail: houc15@mails.tsinghua.edu.cn 趙千川(1969—),男,教授,博士生導師,主要從事復雜網(wǎng)絡研究,E-mail: zhaoqc@tsinghua.edu.cn 10.6041/j.issn.1000-1298.2017.05.020 TP274.2 A 1000-1298(2017)05-0167-073 實驗驗證
4 結束語
(1.DepartmentofAutomation,TsinghuaUniversity,Beijing100084,China2.FruitResearchInstitute,ChineseAcademyofAgriculturalSciences,Xingcheng125100,China)