何軼,龍陳鋒
(湖南農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院,長沙 410128)
物聯(lián)網(wǎng)專業(yè)是一個近幾年興起的熱門專業(yè),很多高校從2014年開始招收第一批物聯(lián)網(wǎng)專業(yè)的學(xué)生。物聯(lián)網(wǎng)專業(yè)涉獵比較廣泛,需要學(xué)習(xí)硬件、軟件、網(wǎng)絡(luò)等多方面的課程,但是有些傳統(tǒng)課程的開設(shè)按照以往的教學(xué)方法并不適合于該專業(yè)學(xué)生的學(xué)習(xí),主要體現(xiàn)在課程之間缺乏關(guān)聯(lián)性,課程大綱大多照搬計算機(jī)科學(xué)與技術(shù)專業(yè)對應(yīng)課程,與新專業(yè)相脫節(jié)。
《操作系統(tǒng)》是計算機(jī)學(xué)科的核心專業(yè)課程[1]。《操作系統(tǒng)》中知識的學(xué)習(xí)兼具理論理解與實踐運用,也是進(jìn)一步學(xué)習(xí)其他課程的基礎(chǔ),在計算機(jī)專業(yè)教學(xué)中占有舉足輕重的地位。由于操作系統(tǒng)的概念抽象,涉及的代碼量大且難理解;學(xué)生的編程經(jīng)驗不足,增加了教學(xué)難度。
目前,物聯(lián)網(wǎng)專業(yè)《操作系統(tǒng)》課程的主要內(nèi)容與計算機(jī)科學(xué)與技術(shù)等專業(yè)所學(xué)內(nèi)容基本相同,主要為Windows系統(tǒng)的存儲管理、系統(tǒng)調(diào)度等。實驗課程中通過編程實現(xiàn)對Windows調(diào)度算法、存儲管理等算法進(jìn)行模擬實現(xiàn)?;诓僮飨到y(tǒng)的應(yīng)用已經(jīng)不再局限于PC,各種物聯(lián)網(wǎng)設(shè)備和嵌入式系統(tǒng)中都需要操作系統(tǒng)來進(jìn)行控制,許多復(fù)雜嵌入式系統(tǒng)的開發(fā)都是基于小型的嵌入式操作系統(tǒng),但是學(xué)生對此了解不多,無法動手。因此,僅僅了解傳統(tǒng)教學(xué)大綱中關(guān)于Windows的系統(tǒng)調(diào)度以及系統(tǒng)管理知識已經(jīng)不能滿足當(dāng)前的需要。物聯(lián)網(wǎng)專業(yè)的學(xué)生需要更多了解其他物聯(lián)網(wǎng)操作系統(tǒng)以及嵌入式系統(tǒng)的知識,由于嵌入式系統(tǒng)等課程往往開設(shè)在《操作系統(tǒng)》課程之后,所以在《操作系統(tǒng)》課程的教學(xué)中應(yīng)該改變以往的方式,更多地融入其他系統(tǒng)的介紹,為以后的其他專業(yè)課程學(xué)習(xí)做好準(zhǔn)備[2]。
針對目前存在的問題,在湖南農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院2016級物聯(lián)網(wǎng)專業(yè)的《操作系統(tǒng)》課程教學(xué)中采取了如下改革措施。
目前,移動云計算、嵌入式系統(tǒng)、物聯(lián)網(wǎng)等新興產(chǎn)業(yè)的發(fā)展和新技術(shù)的應(yīng)用都離不開操作系統(tǒng)。學(xué)生日常生活中使用的智能設(shè)備增多,不再局限于普通PC的使用。因此,在物聯(lián)網(wǎng)專業(yè)《操作系統(tǒng)》課程教學(xué)中,對原有基本調(diào)度算法等理論的講解之外應(yīng)加入更多實時系統(tǒng)的介紹。讓學(xué)生能夠在學(xué)習(xí)該課程的同時與其他課程融會貫通。
鑒于很多嵌入式操作系統(tǒng)系統(tǒng)都是基于Linux為內(nèi)核,大多是對Linux進(jìn)行了部分功能的刪減。所以要想讓《操作系統(tǒng)》課程教學(xué)與后續(xù)教學(xué)能夠較好地融合,需要加強(qiáng)對Linux中各種系統(tǒng)調(diào)度、任務(wù)分配和存儲管理等內(nèi)容的了解。因此,在原來的內(nèi)容上增加了關(guān)于Linux系統(tǒng)的相關(guān)操作演示與實驗,如表1所示,并在我院物聯(lián)網(wǎng)專業(yè)2016級中進(jìn)行了實施。
表1 課程相關(guān)擴(kuò)展和實驗課內(nèi)容
通過以上實驗,學(xué)生掌握Windows中內(nèi)存管理、進(jìn)程管理、文件系統(tǒng)等基本理論的基礎(chǔ)上,同時掌握了Linux系統(tǒng)中具體的調(diào)度管理的命令和過程,即加深了對課本知識的理解,也為后續(xù)課程的學(xué)習(xí)打好了基礎(chǔ)。
作為物聯(lián)網(wǎng)專業(yè)的學(xué)生,首先應(yīng)該熟悉物聯(lián)網(wǎng)操作系統(tǒng)的新特征,這些特征能夠體現(xiàn)物聯(lián)網(wǎng)操作系統(tǒng)與物聯(lián)網(wǎng)的其他層次緊密關(guān)系、方便數(shù)據(jù)共享,同時反映了物聯(lián)網(wǎng)操作系統(tǒng)安全的各種因素。本文選取10個有代表性的物聯(lián)網(wǎng)操作系統(tǒng)[1],對各自的主要特征進(jìn)行了總結(jié)(如表2所示),并對其重要特征進(jìn)行了提煉歸納,得到了5個重要特征,同時對物聯(lián)網(wǎng)操作系統(tǒng)和嵌入式操作系統(tǒng)的主要特征進(jìn)行了比較,如表3所示。
(1)可移植性。因為物聯(lián)網(wǎng)操作系統(tǒng)移植性更高,對操作系統(tǒng)內(nèi)核與驅(qū)動的可分離性要求也更高,各個物聯(lián)網(wǎng)設(shè)備異構(gòu)性較大。為了滿足不同的設(shè)備會有不同的固件與驅(qū)動程序的要求,物聯(lián)網(wǎng)操作系統(tǒng)提高了操作系統(tǒng)內(nèi)核的適用性和可移植性[1]。
(2)可定制性。物聯(lián)網(wǎng)操作系統(tǒng)需要對系統(tǒng)功能精確定位,合理使用硬件資源,因此其可裁剪性和配置性的要求比傳統(tǒng)嵌入式操作系統(tǒng)要求更高。對于硬件配置多種樣式的物聯(lián)網(wǎng)終端,有小到幾千字節(jié)內(nèi)存的微型嵌入式應(yīng)用,也有高達(dá)幾十兆字節(jié)內(nèi)存的復(fù)雜應(yīng)用領(lǐng)域。所以對于同一個操作系統(tǒng),通過裁剪或動態(tài)配置,既需要適應(yīng)低端的需求,又需要具備滿足高端復(fù)雜的需求的能力。
表2 10個常用物聯(lián)網(wǎng)操作系統(tǒng)特性
(3)協(xié)同互用性。物聯(lián)網(wǎng)操作系統(tǒng)之間通信協(xié)調(diào)的要求更好,且需求還會持續(xù)上升。物聯(lián)網(wǎng)環(huán)境下各種設(shè)備之間相互協(xié)同工作的任務(wù)會越來越多,而大多獨立完成某個單一的任務(wù)的傳統(tǒng)嵌入式系統(tǒng)將不能勝任未來的工作要求。
(4)自動與智能化。隨著物聯(lián)網(wǎng)應(yīng)用技術(shù)發(fā)展,物聯(lián)網(wǎng)設(shè)備需要人為干預(yù)的操作更少,而自動化與智能化的操作越來越多,物聯(lián)網(wǎng)操作系統(tǒng)比傳統(tǒng)的嵌入式操作系統(tǒng)更加智能[5]。
(5)安全可信性。物聯(lián)網(wǎng)設(shè)備需要連接網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳送,隨著物聯(lián)網(wǎng)設(shè)備在工業(yè)與生活中的普及,網(wǎng)絡(luò)攻擊的威脅將會是物聯(lián)網(wǎng)操作系統(tǒng)面臨的嚴(yán)峻挑戰(zhàn),物聯(lián)網(wǎng)設(shè)備存儲和使用的數(shù)據(jù)將更加敏感和重要。這些系統(tǒng)被控制后將對個人、企業(yè)和社會造成嚴(yán)重的影響。而傳統(tǒng)工業(yè)設(shè)備的嵌入式操作系統(tǒng)處于封閉環(huán)境中,傳統(tǒng)的嵌入式設(shè)備與用戶的關(guān)聯(lián)不緊密。因此,對于物聯(lián)網(wǎng)設(shè)備的安全和可信性提出了更高的要求。
表3 物聯(lián)網(wǎng)操作系統(tǒng)與傳統(tǒng)嵌入式系統(tǒng)特征比較
學(xué)生通過熟練使用這些物聯(lián)網(wǎng)操作系統(tǒng),才能達(dá)到物聯(lián)網(wǎng)專業(yè)的教學(xué)需求,為以后更深入的學(xué)習(xí)做好準(zhǔn)備。
引入小型項目的實踐教學(xué)到課程教學(xué)中。我們采用了在具有RTOS的STM32Cube上來開發(fā)應(yīng)用。在STM32Cube固件中,通過ARM提供的通用CMSIS-OS封裝層,將FreeRTOS用作實時操作系統(tǒng)。使用FreeR?TOS的樣例和應(yīng)用可直接移植到其他任何RTOS而不需要修改高層API,在此情況下僅需更改CMSIS-OS封裝。
FreeRTOS是RTOS的一種,尺寸非常小,可運行于微控制器上,但其使用并不限于微控制器應(yīng)用。Fre?eRTOS內(nèi)核只有3個.c文件,全部圍繞任務(wù)調(diào)度,沒有任何其他干擾,便于理解學(xué)習(xí),而且根本不需要其他繁多的功能,只需要任務(wù)調(diào)度。FreeRTOS免費開源更易于教師和學(xué)生掌握其內(nèi)涵及其源碼,方便教學(xué)。
因為學(xué)生還未學(xué)習(xí)嵌入式系統(tǒng)和STM32課程,所以我們實驗演示的目的只在于了解FreeRTOS的運行機(jī)制。因此我們直接通過API函數(shù)的調(diào)用來介紹,例如:
osSemaphoreDef(SEM);/*定義信號量*/
osSemaphoreId osSemaphore=osSemaphoreCreate(osSemaphore(SEM),1);/*創(chuàng)建信號量*/
osMutexDef(osMutex);/*定義互斥量*/
osMutexId osMutex=osMutexCreate(osMutex(osMutex));/*創(chuàng)建互斥量*/
osMessageQDef(osqueue,Queue_Size,uint16_t);/*定義隊列,Queue_Size占2個字節(jié)*/
osMessageQId osQueue=osMessageCreate(osMessageQ(os?queue),NULL);/*創(chuàng)建隊列*/
通過這些函數(shù)調(diào)用,結(jié)合任務(wù)刪除函數(shù)vTaskDe?lete(xTaskHandle pxTask)、創(chuàng)建函數(shù) xTaskCreate(…)等,將教材中所學(xué)到的生產(chǎn)者算法、內(nèi)存調(diào)度算法能編程實現(xiàn)。
物聯(lián)網(wǎng)專業(yè)的《操作系統(tǒng)》教學(xué)改革通過實踐后,在2016級學(xué)生中取得了如下效果:
一是擴(kuò)充了學(xué)生知識面。通過課程教學(xué),學(xué)生熟悉了更多的物聯(lián)網(wǎng)操作系統(tǒng)及其內(nèi)涵,而不再局限于Windows。通過對FreeRTOS系統(tǒng)調(diào)度函數(shù)的演示,并將其與教材中相關(guān)算法進(jìn)行結(jié)合,學(xué)生更深入的掌握了教材中的算法,也能看到程序具體運行的效果。
二是提升了教學(xué)效果。根據(jù)課程考試成績統(tǒng)計,采用新的教學(xué)內(nèi)容后,2016級學(xué)生成績提高比較明顯,優(yōu)秀率明顯提升,同時不及格率有所下降,如表4所示。
表4 課程教學(xué)效果比較
三是強(qiáng)化了專業(yè)學(xué)習(xí)興趣。在2016級《操作系統(tǒng)》教學(xué)中穿插了Linux對應(yīng)的命令與系統(tǒng)調(diào)度方式教學(xué)后,學(xué)生學(xué)習(xí)興趣明顯提高,實驗課動手機(jī)會增多。促進(jìn)了學(xué)生有目的進(jìn)入創(chuàng)新實驗室參與項目開發(fā),在“一周一匯報”基礎(chǔ)上,選擇優(yōu)秀的同學(xué)組成創(chuàng)新團(tuán)隊參與全國大學(xué)生創(chuàng)新創(chuàng)業(yè)比賽,讓優(yōu)秀成績激發(fā)更多同學(xué)參與項目開發(fā)、撰寫開發(fā)日記;同時安排同學(xué)及時總結(jié)自己創(chuàng)新成果,將它們轉(zhuǎn)化為論文與專利發(fā)表,在推免試研究生的資格上具有更大優(yōu)勢。表5是本專業(yè)2015級到2017級申請項目和軟件著作權(quán)、參與創(chuàng)新比賽等情況。
表5 2015-2018年本專業(yè)2015-2017級學(xué)生成果比較
課程教學(xué)的改革說明這種教學(xué)的改革讓學(xué)生學(xué)習(xí)興趣提高很多,參與創(chuàng)新實驗室與比賽的學(xué)生人數(shù)也越來越多,取得的成果也越來越明顯。目前已形成了非常好的創(chuàng)新實驗室風(fēng)氣,組成了穩(wěn)定的“教師+研究生+本科生”的優(yōu)秀團(tuán)隊,并形成高年級帶低年級的良好風(fēng)氣,當(dāng)前學(xué)生在項目開發(fā)方面的進(jìn)展非常不錯,能較好處理團(tuán)隊成員的合作與分工,對項目功能擴(kuò)展,能提出比較合理的建議與設(shè)想。