閻 巍 尹俊文
摘要:我國的“操作系統”課程一直在不斷地學習國外先進的教學經驗和方法,隨著計算機技術的發展,“操作系統”課程的建設面臨著機遇和挑戰。本文研究了美國普林斯頓大學、哥倫比亞大學、哈佛大學、麻省理工學院和加州大學伯克利分校等幾所著名大學的本科“操作系統”課程的課程內容、實驗設置兩個方面的情況,以圖促進我國的“操作系統”課程的改革。
關鍵詞:“操作系統”課程;課程內容;實驗設置
中圖分類號:G642 文獻標識碼:B
1引言
隨著嵌入式系統的廣泛應用,操作系統作為最重要的軟件部件之一,越來越受到業界的重視。因此,有關“操作系統”課程的設計面臨著機遇和挑戰。
“操作系統”課程需要為后續課程提供足夠的知識基礎,也必須深化學生對計算機系統的理解和全局觀,拓廣他們對計算機的系統化視野。
我們對國內外一些知名大學的“操作系統”課程進行了跟蹤和分析,了解他們對于操作系統相關知識的教學情況,分析他們對于操作系統相關能力培養的教學實施方法,比較他們與我們國內大學“操作系統”課程教學的差異,吸收他們先進的教學理念和課程設計方法,以圖改進我們的課程教學水平、提高教學效率和質量。
我們主要通過Internet調查了Princeton University(普林斯頓大學)、Columbia University(哥倫比亞大學)、Harvard University(哈佛大學)、Massachusetts Institute of Technology (麻省理工學院)和UC Berkeley(加州大學伯克利分校)等在計算機科學與技術專業具有威望的美國大學。這些大學開設的“操作系統”課程參見表1。
這些課程中有相當的部分是研究生課程,我們僅僅針對其中的本科課程進行了研究,主要針對其中的教學內容、實驗設置兩個個方面進行了分析,最后就這些方面的問題提出了自己的看法。

2教學內容
美國普林斯頓大學、哥倫比亞大學、哈佛大學、麻省理工學院和加州大學伯克利分校的計算機科學系(或實驗室)都開設了計算機科學(Computer Science)課程,在這們(些)課程中用1~2次課的時間進行操作系統的基礎知識進行了鋪墊,他們因為在操作系統領域取得了各自不同的成就,因此在操作系統擴充知識方面進行特殊的處理,表2給出了這些學校本科“操作系統”課程的主要內容(這些內容都摘自于課程講授的最新課表)。
我們按照概述(包括系統結構)、并發機制和CPU調度、內存管理、設備和文件系統和高級專題等五個操作系統的經典內容進行分類在表3中列出了表2中各門課程的學時分配情況。

在這些課程中,并發機制和CPU調度是操作系統的基礎,也是理解操作系統工作機理的出發點,因此學時分配中占用的比例一般較高(因為麻省理工學院的課程主要面向研究生,因此操作系統高級專題占用了相當大比例的學時)。內存管理以及設備和文件系統的教學學時大致相當,是“操作系統”課程的次重要內容。
我們在分析這些課程的課件中發現,課程并不十分注重機制和策略的理論分析,更多地是通過典型案例的分析討論相關設計問題,特別是哥倫比亞大學的“操作系統I”課程幾乎使用了一半的時間介紹Linux的實現策略。
3課程實驗設置
表4列出了表2中各門課程所設置的實驗項目,這些實驗項目幾乎涵蓋了操作系統的各個方面,甚至包括了系統的可靠性測試(比如“系統調用的故障注入”實驗)。課程實驗的時間安排與課程教學保持同步,這樣在教學組織上可以有效地開展課堂討論。

這些課程實驗具有以下幾個重要的特點:
(1) 實驗項目的完成程度主要通過實驗報告來評判,課程實驗的工作也分為報告書寫工作和編程工作。在哥倫比亞大學和哈佛大學的“操作系統”課程中都明確地提出了實驗報告應該回答的針對性問題。編程工作在培養學生的工程實踐能力的同時,實驗報告的書寫也有助于培育學生的科研素養。
(2) 每個實驗項目都設定了實驗報告提交的最后期限。每個實驗項目的周期比較長,通常復雜的實驗項目會持續一個半月,便于學生獨立的完成。
(3) 通常為實驗項目提供了一組Benchmark,要求學生針對這些Benchmark進行實驗分析。實驗結果的分析過程有助于培養學生獨立分析問題的能力。

4結束語
通過對美國普林斯頓大學等著名大學“操作系統”課程的分析,我們的“操作系統”課程教學至少可以在以下幾個方面進行改進:
(1) 課程內容的安排更注重具體案例的分析,注重理論和實踐的結合,用某個典型操作系統(例如嵌入式Linux或者其他的教學操作系統)為實例,具體分析其在CPU、內存和文件系統等各個重要方面的實現技術,使得學生對操作系統的理解更加具體化。
(2) 面向特殊學生開設專門的實驗課程(清華大學、國防科技大學、北京大學已經開設了“操作系統專題訓練”類似的課程),滿足那些對操作系統有興趣、有研究和工作需要的學生的要求,彌補“操作系統”理論課程實驗學時不足的問題。
(3) 細化“操作系統”課程的實驗要求,以實驗項目為單位考查實驗結果,以實驗報告,特別是實驗結果分析報告為主要的考查對象,可以更好地發現學生在課程實驗上存在的問題,督促學生及時、認真、高質量完成實驗工作。
(4) 根據具體的培養方案調整“操作系統”課程內容,有針對性的增加操作系統的高級專題,比如嵌入式操作系統的結構和管理策略、支持Web應用的操作系統技術,以提高學生對后續課程學習和社會工作的適應能力。
參考文獻:
[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/.