顏慶茁 林麗娜
摘 要 操作系統(tǒng)管理著底層龐雜的硬件,代碼量巨大,算法設(shè)計精妙,是“中國制造2025”智能化核心要素,學(xué)生掌握它具有挑戰(zhàn)性。新工科課程建設(shè)背景下,為推動教學(xué)質(zhì)量再提升,在操作系統(tǒng)基本原理、技術(shù)和實踐應(yīng)用三個方面重構(gòu)操作系統(tǒng)原理課程教學(xué)內(nèi)容體系。借鑒國內(nèi)外名校課程的知識體系,在教材的基礎(chǔ)上拔高,突出內(nèi)涵,涵蓋最新技術(shù),強化創(chuàng)新實踐,著眼于計算思維、工程思維、系統(tǒng)級編程能力的培養(yǎng)。教學(xué)原則基于成果導(dǎo)向,以學(xué)生為中心,應(yīng)用啟發(fā)式探究型的教與學(xué)生自主研究型的學(xué)相結(jié)合,關(guān)注學(xué)生面向未來的創(chuàng)新創(chuàng)業(yè)能力的養(yǎng)成。
關(guān)鍵詞 新工科 操作系統(tǒng)原理 體系重構(gòu)
中圖分類號:G424?????????????????????????????????文獻標(biāo)識碼:A??DOI:10.16400/j.cnki.kjdk.2021.12.031
Abstract The operating system manages the complex hardware at the bottom, with huge code volume and excellent algorithm design. It is the core element of intelligent "made in China 2025". Students have the challenge to master it. Under the background of the new engineering curriculum construction, in order to promote the teaching quality and improve again, the teaching content system of operating system principle course is reconstructed in three aspects: the basic principle, technology and practical application of the operating system. Learning from the knowledge system of famous courses at home and abroad, we should take the teaching materials as the basis, highlight the connotation, cover the latest technologies, strengthen the innovation practice, and focus on the cultivation of computing thinking, engineering thinking and system level programming ability. Based on the results oriented teaching principle, students as the center, the heuristic inquiry teaching and students' independent research-oriented learning are combined to pay attention to the cultivation of students' innovation and entrepreneurship ability facing the future.
Keywords new engineering; principles of operating system; pedagogical content and structure reconstruction
0 引言
新工科是當(dāng)下中國高等工程教育創(chuàng)新創(chuàng)業(yè)改革發(fā)展的政策焦點和戰(zhàn)略部署。為推動高教質(zhì)量再提升,新工科建設(shè)正進入踏踏實實五個“再深化”階段,其中之一就是打造一流本科課程“雙萬計劃”。[1]在此背景下,操作系統(tǒng)是“中國制造2025”智能化核心要素,是計算機科學(xué)研究的基石之一,是實施計算機系統(tǒng)編程能力培養(yǎng)的核心課程。操作系統(tǒng)原理課程理論性強、概念多且抽象,學(xué)生掌握操作系統(tǒng)具有挑戰(zhàn)性。操作系統(tǒng)原理課程教學(xué)團隊依據(jù)新型工程科技人才培養(yǎng)理念與要求,立足未來戰(zhàn)略需求,結(jié)合課程和生源特點,借鑒國內(nèi)外知名高校操作系統(tǒng)課程的知識體系,吸納先進的課程實踐項目,重構(gòu)操作系統(tǒng)原理課程教學(xué)內(nèi)容。
1 課程建設(shè)的目標(biāo)
新工科建設(shè)落實到人才培養(yǎng)能力的提升上,是以新興產(chǎn)業(yè)和技術(shù)發(fā)展的需求為導(dǎo)向,大力培養(yǎng)具有前瞻交叉思維的卓越工程創(chuàng)新人才。而課程是人才培養(yǎng)的基本單位,[2]課程質(zhì)量決定了人才培養(yǎng)質(zhì)量。操作系統(tǒng)原理課程是計算機專業(yè)的主干課程,綜合了多門課程的知識。操作系統(tǒng)管理底層龐雜的硬件,為用戶提供便捷的服務(wù),其代碼量巨大,算法設(shè)計精巧高效。操作系統(tǒng)不僅僅是關(guān)于并發(fā)性和瑣碎的調(diào)度算法,它與硬件配合,如何讓中斷、異常、上下文切換等真正有效,它著眼于從系統(tǒng)和全局上權(quán)衡時間和空間、性能和可預(yù)測性、公平和性能。隨著系統(tǒng)硬件和并行技術(shù)的發(fā)展,操作系統(tǒng)也在不斷演化,并與多學(xué)科交叉融合。研制含金量高的教學(xué)內(nèi)容,是實現(xiàn)課程教學(xué)提升的關(guān)鍵。新工科視角下的課程體系建設(shè)目標(biāo)主要包括以下三個方面。
在基本原理層面上,掌握操作系統(tǒng)的基本概念、原理與方法。[3]掌握線程、進程、CPU調(diào)度、并發(fā)、同步、互斥,信號量、鎖、死鎖、地址空間、按需調(diào)用,文件系統(tǒng)、設(shè)備驅(qū)動、TCP/IP網(wǎng)絡(luò)、分布式系統(tǒng)等關(guān)鍵知識點。操作系統(tǒng)在計算機系統(tǒng)中位于硬件之上其他軟件之下,為應(yīng)用程序提供一致的抽象視圖;在多個應(yīng)用程序之間管理資源的共享。讓學(xué)生形象地理解操作系統(tǒng)在計算機系統(tǒng)中的地位和作用就像是裁判、造夢師、系統(tǒng)服務(wù)的膠合劑。
在操作系統(tǒng)的技術(shù)層面,掌握操作系統(tǒng)的宏/微/混合體系架構(gòu),內(nèi)核設(shè)計原則與算法思想和實現(xiàn)。從系統(tǒng)程序員的角度,深入理解操作系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)與算法在設(shè)計上的精巧,學(xué)以致用,學(xué)習(xí)解決復(fù)雜問題的思路與方法。
在操作系統(tǒng)課程的實踐應(yīng)用層面,側(cè)重對課程知識的驗證與應(yīng)用,以作業(yè)、編程、課外閱讀等多種形式開展。設(shè)計系統(tǒng)開發(fā)類和核心算法實現(xiàn)類實驗內(nèi)容,在Linux環(huán)境下使用Glibc庫和POSIX庫來完成,培養(yǎng)學(xué)生利用操作系統(tǒng)庫進行并發(fā)程序設(shè)計和系統(tǒng)軟件編程能力。閱讀并分析核心Linux源代碼,學(xué)習(xí)設(shè)計思想并加以靈活應(yīng)用。剖析像清華大學(xué)uCore OS[4]和一些小型精簡的OS掌握其設(shè)計精髓,嘗試設(shè)計一個小的OS加深體驗。
2 課程教學(xué)內(nèi)容建設(shè)思路
教學(xué)團隊基于成果為導(dǎo)向的人才培養(yǎng)理念,借鑒國內(nèi)外著名高校課程的內(nèi)容,以學(xué)生發(fā)展為中心、反向設(shè)計、持續(xù)改進[5]教學(xué)知識體系。從基礎(chǔ)性、系統(tǒng)性、先進性等方面注重內(nèi)容的選取,在教材的基礎(chǔ)上拔高,突出內(nèi)涵,除舊納新,涵蓋最新技術(shù),兼顧廣度和深度,形成操作系統(tǒng)清晰的全局知識框架。強化創(chuàng)新實踐,以項目學(xué)習(xí)為牽引助力學(xué)生突破知識結(jié)構(gòu)。課程建設(shè)的重點是注重學(xué)生計算思維、工程思維、系統(tǒng)編程思維能力的培養(yǎng),關(guān)注學(xué)生面向未來的創(chuàng)新創(chuàng)業(yè)能力的養(yǎng)成。
2.1原理課程資源建設(shè)
多年來,教學(xué)團隊選用左萬力編著的《計算機操作系統(tǒng)教程》國家級、省級規(guī)劃教材,推薦國內(nèi)外廣泛認(rèn)可的《操作系統(tǒng)概念》《現(xiàn)代操作系統(tǒng)》《OSTEP》等作為主要參考書。精心挑選互聯(lián)網(wǎng)上最新的操作系統(tǒng)課程資源,包括:GitHub、大學(xué)慕課、公開課,知乎、微博等。引導(dǎo)學(xué)生充分利用網(wǎng)絡(luò)資源來學(xué)習(xí)教材之外的前沿知識,了解新興產(chǎn)業(yè)的操作系統(tǒng)設(shè)計上的需求,拓寬了學(xué)生視野,激發(fā)了學(xué)生學(xué)習(xí)動力和激情。
根據(jù)新工科的人才培養(yǎng)需求,課程教學(xué)團隊對課程目標(biāo)和教學(xué)計劃進行重新的規(guī)劃,編寫課程教材、PPT資源和實驗項目,擬構(gòu)筑操作系統(tǒng)原理全方位復(fù)合型的知識結(jié)構(gòu)。
2.2實踐教學(xué)資源建設(shè)
實踐性教學(xué)是培養(yǎng)學(xué)生系統(tǒng)開發(fā)實踐技能的主要教學(xué)環(huán)節(jié)和手段。教學(xué)團隊設(shè)計各個核心模塊的實驗內(nèi)容,包括系統(tǒng)級應(yīng)用開發(fā)類、系統(tǒng)模擬類、核心算法實現(xiàn)類、[6]Linux源代碼和ucore OS源代碼分析類實驗課題。根據(jù)操作系統(tǒng)原理課程關(guān)鍵模塊的內(nèi)容,構(gòu)建的實踐課題如表3所示。
實踐教學(xué)讓學(xué)生能夠更深入理解操作系統(tǒng)的抽象原理、運行機制和設(shè)計思想,也促進學(xué)生系統(tǒng)級編程能力的提高。
3 課程教學(xué)方法與實施
在操作系統(tǒng)教學(xué)課程中,團隊不斷探索教學(xué)方法,致力改善教學(xué)成效。教學(xué)原則以學(xué)生為中心,對于課程教學(xué)內(nèi)容的重點與難點,應(yīng)用啟發(fā)式探究型的教學(xué)法由淺入深、循序漸進地講授,讓學(xué)生自主研究地學(xué)習(xí)、領(lǐng)會、融會貫通。課堂凝聚在學(xué)生積極投入、思索、探究的學(xué)習(xí)過程。
教學(xué)內(nèi)容組織上,團隊凝練出操作系統(tǒng)的四個基本概念:線程、地址空間、進程、雙模式/保護,[7]以此為主線層層深入,建立系統(tǒng)的整體視野。操作系統(tǒng)的要旨:控制程序的運行,從編輯程序開始,然后編譯、加載到最后的運行都離不開操作系統(tǒng)背后的支持。虛擬化技術(shù)是理解課程的一個關(guān)鍵,課程的內(nèi)容主要圍繞各個抽象展開:線程是CPU核的抽象、地址空間是內(nèi)存的抽象、文件是磁盤的抽象、套接字是網(wǎng)絡(luò)的抽象及機器是進程的抽象。對操作系統(tǒng)各個子系統(tǒng)核心模塊,精講算法設(shè)計思想,剖析算法的精妙,引領(lǐng)學(xué)生去思考設(shè)計思路:設(shè)計的緣由,做了什么事,如何做,達到什么效果,不足之處如何改進等。課程涉及具體的軟硬件技術(shù),如,Intel 64 and IA-32 架構(gòu)、ARM體系、Linux 內(nèi)核的庫函數(shù)API等參考官方技術(shù)手冊來尋找第一手精準(zhǔn)答案。針對操作系統(tǒng)原理課程大量晦澀難懂的概念和原理,教學(xué)團隊精心設(shè)計了豐富的小實例。如vcpu虛擬化、內(nèi)存虛擬化、并發(fā)等一些小例子;又比如系統(tǒng)調(diào)用,用c語言的OS庫和匯編語言分別編寫一個系統(tǒng)調(diào)用的代碼,并用strace工具測試,讓學(xué)生對看不到的系統(tǒng)調(diào)用有了直觀的感受。教學(xué)團隊注重操作系統(tǒng)內(nèi)核源代碼的分析,將抽象的原理化為具體的示例。例如Linux進程創(chuàng)建fork,通過源代碼跟蹤,讓學(xué)生真實感受fork都做了哪些事。再比如Linux中斷處理,考察源代碼中斷相關(guān)的的數(shù)據(jù)結(jié)構(gòu)和內(nèi)核函數(shù),學(xué)生真切體會到中斷處理的整個流程,對如何編寫一個中斷處理程序有一個清晰的邏輯。教學(xué)團隊也注重項目驅(qū)動式案例教學(xué),通過創(chuàng)設(shè)情境,提出問題、分析問題、解決問題來提高學(xué)生的興趣,加深概念的理解記憶。
教學(xué)方式上,改變滿堂灌的傳授知識模式,注重學(xué)生自主探究式的學(xué)。課前分發(fā)多媒體課件、視頻、課程閱讀材料讓學(xué)生預(yù)習(xí)。課中突出內(nèi)涵,講述重點內(nèi)容,展開分組合作式討論學(xué)習(xí),鼓勵提問,活躍課堂氣氛,增進教學(xué)互動。課后要求學(xué)生對所學(xué)知識加以鞏固、加以驗證和靈活應(yīng)用,訓(xùn)練學(xué)生舉一反三,個性化地“造輪子”,促進創(chuàng)新創(chuàng)業(yè)能力的養(yǎng)成。教學(xué)團隊一直致力改善操作系統(tǒng)課程的教學(xué)效果,嘗試翻轉(zhuǎn)課堂、智慧課堂[8]等授課模式,應(yīng)用課堂派軟件、QQ教學(xué)群等工具進行輔助教學(xué),對教學(xué)設(shè)計進行創(chuàng)造性的建設(shè)。
4 結(jié)束語
新工科的核心是以市場的需求為導(dǎo)向,大力培養(yǎng)具有面向未來的卓越工程創(chuàng)新人才。在新工科視角下,人才培養(yǎng)能力的提升落實到課程建設(shè)上來。操作系統(tǒng)是計算機專業(yè)的主干課程,是實施計算機系統(tǒng)能力培養(yǎng)的核心和著力點,同時也是最復(fù)雜的系統(tǒng)軟件。誠毅學(xué)院操作系統(tǒng)原理教學(xué)團隊基于成果為導(dǎo)向,以學(xué)生為中心,通過吸收國內(nèi)外名校課程的知識體系,突出課程內(nèi)涵,涵蓋新技術(shù),強化實踐,從操作系統(tǒng)基本原理、技術(shù)和實踐應(yīng)用三個方面重構(gòu)課程教學(xué)內(nèi)容。操作系統(tǒng)課程的教學(xué)改革,力圖建立一個好的課程知識體系讓學(xué)習(xí)不再盲目,有效地引導(dǎo)學(xué)生更順暢地學(xué)習(xí)操作系統(tǒng),更深入、全面地掌握地操作系統(tǒng)的設(shè)計思想,重點訓(xùn)練學(xué)生的計算思維、工程思維、系統(tǒng)編程思維能力,關(guān)注學(xué)生面向未來的創(chuàng)新創(chuàng)業(yè)能力的養(yǎng)成。
基金項目:202001福建國科信息科技有限公司 教育部“產(chǎn)學(xué)合作協(xié)同育人”(新工科視角下網(wǎng)絡(luò)專業(yè)產(chǎn)教融合建設(shè))
參考文獻
[1] 教育部.實施一流本科課程“雙萬計劃”讓本科課程優(yōu)起來[EB/OL].(2019-10-31).https://wenku.baidu.com/view/60cb4738a1116 c175f0e7cd184254b35eefd1a96.html
[2] 成長春.追求卓越 全面提高人才培養(yǎng)能力[N].中國教育報,2018-04-23(05).
[3] 葉保留,費翔林,駱斌,等.南京大學(xué)操作系統(tǒng)原理與實踐國家精品課程建設(shè)[J].計算機教育,2014(7):45-49.
[4] 陳渝.操作系統(tǒng)實驗:基于uCore OS [EB/OL].藍(lán)橋,2020.https://www.lanqiao.cn/courses/221
[5] 姜曉坤,朱泓,李志義.新工科人才培養(yǎng)新模式[J].高教發(fā)展與評估,2018(2):17-24.
[6] 翟高壽,許宏麗,楊昆,等.操作系統(tǒng)實驗課題拓展及支撐操作系統(tǒng)研發(fā)的教學(xué)生態(tài)圈構(gòu)建初探[J].工業(yè)和信息化教育,2019(3):44-49.
[7] Abraham Silberschatz,PeterBaerGalvin.操作系統(tǒng)概念[M].高等教育出版社,2010(1):16-26.
[8] 周軍海.新工科背景下基于OBE教育模式的操作系統(tǒng)教學(xué)改革研究與實踐[J].軟件工程,2020,23(4):51-53.