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