閻 巍 尹俊文
摘要:我國的“操作系統(tǒng)”課程一直在不斷地學(xué)習(xí)國外先進(jìn)的教學(xué)經(jīng)驗和方法,隨著計算機(jī)技術(shù)的發(fā)展,“操作系統(tǒng)”課程的建設(shè)面臨著機(jī)遇和挑戰(zhàn)。本文研究了美國普林斯頓大學(xué)、哥倫比亞大學(xué)、哈佛大學(xué)、麻省理工學(xué)院和加州大學(xué)伯克利分校等幾所著名大學(xué)的本科“操作系統(tǒng)”課程的課程內(nèi)容、實驗設(shè)置兩個方面的情況,以圖促進(jìn)我國的“操作系統(tǒng)”課程的改革。
關(guān)鍵詞:“操作系統(tǒng)”課程;課程內(nèi)容;實驗設(shè)置
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
1引言
隨著嵌入式系統(tǒng)的廣泛應(yīng)用,操作系統(tǒng)作為最重要的軟件部件之一,越來越受到業(yè)界的重視。因此,有關(guān)“操作系統(tǒng)”課程的設(shè)計面臨著機(jī)遇和挑戰(zhàn)。
“操作系統(tǒng)”課程需要為后續(xù)課程提供足夠的知識基礎(chǔ),也必須深化學(xué)生對計算機(jī)系統(tǒng)的理解和全局觀,拓廣他們對計算機(jī)的系統(tǒng)化視野。
我們對國內(nèi)外一些知名大學(xué)的“操作系統(tǒng)”課程進(jìn)行了跟蹤和分析,了解他們對于操作系統(tǒng)相關(guān)知識的教學(xué)情況,分析他們對于操作系統(tǒng)相關(guān)能力培養(yǎng)的教學(xué)實施方法,比較他們與我們國內(nèi)大學(xué)“操作系統(tǒng)”課程教學(xué)的差異,吸收他們先進(jìn)的教學(xué)理念和課程設(shè)計方法,以圖改進(jìn)我們的課程教學(xué)水平、提高教學(xué)效率和質(zhì)量。
我們主要通過Internet調(diào)查了Princeton University(普林斯頓大學(xué))、Columbia University(哥倫比亞大學(xué))、Harvard University(哈佛大學(xué))、Massachusetts Institute of Technology (麻省理工學(xué)院)和UC Berkeley(加州大學(xué)伯克利分校)等在計算機(jī)科學(xué)與技術(shù)專業(yè)具有威望的美國大學(xué)。這些大學(xué)開設(shè)的“操作系統(tǒng)”課程參見表1。
這些課程中有相當(dāng)?shù)牟糠质茄芯可n程,我們僅僅針對其中的本科課程進(jìn)行了研究,主要針對其中的教學(xué)內(nèi)容、實驗設(shè)置兩個個方面進(jìn)行了分析,最后就這些方面的問題提出了自己的看法。
2教學(xué)內(nèi)容
美國普林斯頓大學(xué)、哥倫比亞大學(xué)、哈佛大學(xué)、麻省理工學(xué)院和加州大學(xué)伯克利分校的計算機(jī)科學(xué)系(或?qū)嶒炇?都開設(shè)了計算機(jī)科學(xué)(Computer Science)課程,在這們(些)課程中用1~2次課的時間進(jìn)行操作系統(tǒng)的基礎(chǔ)知識進(jìn)行了鋪墊,他們因為在操作系統(tǒng)領(lǐng)域取得了各自不同的成就,因此在操作系統(tǒng)擴(kuò)充知識方面進(jìn)行特殊的處理,表2給出了這些學(xué)校本科“操作系統(tǒng)”課程的主要內(nèi)容(這些內(nèi)容都摘自于課程講授的最新課表)。
我們按照概述(包括系統(tǒng)結(jié)構(gòu))、并發(fā)機(jī)制和CPU調(diào)度、內(nèi)存管理、設(shè)備和文件系統(tǒng)和高級專題等五個操作系統(tǒng)的經(jīng)典內(nèi)容進(jìn)行分類在表3中列出了表2中各門課程的學(xué)時分配情況。
在這些課程中,并發(fā)機(jī)制和CPU調(diào)度是操作系統(tǒng)的基礎(chǔ),也是理解操作系統(tǒng)工作機(jī)理的出發(fā)點(diǎn),因此學(xué)時分配中占用的比例一般較高(因為麻省理工學(xué)院的課程主要面向研究生,因此操作系統(tǒng)高級專題占用了相當(dāng)大比例的學(xué)時)。內(nèi)存管理以及設(shè)備和文件系統(tǒng)的教學(xué)學(xué)時大致相當(dāng),是“操作系統(tǒng)”課程的次重要內(nèi)容。
我們在分析這些課程的課件中發(fā)現(xiàn),課程并不十分注重機(jī)制和策略的理論分析,更多地是通過典型案例的分析討論相關(guān)設(shè)計問題,特別是哥倫比亞大學(xué)的“操作系統(tǒng)I”課程幾乎使用了一半的時間介紹Linux的實現(xiàn)策略。
3課程實驗設(shè)置
表4列出了表2中各門課程所設(shè)置的實驗項目,這些實驗項目幾乎涵蓋了操作系統(tǒng)的各個方面,甚至包括了系統(tǒng)的可靠性測試(比如“系統(tǒng)調(diào)用的故障注入”實驗)。課程實驗的時間安排與課程教學(xué)保持同步,這樣在教學(xué)組織上可以有效地開展課堂討論。
這些課程實驗具有以下幾個重要的特點(diǎn):
(1) 實驗項目的完成程度主要通過實驗報告來評判,課程實驗的工作也分為報告書寫工作和編程工作。在哥倫比亞大學(xué)和哈佛大學(xué)的“操作系統(tǒng)”課程中都明確地提出了實驗報告應(yīng)該回答的針對性問題。編程工作在培養(yǎng)學(xué)生的工程實踐能力的同時,實驗報告的書寫也有助于培育學(xué)生的科研素養(yǎng)。
(2) 每個實驗項目都設(shè)定了實驗報告提交的最后期限。每個實驗項目的周期比較長,通常復(fù)雜的實驗項目會持續(xù)一個半月,便于學(xué)生獨(dú)立的完成。
(3) 通常為實驗項目提供了一組Benchmark,要求學(xué)生針對這些Benchmark進(jìn)行實驗分析。實驗結(jié)果的分析過程有助于培養(yǎng)學(xué)生獨(dú)立分析問題的能力。
4結(jié)束語
通過對美國普林斯頓大學(xué)等著名大學(xué)“操作系統(tǒng)”課程的分析,我們的“操作系統(tǒng)”課程教學(xué)至少可以在以下幾個方面進(jìn)行改進(jìn):
(1) 課程內(nèi)容的安排更注重具體案例的分析,注重理論和實踐的結(jié)合,用某個典型操作系統(tǒng)(例如嵌入式Linux或者其他的教學(xué)操作系統(tǒng))為實例,具體分析其在CPU、內(nèi)存和文件系統(tǒng)等各個重要方面的實現(xiàn)技術(shù),使得學(xué)生對操作系統(tǒng)的理解更加具體化。
(2) 面向特殊學(xué)生開設(shè)專門的實驗課程(清華大學(xué)、國防科技大學(xué)、北京大學(xué)已經(jīng)開設(shè)了“操作系統(tǒng)專題訓(xùn)練”類似的課程),滿足那些對操作系統(tǒng)有興趣、有研究和工作需要的學(xué)生的要求,彌補(bǔ)“操作系統(tǒng)”理論課程實驗學(xué)時不足的問題。
(3) 細(xì)化“操作系統(tǒng)”課程的實驗要求,以實驗項目為單位考查實驗結(jié)果,以實驗報告,特別是實驗結(jié)果分析報告為主要的考查對象,可以更好地發(fā)現(xiàn)學(xué)生在課程實驗上存在的問題,督促學(xué)生及時、認(rèn)真、高質(zhì)量完成實驗工作。
(4) 根據(jù)具體的培養(yǎng)方案調(diào)整“操作系統(tǒng)”課程內(nèi)容,有針對性的增加操作系統(tǒng)的高級專題,比如嵌入式操作系統(tǒng)的結(jié)構(gòu)和管理策略、支持Web應(yīng)用的操作系統(tǒng)技術(shù),以提高學(xué)生對后續(xù)課程學(xué)習(xí)和社會工作的適應(yīng)能力。
參考文獻(xiàn):
[1] Jaswinder Pal Singh. Computer Science 318 Operating Systems[EB/OL].[2009-06-20]. http://www.cs. princeton.edu/ courses/archive/fall08/cos318/.
[2] Michael Freedman. Computer Science 518 Advanced Operating Systems[EB/OL]. [2009-06-20]. http://www.cs. princeton. edu/courses/archive/fall09/cos518/.
[3]Junfeng Yang. W4118 OPERATING SYSTEMS I[EB/OL].[2009-06-20].http://www.cs.columbia.edu/-junfeng/09sp-w4118.
[4]Matt Welsh. CS 161. Operating Systems[EB/OL]. [2009-06-20]. http://www.eecs.harvard.edu/ -mdw/course/cs161/ index. html.
[5]Frans Kaashoek. 6.828 Operating System Engineering[EB/OL].[2009-06-20]. http://ocw.mit.edu/OcwWeb/Electrical- Engineering-and-Computer-Science/6-828Fall-2006/CourseHome/index.htm.
[6]Anthony D. Joseph. CS162: Operating Systems and Systems Programming[EB/OL],[2009-06-20].http://inst.eecs. berkeley. edu/-cs162/sp06/.