何宗鍵 張惠娟
摘要:在“操作系統(tǒng)”課程的教學(xué)中,實(shí)驗(yàn)教學(xué)設(shè)計(jì)的好壞直接影響到學(xué)生對操作系統(tǒng)本身的理解與吸收。其中實(shí)驗(yàn)平臺的設(shè)計(jì)與建設(shè)至關(guān)重要。本文提出了一套基于Windows內(nèi)核的“操作系統(tǒng)”課程實(shí)驗(yàn)平臺,它架構(gòu)在大眾最為熟悉的Windows操作系統(tǒng)基礎(chǔ)上,可供學(xué)生對操作系統(tǒng)內(nèi)核進(jìn)行擴(kuò)展、修改、并獲得客觀評價(jià)。此舉極大的降低了學(xué)習(xí)門檻,提高了學(xué)生的學(xué)習(xí)興趣和主動性。在實(shí)際應(yīng)用中取得了較好的效果。
關(guān)鍵詞:操作系統(tǒng)教學(xué);實(shí)驗(yàn)平臺;WRK;Windows內(nèi)核
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
1引言
“操作系統(tǒng)”是計(jì)算機(jī)軟件中最重要,最核心的部分,也是高校計(jì)算機(jī)高等教育的一門重要基礎(chǔ)課程。操作系統(tǒng)中有眾多的理論、模型與思想,如果不通過實(shí)驗(yàn)教學(xué),對學(xué)生的講述僅僅停留在課堂陳述,又無法取得很好的效果,因此“操作系統(tǒng)”是一門實(shí)踐性很強(qiáng)的課程。
目前國內(nèi)高校“操作系統(tǒng)”實(shí)驗(yàn)課程的開設(shè)方法有如下幾種:(1)驗(yàn)證型:即通過模擬環(huán)境、實(shí)際操作或案例剖析的形式,對操作系統(tǒng)中的常見算法、技術(shù)等進(jìn)行驗(yàn)證。這種方法可以有效的化操作系統(tǒng)中的抽象原理為形象的實(shí)現(xiàn),但是學(xué)生做的內(nèi)容往往千篇一律,其主動性很難調(diào)動。(2)設(shè)計(jì)型:即通過模塊替換、功能擴(kuò)展或獨(dú)立開發(fā)的形式,要求學(xué)生設(shè)計(jì)實(shí)現(xiàn)一些操作系統(tǒng)中的功能。這種方法可以提高學(xué)生的自主能動性,但是其工作量與難度很難把握,如果太簡單起不到鍛煉的作用,太難又可能導(dǎo)致大部分學(xué)生無法完成而影響教學(xué)效果。如何使操作系統(tǒng)實(shí)驗(yàn)既能很好的輔助課程教學(xué),又能提高學(xué)生的實(shí)踐水平,是所有講授操作系統(tǒng)的教師不得不面對的問題。
我們認(rèn)為,搭建強(qiáng)有力的實(shí)驗(yàn)平臺對解決此問題有重要意義。一個(gè)好的操作系統(tǒng)實(shí)驗(yàn)平臺需要最大程度上的降低課程實(shí)驗(yàn)的難度,屏蔽操作系統(tǒng)實(shí)現(xiàn)的復(fù)雜細(xì)節(jié),抓住知識要點(diǎn),調(diào)動學(xué)生的積極性,同時(shí)又可以對學(xué)生的工作作出合理的評價(jià)。目前的操作系統(tǒng)實(shí)驗(yàn)平臺多以專門用于教學(xué)的操作系統(tǒng)為主,例如Nachos、Minix等,學(xué)生對其并不熟悉,需要二次學(xué)習(xí)。在同濟(jì)大學(xué)軟件學(xué)院的“操作系統(tǒng)”課程實(shí)驗(yàn)中,我們嘗試采用大眾熟知的Windows操作系統(tǒng)作為實(shí)驗(yàn)平臺載體。
以往基于Windows的操作系統(tǒng)實(shí)驗(yàn)最大的困難在于其封閉性。由于無法得到Windows操作系統(tǒng)的源代碼,公眾無法深入了解、分析和修改Windows操作系統(tǒng)內(nèi)核,因此實(shí)驗(yàn)僅能停留在用戶態(tài)層面。微軟公司于2008年初針對全球?qū)W術(shù)界發(fā)布Windows Research Kernel(簡稱WRK),它是一套可修改、可編譯、可調(diào)試的Windows內(nèi)核源代碼。借助于WRK,基于Windows操作系統(tǒng)內(nèi)核的實(shí)驗(yàn)平臺搭建已成為可能。
2實(shí)驗(yàn)平臺介紹
2.1基本思想
搭建操作系統(tǒng)實(shí)驗(yàn)平臺,其基本思想有如下幾點(diǎn):第一,真實(shí)的操作系統(tǒng)往往為了追求效率或功能往往有很多復(fù)雜的實(shí)現(xiàn)細(xì)節(jié),而這些細(xì)節(jié)恰恰不利于學(xué)生的深入學(xué)習(xí)。通過實(shí)驗(yàn)平臺,可以讓學(xué)生無需直接面對這些細(xì)節(jié)問題,而可以更加關(guān)注于重要的算法、思想和原理。第二,操作系統(tǒng)中有不少晦澀的原理和抽象的模型。通過實(shí)驗(yàn)平臺,可以設(shè)計(jì)一些創(chuàng)新型實(shí)驗(yàn),以增強(qiáng)課程的趣味性,從而進(jìn)一步調(diào)動學(xué)生的積極性和主動性。第三,對于學(xué)生實(shí)驗(yàn)的工作量和工作成果,實(shí)驗(yàn)平臺需要以某種具體標(biāo)準(zhǔn)給出合理的評價(jià)。第四,對于學(xué)生創(chuàng)新過程中遇到的具體問題,需要提供一個(gè)及時(shí)溝通和交流的平臺。不能讓學(xué)生因?yàn)槟硞€(gè)技術(shù)困難而導(dǎo)致整個(gè)實(shí)驗(yàn)無法繼續(xù)進(jìn)行。
鑒于上述思路,基于該實(shí)驗(yàn)平臺,教師和學(xué)生應(yīng)該在實(shí)驗(yàn)中做到如下工作,如圖1所示:
首先,教師自己需要對WRK做深入的了解。摸清WRK中的基本算法、數(shù)據(jù)結(jié)構(gòu)等。然后對WRK的代碼作出一定修改,最主要是要把一些核心算法與數(shù)據(jù)結(jié)構(gòu)的接口定義出來。
其次,教師需要撰寫實(shí)驗(yàn)指導(dǎo)書,指導(dǎo)學(xué)生如何基于教師定義的接口對WRK進(jìn)行擴(kuò)展、以及預(yù)期的效果等,并且開發(fā)成果評測軟件。還要對學(xué)生進(jìn)行WRK基礎(chǔ)知識的講解。
接下來,學(xué)生可以在基于WRK的實(shí)驗(yàn)平臺上進(jìn)行實(shí)驗(yàn),包括基本算法替換、擴(kuò)展功能實(shí)現(xiàn)等。如果遇到問題,可以及時(shí)與老師、或其它同學(xué)溝通。
最后,實(shí)驗(yàn)平臺可以根據(jù)學(xué)生的完成情況,給出合理的評價(jià)。
2.2實(shí)驗(yàn)平臺架構(gòu)
為了實(shí)現(xiàn)上述思想,我們基于WRK搭建和設(shè)計(jì)了如下實(shí)驗(yàn)平臺,如圖2所示。
該平臺是基于Virtual PC虛擬機(jī)的。在其之上運(yùn)行WRK內(nèi)核。在實(shí)驗(yàn)開始前,教師對WRK的內(nèi)核做必要修改。對同步原語、內(nèi)存分配算法、調(diào)度算法等都做了修改。修改后的WRK內(nèi)核雖然可以運(yùn)行,但是都是采用最基本的算法,效率非常低。需要學(xué)生對其進(jìn)行進(jìn)一步改進(jìn)。
然后,系統(tǒng)給WRK增加了一系列新的系統(tǒng)調(diào)用,該系統(tǒng)調(diào)用主要用來導(dǎo)出系統(tǒng)的一些核心評估、評測數(shù)據(jù)。在其之上,我們還編寫了自制的評估軟件。該評估軟件利用新增的系統(tǒng)調(diào)用,對經(jīng)同學(xué)修改后的WRK內(nèi)核進(jìn)行功能、性能等各方面的評估,而該評估指標(biāo),是學(xué)生實(shí)驗(yàn)成績的重要組成部分。
2.3實(shí)驗(yàn)內(nèi)容舉例
圍繞該實(shí)驗(yàn)平臺,我們開發(fā)了一系列實(shí)驗(yàn)。詳細(xì)信息可參考“操作系統(tǒng)實(shí)驗(yàn)”精品課程網(wǎng)站(http://sse.# edu. cn/oswrk/)。下面僅列舉一個(gè)例子作為介紹。
實(shí)驗(yàn)內(nèi)容:操作系統(tǒng)同步死鎖檢測。死鎖是同步中經(jīng)常發(fā)生的問題,目前的Windows操作系統(tǒng)中不會對死鎖進(jìn)行檢測。修改WRK源代碼的WaitForSingleObject( )函數(shù),在給同步對象上鎖之前增加死鎖檢測功能,如果該加鎖操作會導(dǎo)致死鎖,則函數(shù)返回特定的錯(cuò)誤值。
要求:(1) 重新構(gòu)建的Windows內(nèi)核必須通過評估軟件的測試。(2) 提交修改后的增量源代碼。
為完成此實(shí)驗(yàn),教師首先需要開發(fā)實(shí)驗(yàn)評估軟件。在該軟件中,故意實(shí)現(xiàn)多種情況的等待死鎖。在學(xué)生修改后的內(nèi)核上運(yùn)行該軟件后,其可以評估修改的代碼是否可以檢測死鎖,并分析死鎖檢測的時(shí)間消耗,從而給出學(xué)生作業(yè)較為客觀評估。
3首次實(shí)踐經(jīng)驗(yàn)總結(jié)
在2008年,我們組成了以15名本科生(含一名西班牙瓦倫西亞大學(xué)國際交換學(xué)生)作為該實(shí)驗(yàn)的試點(diǎn)對象。首批展開試點(diǎn)。
在實(shí)踐過程中,我們有如下經(jīng)驗(yàn)總結(jié):
第一,教師一定要把握好實(shí)驗(yàn)的“度”。即布置的任務(wù)最好能夠有明確的范圍限制。如果實(shí)驗(yàn)?zāi)繕?biāo)過大,則可能導(dǎo)致工作量太大或問題太多而無法完成。
第二,由于WRK是比較新的東西,資料相對較少,很有可能會遇到大家都無法解決的問題。這個(gè)時(shí)候溝通、共同攻關(guān)就顯得比較重要。在試點(diǎn)中,我們建立了一個(gè)所有組員都可以編輯的維基用來做溝通,如圖3所示。一方面大家可以快速看到目前存在的問題。另一方面,也有利于探索的積累,起到了良好的作用。
第三,一定要調(diào)動學(xué)生的積極性,但是不能希望一蹴而就。實(shí)驗(yàn)需要由淺入深的展開,前期實(shí)驗(yàn)從觀察性實(shí)驗(yàn)入手,一方面讓學(xué)生了解WRK的架構(gòu),另一方面讓學(xué)生感覺入手并不難。然后可以漸漸增加動手、創(chuàng)新實(shí)驗(yàn)的比重。當(dāng)然,要保證絕大多數(shù)實(shí)驗(yàn)是創(chuàng)新型實(shí)驗(yàn),否則無法真正鍛煉到學(xué)生的動手能力和創(chuàng)新意識。
4結(jié)束語
WRK讓搭建基于Windows的操作系統(tǒng)實(shí)驗(yàn)平臺成為了可能,但是真正要讓W(xué)RK發(fā)揮其在操作系統(tǒng)實(shí)驗(yàn)教學(xué)中的作用,還需要教師們做大量的工作。在同濟(jì)大學(xué)軟件學(xué)院的教學(xué)中,我們建立了一個(gè)基于WRK的實(shí)驗(yàn)平臺,并初步在課程中應(yīng)用。但這僅僅是邁出了第一步,接下來還需要在實(shí)際教學(xué)的過程中聽取各方面的意見與建議,進(jìn)一步對該平臺進(jìn)行完善。
參考文獻(xiàn):
[1] 馮紅偉,王鵬. 操作系統(tǒng)教學(xué)與實(shí)驗(yàn)設(shè)計(jì)研究[J]. 實(shí)驗(yàn)室研究與探索, 2007(12):251-253.
[2] 潘東靜.操作系統(tǒng)實(shí)驗(yàn)教學(xué)研究[J]. 現(xiàn)代計(jì)算機(jī),2008(1):70-71.
[3] 鄧勝蘭, 寧洪. 操作系統(tǒng)實(shí)踐教學(xué)的探索[J]. 計(jì)算機(jī)教育,2007(10):8-9.
[4] 王國華. 《操作系統(tǒng)》實(shí)驗(yàn)課程的設(shè)置與實(shí)踐[J]. 山西財(cái)經(jīng)大學(xué)學(xué)報(bào):高等教育版,2006(S1):108.
[5] 趙福來. 國內(nèi)高校操作系統(tǒng)課程實(shí)驗(yàn)教學(xué)實(shí)施情況評述[J]. 中國科技信息,2005(12):90.
[6] 彭敏, 何炎祥. 基于WRK的Windows操作系統(tǒng)原理實(shí)驗(yàn)教學(xué)探索[J]. 計(jì)算機(jī)教育,2008(20):38-40.