摘要:“操作系統(tǒng)”課程是計算機科學(xué)與技術(shù)專業(yè)的重要專業(yè)基礎(chǔ)課之一,也是該專業(yè)研究生入學(xué)考試的四門專業(yè)統(tǒng)考課程之一,使學(xué)生很好地掌握這門課程的相關(guān)知識顯得尤為重要。本文總結(jié)了筆者多年的教學(xué)實踐經(jīng)驗,提出抓住主線、注意與前導(dǎo)課程的關(guān)系、緊密聯(lián)系實際的操作系統(tǒng)、注重課程的實驗環(huán)節(jié)、關(guān)注操作系統(tǒng)理論與實踐的發(fā)展前沿,是講好這門課的關(guān)鍵。
關(guān)鍵詞:操作系統(tǒng)教學(xué);教學(xué)實踐;教學(xué)體會
中圖分類號:G642 文獻標(biāo)識碼:B
“操作系統(tǒng)”課程是計算機科學(xué)與技術(shù)專業(yè)的重要專業(yè)基礎(chǔ)課之一,教育部規(guī)定從2009年起把它列為計算機專業(yè)研究生入學(xué)考試的四門專業(yè)統(tǒng)考課程之一,由此可見“操作系統(tǒng)”這門課的重要性?!安僮飨到y(tǒng)”是門理論性和實踐性都十分強的課程,由于操作系統(tǒng)在計算機系統(tǒng)中的特殊地位使得它既看不到又摸不到,又是處在不斷地變化過程中,這樣導(dǎo)致人們在感性上接受它比較困難,進而在理論上理解它存在較大難度,從而使得“操作系統(tǒng)”門課程變得不易理解和掌握。如何把這門課程講好,讓學(xué)生很好地理解并掌握操作系統(tǒng)的相關(guān)概念、原理、方法、技術(shù)和實現(xiàn)是十分重要的。經(jīng)過多年的教學(xué)實踐深刻體會到講好這門課必須抓住這門課的主線、注意與前導(dǎo)課程的關(guān)系、緊密聯(lián)系實際的操作系統(tǒng)、注重課程的實驗環(huán)節(jié),同時關(guān)注操作系統(tǒng)理論與實踐的發(fā)展前沿。
1抓主線
研究操作系統(tǒng)的主要觀點有資源管理的觀點、進程的觀點、用戶的觀點、微內(nèi)核觀點等。在這些觀點中,由于學(xué)生學(xué)過計算機的相關(guān)基礎(chǔ)課程對計算機的組成十分了解,因而把資源管理作為主線進行課程的講授是比較容易理解和掌握的。
計算機是由處理器、存儲器(分為內(nèi)存和外存)、輸入/輸出設(shè)備組成,這些組成部分即是計算機系統(tǒng)的資源,對這些資源的管理正好同資源管理的觀點相吻合,即操作系統(tǒng)的管理對象是計算機系統(tǒng)的資源,操作系統(tǒng)是管理系統(tǒng)資源的程序集合,把操作系統(tǒng)分為處理機管理、存儲管理(即內(nèi)存管理)、設(shè)備管理和文件管理(即外存管理),另外還需要對用戶提交的待處理的任務(wù)(即作業(yè))進行管理——作業(yè)管理;把這5類管理有機地組織起來就構(gòu)成了操作系統(tǒng)的主要內(nèi)容。在對這些資源進行管理時共性的問題是首先要設(shè)計數(shù)據(jù)結(jié)構(gòu)分別記錄這些資源的動態(tài)使用情況,其次要采取相應(yīng)的策略和原則進行資源的分配和回收,另外采取一定的方法對資源進行邏輯上的擴充等。對于不同的資源還有其個性問題,在分別進行介紹。這樣就使學(xué)生對操作系統(tǒng)這門課的內(nèi)容有一個整體認識。
另外進程(線程)是現(xiàn)代操作系統(tǒng)中的一個十分重要的概念,在進程(線程)創(chuàng)建、狀態(tài)轉(zhuǎn)換和撤銷這一過程中,涉及資源的分配和回收,這樣就把兩種研究操作系統(tǒng)的觀點有機地聯(lián)系在一起。各種研究觀點之間都是存在著有機地聯(lián)系的。這樣就使學(xué)生認識到各種研究觀點是相輔相成的,而不是相互對立的,讓學(xué)生充分體會到操作系統(tǒng)的本質(zhì),這樣才能真正理解操作系統(tǒng)理論及實際操作系統(tǒng)。
2注重與前導(dǎo)課的關(guān)系
作為“操作系統(tǒng)”課程的前導(dǎo)課程主要有“數(shù)據(jù)結(jié)構(gòu)”、“計算機組成原理”、“計算機體系結(jié)構(gòu)”、“程序設(shè)計語言”。在教學(xué)過程中注意與前導(dǎo)課程的聯(lián)系,可使課程的內(nèi)容前后銜接,由前導(dǎo)知識自然過渡到要介紹的操作系統(tǒng)中,既可以使學(xué)生較好地理解操作系統(tǒng)知識,加深對前導(dǎo)課程的理解與運用,又可以使學(xué)生體會各門課程之間的內(nèi)在聯(lián)系,讓學(xué)生把各門課程的只是有機地聯(lián)系在一起,使知識點連成知識線,再由知識線組成知識面,進而由知識面構(gòu)成知識體,從而提高學(xué)生自學(xué)的能力、知識運用能力和科學(xué)研究能力。
操作系統(tǒng)歸根到底是一組程序,而程序=算法+數(shù)據(jù)結(jié)構(gòu)。由此可見操作系統(tǒng)與數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計語言之間的關(guān)系是密不可分的。在操作系統(tǒng)中,有一些管理是以算法為中心即根據(jù)算法確定或選擇數(shù)據(jù)結(jié)構(gòu),而還有一些是根據(jù)確定了的數(shù)據(jù)結(jié)構(gòu)設(shè)計算法。分區(qū)存儲管理中的分配方法就是根據(jù)算法確定或選擇數(shù)據(jù)結(jié)構(gòu)的一個典型案例,而頁式存儲管理和設(shè)配管理中的分配回收就是典型的確定了的數(shù)據(jù)結(jié)構(gòu)設(shè)計算法的實例。
在“計算機組成原理”介紹中斷和外設(shè)與主機進行數(shù)據(jù)交換等的相關(guān)問題,而這些問題也是在操作系統(tǒng)要介紹的內(nèi)容。由此在“操作系統(tǒng)”課程中就可以把這些內(nèi)容與“計算機組成原理”課程中的相關(guān)問題進行比較介紹。同樣“操作系統(tǒng)”與“計算機體系結(jié)構(gòu)”這兩門課程也有一些相關(guān)問題,也可以采用比較介紹的方法。這樣既可使學(xué)生對課程之間的相關(guān)性有更深的了解,使學(xué)生加深對知識的理解程度,又能節(jié)省一部分課時。
3緊密聯(lián)系實際的操作系統(tǒng)
操作系統(tǒng)既可代表一門課程,又可指一種實際運行的一組程序——實際操作系統(tǒng),因此在講授“操作系統(tǒng)”這門課的過程中,不但要從理論上介紹操作系統(tǒng),即介紹操作系統(tǒng)的基本概念、原理、方法、算法和相關(guān)的數(shù)據(jù)結(jié)構(gòu)等,還應(yīng)該把這些理論知識同實際的操作系統(tǒng)聯(lián)系起來,讓學(xué)生感受到這些理論知識在實際中是如何被應(yīng)用的,這樣既可以使學(xué)生更深刻地理解理論知識,同時又使他們體會到知識的運用過程,理論與實際的相輔相成的關(guān)系。通過分析實際的操作系統(tǒng)還可以提高學(xué)生分析程序的能力,理解實際操作系統(tǒng)研制過程中對實際情況的充分考慮和一些實現(xiàn)技巧,而不僅僅只是理論的“翻版”。
目前作為“操作系統(tǒng)”教學(xué)案例的實際操作系統(tǒng)主要有Linux 操作系統(tǒng)、Unix操作系統(tǒng)、Windows操作系統(tǒng),以及幾年來SUN公司在教育界大力推行的Solaris操作系統(tǒng)。選擇哪種操作系統(tǒng)作為教學(xué)案例主要看開源的程度和研究人員對它剖析和整理的程度。如果有條件可以選擇多種操作系統(tǒng)作為案例,這樣可以進行相互比較。但由于教學(xué)時數(shù)的限制,一般只能選擇一種操作系統(tǒng)中比較典型的部分進行剖析,如Linux中進程的創(chuàng)建、調(diào)度、并發(fā)/同步/互斥控制等,以及內(nèi)存管理和文件系統(tǒng)等。
4注重實驗教學(xué)
為了使學(xué)生更好地理解操作系統(tǒng)、掌握相關(guān)的知識,在介紹操作系統(tǒng)的理論和實際操作系統(tǒng)的基礎(chǔ)上,還應(yīng)讓學(xué)生親自動手編制操作系統(tǒng)程序,通過編寫操作系統(tǒng)或操作系統(tǒng)的一部分或操作系統(tǒng)一部分的模擬(仿真)程序,可使學(xué)生更進一步理解和掌握操作系統(tǒng)的相關(guān)知識、獲得更多的感性認識、對計算機系統(tǒng)程序及其運行有著更深刻地理解,提高學(xué)生編程能力、觀察問題能力、分析問題能力。
由于學(xué)時、編制操作系統(tǒng)的復(fù)雜程度、學(xué)生實際能力、實驗條件和環(huán)境等的限制,不可能編制一個簡單的操作系統(tǒng),只能從可進行實驗的部分當(dāng)中選擇幾個典型部分進行實驗。進行的實驗可以分為兩類。一類實驗是對某一實際操作系統(tǒng)的實際運行情況的跟蹤和分析,通過這類實驗可以使學(xué)生觀察并更好地理解操作系統(tǒng)的實際運行情況、各種資源/對象狀態(tài)的變化,在感性上認識和理解操作系統(tǒng)的工作原理,進而在理論上認識并理解它,例如在Linux操作系統(tǒng)運行下,實時觀察進程的創(chuàng)建、狀態(tài)轉(zhuǎn)換、撤銷,進程的同步/互斥/通信,內(nèi)存的分配和使用情況等。另一類實驗是針對操作系統(tǒng)的某一個具體方法進行編程來模擬操作系統(tǒng)的功能,例如進程調(diào)度、動態(tài)頁式存儲管理、二級文件系統(tǒng)、設(shè)備驅(qū)動等的模擬;通過這些實驗提高學(xué)生數(shù)據(jù)結(jié)構(gòu)的設(shè)計能力、編程能力,同時讓學(xué)生從感性上進一步認識和理解操作系統(tǒng)的工作原理。
5關(guān)注操作系統(tǒng)的發(fā)展前沿
操作系統(tǒng)無論是作為理論還是作為實際運行系統(tǒng)都是在不斷地發(fā)展變化的,跟蹤操作系統(tǒng)的發(fā)展變化,適時地向?qū)W生做以介紹,使學(xué)生可以了解操作系統(tǒng)的前沿理論和技術(shù)以及新推出的操作系統(tǒng),拓寬了他們得視野,培養(yǎng)學(xué)生不斷接受新思想、新知識、新技術(shù)的學(xué)習(xí)習(xí)慣和學(xué)習(xí)自覺性,激發(fā)、培養(yǎng)學(xué)生的興趣點,為學(xué)生將來的工作奠定一定的基礎(chǔ)。并行操作系統(tǒng)、分布操作系統(tǒng)、網(wǎng)絡(luò)下的操作系統(tǒng)、多媒體環(huán)境下的操作系統(tǒng)、操作系統(tǒng)內(nèi)核呈現(xiàn)出多平臺統(tǒng)一的趨勢、功能將不斷增加,中間件發(fā)展趨勢、嵌入式系統(tǒng)及其軟件技術(shù)發(fā)展趨勢、行業(yè)性嵌入式軟件開發(fā)平臺、嵌入式開發(fā)工具將向高度集成、編譯優(yōu)化、具有系統(tǒng)設(shè)計、可視化建模、仿真和驗證功能方向發(fā)展、嵌入式中間件等都是操作系統(tǒng)研究的熱點和方向。
操作系統(tǒng)的理論實踐在不斷地發(fā)展變化著、教師面對的學(xué)生也在不斷的變化,因而“操作系統(tǒng)”這門課的講授內(nèi)容、方式和實驗項目都應(yīng)隨著進行不斷地調(diào)整,以適應(yīng)發(fā)展變化的需要。
參考文獻:
[1] 史志才,毛玉萃.操作系統(tǒng)原理——Linux 技術(shù)實現(xiàn)[M].北京:高等教育出版社,2004.
[2] 湯子氵贏,哲鳳屏,湯小丹.計算機操作系統(tǒng)[M].2版.西安:電子科技大學(xué)出版社,2002.
[3] 潭耀銘.操作系統(tǒng)[M].北京:中國人民大學(xué)出版社,1999.
[4] 馬季蘭,彭新光.Linux操作系統(tǒng)[M].北京:電子工業(yè)出版社,2002.
[5] 張堯?qū)W.計算機操作系統(tǒng)教程——習(xí)題解答與實驗指導(dǎo)[M].2版. 北京:清華大學(xué)出版社,2000.
[6] 陳新河.未來5-10年操作系統(tǒng)發(fā)展趨勢[N/OL].[2007-06-19]. http://news.ccidnet.com/art/1032/20070619/1117459_1.html.