引言
“操作系統(tǒng)”是計算機學科一門專業(yè)必修課程,課程內(nèi)容豐富,既要講授關(guān)于操作系統(tǒng)的基礎(chǔ)理論,又要讓學生了解實際操作系統(tǒng)的設(shè)計與實現(xiàn)。為了進一步加強北航計算機學院“操作系統(tǒng)”課程的建設(shè),提高課程質(zhì)量,我們對國外40多所高校的“操作系統(tǒng)”的課程設(shè)置、教學內(nèi)容等進行了調(diào)研。下面結(jié)合調(diào)研情況,介紹CC(Computing Curricula) 2001有關(guān)操作系統(tǒng)的教學內(nèi)容和幾所有代表性的國外高校操作系統(tǒng)的課程設(shè)置。
1 CC2001
CC2001[1]認為,操作系統(tǒng)是硬件的抽象,人們通過它來控制硬件,進行計算機用戶間的資源分配工作。這門課主要講述影響現(xiàn)代操作系統(tǒng)設(shè)計的各種因素及實際操作。
近些年來操作系統(tǒng)和其抽象機制相對于應用軟件變得更加復雜,這就要求學生在系統(tǒng)學習內(nèi)部算法實現(xiàn)和數(shù)據(jù)結(jié)構(gòu)之前對操作系統(tǒng)有比較深入的理解。課程設(shè)置不僅強調(diào)了操作系統(tǒng)的使用,更強調(diào)它的設(shè)計和實現(xiàn)。操作系統(tǒng)中的許多思想也可用于計算機的其他領(lǐng)域,如并發(fā)程序設(shè)計、算法設(shè)計和實現(xiàn)、虛擬環(huán)境的創(chuàng)建、安全系統(tǒng)的創(chuàng)建及網(wǎng)絡(luò)管理等。對于計算機科學專業(yè),其核心知識點為:操作系統(tǒng)概述、操作系統(tǒng)原理、并發(fā)性、調(diào)度與分派、內(nèi)存管理。可選的知識點為:設(shè)備管理、安全與保護、文件系統(tǒng)、實時和嵌入式系統(tǒng)、容錯、系統(tǒng)性能評價和腳本。
另外,新出的CC2005 Overview report[2]中為了適應不同的教學要求,將“操作系統(tǒng)”課程分為了兩門:操作系統(tǒng)原理與設(shè)計、操作系統(tǒng)配置與使用。
2 國外操作系統(tǒng)課程設(shè)置
2.1Princeton University
課程介紹:該校的“操作系統(tǒng)”教學理念是:掌握操作系統(tǒng)的唯一途徑是構(gòu)造一個真正的操作系統(tǒng)。因此教學中注重設(shè)計和分析操作系統(tǒng),教學內(nèi)容包括:進程,互斥,同步,信號量,管程,死鎖預防和檢測,存儲管理,虛擬存儲,進程調(diào)度,磁盤管理,文件系統(tǒng),安全保護,分布式系統(tǒng)。
實習項目:課程所設(shè)計的6個項目就是用來構(gòu)造真正的操作系統(tǒng)。課程結(jié)束時,學生將有一個小的、真正操作系統(tǒng)內(nèi)核。學生2人構(gòu)成一個小組,3個項目后重組,這樣有機會同他人合作。每個項目分設(shè)計和完成兩個階段。項目包括:引導機制、非搶占式調(diào)度、搶占式調(diào)度、進程間通信與進程調(diào)度、虛存和文件系統(tǒng)等六項。
教學方法:采用講課與課堂中討論結(jié)合的方式,教師提前提供閱讀分配材料、討論課題及練習。學生在上課之前先行閱讀和思考討論題。相信學生們可以互相學習,鼓勵在項目中互相幫助。為了鼓勵合作,學生有機會報告誰對您幫助最大。課程結(jié)束時,幫助別人的學生可獲額外分數(shù)。
教科書:Andrew S. Tanenbaum, Albert S. Woodhull, Operating Systems: Design and Implementation, 2nd edition。
評分標準:中期測試15%,課程參加 15%,設(shè)計項目70%。
特點:采用講課與課堂中討論結(jié)合的方式;實習任務(wù)必須完成一個操作系統(tǒng),而且是從引導程序開始。實習要求細致、嚴格,鼓勵合作。
2.2University of California at Berkeley
課程介紹:課程目的是學習設(shè)計操作系統(tǒng),課程內(nèi)容包括:操作系統(tǒng)和系統(tǒng)設(shè)計的基本概念;程序、子系統(tǒng)、多道程序系統(tǒng)、進程、進間通信與同步;存儲分配、分段、分頁、裝入與鏈接;資源分配、調(diào)度、性能評價;文件系統(tǒng),存儲設(shè)備、系統(tǒng);保護、安全。
實習項目:在仿真MIPS平臺構(gòu)造操作系統(tǒng)。一共有4個項目,每個項目包括文檔和代碼兩部分,文檔占項目成績的40% ,代碼60%。項目包括:線程管理、多道程序設(shè)計、高速緩存和虛擬存儲、網(wǎng)絡(luò)和分布式系統(tǒng)。另外有5個家庭作業(yè),但不進入評分標準。
教科書: Silberschatz and Galvin, Operating System Concepts, 7th Edition, John Wiley Sons,ISBN:0-471-41743-2。
評分標準:兩次測試30%(每次15%);期末考試15%;4個項目50%;班級討論5%。
特點:課程內(nèi)容深入、廣泛;實習內(nèi)容要求高,學習Java版本的Nachos,最后要構(gòu)造支持分布式應用的操作系統(tǒng)。
2.3Carnegie Mellon Unive-rsity
課程介紹:課程引入了多道程序,分時,異步處理的概念,這些概念引出了同步,調(diào)度,存儲管理,信息共享和保護等問題。課程注重操作系統(tǒng)的設(shè)計方面。
實習項目:有4個編程項目和4個家庭作業(yè)。編程項目分別是:Yalnix shell; Yalnix 終端驅(qū)動;Yalnix內(nèi)核;Yalnix文件系統(tǒng)。
教科書:Silberschatz, Galvin, and Gagne, Operating System Concepts, sixth edition, published by Wiley, 2002.
評分標準:第1個編程項目5%;第2個編程項目10%;第3個編程項目20%;第4個編程項目15%;中期測試15%;期終測試25%;4個家庭作業(yè)每個2.5%,共10%。
2.4Cornell University
課程名稱:Systems Programming Operating Systems/ Practicum in Operating SystemsCOS 414/415
課程介紹:
COS 414包括操作系統(tǒng)的設(shè)計與實現(xiàn),介紹基本的操作系統(tǒng)的結(jié)構(gòu),并發(fā),調(diào)度,同步,存儲管理,文件系統(tǒng),系統(tǒng)安全,計算機網(wǎng)絡(luò)。
COS 415 Practicum in Operating Systems項目:1. 編寫非搶占的用戶層線程包;2.擴展非搶占的用戶層線程包為搶占;3. 在搶先的線程包上添加不可靠的網(wǎng)絡(luò)服務(wù),能夠在不同的計算機上,實現(xiàn)從一個小線程包向另一個線程包傳送消息;4. 擴展網(wǎng)絡(luò)包為可靠的傳送;5. Ad-hoc 網(wǎng)絡(luò)服務(wù);6.在線程包上實現(xiàn)虛擬文件系統(tǒng)。
教科書:Silberschatz, Galvin, and Gagne, Operating System Concepts, sixth edition, published by Wiley, 2002.
評分要求:COS 414:閱讀任務(wù) 10%;中期測試30%;期末測試50%;主觀評測 10%。COS 415:6個項目 100%。
特點:講課內(nèi)容豐富、課程實踐難度大。另外,該校操作系統(tǒng)課程由原理和實踐兩門組成。另外,Brown University、University of New South Wales等很多國外大學操作系統(tǒng)課程由兩門組成。
2.5Yale University
課程介紹:課程包括基本的操作系統(tǒng)設(shè)計和實現(xiàn)。課程內(nèi)容包含:基本概念,同步,死鎖,進程管理,存儲管理,文件系統(tǒng),安全和保護,網(wǎng)絡(luò)。并且介紹真實的操作系統(tǒng)的操作。最終通過6次實驗實現(xiàn)一個小型的操作系統(tǒng)。
實習項目:1. 啟動和創(chuàng)建引導鏡像;2. 實現(xiàn)進程和線程的模型(無中斷和調(diào)度);3. 實現(xiàn)進程和線程的調(diào)度和中斷;4. 進程間通信和設(shè)備驅(qū)動;5. 虛擬存儲;6. 文件系統(tǒng)。
教科書:A. Silberschatz, P. Galvin, and G. Gagne, Operating System Concepts (Seventh Edition) , John Wiley Sons, Inc., 2005.
評分要求:作業(yè)75%;期中測試20%;課堂參與5%。
2.6Harvard University
課程介紹:這門課介紹了操作系統(tǒng)設(shè)計和實現(xiàn)的基本概念。課程內(nèi)容包含:基本概念,同步,死鎖,進程管理,存儲管理,文件系統(tǒng)。
實習項目:5個項目分別是:1. 熟悉OS/161以及其運行環(huán)境System/161;2. 同步;3. 系統(tǒng)調(diào)用和進程;4. 虛擬內(nèi)存;5. 文件系統(tǒng)。
教科書:A. Tannenbaum, Modern Operating Systems, 2nd ed., Prentice Hall, 2001。
評分要求:課程出勤10%;期中測試15%;終期測試25%;5個項目50%。
2.7University of New South Wales
課程名稱:COMP3231/9201 Operating System
課程介紹:課程內(nèi)容包含操作系統(tǒng)概要介紹;線程;進程管理;存儲管理;保護與安全;實例研究包括UNIX, Linux, Windows-2000和OS/161。
實習項目:4個項目分別是:1. 熟悉OS/161以及其運行環(huán)境System/161;2. 同步;3. 系統(tǒng)調(diào)用和進程;4. 虛擬內(nèi)存。
教科書:A. Tannenbaum, Modern Operating Systems, 2nd ed., Prentice Hall, 2001。
特點:該校對操作系統(tǒng)課程非常重視(John Lions曾經(jīng)是該校教師),專門設(shè)有OS講座教授。操作系統(tǒng)課程由兩門組成,兩門難度要求不一樣。另外,該校實習項目采用的是Harvard University編寫的OS/161,所以與Harvard University類似,只是少了文件系統(tǒng)。
3 課程分析
3.1教學內(nèi)容分析
CC2001教學大綱中操作系統(tǒng)部分內(nèi)容廣泛,偏重基本原理,但是也缺少部分內(nèi)容,例如:磁盤管理、分布式系統(tǒng)等。而國外各大學的教學內(nèi)容一般都介紹當代操作系統(tǒng)動向,分布式、網(wǎng)絡(luò)通信、面向?qū)ο蠹夹g(shù)等都有所涉及,既重視原理、概念的講解,也重視具體實現(xiàn)源代碼的分析。
通過知識點總結(jié)可以看出,CC2001教學大綱、國內(nèi)外各大學都強調(diào):操作系統(tǒng)概述、操作系統(tǒng)原理、并發(fā)性、調(diào)度、內(nèi)存管理、設(shè)備管理、安全與保護和文件系統(tǒng)。但是CC2001的選講內(nèi)容(實時和嵌入式系統(tǒng)、容錯、腳本),一般大學很少包含。有一些內(nèi)容CC2001不包括,但國外大學會教授,例如磁盤管理、分布式系統(tǒng)等。
另外,一些大學還對一些實際的操作系統(tǒng)進行介紹,例如CMU介紹Linux,Cornell介紹Linux和Windows等。
3.2教學內(nèi)容和方法分析
CC2001大綱和多數(shù)國外學校的課堂教學內(nèi)容較為簡單。一般國外大學授課學時數(shù)在30左右,但是要求學生課前必須閱讀教科書和大量的教學參考資料。授課方式采用課堂講授與討論相結(jié)合的方式。
3.3教學實驗分析比較
CC2001大綱中沒有規(guī)定實驗的內(nèi)容,而國外大學都對操作系統(tǒng)實驗有著嚴格的要求,有的完成一個小型操作系統(tǒng),有要求獨立完成的,也有建議合作的,實習基礎(chǔ)有Nachos,也有其他教學操作系統(tǒng)。線程(進程)、線程(進程)調(diào)度、虛存和文件系統(tǒng)是實習項目的主要內(nèi)容。實驗要求具體(報告寫作、代碼風格、執(zhí)行結(jié)果),管理嚴格,不能正確運行的作業(yè)不能得分。
3.4評分標準分析比較
通過分析國內(nèi)外大學的評分標準可以看出,他們對實驗成績很重視,有的大學(如Princeton University)甚至只有實驗成績,而沒有期末考試。
3.5教材
根據(jù)我們的調(diào)研,使用較多的教材有:Andrew S. Tanenbaum的Modern Operating Systems, Second Edition;Silberschatz and Galvin的Operating System Concepts;Andrew S. Tanenbaum的Operating Systems: Design and Implementation等。
4 總結(jié)
通過上面的分析可以看出,國外“操作系統(tǒng)”教學有如下特點:
重視實驗環(huán)節(jié)。我們列舉的大學都對操作系統(tǒng)實驗有著嚴格的要求,有的認為掌握操作系統(tǒng)的途徑就是完成一個小型操作系統(tǒng)。在最終的成績中,實驗成績至少在50%以上。
教學內(nèi)容靈活。從國外大學的教學內(nèi)容看,他們參考CC2001,但不一定保持一致,他們的教學內(nèi)容更取決于授課教師對于操作系統(tǒng)的理解。
教學方法多樣。教師講授與學生課堂參與相結(jié)合。學生是否參加課堂討論會影響課程的最終成績。不過國內(nèi)學校學生人數(shù)較多,做到這一點很難。
課下閱讀量大,作業(yè)多。CC2001大綱中“操作系統(tǒng)”核心知識點課時為18小時,國外大學授課學時數(shù)在30左右,低于國內(nèi)大學的學時數(shù)(例如北航操作系統(tǒng)為48學時)。但是國外大學通過大量的課下閱讀、作業(yè),保證了教學質(zhì)量。很多國內(nèi)大學都在進行教學改革,減少學時數(shù),這點很值得我們借鑒。
參考文獻
[1] Computing Curricula 2001 (Computer Science), IEEE Computer Society and Association for Computing Machinery, December 15, 2001.
[2] Computing Curricula 2005 The Overview Report, The Association for Computing Machinery (ACM), The Association for Information Systems (AIS), The Computer Society (IEEE-CS), September 30, 2005.