閻 巍 尹俊文
摘要:我國的“操作系統(tǒng)”課程一直在不斷地學(xué)習(xí)國外先進(jìn)的教學(xué)經(jīng)驗(yàn)和方法,隨著計(jì)算機(jī)技術(shù)的發(fā)展,“操作系統(tǒng)”課程的建設(shè)面臨著機(jī)遇和挑戰(zhàn)。本文研究了美國普林斯頓大學(xué)、哥倫比亞大學(xué)、哈佛大學(xué)、麻省理工學(xué)院和加州大學(xué)伯克利分校等幾所著名大學(xué)的本科“操作系統(tǒng)”課程的課程內(nèi)容、實(shí)驗(yàn)設(shè)置兩個(gè)方面的情況,以圖促進(jìn)我國的“操作系統(tǒng)”課程的改革。
關(guān)鍵詞:“操作系統(tǒng)”課程;課程內(nèi)容;實(shí)驗(yàn)設(shè)置
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
1引言
隨著嵌入式系統(tǒng)的廣泛應(yīng)用,操作系統(tǒng)作為最重要的軟件部件之一,越來越受到業(yè)界的重視。因此,有關(guān)“操作系統(tǒng)”課程的設(shè)計(jì)面臨著機(jī)遇和挑戰(zhàn)。
“操作系統(tǒng)”課程需要為后續(xù)課程提供足夠的知識基礎(chǔ),也必須深化學(xué)生對計(jì)算機(jī)系統(tǒng)的理解和全局觀,拓廣他們對計(jì)算機(jī)的系統(tǒng)化視野。
我們對國內(nèi)外一些知名大學(xué)的“操作系統(tǒng)”課程進(jìn)行了跟蹤和分析,了解他們對于操作系統(tǒng)相關(guān)知識的教學(xué)情況,分析他們對于操作系統(tǒng)相關(guān)能力培養(yǎng)的教學(xué)實(shí)施方法,比較他們與我們國內(nèi)大學(xué)“操作系統(tǒng)”課程教學(xué)的差異,吸收他們先進(jìn)的教學(xué)理念和課程設(shè)計(jì)方法,以圖改進(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ì)算機(jī)科學(xué)與技術(shù)專業(yè)具有威望的美國大學(xué)。這些大學(xué)開設(shè)的“操作系統(tǒng)”課程參見表1。
這些課程中有相當(dāng)?shù)牟糠质茄芯可n程,我們僅僅針對其中的本科課程進(jìn)行了研究,主要針對其中的教學(xué)內(nèi)容、實(shí)驗(yàn)設(shè)置兩個(gè)個(gè)方面進(jìn)行了分析,最后就這些方面的問題提出了自己的看法。
2教學(xué)內(nèi)容
美國普林斯頓大學(xué)、哥倫比亞大學(xué)、哈佛大學(xué)、麻省理工學(xué)院和加州大學(xué)伯克利分校的計(jì)算機(jī)科學(xué)系(或?qū)嶒?yàn)室)都開設(shè)了計(jì)算機(jī)科學(xué)(Computer Science)課程,在這們(些)課程中用1~2次課的時(shí)間進(jìn)行操作系統(tǒng)的基礎(chǔ)知識進(jìn)行了鋪墊,他們因?yàn)樵诓僮飨到y(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)和高級專題等五個(gè)操作系統(tǒng)的經(jīng)典內(nèi)容進(jìn)行分類在表3中列出了表2中各門課程的學(xué)時(shí)分配情況。
在這些課程中,并發(fā)機(jī)制和CPU調(diào)度是操作系統(tǒng)的基礎(chǔ),也是理解操作系統(tǒng)工作機(jī)理的出發(fā)點(diǎn),因此學(xué)時(shí)分配中占用的比例一般較高(因?yàn)槁槭±砉W(xué)院的課程主要面向研究生,因此操作系統(tǒng)高級專題占用了相當(dāng)大比例的學(xué)時(shí))。內(nèi)存管理以及設(shè)備和文件系統(tǒng)的教學(xué)學(xué)時(shí)大致相當(dāng),是“操作系統(tǒng)”課程的次重要內(nèi)容。
我們在分析這些課程的課件中發(fā)現(xiàn),課程并不十分注重機(jī)制和策略的理論分析,更多地是通過典型案例的分析討論相關(guān)設(shè)計(jì)問題,特別是哥倫比亞大學(xué)的“操作系統(tǒng)I”課程幾乎使用了一半的時(shí)間介紹Linux的實(shí)現(xiàn)策略。
3課程實(shí)驗(yàn)設(shè)置
表4列出了表2中各門課程所設(shè)置的實(shí)驗(yàn)項(xiàng)目,這些實(shí)驗(yàn)項(xiàng)目幾乎涵蓋了操作系統(tǒng)的各個(gè)方面,甚至包括了系統(tǒng)的可靠性測試(比如“系統(tǒng)調(diào)用的故障注入”實(shí)驗(yàn))。課程實(shí)驗(yàn)的時(shí)間安排與課程教學(xué)保持同步,這樣在教學(xué)組織上可以有效地開展課堂討論。
這些課程實(shí)驗(yàn)具有以下幾個(gè)重要的特點(diǎn):
(1) 實(shí)驗(yàn)項(xiàng)目的完成程度主要通過實(shí)驗(yàn)報(bào)告來評判,課程實(shí)驗(yàn)的工作也分為報(bào)告書寫工作和編程工作。在哥倫比亞大學(xué)和哈佛大學(xué)的“操作系統(tǒng)”課程中都明確地提出了實(shí)驗(yàn)報(bào)告應(yīng)該回答的針對性問題。編程工作在培養(yǎng)學(xué)生的工程實(shí)踐能力的同時(shí),實(shí)驗(yàn)報(bào)告的書寫也有助于培育學(xué)生的科研素養(yǎng)。
(2) 每個(gè)實(shí)驗(yàn)項(xiàng)目都設(shè)定了實(shí)驗(yàn)報(bào)告提交的最后期限。每個(gè)實(shí)驗(yàn)項(xiàng)目的周期比較長,通常復(fù)雜的實(shí)驗(yàn)項(xiàng)目會(huì)持續(xù)一個(gè)半月,便于學(xué)生獨(dú)立的完成。
(3) 通常為實(shí)驗(yàn)項(xiàng)目提供了一組Benchmark,要求學(xué)生針對這些Benchmark進(jìn)行實(shí)驗(yàn)分析。實(shí)驗(yàn)結(jié)果的分析過程有助于培養(yǎng)學(xué)生獨(dú)立分析問題的能力。
4結(jié)束語
通過對美國普林斯頓大學(xué)等著名大學(xué)“操作系統(tǒng)”課程的分析,我們的“操作系統(tǒng)”課程教學(xué)至少可以在以下幾個(gè)方面進(jìn)行改進(jìn):
(1) 課程內(nèi)容的安排更注重具體案例的分析,注重理論和實(shí)踐的結(jié)合,用某個(gè)典型操作系統(tǒng)(例如嵌入式Linux或者其他的教學(xué)操作系統(tǒng))為實(shí)例,具體分析其在CPU、內(nèi)存和文件系統(tǒng)等各個(gè)重要方面的實(shí)現(xiàn)技術(shù),使得學(xué)生對操作系統(tǒng)的理解更加具體化。
(2) 面向特殊學(xué)生開設(shè)專門的實(shí)驗(yàn)課程(清華大學(xué)、國防科技大學(xué)、北京大學(xué)已經(jīng)開設(shè)了“操作系統(tǒng)專題訓(xùn)練”類似的課程),滿足那些對操作系統(tǒng)有興趣、有研究和工作需要的學(xué)生的要求,彌補(bǔ)“操作系統(tǒng)”理論課程實(shí)驗(yàn)學(xué)時(shí)不足的問題。
(3) 細(xì)化“操作系統(tǒng)”課程的實(shí)驗(yàn)要求,以實(shí)驗(yàn)項(xiàng)目為單位考查實(shí)驗(yàn)結(jié)果,以實(shí)驗(yàn)報(bào)告,特別是實(shí)驗(yàn)結(jié)果分析報(bào)告為主要的考查對象,可以更好地發(fā)現(xiàn)學(xué)生在課程實(shí)驗(yàn)上存在的問題,督促學(xué)生及時(shí)、認(rèn)真、高質(zhì)量完成實(shí)驗(yàn)工作。
(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í)和社會(huì)工作的適應(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/.