于俊偉,劉 楠,馬宏琳,張玉宏
(1. 河南工業大學 信息科學與工程學院,河南 鄭州 450001;2. 信息工程大學 基礎部,河南 鄭州 450001)
操作系統原理課程具有概念多、理論性強、知識面廣、概念較為抽象等特點,在實際教學過程中教師很難把握授課的要點和難點,學生也難以形成合理的知識體系。因此,有必要結合計算機學科的特點,綜合利用人工智能技術、教育心理學等學科成果,探索新的知識組織和教學實施模式[1]。
2015年1月,張堯學教授主持的“網絡計算的模式及基礎理論研究”獲得2014年度國家自然科學獎一等獎。這一被稱為“透明計算”的獲獎項目提出了一種將自治網絡虛擬成單機的新計算模式,實現了可管理自治網絡內各種資源的超級操作系統。張堯學教授及其團隊長期從事計算機網絡和操作系統方面的教學和研究,取得了不少重要的學術成果[2-3]。
操作系統原理課程常在春季開課,開課之初和學生討論每年1月舉行的國家自然科學技術頒獎大會,通過“透明計算”這一與操作系統學科密切相關的新聞進行課程引入,必然能激發學生熱愛科學、追求科學的學習熱情。用6個疑問代詞表示的新聞要素(6W)是理解新聞和故事的要點,如果根據新聞要素組織教學內容,也利于引導學生主動思考,幫助學生進行知識、技能和方法的理解和總結。概念知識樹[4-5]是以解決人工智能基礎問題為目標的知識表達框架體系,目前已在語義分析、知識庫管理等領域取得了較好的應用,這種知識表示方式同樣也能應用在智能教學系統中。
與國內教材更注重知識點概括、容易進行各種考題設計不同,國外教材更關注知識來龍去脈的介紹,內容敘述也抓住了故事的關鍵要素,因而學起來更容易理解和接受。為提高課堂內容的趣味性,操作系統的知識表示也可以從新聞要素中的 When(時間)、What(事件)、Who(人物)、Where(地點、平臺)、Why(原因)和How(原理、方法)方面考慮。
When表示時間,是指具體事件發生的日期或階段。時間概念能幫助我們了解操作系統的發展歷史和未來趨勢。從20世紀50年代出現第一個簡單的批處理操作系統開始,各種操作系統出現的過程大致如下:人工操作→單道批處理系統→多道批處理系統→分時系統→實時系統→微機操作系統→多處理機操作系統→網絡操作系統。另外,在某些時間節點上發生的標志性事件也對操作系統的發展具有重要作用,如1965年Dijkstra提出避免死鎖的銀行家算法;1966年Belady提出虛擬內存的最佳頁面置換算法;1973年Hansen和Hoare正式提出管程思想;1981年微軟開發的MS-DOS系統正式在IBM-PC上使用;1991年Linux系統首次在網絡上發布等。
What表示核心事件或概念,它是使用概念知識樹進行語義理解和知識管理的核心。What既可以表示操作系統中的抽象概念,又可以通過對事件本體的動作和狀態進行描述來刻畫具體的事件;同時,When、Who、Where等其他新聞要素所表達的概念也與What密切相關。
操作系統課程涉及很多可以用What要素表示的概念,其中“操作系統”本身就是一個非常重要的概念[6],可以從功能、特征、類型等幾個方面描述。操作系統課程還有不少能用來對比分析的概念,如進程控制里的“程序”“進程”和“線程”;內存管理中的“邏輯地址”和“物理地址”,“分頁”和“分段”;I/O系統中的“中斷”和“陷入”,文件系統中的“文件”和“目錄”等。
Who表示人物或者組織,我們重點關注那些為操作系統做出杰出貢獻的人物和組織,如Dekker首次給出兩個進程訪問臨界區問題的軟件解決方案;Coffman于1971年總結出產生死鎖的4個必要條件,也稱為Coffman條件;P. Denning提出支持虛擬內存管理的局部性原理和工作集的概念;Linus Torvalds在學生宿舍里完成了操作系統內核Linux,1991年10月Linux操作系統正式對外發布,此后吸引了成千上萬程序員進行修改、增補和傳播,成為世界上成長最快的軟件。
Dijkstra在操作系統領域做出了非常突出的貢獻,他的很多思想和方法至今都是課堂教學和系統開發中繞不開的概念,如其參與計算機X1的設計工作,設計了實時中斷系統;開發了第一個具有分層結構的操作系統THE;在X1上編寫了ALGOL60編譯器,并因此獲得1972年的圖靈獎。他深入思考了多道程序設計的問題,提出了信號量(Semahpore)機制、管程思想、哲學家就餐問題、避免死鎖的銀行家算法等。
Where表示地點,它既可以表示某個事件發生的具體地點,又可以表示課程內容所屬的范圍和操作系統平臺,如可以根據空間范圍將具體事件發生地點劃分為國內和國外,也可以根據國籍將操作系統方面的專家學者劃分為中國、美國、荷蘭等。對于學生來說,應該理解相關概念和知識所屬的背景范圍,如操作系統包含進程控制、內存管理、I/O系統、文件系統等知識模塊。
操作系統平臺包括Windows、Unix、Linux、Android、iOS等,其中Linux一直都是操作系統原理課程最常用的實驗平臺。學生經常遇到與Windows操作系統存在切換麻煩、共享等問題,有的實驗室為此還需要采用系統引導、虛擬機、終端等方法重新搭建實驗平臺。Google公司于2008年提出的開源移動操作系統Android,帶動了很多基于Android的應用和開發。美國Columbia大學在2010年就開始在Android系統上進行教學和實踐[7]。目前,國內很多畢業生在最后的實習和實踐環節,都愿意花大量的培訓費學習Android開發。為擴展學生的實踐平臺,并順應移動系統開發潮流、提高學生工程實踐和創新能力,河南工業大學操作系統教研組也嘗試在Android上進行課程設計,主要實現了系統調用、進程同步和調度、虛擬內存、文件系統等核心項目[8]。
Why表示原因,需要綜合多方面的知識對引起事件發生的原因進行分析,對該要素的表達和分析也具有更大的難度,如為分析產生“死鎖”的原因,需要對系統使用資源的性質、類型、使用方式等進行分析,進而得出“競爭資源”是形成死鎖的主要原因,又具體表現為“共享資源不足”和“進程推進的順序不當”兩種情況。就“透明計算獲獎”這一事件來說,也可以引導學生從歷史對比、學術影響、技術特性、應用推廣、國際認可等方面分析其受質疑的原因。
How表示原理和方法,操作系統原理中大量的原理介紹和實現方法都可以使用How進行表示,如處理機調度算法、避免死鎖的銀行家算法、內存動態分區分配方法、虛擬內存的頁面置換算法、存儲管理的磁盤調度算法等。對上述方法的模擬和實現,是理解操作系統工作原理的核心。另外,How還能表示實現特定功能的工具,如進程間通信就可以借助以下幾種方式實現:管道、消息隊列、信號量、共享存儲區等。
概念知識樹是以概念為基礎的知識表達體系,改變了傳統智能教學系統以語義網絡、謂詞、產生式規則等進行知識表示的方式,反映了人類認知和思維加工的過程。當前課堂教學改革強調學生是學習的主體,學生對課程知識的學習就是在大腦中構建系統的概念網絡。這種知識體系有利于學生對概念的鞏固和掌握,有利于形成成串和成塊的概念知識。借助概念網絡這一知識庫管理工具[9],結合操作系統原理課程知識的新聞要素語義分析,首先建立抽象的、較高層次的知識節點,然后根據課程內容進行相應知識節點的添加,建立相應的概念知識庫。系統還需要知識管理模塊根據規則庫對知識節點進行更新和維護,同時對采用的語義分析方法進行管理。操作系統原理課程概念知識庫及管理模塊框圖如圖1所示。

圖1 OS概念知識庫及管理模塊框圖
教師可以將課程知識點與概念知識樹中的概念相對應,通過6W要素等“屬性”進行知識點的定義和描述,通過概念之間的“關系”將各知識點形成一個網狀或樹狀結構,如對于“處理機調度和死鎖”這一章中“死鎖”的概念,就可以分解為4個新聞要素表示的概念知識:What——死鎖的定義;Why——產生死鎖的原因;Who——Coffman條件;How——死鎖的處理方法。
學生對知識概念掌握的程度,可以通過選擇題、問答題、計算題、程序設計等方式進行檢驗,根據知識掌握情況建立學習知識樹的概率網絡,通過Bayesian網絡方法進行學習知識樹節點的動態調整。對課程中的重點和難點對應的知識點,或者學生掌握得不好的知識節點,還可以通過推送講義、教案、微課視頻等多種教學資源進行進一步的學習,采用協同過濾(collaborative fi ltering)技術進行學習內容推送,根據概念樹知識節點的評分情況對關聯概念知識進行推薦。這種方式就像購物網站總能根據你的購買記錄或感興趣的商品進行精準商品推薦一樣,概念知識樹管理平臺能夠根據學生各節點的學習情況進行學習內容的個性化和自動化推送。
概念知識樹的構建和使用是實現智能教學的重要組成部分,除了能幫助學生理解基礎的知識概念,還能針對難以理解和掌握的知識點推送相關的學習資源,促進以學生為中心的概念知識體系的形成,這值得在移動網絡教學和個性化學習中進行推廣和應用。后繼研究和教學應用中應結合機器學習方法,在大量學習數據基礎上進行知識要素屬性、關系和難易程度的自動分析。